mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 20:38:06 +02:00
iris: Prepare stencil resource before clear depth stencil
Let aux surface state tracker track the stencil buffer's aux state while clearing depth stencil buffer. v2: Fix condition check (Nanley Chery) Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com> Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
This commit is contained in:
parent
b8223991b5
commit
81de49a9f2
1 changed files with 10 additions and 2 deletions
|
|
@ -590,7 +590,10 @@ clear_depth_stencil(struct iris_context *ice,
|
|||
struct blorp_batch blorp_batch;
|
||||
blorp_batch_init(&ice->blorp, &blorp_batch, batch, blorp_flags);
|
||||
|
||||
if (stencil_res) {
|
||||
uint8_t stencil_mask = clear_stencil && stencil_res ? 0xff : 0;
|
||||
if (stencil_mask) {
|
||||
iris_resource_prepare_access(ice, batch, stencil_res, level, 1, box->z,
|
||||
box->depth, stencil_res->aux.usage, false);
|
||||
iris_blorp_surf_for_resource(&ice->vtbl, &stencil_surf,
|
||||
&stencil_res->base, stencil_res->aux.usage,
|
||||
level, true);
|
||||
|
|
@ -602,7 +605,7 @@ clear_depth_stencil(struct iris_context *ice,
|
|||
box->x + box->width,
|
||||
box->y + box->height,
|
||||
clear_depth && z_res, depth,
|
||||
clear_stencil && stencil_res ? 0xff : 0, stencil);
|
||||
stencil_mask, stencil);
|
||||
|
||||
blorp_batch_finish(&blorp_batch);
|
||||
iris_flush_and_dirty_for_history(ice, batch, res, 0,
|
||||
|
|
@ -612,6 +615,11 @@ clear_depth_stencil(struct iris_context *ice,
|
|||
iris_resource_finish_depth(ice, z_res, level,
|
||||
box->z, box->depth, true);
|
||||
}
|
||||
|
||||
if (stencil_mask) {
|
||||
iris_resource_finish_write(ice, stencil_res, level, box->z, box->depth,
|
||||
stencil_res->aux.usage);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue