mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-27 11:00:37 +02:00
vallium: handle 3D image views properly.
Do pretty much what the gallium state tracker does here, and
fill out first/last layer for 3D image views correctly.
Fixes:
dEQP-VK.binding_model.shader_access.primary_cmd_buf.storage_image*3d*
Fixes: b38879f8c5 ("vallium: initial import of the vulkan frontend")
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6381>
This commit is contained in:
parent
99330e50c9
commit
857008850f
1 changed files with 8 additions and 2 deletions
|
|
@ -837,8 +837,14 @@ static void fill_image_view_stage(struct rendering_state *state,
|
|||
state->iv[p_stage][idx].format = util_format_stencil_only(vk_format_to_pipe(iv->format));
|
||||
else
|
||||
state->iv[p_stage][idx].format = vk_format_to_pipe(iv->format);
|
||||
state->iv[p_stage][idx].u.tex.first_layer = iv->subresourceRange.baseArrayLayer;
|
||||
state->iv[p_stage][idx].u.tex.last_layer = iv->subresourceRange.baseArrayLayer + val_get_layerCount(iv->image, &iv->subresourceRange) - 1;
|
||||
|
||||
if (iv->view_type == VK_IMAGE_VIEW_TYPE_3D) {
|
||||
state->iv[p_stage][idx].u.tex.first_layer = 0;
|
||||
state->iv[p_stage][idx].u.tex.last_layer = u_minify(iv->image->bo->depth0, iv->subresourceRange.baseMipLevel) - 1;
|
||||
} else {
|
||||
state->iv[p_stage][idx].u.tex.first_layer = iv->subresourceRange.baseArrayLayer;
|
||||
state->iv[p_stage][idx].u.tex.last_layer = iv->subresourceRange.baseArrayLayer + val_get_layerCount(iv->image, &iv->subresourceRange) - 1;
|
||||
}
|
||||
state->iv[p_stage][idx].u.tex.level = iv->subresourceRange.baseMipLevel;
|
||||
if (state->num_shader_images[p_stage] <= idx)
|
||||
state->num_shader_images[p_stage] = idx + 1;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue