diff options
author | Neil Roberts <[email protected]> | 2018-05-02 18:10:00 +0200 |
---|---|---|
committer | Neil Roberts <[email protected]> | 2018-05-03 10:08:42 +0200 |
commit | e17d0ccbbddac455e4c47f5adc2333a531fedd3e (patch) | |
tree | 7ada92dba2eaa84f0fc3937cdec67223e4c393b6 /include/meson.build | |
parent | b291a3a4a313851f3f88247c3c6c8a0dc4499a77 (diff) |
spirv: Apply OriginUpperLeft to FragCoord
This behaviour was changed in 1e5b09f42f694687ac. The commit message
for that says it is just a “tidy up” so my assumption is that the
behaviour change was a mistake. It’s a little hard to decipher looking
at the diff, but the previous code before that patch was:
if (builtin == SpvBuiltInFragCoord || builtin == SpvBuiltInSamplePosition)
nir_var->data.origin_upper_left = b->origin_upper_left;
if (builtin == SpvBuiltInFragCoord)
nir_var->data.pixel_center_integer = b->pixel_center_integer;
After the patch the code was:
case SpvBuiltInSamplePosition:
nir_var->data.origin_upper_left = b->origin_upper_left;
/* fallthrough */
case SpvBuiltInFragCoord:
nir_var->data.pixel_center_integer = b->pixel_center_integer;
break;
Before the patch origin_upper_left affected both builtins and
pixel_center_integer only affected FragCoord. After the patch
origin_upper_left only affects SamplePosition and pixel_center_integer
affects both variables.
This patch tries to restore the previous behaviour by changing the
code to:
case SpvBuiltInFragCoord:
nir_var->data.pixel_center_integer = b->pixel_center_integer;
/* fallthrough */
case SpvBuiltInSamplePosition:
nir_var->data.origin_upper_left = b->origin_upper_left;
break;
This change will be important for ARB_gl_spirv which is meant to
support OriginLowerLeft.
Reviewed-by: Jason Ekstrand <[email protected]>
Reviewed-by: Anuj Phogat <[email protected]>
Fixes: 1e5b09f42f694687ac "spirv: Tidy some repeated if checks..."
Diffstat (limited to 'include/meson.build')
0 files changed, 0 insertions, 0 deletions