mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 11:08:03 +02:00
turnip/pipeline: Don't assume tu_shader is a valid object
Fixes a crash in tu6_emit_fs_config() when 'shader' argument is assumed to be non-null, which is possible. Fixes dEQP test: dEQP-VK.api.descriptor_set.descriptor_set_layout_lifetime.graphics Reviewed-by: Jonathan Marek <jonathan@marek.ca> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3756> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3756>
This commit is contained in:
parent
12a22da683
commit
99f2b6144b
1 changed files with 10 additions and 4 deletions
|
|
@ -468,9 +468,15 @@ tu6_emit_fs_config(struct tu_cs *cs, struct tu_shader *shader,
|
|||
if (fs->need_fine_derivatives)
|
||||
sp_fs_ctrl |= A6XX_SP_FS_CTRL_REG0_DIFF_FINE;
|
||||
|
||||
uint32_t sp_fs_config = A6XX_SP_FS_CONFIG_NTEX(shader->texture_map.num_desc) |
|
||||
A6XX_SP_FS_CONFIG_NSAMP(shader->sampler_map.num_desc) |
|
||||
A6XX_SP_FS_CONFIG_NIBO(tu_shader_nibo(shader));
|
||||
uint32_t sp_fs_config = 0;
|
||||
unsigned shader_nibo = 0;
|
||||
if (shader) {
|
||||
shader_nibo = tu_shader_nibo(shader);
|
||||
sp_fs_config = A6XX_SP_FS_CONFIG_NTEX(shader->texture_map.num_desc) |
|
||||
A6XX_SP_FS_CONFIG_NSAMP(shader->sampler_map.num_desc) |
|
||||
A6XX_SP_FS_CONFIG_NIBO(shader_nibo);
|
||||
}
|
||||
|
||||
if (fs->instrlen)
|
||||
sp_fs_config |= A6XX_SP_FS_CONFIG_ENABLED;
|
||||
|
||||
|
|
@ -492,7 +498,7 @@ tu6_emit_fs_config(struct tu_cs *cs, struct tu_shader *shader,
|
|||
A6XX_HLSQ_FS_CNTL_ENABLED);
|
||||
|
||||
tu_cs_emit_pkt4(cs, REG_A6XX_SP_IBO_COUNT, 1);
|
||||
tu_cs_emit(cs, tu_shader_nibo(shader));
|
||||
tu_cs_emit(cs, shader_nibo);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue