summaryrefslogtreecommitdiffstats
path: root/src/intel/vulkan/anv_nir_lower_push_constants.c
diff options
context:
space:
mode:
authorJason Ekstrand <jason.ekstrand@intel.com>2016-04-18 17:17:31 -0700
committerJason Ekstrand <jason.ekstrand@intel.com>2016-04-20 09:14:47 -0700
commit35b758c378900b2c611050e782ca8100fbcc671d (patch)
tree065bd58973e6cdca45aa5150dd149101fd170293 /src/intel/vulkan/anv_nir_lower_push_constants.c
parent3bbe8a09eaf95548313db13b4e56dbdd35d2755e (diff)
downloadexternal_mesa3d-35b758c378900b2c611050e782ca8100fbcc671d.zip
external_mesa3d-35b758c378900b2c611050e782ca8100fbcc671d.tar.gz
external_mesa3d-35b758c378900b2c611050e782ca8100fbcc671d.tar.bz2
anv/lower_push_constants: Stop treating scalar specially
All of the code that did something special based on vec4 vs. scalar is bogus. In the backend, everything is now in units of bytes and the vec4 backend can handle full std140 packing so we don't need to do anything special anymore. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94998
Diffstat (limited to 'src/intel/vulkan/anv_nir_lower_push_constants.c')
-rw-r--r--src/intel/vulkan/anv_nir_lower_push_constants.c25
1 files changed, 2 insertions, 23 deletions
diff --git a/src/intel/vulkan/anv_nir_lower_push_constants.c b/src/intel/vulkan/anv_nir_lower_push_constants.c
index 53cd3d7..44a1a3f 100644
--- a/src/intel/vulkan/anv_nir_lower_push_constants.c
+++ b/src/intel/vulkan/anv_nir_lower_push_constants.c
@@ -23,16 +23,9 @@
#include "anv_nir.h"
-struct lower_push_constants_state {
- nir_shader *shader;
- bool is_scalar;
-};
-
static bool
lower_push_constants_block(nir_block *block, void *void_state)
{
- struct lower_push_constants_state *state = void_state;
-
nir_foreach_instr(block, instr) {
if (instr->type != nir_instr_type_intrinsic)
continue;
@@ -43,9 +36,6 @@ lower_push_constants_block(nir_block *block, void *void_state)
if (intrin->intrinsic != nir_intrinsic_load_push_constant)
continue;
- /* This wont work for vec4 stages. */
- assert(state->is_scalar);
-
assert(intrin->const_index[0] % 4 == 0);
assert(intrin->const_index[1] == 128);
@@ -57,21 +47,10 @@ lower_push_constants_block(nir_block *block, void *void_state)
}
void
-anv_nir_lower_push_constants(nir_shader *shader, bool is_scalar)
+anv_nir_lower_push_constants(nir_shader *shader)
{
- struct lower_push_constants_state state = {
- .shader = shader,
- .is_scalar = is_scalar,
- };
-
nir_foreach_function(shader, function) {
if (function->impl)
- nir_foreach_block(function->impl, lower_push_constants_block, &state);
+ nir_foreach_block(function->impl, lower_push_constants_block, NULL);
}
-
- assert(shader->num_uniforms % 4 == 0);
- if (is_scalar)
- shader->num_uniforms /= 4;
- else
- shader->num_uniforms = DIV_ROUND_UP(shader->num_uniforms, 16);
}