Commit bc9b7656 by steve-lunarg

Restrict uniform array flattening to sampler and texture arrays.

Previously the uniform array flattening feature would trigger on loose uniform arrays of any basic type (e.g, floats). This PR restricts it to sampler and texture arrays. Other arrays would end up in their own uniform block (anonymous or otherwise). (Atomic counter arrays might be an exception, but those are not currently flattened).
parent 21e7e321
...@@ -941,7 +941,7 @@ void usage() ...@@ -941,7 +941,7 @@ void usage()
" explicit bindings.\n" " explicit bindings.\n"
" --amb synonym for --auto-map-bindings\n" " --amb synonym for --auto-map-bindings\n"
"\n" "\n"
" --flatten-uniform-arrays flatten uniform array references to scalars\n" " --flatten-uniform-arrays flatten uniform texture & sampler arrays to scalars\n"
" --fua synonym for --flatten-uniform-arrays\n" " --fua synonym for --flatten-uniform-arrays\n"
); );
......
...@@ -736,7 +736,9 @@ bool HlslParseContext::shouldFlattenUniform(const TType& type) const ...@@ -736,7 +736,9 @@ bool HlslParseContext::shouldFlattenUniform(const TType& type) const
return type.isArray() && return type.isArray() &&
intermediate.getFlattenUniformArrays() && intermediate.getFlattenUniformArrays() &&
qualifier == EvqUniform; qualifier == EvqUniform &&
// Testing the EbtSampler basic type covers samplers and textures
type.getBasicType() == EbtSampler;
} }
void HlslParseContext::flatten(const TSourceLoc& loc, const TVariable& variable) void HlslParseContext::flatten(const TSourceLoc& loc, const TVariable& variable)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment