projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
mesa: move STATE_LENGTH to shader_enums.h and use it everywhere
[mesa.git]
/
src
/
compiler
/
nir
/
nir_lower_wpos_ytransform.c
diff --git
a/src/compiler/nir/nir_lower_wpos_ytransform.c
b/src/compiler/nir/nir_lower_wpos_ytransform.c
index 873d259d7fc201e52fe150f0c4f7b38a19a87320..62166e787461eb9ab79088ef7d9725eae145ac06 100644
(file)
--- a/
src/compiler/nir/nir_lower_wpos_ytransform.c
+++ b/
src/compiler/nir/nir_lower_wpos_ytransform.c
@@
-302,8
+302,10
@@
lower_wpos_ytransform_block(lower_wpos_ytransform_state *state, nir_block *block
nir_deref_var *dvar = intr->variables[0];
nir_variable *var = dvar->var;
nir_deref_var *dvar = intr->variables[0];
nir_variable *var = dvar->var;
- if (var->data.mode == nir_var_shader_in &&
- var->data.location == VARYING_SLOT_POS) {
+ if ((var->data.mode == nir_var_shader_in &&
+ var->data.location == VARYING_SLOT_POS) ||
+ (var->data.mode == nir_var_system_value &&
+ var->data.location == SYSTEM_VALUE_FRAG_COORD)) {
/* gl_FragCoord should not have array/struct derefs: */
assert(dvar->deref.child == NULL);
lower_fragcoord(state, intr);
/* gl_FragCoord should not have array/struct derefs: */
assert(dvar->deref.child == NULL);
lower_fragcoord(state, intr);
@@
-312,6
+314,10
@@
lower_wpos_ytransform_block(lower_wpos_ytransform_state *state, nir_block *block
assert(dvar->deref.child == NULL);
lower_load_sample_pos(state, intr);
}
assert(dvar->deref.child == NULL);
lower_load_sample_pos(state, intr);
}
+ } else if (intr->intrinsic == nir_intrinsic_load_frag_coord) {
+ lower_fragcoord(state, intr);
+ } else if (intr->intrinsic == nir_intrinsic_load_sample_pos) {
+ lower_load_sample_pos(state, intr);
} else if (intr->intrinsic == nir_intrinsic_interp_var_at_offset) {
lower_interp_var_at_offset(state, intr);
}
} else if (intr->intrinsic == nir_intrinsic_interp_var_at_offset) {
lower_interp_var_at_offset(state, intr);
}
@@
-346,7
+352,7
@@
nir_lower_wpos_ytransform(nir_shader *shader,
.shader = shader,
};
.shader = shader,
};
- assert(shader->stage == MESA_SHADER_FRAGMENT);
+ assert(shader->
info.
stage == MESA_SHADER_FRAGMENT);
nir_foreach_function(function, shader) {
if (function->impl)
nir_foreach_function(function, shader) {
if (function->impl)