isl: Define isl_drm_modifier_get_score() [v3]
Return the modifier's score, which indicates the driver's preference for the modifier relative to others. A higher score is better. Zero means unsupported. Intended to assist selection of a modifier from an externally provided list, such as VkImageDrmFormatModifierListCreateInfoEXT. v2: - Rename anv_drm_format_mod_score to isl_drm_modifier_get_score. - Squash all incremental changes to anv_drm_format_mod_score. v3: - Drop redundant 'unlikely'. (for nchery) Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> (v2) Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> (v3)
This commit is contained in:
@@ -1892,6 +1892,18 @@ isl_drm_modifier_get_default_aux_state(uint64_t modifier)
|
|||||||
ISL_AUX_STATE_COMPRESSED_NO_CLEAR;
|
ISL_AUX_STATE_COMPRESSED_NO_CLEAR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the modifier's score, which indicates the driver's preference for the
|
||||||
|
* modifier relative to others. A higher score is better. Zero means
|
||||||
|
* unsupported.
|
||||||
|
*
|
||||||
|
* Intended to assist selection of a modifier from an externally provided list,
|
||||||
|
* such as VkImageDrmFormatModifierListCreateInfoEXT.
|
||||||
|
*/
|
||||||
|
uint32_t
|
||||||
|
isl_drm_modifier_get_score(const struct gen_device_info *devinfo,
|
||||||
|
uint64_t modifier);
|
||||||
|
|
||||||
struct isl_extent2d ATTRIBUTE_CONST
|
struct isl_extent2d ATTRIBUTE_CONST
|
||||||
isl_get_interleaved_msaa_px_size_sa(uint32_t samples);
|
isl_get_interleaved_msaa_px_size_sa(uint32_t samples);
|
||||||
|
|
||||||
|
@@ -29,6 +29,7 @@
|
|||||||
|
|
||||||
#include "isl.h"
|
#include "isl.h"
|
||||||
#include "dev/gen_device_info.h"
|
#include "dev/gen_device_info.h"
|
||||||
|
#include "dev/gen_debug.h"
|
||||||
|
|
||||||
uint32_t
|
uint32_t
|
||||||
isl_tiling_to_i915_tiling(enum isl_tiling tiling)
|
isl_tiling_to_i915_tiling(enum isl_tiling tiling)
|
||||||
@@ -121,3 +122,29 @@ isl_drm_modifier_get_info(uint64_t modifier)
|
|||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t
|
||||||
|
isl_drm_modifier_get_score(const struct gen_device_info *devinfo,
|
||||||
|
uint64_t modifier)
|
||||||
|
{
|
||||||
|
/* FINISHME: Add gen12 modifiers */
|
||||||
|
switch (modifier) {
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
case DRM_FORMAT_MOD_LINEAR:
|
||||||
|
return 1;
|
||||||
|
case I915_FORMAT_MOD_X_TILED:
|
||||||
|
return 2;
|
||||||
|
case I915_FORMAT_MOD_Y_TILED:
|
||||||
|
return 3;
|
||||||
|
case I915_FORMAT_MOD_Y_TILED_CCS:
|
||||||
|
/* Gen12's CCS layout differs from Gen9-11. */
|
||||||
|
if (devinfo->gen >= 12)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (INTEL_DEBUG & DEBUG_NO_RBC)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user