mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-10 22:49:00 +01:00
[Android] Missed a few things for PowerVR544MP3 'support.' It doesn't actually get any video output on it just like Tegra 4.
This commit is contained in:
parent
a40daac5b1
commit
26c38648ec
@ -39,6 +39,7 @@ namespace DriverDetails
|
|||||||
{VENDOR_MESA, DRIVER_NOUVEAU, BUG_BROKENHACKEDBUFFER, -1.0, -1.0, true},
|
{VENDOR_MESA, DRIVER_NOUVEAU, BUG_BROKENHACKEDBUFFER, -1.0, -1.0, true},
|
||||||
{VENDOR_ATI, DRIVER_ATI, BUG_BROKENPINNEDMEMORY, -1.0, -1.0, true},
|
{VENDOR_ATI, DRIVER_ATI, BUG_BROKENPINNEDMEMORY, -1.0, -1.0, true},
|
||||||
{VENDOR_TEGRA, DRIVER_NVIDIA, BUG_ISTEGRA, -1.0, -1.0, true},
|
{VENDOR_TEGRA, DRIVER_NVIDIA, BUG_ISTEGRA, -1.0, -1.0, true},
|
||||||
|
{VENDOR_IMGTEC, DRIVER_IMGTEC, BUG_ISPOWERVR, -1.0, -1.0, true},
|
||||||
};
|
};
|
||||||
|
|
||||||
std::map<Bug, BugInfo> m_bugs;
|
std::map<Bug, BugInfo> m_bugs;
|
||||||
|
@ -122,6 +122,13 @@ namespace DriverDetails
|
|||||||
// Tegra 4 hardware limitations don't allow it to support OpenGL ES 3
|
// Tegra 4 hardware limitations don't allow it to support OpenGL ES 3
|
||||||
// This is fixed in Tegra 5
|
// This is fixed in Tegra 5
|
||||||
BUG_ISTEGRA,
|
BUG_ISTEGRA,
|
||||||
|
// Bug: Running on a PowerVR5 device
|
||||||
|
// Affected devices: PowerVR54x
|
||||||
|
// Started Version: 540
|
||||||
|
// Ended Version: 6xxx
|
||||||
|
// PowerVR 5 hardware limitations don't allow it to support OpenGL ES 3
|
||||||
|
// This is fixed in PowerVR6
|
||||||
|
BUG_ISPOWERVR,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Initializes our internal vendor, device family, and driver version
|
// Initializes our internal vendor, device family, and driver version
|
||||||
|
@ -658,12 +658,12 @@ static inline void GeneratePixelShader(T& out, DSTALPHA_MODE dstAlphaMode, API_T
|
|||||||
if (dstAlphaMode == DSTALPHA_ALPHA_PASS)
|
if (dstAlphaMode == DSTALPHA_ALPHA_PASS)
|
||||||
{
|
{
|
||||||
out.SetConstantsUsed(C_ALPHA, C_ALPHA);
|
out.SetConstantsUsed(C_ALPHA, C_ALPHA);
|
||||||
out.Write("\tocol0 = float4(prev.rgb, " I_ALPHA"[0].a);\n");
|
out.Write("\tgl_FragColor = float4(prev.rgb, " I_ALPHA"[0].a);\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
WriteFog<T>(out, uid_data);
|
WriteFog<T>(out, uid_data);
|
||||||
out.Write("\tocol0 = prev;\n");
|
out.Write("\tgl_FragColor = prev;\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use dual-source color blending to perform dst alpha in a single pass
|
// Use dual-source color blending to perform dst alpha in a single pass
|
||||||
@ -674,7 +674,7 @@ static inline void GeneratePixelShader(T& out, DSTALPHA_MODE dstAlphaMode, API_T
|
|||||||
// Colors will be blended against the alpha from ocol1 and
|
// Colors will be blended against the alpha from ocol1 and
|
||||||
// the alpha from ocol0 will be written to the framebuffer.
|
// the alpha from ocol0 will be written to the framebuffer.
|
||||||
out.Write("\tocol1 = prev;\n");
|
out.Write("\tocol1 = prev;\n");
|
||||||
out.Write("\tocol0.a = " I_ALPHA"[0].a;\n");
|
out.Write("\tgl_FragColor.a = " I_ALPHA"[0].a;\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
out.Write("}\n");
|
out.Write("}\n");
|
||||||
|
@ -576,8 +576,8 @@ void ProgramShaderCache::CreateHeader ( void )
|
|||||||
, v==GLSLES2 ? "#define out " : ""
|
, v==GLSLES2 ? "#define out " : ""
|
||||||
, v==GLSLES2 ? "#define ocol0 gl_FragColor" : ""
|
, v==GLSLES2 ? "#define ocol0 gl_FragColor" : ""
|
||||||
, v==GLSLES2 ? "#define ocol1 gl_FragColor" : ""
|
, v==GLSLES2 ? "#define ocol1 gl_FragColor" : ""
|
||||||
, v==GLSLES2 ? "#extension GL_NV_uniform_buffer_object : enable" : ""
|
, DriverDetails::HasBug(DriverDetails::BUG_ISTEGRA) ? "#extension GL_NV_uniform_buffer_object : enable" : ""
|
||||||
, v==GLSLES2 ? "#extension GL_NV_fragdepth : enable" : ""
|
, DriverDetails::HasBug(DriverDetails::BUG_ISTEGRA) ? "#extension GL_NV_fragdepth : enable" : ""
|
||||||
, v==GLSLES2 ? "" : "out vec4 name;"
|
, v==GLSLES2 ? "" : "out vec4 name;"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -388,7 +388,7 @@ Renderer::Renderer()
|
|||||||
g_ogl_config.bSupportCoverageMSAA = false; // XXX: GLES3 spec has MSAA
|
g_ogl_config.bSupportCoverageMSAA = false; // XXX: GLES3 spec has MSAA
|
||||||
g_ogl_config.bSupportSampleShading = false;
|
g_ogl_config.bSupportSampleShading = false;
|
||||||
g_ogl_config.bSupportOGL31 = false;
|
g_ogl_config.bSupportOGL31 = false;
|
||||||
if (DriverDetails::HasBug(DriverDetails::BUG_ISTEGRA))
|
if (DriverDetails::HasBug(DriverDetails::BUG_ISTEGRA) || DriverDetails::HasBug(DriverDetails::BUG_ISPOWERVR))
|
||||||
g_ogl_config.eSupportedGLSLVersion = GLSLES2;
|
g_ogl_config.eSupportedGLSLVersion = GLSLES2;
|
||||||
else
|
else
|
||||||
g_ogl_config.eSupportedGLSLVersion = GLSLES3;
|
g_ogl_config.eSupportedGLSLVersion = GLSLES3;
|
||||||
|
@ -33,7 +33,9 @@ StreamBuffer::StreamBuffer(u32 type, size_t size, StreamType uploadType)
|
|||||||
g_Config.bHackedBufferUpload = false;
|
g_Config.bHackedBufferUpload = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!g_ogl_config.bSupportsGLBaseVertex && (m_uploadtype & BUFFERDATA) && !DriverDetails::HasBug(DriverDetails::BUG_ISTEGRA))
|
if(!g_ogl_config.bSupportsGLBaseVertex && (m_uploadtype & BUFFERDATA)
|
||||||
|
&& !DriverDetails::HasBug(DriverDetails::BUG_ISPOWERVR)
|
||||||
|
&& !DriverDetails::HasBug(DriverDetails::BUG_ISTEGRA))
|
||||||
m_uploadtype = BUFFERDATA;
|
m_uploadtype = BUFFERDATA;
|
||||||
else if(!g_ogl_config.bSupportsGLBaseVertex && (m_uploadtype & BUFFERSUBDATA))
|
else if(!g_ogl_config.bSupportsGLBaseVertex && (m_uploadtype & BUFFERSUBDATA))
|
||||||
m_uploadtype = BUFFERSUBDATA;
|
m_uploadtype = BUFFERSUBDATA;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user