diff options
Diffstat (limited to 'src/compiler/spirv')
-rw-r--r-- | src/compiler/spirv/vtn_variables.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/compiler/spirv/vtn_variables.c b/src/compiler/spirv/vtn_variables.c index 4a6f9788af0..e564fb03cbe 100644 --- a/src/compiler/spirv/vtn_variables.c +++ b/src/compiler/spirv/vtn_variables.c @@ -1064,17 +1064,18 @@ apply_var_decoration(struct vtn_builder *b, nir_variable *nir_var, vtn_get_builtin_location(b, builtin, &nir_var->data.location, &mode); nir_var->data.mode = mode; - if (builtin == SpvBuiltInTessLevelOuter || - builtin == SpvBuiltInTessLevelInner) { + switch (builtin) { + case SpvBuiltInTessLevelOuter: + case SpvBuiltInTessLevelInner: nir_var->data.compact = true; - } - - if (builtin == SpvBuiltInFragCoord || builtin == SpvBuiltInSamplePosition) + break; + case SpvBuiltInSamplePosition: nir_var->data.origin_upper_left = b->origin_upper_left; - - if (builtin == SpvBuiltInFragCoord) + /* fallthrough */ + case SpvBuiltInFragCoord: nir_var->data.pixel_center_integer = b->pixel_center_integer; - break; + break; + } } case SpvDecorationSpecId: |