mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-25 16:06:31 +00:00
Enable qualcomm driver bug workaround for all cubemaps
* It seems like the problem isn't related to mips, but to 64x64 dimension faces (or smaller). Since it's hard to figure out exactly what the bug is and this might break in other scenarios maybe with other texture formats, we fall back to enabling the workaround across all cubemaps. This is unfortunate but the only way to be reliable.
This commit is contained in:
@@ -804,7 +804,7 @@ void DoVendorChecks(GLPlatform &platform, GLWindowingData context)
|
||||
}
|
||||
|
||||
RDCWARN("Enabling Qualcomm driver hack to avoid reading cubemap mip faces directly", ver);
|
||||
VendorCheck[VendorCheck_Qualcomm_emulate_cube_reads_mip1] = true;
|
||||
VendorCheck[VendorCheck_Qualcomm_emulate_cube_reads] = true;
|
||||
}
|
||||
|
||||
if(IsGLES)
|
||||
|
||||
@@ -868,7 +868,7 @@ enum VendorCheckEnum
|
||||
VendorCheck_AMD_copy_compressed_cubemaps,
|
||||
VendorCheck_AMD_vertex_array_elem_buffer_query,
|
||||
VendorCheck_Qualcomm_avoid_glCopyImageSubData,
|
||||
VendorCheck_Qualcomm_emulate_cube_reads_mip1,
|
||||
VendorCheck_Qualcomm_emulate_cube_reads,
|
||||
VendorCheck_Count,
|
||||
};
|
||||
extern bool VendorCheck[VendorCheck_Count];
|
||||
|
||||
@@ -2705,9 +2705,11 @@ void APIENTRY _glGetTexImage(GLenum target, GLint level, const GLenum format, co
|
||||
depthFormat = true;
|
||||
}
|
||||
|
||||
// Qualcomm drivers seem to barf if we try to read from cubemap faces after X+ for mips.
|
||||
// X+ works on any mip, and all faces work on the first mip.
|
||||
if(VendorCheck[VendorCheck_Qualcomm_emulate_cube_reads_mip1] && level > 0)
|
||||
// Qualcomm drivers seem to barf if we try to read from cubemap faces above X+ for mips 64x64 or
|
||||
// smaller. In testing X+ works on any mip, and all faces work on larger mips, but since the
|
||||
// driver seems completely unreliable in this area we enable the workaround blanket for all
|
||||
// cubemap reads as different formats may break in different ways.
|
||||
if(VendorCheck[VendorCheck_Qualcomm_emulate_cube_reads])
|
||||
{
|
||||
switch(target)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user