mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 09:08:10 +02:00
i965/blorp: Use the renderbuffer format for clears
This fixes the Piglit ARB_texture_views rendering-formats test. Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
This commit is contained in:
parent
67027ddf3f
commit
36aed7c74c
1 changed files with 9 additions and 1 deletions
|
|
@ -715,9 +715,9 @@ do_single_blorp_clear(struct brw_context *brw, struct gl_framebuffer *fb,
|
|||
{
|
||||
struct gl_context *ctx = &brw->ctx;
|
||||
struct intel_renderbuffer *irb = intel_renderbuffer(rb);
|
||||
mesa_format format = irb->mt->format;
|
||||
uint32_t x0, x1, y0, y1;
|
||||
|
||||
mesa_format format = irb->Base.Base.Format;
|
||||
if (!encode_srgb && _mesa_get_format_color_encoding(format) == GL_SRGB)
|
||||
format = _mesa_get_srgb_format_linear(format);
|
||||
|
||||
|
|
@ -741,6 +741,14 @@ do_single_blorp_clear(struct brw_context *brw, struct gl_framebuffer *fb,
|
|||
if (set_write_disables(irb, ctx->Color.ColorMask[buf], color_write_disable))
|
||||
can_fast_clear = false;
|
||||
|
||||
/* We store clear colors as floats or uints as needed. If there are
|
||||
* texture views in play, the formats will not properly be respected
|
||||
* during resolves because the resolve operations only know about the
|
||||
* miptree and not the renderbuffer.
|
||||
*/
|
||||
if (irb->Base.Base.Format != irb->mt->format)
|
||||
can_fast_clear = false;
|
||||
|
||||
if (!irb->mt->supports_fast_clear ||
|
||||
!brw_is_color_fast_clear_compatible(brw, irb->mt, &ctx->Color.ClearColor))
|
||||
can_fast_clear = false;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue