summaryrefslogtreecommitdiffstats
path: root/src/compiler/nir
diff options
context:
space:
mode:
authorErik Faye-Lund <[email protected]>2019-10-21 10:48:09 +0200
committerErik Faye-Lund <[email protected]>2019-10-23 13:03:52 +0200
commitacf1bf47cc34f2e1d3fb9160651d4a33ce3c6a05 (patch)
tree7d89f5520d309297d82f30215ce69f27ff0f0fa8 /src/compiler/nir
parentbeb6639a9d064b7c4dce389f9ea56fd1373edf33 (diff)
Revert "nir: drop support for using load_alpha_ref_float"
This reverts commit 5af272b47469398762e984e27f65fc4ecc293d28. Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Jose Maria Casanova <[email protected]>
Diffstat (limited to 'src/compiler/nir')
-rw-r--r--src/compiler/nir/nir_lower_alpha_test.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/src/compiler/nir/nir_lower_alpha_test.c b/src/compiler/nir/nir_lower_alpha_test.c
index a13de554445..b652fb796be 100644
--- a/src/compiler/nir/nir_lower_alpha_test.c
+++ b/src/compiler/nir/nir_lower_alpha_test.c
@@ -40,7 +40,6 @@ nir_lower_alpha_test(nir_shader *shader, enum compare_func func,
bool alpha_to_one,
const gl_state_index16 *alpha_ref_state_tokens)
{
- assert(alpha_ref_state_tokens);
assert(shader->info.stage == MESA_SHADER_FRAGMENT);
nir_foreach_function(function, shader) {
@@ -95,16 +94,20 @@ nir_lower_alpha_test(nir_shader *shader, enum compare_func func,
3);
}
- nir_variable *var = nir_variable_create(shader,
- nir_var_uniform,
- glsl_float_type(),
- "gl_AlphaRefMESA");
- var->num_state_slots = 1;
- var->state_slots = ralloc_array(var, nir_state_slot, 1);
- memcpy(var->state_slots[0].tokens,
- alpha_ref_state_tokens,
- sizeof(var->state_slots[0].tokens));
- nir_ssa_def *alpha_ref = nir_load_var(&b, var);
+ nir_ssa_def *alpha_ref;
+ if (alpha_ref_state_tokens) {
+ nir_variable *var = nir_variable_create(shader,
+ nir_var_uniform,
+ glsl_float_type(),
+ "gl_AlphaRefMESA");
+ var->num_state_slots = 1;
+ var->state_slots = ralloc_array(var, nir_state_slot, 1);
+ memcpy(var->state_slots[0].tokens,
+ alpha_ref_state_tokens,
+ sizeof(var->state_slots[0].tokens));
+ alpha_ref = nir_load_var(&b, var);
+ } else
+ alpha_ref = nir_load_alpha_ref_float(&b);
nir_ssa_def *condition =
nir_compare_func(&b, func, alpha, alpha_ref);