iris: Fix the constant data address calculation

In 536727c465, we switched iris to patching the constant data address
into the shader but, thanks to my lack of understanding how iris works,
I got the calculation wrong.  I didn't realize, we needed to call
iris_bo_offset_from_base_address to get the BO offset from the start of
instruction state base address.

Fixes: 536727c465 "iris: Patch constant data pointers into shaders"
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3596
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6992>
This commit is contained in:
Jason Ekstrand 2020-10-02 17:41:15 -05:00 committed by Marge Bot
parent 23ff2a0e63
commit 1b0fec444f

View file

@ -229,7 +229,8 @@ iris_upload_shader(struct iris_context *ice,
&shader->map);
memcpy(shader->map, assembly, prog_data->program_size);
uint64_t shader_data_addr = IRIS_MEMZONE_SHADER_START +
struct iris_resource *res = (void *) shader->assembly.res;
uint64_t shader_data_addr = res->bo->gtt_offset +
shader->assembly.offset +
prog_data->const_data_offset;