mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 11:28:05 +02:00
i965/screen: Allow modifiers on sRGB formats
This effectively revertsa266934935which was a misguided attempt at protecting intel_query_dma_buf_modifiers from invalid formats. Unfortunately, in some internal EGL cases, we can get an SRGB format validly in this function. Rejecting such formats caused us to not allow CCS in some cases where we should have been allowing it. This regressed the performance of some SynMark tests as well as GfxBench ALU2, Tessellation and Manhattan 3.0 tests There's some question of whether or not we really should be using SRGB "fourcc" formats that aren't actually in drm_foucc.h but there's not much harm in allowing them through here. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107223 Fixes:a266934935"i965/screen: Return false for unsupported..." Tested-By: Eero Tamminen <eero.t.tamminen@intel.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
This commit is contained in:
parent
8c1b9882b2
commit
d9cf4308ce
1 changed files with 11 additions and 3 deletions
|
|
@ -1274,9 +1274,9 @@ static bool
|
|||
intel_image_format_is_supported(const struct gen_device_info *devinfo,
|
||||
const struct intel_image_format *fmt)
|
||||
{
|
||||
if (fmt->fourcc == __DRI_IMAGE_FOURCC_SARGB8888 ||
|
||||
fmt->fourcc == __DRI_IMAGE_FOURCC_SABGR8888)
|
||||
return false;
|
||||
/* Currently, all formats with an intel_image_format are available on all
|
||||
* platforms so there's really nothing to check there.
|
||||
*/
|
||||
|
||||
#ifndef NDEBUG
|
||||
if (fmt->nplanes == 1) {
|
||||
|
|
@ -1302,6 +1302,14 @@ intel_query_dma_buf_formats(__DRIscreen *_screen, int max,
|
|||
int num_formats = 0, i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(intel_image_formats); i++) {
|
||||
/* These two formats are valid DRI formats but do not exist in
|
||||
* drm_fourcc.h in the Linux kernel. We don't want to accidentally
|
||||
* advertise them through the EGL layer.
|
||||
*/
|
||||
if (intel_image_formats[i].fourcc == __DRI_IMAGE_FOURCC_SARGB8888 ||
|
||||
intel_image_formats[i].fourcc == __DRI_IMAGE_FOURCC_SABGR8888)
|
||||
continue;
|
||||
|
||||
if (!intel_image_format_is_supported(&screen->devinfo,
|
||||
&intel_image_formats[i]))
|
||||
continue;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue