GPU/HW: Don't use sprites-as-fills for small/offscreen points

This commit is contained in:
Stenzek 2025-01-31 19:44:05 +10:00
parent d65c4efdd8
commit 635ae5de31
No known key found for this signature in database
1 changed files with 3 additions and 1 deletions

View File

@ -2664,7 +2664,9 @@ void GPU_HW::DrawLine(const GSVector4 bounds, u32 col0, u32 col1, float depth)
void GPU_HW::DrawSprite(const GPUBackendDrawRectangleCommand* cmd)
{
// Treat non-textured sprite draws as fills, so we don't break the TC on framebuffer clears.
if (m_use_texture_cache && !cmd->transparency_enable && !cmd->shading_enable && !cmd->texture_enable)
if (m_use_texture_cache && !cmd->transparency_enable && !cmd->shading_enable && !cmd->texture_enable && cmd->x >= 0 &&
cmd->y >= 0 && cmd->width >= TEXTURE_PAGE_WIDTH && cmd->height >= TEXTURE_PAGE_HEIGHT &&
(cmd->x + cmd->width) <= VRAM_WIDTH && (cmd->y + cmd->height) <= VRAM_HEIGHT)
{
FillVRAM(cmd->x, cmd->y, cmd->width, cmd->height, cmd->color, cmd->interlaced_rendering, cmd->active_line_lsb);
return;