X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fintel%2Fisl%2Fisl_drm.c;h=e7abe74778516fcd01f7a0a7bc366f4c93b8acbe;hb=9628631a380ff24630bf97b982df07b4e7e2a79f;hp=b7a4997d2d00ce1bee87928c60082a8ba2a70848;hpb=5b3363e3f17db887fedc58b8e15fa8b78a14e088;p=mesa.git diff --git a/src/intel/isl/isl_drm.c b/src/intel/isl/isl_drm.c index b7a4997d2d0..e7abe747785 100644 --- a/src/intel/isl/isl_drm.c +++ b/src/intel/isl/isl_drm.c @@ -24,11 +24,11 @@ #include #include -#include -#include +#include "drm-uapi/drm_fourcc.h" +#include "drm-uapi/i915_drm.h" #include "isl.h" -#include "common/gen_device_info.h" +#include "dev/gen_device_info.h" uint32_t isl_tiling_to_i915_tiling(enum isl_tiling tiling) @@ -54,7 +54,24 @@ isl_tiling_to_i915_tiling(enum isl_tiling tiling) unreachable("Invalid ISL tiling"); } -struct isl_drm_modifier_info modifier_info[] = { +enum isl_tiling +isl_tiling_from_i915_tiling(uint32_t tiling) +{ + switch (tiling) { + case I915_TILING_NONE: + return ISL_TILING_LINEAR; + + case I915_TILING_X: + return ISL_TILING_X; + + case I915_TILING_Y: + return ISL_TILING_Y0; + } + + unreachable("Invalid i915 tiling"); +} + +static const struct isl_drm_modifier_info modifier_info[] = { { .modifier = DRM_FORMAT_MOD_NONE, .name = "DRM_FORMAT_MOD_NONE", @@ -70,6 +87,13 @@ struct isl_drm_modifier_info modifier_info[] = { .name = "I915_FORMAT_MOD_Y_TILED", .tiling = ISL_TILING_Y0, }, + { + .modifier = I915_FORMAT_MOD_Y_TILED_CCS, + .name = "I915_FORMAT_MOD_Y_TILED_CCS", + .tiling = ISL_TILING_Y0, + .aux_usage = ISL_AUX_USAGE_CCS_E, + .supports_clear_color = false, + }, }; const struct isl_drm_modifier_info *