mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 04:38:03 +02:00
radeonsi: Lazily re-set sampler views after disabling DCC
Clear DCC flags if necessary when binding a new sampler view. v2: Do not reset DCC flags of bound sampler views. v3: Check that we have a real texture (Nicolai) Signed-off-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
af3454cad5
commit
417b6721a0
2 changed files with 8 additions and 5 deletions
|
|
@ -311,8 +311,6 @@ static void r600_texture_disable_dcc(struct r600_common_screen *rscreen,
|
|||
|
||||
/* Notify all contexts about the change. */
|
||||
r600_dirty_all_framebuffer_states(rscreen);
|
||||
|
||||
/* TODO: re-set all sampler views and images, but how? */
|
||||
}
|
||||
|
||||
static boolean r600_texture_get_handle(struct pipe_screen* screen,
|
||||
|
|
|
|||
|
|
@ -185,12 +185,17 @@ static void si_set_sampler_view(struct si_context *sctx,
|
|||
struct si_sampler_views *views,
|
||||
unsigned slot, struct pipe_sampler_view *view)
|
||||
{
|
||||
if (views->views[slot] == view)
|
||||
struct si_sampler_view *rview = (struct si_sampler_view*)view;
|
||||
|
||||
if (view && view->texture && view->texture->target != PIPE_BUFFER &&
|
||||
G_008F28_COMPRESSION_EN(rview->state[6]) &&
|
||||
((struct r600_texture*)view->texture)->dcc_offset == 0) {
|
||||
rview->state[6] &= C_008F28_COMPRESSION_EN &
|
||||
C_008F28_ALPHA_IS_ON_MSB;
|
||||
} else if (views->views[slot] == view)
|
||||
return;
|
||||
|
||||
if (view) {
|
||||
struct si_sampler_view *rview =
|
||||
(struct si_sampler_view*)view;
|
||||
struct r600_texture *rtex = (struct r600_texture *)view->texture;
|
||||
|
||||
si_sampler_view_add_buffer(sctx, view->texture);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue