diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c b/src/gallium/auxiliary/tgsi/tgsi_exec.c index f17d61c2c7c..8eaae4e46e3 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_exec.c +++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c @@ -3903,7 +3903,7 @@ exec_load_membuf(struct tgsi_exec_machine *mach, uint32_t unit = fetch_sampler_unit(mach, inst, 0); uint32_t size; - char *ptr; + const char *ptr; switch (inst->Src[0].Register.File) { case TGSI_FILE_MEMORY: ptr = mach->LocalMem; @@ -3914,6 +3914,16 @@ exec_load_membuf(struct tgsi_exec_machine *mach, ptr = mach->Buffer->lookup(mach->Buffer, unit, &size); break; + case TGSI_FILE_CONSTANT: + if (unit < ARRAY_SIZE(mach->Consts)) { + ptr = mach->Consts[unit]; + size = mach->ConstsSize[unit]; + } else { + ptr = NULL; + size = 0; + } + break; + default: unreachable("unsupported TGSI_OPCODE_LOAD file"); }