iris: Support I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5420>
This commit is contained in:
parent
2305ab6938
commit
3915b56e39
|
@ -59,6 +59,7 @@ enum modifier_priority {
|
||||||
MODIFIER_PRIORITY_X,
|
MODIFIER_PRIORITY_X,
|
||||||
MODIFIER_PRIORITY_Y,
|
MODIFIER_PRIORITY_Y,
|
||||||
MODIFIER_PRIORITY_Y_CCS,
|
MODIFIER_PRIORITY_Y_CCS,
|
||||||
|
MODIFIER_PRIORITY_Y_GEN12_RC_CCS,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const uint64_t priority_to_modifier[] = {
|
static const uint64_t priority_to_modifier[] = {
|
||||||
|
@ -67,6 +68,7 @@ static const uint64_t priority_to_modifier[] = {
|
||||||
[MODIFIER_PRIORITY_X] = I915_FORMAT_MOD_X_TILED,
|
[MODIFIER_PRIORITY_X] = I915_FORMAT_MOD_X_TILED,
|
||||||
[MODIFIER_PRIORITY_Y] = I915_FORMAT_MOD_Y_TILED,
|
[MODIFIER_PRIORITY_Y] = I915_FORMAT_MOD_Y_TILED,
|
||||||
[MODIFIER_PRIORITY_Y_CCS] = I915_FORMAT_MOD_Y_TILED_CCS,
|
[MODIFIER_PRIORITY_Y_CCS] = I915_FORMAT_MOD_Y_TILED_CCS,
|
||||||
|
[MODIFIER_PRIORITY_Y_GEN12_RC_CCS] = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
|
||||||
};
|
};
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
|
@ -83,6 +85,10 @@ modifier_is_supported(const struct gen_device_info *devinfo,
|
||||||
if (devinfo->gen <= 8 || devinfo->gen >= 12)
|
if (devinfo->gen <= 8 || devinfo->gen >= 12)
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
|
case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS:
|
||||||
|
if (devinfo->gen != 12)
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
case DRM_FORMAT_MOD_INVALID:
|
case DRM_FORMAT_MOD_INVALID:
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
|
@ -90,6 +96,7 @@ modifier_is_supported(const struct gen_device_info *devinfo,
|
||||||
|
|
||||||
/* Check remaining requirements. */
|
/* Check remaining requirements. */
|
||||||
switch (modifier) {
|
switch (modifier) {
|
||||||
|
case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS:
|
||||||
case I915_FORMAT_MOD_Y_TILED_CCS: {
|
case I915_FORMAT_MOD_Y_TILED_CCS: {
|
||||||
if (unlikely(INTEL_DEBUG & DEBUG_NO_RBC))
|
if (unlikely(INTEL_DEBUG & DEBUG_NO_RBC))
|
||||||
return false;
|
return false;
|
||||||
|
@ -121,6 +128,9 @@ select_best_modifier(struct gen_device_info *devinfo, enum pipe_format pfmt,
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
switch (modifiers[i]) {
|
switch (modifiers[i]) {
|
||||||
|
case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS:
|
||||||
|
prio = MAX2(prio, MODIFIER_PRIORITY_Y_GEN12_RC_CCS);
|
||||||
|
break;
|
||||||
case I915_FORMAT_MOD_Y_TILED_CCS:
|
case I915_FORMAT_MOD_Y_TILED_CCS:
|
||||||
prio = MAX2(prio, MODIFIER_PRIORITY_Y_CCS);
|
prio = MAX2(prio, MODIFIER_PRIORITY_Y_CCS);
|
||||||
break;
|
break;
|
||||||
|
@ -180,6 +190,7 @@ iris_query_dmabuf_modifiers(struct pipe_screen *pscreen,
|
||||||
I915_FORMAT_MOD_X_TILED,
|
I915_FORMAT_MOD_X_TILED,
|
||||||
I915_FORMAT_MOD_Y_TILED,
|
I915_FORMAT_MOD_Y_TILED,
|
||||||
I915_FORMAT_MOD_Y_TILED_CCS,
|
I915_FORMAT_MOD_Y_TILED_CCS,
|
||||||
|
I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
|
||||||
};
|
};
|
||||||
|
|
||||||
int supported_mods = 0;
|
int supported_mods = 0;
|
||||||
|
|
Loading…
Reference in New Issue