Merge pull request #2005 from atyuwen/master

Don't rename remapped variables like 'gl_LastFragDepthARM'
This commit is contained in:
Hans-Kristian Arntzen 2022-08-24 10:36:48 +02:00 committed by GitHub
commit c93ee9261e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 1 deletions

View File

@ -330,6 +330,10 @@ void ParsedIR::fixup_reserved_names()
{
for (uint32_t id : meta_needing_name_fixup)
{
// Don't rename remapped variables like 'gl_LastFragDepthARM'.
if (ids[id].get_type() == TypeVariable && get<SPIRVariable>(id).remapped_variable)
continue;
auto &m = meta[id];
sanitize_identifier(m.decoration.alias, false, false);
for (auto &memb : m.members)

View File

@ -649,7 +649,7 @@ string CompilerGLSL::compile()
{
// only NV_gpu_shader5 supports divergent indexing on OpenGL, and it does so without extra qualifiers
backend.nonuniform_qualifier = "";
backend.needs_row_major_load_workaround = true;
backend.needs_row_major_load_workaround = options.enable_row_major_load_workaround;
}
backend.allow_precision_qualifiers = options.vulkan_semantics || options.es;
backend.force_gl_in_out_block = true;

View File

@ -145,6 +145,12 @@ public:
// compares.
bool relax_nan_checks = false;
// Loading row-major matrices from UBOs on older AMD Windows OpenGL drivers is problematic.
// To load these types correctly, we must generate a wrapper. them in a dummy function which only purpose is to
// ensure row_major decoration is actually respected.
// This workaround may cause significant performance degeneration on some Android devices.
bool enable_row_major_load_workaround = true;
// If non-zero, controls layout(num_views = N) in; in GL_OVR_multiview2.
uint32_t ovr_multiview_view_count = 0;