Exclude PowerVR chipset only

This commit is contained in:
raven02 2014-01-02 19:21:22 +08:00
parent e84a7b1586
commit 6467c70f08

View file

@ -762,7 +762,7 @@ void FramebufferManager::SetRenderFrameBuffer() {
vfb->fbo = fbo_create(vfb->renderWidth, vfb->renderHeight, 1, true, vfb->colorDepth);
if (vfb->fbo) {
fbo_bind_as_render_target(vfb->fbo);
if (gl_extensions.gpuVendor == GPU_VENDOR_ADRENO)
if (gl_extensions.gpuVendor != GPU_VENDOR_POWERVR)
glstate.viewport.restore();
} else {
ERROR_LOG(SCEGE, "Error creating FBO! %i x %i", vfb->renderWidth, vfb->renderHeight);
@ -829,8 +829,8 @@ void FramebufferManager::SetRenderFrameBuffer() {
if (useBufferedRendering_) {
if (vfb->fbo) {
fbo_bind_as_render_target(vfb->fbo);
// adreno needs us to reset the viewport after switching render targets.
if (gl_extensions.gpuVendor == GPU_VENDOR_ADRENO)
// Adreno/Mali needs us to reset the viewport after switching render targets.
if (gl_extensions.gpuVendor != GPU_VENDOR_POWERVR)
glstate.viewport.restore();
} else {
// wtf? This should only happen very briefly when toggling bBufferedRendering
@ -960,7 +960,7 @@ void FramebufferManager::CopyDisplayToOutput() {
} else if (usePostShader_ && extraFBOs_.size() == 1 && !postShaderAtOutputResolution_) {
// An additional pass, post-processing shader to the extra FBO.
fbo_bind_as_render_target(extraFBOs_[0]);
if (gl_extensions.gpuVendor == GPU_VENDOR_ADRENO)
if (gl_extensions.gpuVendor != GPU_VENDOR_POWERVR)
glstate.viewport.restore();
int fbo_w, fbo_h;
fbo_get_dimensions(extraFBOs_[0], &fbo_w, &fbo_h);
@ -1061,7 +1061,7 @@ void FramebufferManager::ReadFramebufferToMemory(VirtualFramebuffer *vfb, bool s
nvfb->last_frame_render = gpuStats.numFlips;
bvfbs_.push_back(nvfb);
fbo_bind_as_render_target(nvfb->fbo);
if (gl_extensions.gpuVendor == GPU_VENDOR_ADRENO)
if (gl_extensions.gpuVendor != GPU_VENDOR_POWERVR)
glstate.viewport.restore();
ClearBuffer();
glEnable(GL_DITHER);
@ -1074,7 +1074,7 @@ void FramebufferManager::ReadFramebufferToMemory(VirtualFramebuffer *vfb, bool s
#ifdef USING_GLES2
if (nvfb->fbo) {
fbo_bind_as_render_target(nvfb->fbo);
if (gl_extensions.gpuVendor == GPU_VENDOR_ADRENO)
if (gl_extensions.gpuVendor != GPU_VENDOR_POWERVR)
glstate.viewport.restore();
}
@ -1108,7 +1108,7 @@ void FramebufferManager::ReadFramebufferToMemory(VirtualFramebuffer *vfb, bool s
void FramebufferManager::BlitFramebuffer_(VirtualFramebuffer *src, VirtualFramebuffer *dst, bool flip, float upscale, float vscale) {
if (dst->fbo) {
fbo_bind_as_render_target(dst->fbo);
if (gl_extensions.gpuVendor == GPU_VENDOR_ADRENO)
if (gl_extensions.gpuVendor != GPU_VENDOR_POWERVR)
glstate.viewport.restore();
} else {
ERROR_LOG_REPORT_ONCE(dstfbozero, SCEGE, "BlitFramebuffer_: dst->fbo == 0");
@ -1552,7 +1552,7 @@ void FramebufferManager::UpdateFromMemory(u32 addr, int size, bool safe) {
DisableState();
glstate.viewport.set(0, 0, vfb->renderWidth, vfb->renderHeight);
fbo_bind_as_render_target(vfb->fbo);
if (gl_extensions.gpuVendor == GPU_VENDOR_ADRENO)
if (gl_extensions.gpuVendor != GPU_VENDOR_POWERVR)
glstate.viewport.restore();
needUnbind = true;
DrawPixels(Memory::GetPointer(addr | 0x04000000), vfb->format, vfb->fb_stride);