mirror of
https://gitee.com/openharmony/third_party_mesa3d
synced 2024-11-27 17:40:43 +00:00
i965/cnl: Avoid fast-clearing sRGB render buffers
Gen10 doesn't automatically decode the clear color of sRGB buffers. To get correct rendering, avoid fast-clearing such buffers for now. The driver now passes the following piglit tests: * spec@arb_framebuffer_srgb@msaa-fast-clear * spec@ext_texture_srgb@multisample-fast-clear gl_ext_texture_srgb Suggested-by: Kenneth Graunke <kenneth@whitecape.org> Suggested-by: Jason Ekstrand <jason@jlekstrand.net> Signed-off-by: Nanley Chery <nanley.g.chery@intel.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
parent
6a9611763b
commit
0a257b3fe4
@ -298,13 +298,23 @@ brw_is_color_fast_clear_compatible(struct brw_context *brw,
|
||||
* resolved in intel_update_state. In that case it's pointless to do a
|
||||
* fast clear because it's very likely to be immediately resolved.
|
||||
*/
|
||||
const bool srgb_rb = _mesa_get_srgb_format_linear(mt->format) != mt->format;
|
||||
if (devinfo->gen >= 9 &&
|
||||
mt->surf.samples == 1 &&
|
||||
ctx->Color.sRGBEnabled &&
|
||||
_mesa_get_srgb_format_linear(mt->format) != mt->format)
|
||||
ctx->Color.sRGBEnabled && srgb_rb)
|
||||
return false;
|
||||
|
||||
/* Gen10 doesn't automatically decode the clear color of sRGB buffers. Since
|
||||
* we currently don't perform this decode in software, avoid a fast-clear
|
||||
* altogether. TODO: Do this in software.
|
||||
*/
|
||||
const mesa_format format = _mesa_get_render_format(ctx, mt->format);
|
||||
if (devinfo->gen >= 10 && srgb_rb) {
|
||||
perf_debug("sRGB fast clear not enabled for (%s)",
|
||||
_mesa_get_format_name(format));
|
||||
return false;
|
||||
}
|
||||
|
||||
if (_mesa_is_format_integer_color(format)) {
|
||||
if (devinfo->gen >= 8) {
|
||||
perf_debug("Integer fast clear not enabled for (%s)",
|
||||
|
Loading…
Reference in New Issue
Block a user