summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2018-05-16 13:46:40 +1000
committerDave Airlie <airlied@redhat.com>2018-06-05 14:44:30 +1000
commit7486a10e3627e1b8aa2de413d5758e36308ea616 (patch)
tree4d6c08db49edaa7541057cf066ad928f13c93074
parentba227c948946f2786f20a0bec859dea09ea0e66f (diff)
handle multidim ubos
-rw-r--r--src/vrend_shader.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/vrend_shader.c b/src/vrend_shader.c
index a88a7c0..4f99b3e 100644
--- a/src/vrend_shader.c
+++ b/src/vrend_shader.c
@@ -912,7 +912,7 @@ iter_declaration(struct tgsi_iterate_context *iter,
ctx->sviews_used = true;
break;
case TGSI_FILE_CONSTANT:
- if (decl->Declaration.Dimension) {
+ if (decl->Declaration.Dimension && decl->Dim.Index2D != 0) {
if (ctx->num_ubo >= ARRAY_SIZE(ctx->ubo_idx)) {
fprintf(stderr, "Number of uniforms exceeded, max is %lu\n", ARRAY_SIZE(ctx->ubo_idx));
return FALSE;
@@ -2252,7 +2252,7 @@ get_source_info(struct dump_ctx *ctx,
} else if (src->Register.File == TGSI_FILE_CONSTANT) {
const char *cname = tgsi_proc_to_prefix(ctx->prog_type);
int dim = 0;
- if (src->Register.Dimension) {
+ if (src->Register.Dimension && src->Dimension.Index != 0) {
dim = src->Dimension.Index;
if (src->Dimension.Indirect) {
assert(src->DimIndirect.File == TGSI_FILE_ADDRESS);