v3dv: assert job->cmd_buffer is valid
In v3dv_write_uniforms_wg_offsets() function, the job's cmd_buffer is a
valid command buffer, so there is no reason to check if its NULL or not.
This fixes CID#1487441 ("Dereference after null check") error.
v1:
- `job->cmd_buffer` is the same as `cmd_buffer` (Alejandro)
v2:
- Use `cmd_buffer` instead of `job->cmd_buffer` (Iago)
Fixes: 31a786c80a ("v3dv: handle QUNIFORM_FB_LAYERS")
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11999>
This commit is contained in:
committed by
Marge Bot
parent
8a99873712
commit
4eb0475b5a
@@ -401,6 +401,7 @@ v3dv_write_uniforms_wg_offsets(struct v3dv_cmd_buffer *cmd_buffer,
|
|||||||
|
|
||||||
struct v3dv_job *job = cmd_buffer->state.job;
|
struct v3dv_job *job = cmd_buffer->state.job;
|
||||||
assert(job);
|
assert(job);
|
||||||
|
assert(job->cmd_buffer == cmd_buffer);
|
||||||
|
|
||||||
struct texture_bo_list tex_bos = { 0 };
|
struct texture_bo_list tex_bos = { 0 };
|
||||||
struct state_bo_list state_bos = { 0 };
|
struct state_bo_list state_bos = { 0 };
|
||||||
@@ -510,11 +511,10 @@ v3dv_write_uniforms_wg_offsets(struct v3dv_cmd_buffer *cmd_buffer,
|
|||||||
uint32_t num_layers;
|
uint32_t num_layers;
|
||||||
if (job->frame_tiling.layers != 0) {
|
if (job->frame_tiling.layers != 0) {
|
||||||
num_layers = job->frame_tiling.layers;
|
num_layers = job->frame_tiling.layers;
|
||||||
} else if (job->cmd_buffer &&
|
} else if (cmd_buffer->state.framebuffer) {
|
||||||
job->cmd_buffer->state.framebuffer) {
|
num_layers = cmd_buffer->state.framebuffer->layers;
|
||||||
num_layers = job->cmd_buffer->state.framebuffer->layers;
|
|
||||||
} else {
|
} else {
|
||||||
assert(job->cmd_buffer->level == VK_COMMAND_BUFFER_LEVEL_SECONDARY);
|
assert(cmd_buffer->level == VK_COMMAND_BUFFER_LEVEL_SECONDARY);
|
||||||
num_layers = 2048;
|
num_layers = 2048;
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
fprintf(stderr, "Skipping gl_LayerID shader sanity check for "
|
fprintf(stderr, "Skipping gl_LayerID shader sanity check for "
|
||||||
|
|||||||
Reference in New Issue
Block a user