anv/cmd_buffer: Conditionally choose the sampled image surface state
Signed-off-by: Nanley Chery <nanley.g.chery@intel.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
@@ -1178,24 +1178,25 @@ emit_binding_table(struct anv_cmd_buffer *cmd_buffer,
|
|||||||
|
|
||||||
case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER:
|
case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER:
|
||||||
case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:
|
case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:
|
||||||
surface_state = desc->image_view->sampler_surface_state;
|
surface_state = desc->aux_usage == ISL_AUX_USAGE_NONE ?
|
||||||
|
desc->image_view->no_aux_sampler_surface_state :
|
||||||
|
desc->image_view->sampler_surface_state;
|
||||||
assert(surface_state.alloc_size);
|
assert(surface_state.alloc_size);
|
||||||
add_image_view_relocs(cmd_buffer, desc->image_view,
|
add_image_view_relocs(cmd_buffer, desc->image_view,
|
||||||
desc->image_view->image->aux_usage,
|
desc->aux_usage, surface_state);
|
||||||
surface_state);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:
|
case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:
|
||||||
assert(stage == MESA_SHADER_FRAGMENT);
|
assert(stage == MESA_SHADER_FRAGMENT);
|
||||||
if (desc->image_view->aspect_mask != VK_IMAGE_ASPECT_COLOR_BIT) {
|
if (desc->image_view->aspect_mask != VK_IMAGE_ASPECT_COLOR_BIT) {
|
||||||
/* For depth and stencil input attachments, we treat it like any
|
/* For depth and stencil input attachments, we treat it like any
|
||||||
* old texture that a user may have bound.
|
* old texture that a user may have bound.
|
||||||
*/
|
*/
|
||||||
surface_state = desc->image_view->sampler_surface_state;
|
surface_state = desc->aux_usage == ISL_AUX_USAGE_NONE ?
|
||||||
|
desc->image_view->no_aux_sampler_surface_state :
|
||||||
|
desc->image_view->sampler_surface_state;
|
||||||
assert(surface_state.alloc_size);
|
assert(surface_state.alloc_size);
|
||||||
add_image_view_relocs(cmd_buffer, desc->image_view,
|
add_image_view_relocs(cmd_buffer, desc->image_view,
|
||||||
desc->image_view->image->aux_usage,
|
desc->aux_usage, surface_state);
|
||||||
surface_state);
|
|
||||||
} else {
|
} else {
|
||||||
/* For color input attachments, we create the surface state at
|
/* For color input attachments, we create the surface state at
|
||||||
* vkBeginRenderPass time so that we can include aux and clear
|
* vkBeginRenderPass time so that we can include aux and clear
|
||||||
|
Reference in New Issue
Block a user