mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 22:38:05 +02:00
intel/blorp: Allow blorp_copy on sRGB formats
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
This commit is contained in:
parent
6c2842f95b
commit
b26b2490e5
1 changed files with 16 additions and 2 deletions
|
|
@ -2459,16 +2459,30 @@ blorp_copy(struct blorp_batch *batch,
|
|||
}
|
||||
|
||||
if (params.src.aux_usage == ISL_AUX_USAGE_CCS_E) {
|
||||
/* It's safe to do a blorp_copy between things which are sRGB with CCS_E
|
||||
* enabled even though CCS_E doesn't technically do sRGB on SKL because
|
||||
* we stomp everything to UINT anyway. The one thing we have to be
|
||||
* careful of is clear colors. Because fast clear colors for sRGB on
|
||||
* gen9 are encoded as the float values between format conversion and
|
||||
* sRGB curve application, a given clear color float will convert to the
|
||||
* same bits regardless of whether the format is UNORM or sRGB.
|
||||
* Therefore, we can handle sRGB without any special cases.
|
||||
*/
|
||||
UNUSED enum isl_format linear_src_format =
|
||||
isl_format_srgb_to_linear(src_surf->surf->format);
|
||||
assert(isl_formats_are_ccs_e_compatible(batch->blorp->isl_dev->info,
|
||||
src_surf->surf->format,
|
||||
linear_src_format,
|
||||
params.src.view.format));
|
||||
params.src.clear_color =
|
||||
bitcast_color_value_to_uint(params.src.clear_color, src_fmtl);
|
||||
}
|
||||
|
||||
if (params.dst.aux_usage == ISL_AUX_USAGE_CCS_E) {
|
||||
/* See above where we handle linear_src_format */
|
||||
UNUSED enum isl_format linear_dst_format =
|
||||
isl_format_srgb_to_linear(dst_surf->surf->format);
|
||||
assert(isl_formats_are_ccs_e_compatible(batch->blorp->isl_dev->info,
|
||||
dst_surf->surf->format,
|
||||
linear_dst_format,
|
||||
params.dst.view.format));
|
||||
params.dst.clear_color =
|
||||
bitcast_color_value_to_uint(params.dst.clear_color, dst_fmtl);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue