diff options
author | Zhao Yakui <yakui.zhao@intel.com> | 2017-01-17 08:40:18 +0800 |
---|---|---|
committer | Sean V Kelley <seanvk@posteo.de> | 2017-01-17 15:03:29 -0800 |
commit | fce75e3a7fe6d61fad0411359406ab291dd3f2c7 (patch) | |
tree | 73a2654b43c4919ae5f22d1c319d57b1030138f9 /src/gen9_mfd.c | |
parent | ee9261e895a5b86a2532595629cd9c31fff51747 (diff) | |
download | libva-intel-driver-fce75e3a7fe6d61fad0411359406ab291dd3f2c7.tar.gz |
Follow the HW spec to configure the buffer cache on Gen9+
The MOCS field is used to define the cache type for the given buffer. From the
SKL+, the MOCS field is interpreted as the index that is used to find the corresponding
cache type in kernel driver. The current MOCS setting causes that buffer uses
the wrong cache type.
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Reviewed-by: Sean V Kelley <sean.v.kelley@intel.com>
Diffstat (limited to 'src/gen9_mfd.c')
-rw-r--r-- | src/gen9_mfd.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/gen9_mfd.c b/src/gen9_mfd.c index 5f425149..6c4435dc 100644 --- a/src/gen9_mfd.c +++ b/src/gen9_mfd.c @@ -53,7 +53,7 @@ } \ OUT_BCS_BATCH(batch, 0); \ if (ma) \ - OUT_BCS_BATCH(batch, 0); \ + OUT_BCS_BATCH(batch, i965->intel.mocs_state); \ } while (0) #define OUT_BUFFER_MA_TARGET(buf_bo) OUT_BUFFER(buf_bo, 1, 1) @@ -269,6 +269,7 @@ gen9_hcpd_pipe_buf_addr_state(VADriverContextP ctx, struct decode_state *decode_state, struct gen9_hcpd_context *gen9_hcpd_context) { + struct i965_driver_data *i965 = i965_driver_data(ctx); struct intel_batchbuffer *batch = gen9_hcpd_context->base.batch; struct object_surface *obj_surface; GenHevcSurface *gen9_hevc_surface; @@ -338,6 +339,7 @@ gen9_hcpd_ind_obj_base_addr_state(VADriverContextP ctx, dri_bo *slice_data_bo, struct gen9_hcpd_context *gen9_hcpd_context) { + struct i965_driver_data *i965 = i965_driver_data(ctx); struct intel_batchbuffer *batch = gen9_hcpd_context->base.batch; BEGIN_BCS_BATCH(batch, 14); @@ -1396,6 +1398,7 @@ gen9_hcpd_vp9_pipe_buf_addr_state(VADriverContextP ctx, struct decode_state *decode_state, struct gen9_hcpd_context *gen9_hcpd_context) { + struct i965_driver_data *i965 = i965_driver_data(ctx); struct intel_batchbuffer *batch = gen9_hcpd_context->base.batch; struct object_surface *obj_surface; int i=0; |