mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 07:08:04 +02:00
r300: disable zmask clears for large surfaces
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40040>
This commit is contained in:
parent
648dfe88f4
commit
3fc2627897
1 changed files with 14 additions and 1 deletions
|
|
@ -134,8 +134,21 @@ static bool r300_fast_zclear_allowed(struct r300_context *r300,
|
|||
{
|
||||
struct pipe_framebuffer_state *fb =
|
||||
(struct pipe_framebuffer_state*)r300->fb_state.state;
|
||||
struct r300_resource *tex = r300_resource(fb->zsbuf.texture);
|
||||
unsigned zmask_dwords = tex->tex.zmask_dwords[fb->zsbuf.level];
|
||||
|
||||
return r300_resource(fb->zsbuf.texture)->tex.zmask_dwords[fb->zsbuf.level] != 0;
|
||||
if (!zmask_dwords)
|
||||
return false;
|
||||
|
||||
/* On tested RV530, 3D_CLEAR_ZMASK does not work above 0x1400. Avoid fast Z
|
||||
* clear in that range and fall back to normal depth clear.
|
||||
*
|
||||
* FIXME: Validate whether pre-R5xx families need a similar guard and/or
|
||||
* a different threshold. */
|
||||
if (r300->screen->caps.is_r500 && zmask_dwords > 0x1400)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool r300_hiz_clear_allowed(struct r300_context *r300)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue