[igt-dev] [PATCH i-g-t 3/5] lib/intel_pat : Add uc_comp pat_index
Akshata Jahagirdar
akshata.jahagirdar at intel.com
Thu Nov 16 15:38:30 UTC 2023
Compression in XE2 is programmed through pat-index attribute.
Add a dedicated pat-index for compression for XE2 and later platforms.
The caller to this helper function ensures GFX version is correct,
else it will call the intel_uc_pat_index() function..
Signed-off-by: Akshata Jahagirdar <akshata.jahagirdar at intel.com>
---
lib/intel_pat.c | 12 +++++++++++-
lib/intel_pat.h | 2 ++
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/lib/intel_pat.c b/lib/intel_pat.c
index 2b892ee52..3c8043f59 100644
--- a/lib/intel_pat.c
+++ b/lib/intel_pat.c
@@ -11,7 +11,7 @@ struct intel_pat_cache {
uint8_t uc; /* UC + COH_NONE */
uint8_t wt; /* WT + COH_NONE */
uint8_t wb; /* WB + COH_AT_LEAST_1WAY */
-
+ uint8_t xe2_uc_comp; /* UC + COH_NONE + COMPRESSION*/
uint8_t max_index;
};
@@ -23,6 +23,7 @@ static void intel_get_pat_idx(int fd, struct intel_pat_cache *pat)
pat->uc = 3;
pat->wt = 15; /* Compressed + WB-transient */
pat->wb = 2;
+ pat->xe2_uc_comp = 12; /* Compressed + UC */
pat->max_index = 31;
} else if (IS_METEORLAKE(dev_id)) {
pat->uc = 2;
@@ -60,6 +61,15 @@ uint8_t intel_get_pat_idx_uc(int fd)
return pat.uc;
}
+uint8_t xe2_get_pat_idx_uc_comp(int fd)
+{
+ struct intel_pat_cache pat = {};
+ uint16_t dev_id = intel_get_drm_devid(fd);
+
+ intel_get_pat_idx(fd, &pat);
+ return pat.xe2_uc_comp;
+}
+
uint8_t intel_get_pat_idx_wt(int fd)
{
struct intel_pat_cache pat = {};
diff --git a/lib/intel_pat.h b/lib/intel_pat.h
index c24dbc275..de929e16a 100644
--- a/lib/intel_pat.h
+++ b/lib/intel_pat.h
@@ -16,4 +16,6 @@ uint8_t intel_get_pat_idx_uc(int fd);
uint8_t intel_get_pat_idx_wt(int fd);
uint8_t intel_get_pat_idx_wb(int fd);
+uint8_t xe2_get_pat_idx_uc_comp(int fd);
+
#endif /* INTEL_PAT_H */
--
2.34.1
More information about the igt-dev
mailing list