diff options
author | Kenneth Graunke <[email protected]> | 2017-10-31 00:56:24 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2017-11-08 15:26:18 -0800 |
commit | a16dc04ad51c32e5c7d136e4dd6273d983385d3f (patch) | |
tree | d2036dada314c756e0189b1ce6b1597dd6115fc6 /include/vulkan | |
parent | 3e63cf893f096a7263eb1856d58417dd2d170d4b (diff) |
i965: properly initialize brw->cs.base.stage to MESA_SHADER_COMPUTE
This has a bit of a surprising effect:
For the render pipeline, the upload_sampler_state_table atom emits
3DSTATE_BINDING_TABLE_POINTERS_XS. It tries to avoid this for compute:
if (GEN_GEN >= 7 && stage_state->stage != MESA_SHADER_COMPUTE) {
/* Emit a 3DSTATE_SAMPLER_STATE_POINTERS_XS packet. */
genX(emit_sampler_state_pointers_xs)(brw, stage_state);
} ...
However, we were failing to initialize brw->cs.base.stage, so it was
left as 0 (MESA_SHADER_VERTEX), causing this condition to break. We
then emitted 3DSTATE_SAMPLER_STATE_POINTERS_VS in GPGPU mode, when
trying to upload CS samplers. Nothing good can come of this.
Found by inspection while debugging a GPU hang. Jordan believes this
helps the Deus Ex: Mankind Divided benchmark mode's stability when
running with shader cache.
Cc: [email protected]
Reviewed-by: Jason Ekstrand <[email protected]>
Reviewed-by: Jordan Justen <[email protected]>
Diffstat (limited to 'include/vulkan')
0 files changed, 0 insertions, 0 deletions