haswell: fix video post-processing setup.
authorGwenole Beauchesne <gwenole.beauchesne@intel.com>
Fri, 18 May 2012 09:40:59 +0000 (11:40 +0200)
committerXiang, Haihao <haihao.xiang@intel.com>
Tue, 23 Oct 2012 05:50:28 +0000 (13:50 +0800)
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
src/i965_post_processing.c
src/i965_render.c
src/i965_render.h

index b1cc34c..f701f48 100755 (executable)
@@ -1298,6 +1298,7 @@ gen7_pp_set_surface_state(VADriverContextP ctx, struct i965_post_processing_cont
                           int width, int height, int pitch, int format, 
                           int index, int is_target)
 {
+    struct i965_driver_data * const i965 = i965_driver_data(ctx);  
     struct gen7_surface_state *ss;
     dri_bo *ss_bo;
     unsigned int tiling;
@@ -1318,6 +1319,8 @@ gen7_pp_set_surface_state(VADriverContextP ctx, struct i965_post_processing_cont
     ss->ss2.height = height - 1;
     ss->ss3.pitch = pitch - 1;
     gen7_pp_set_surface_tiling(ss, tiling);
+    if (IS_HASWELL(i965->intel.device_id))
+        gen7_render_set_surface_scs(ss);
     dri_bo_emit_reloc(ss_bo,
                       I915_GEM_DOMAIN_RENDER, is_target ? I915_GEM_DOMAIN_RENDER : 0,
                       surf_bo_offset,
index d9f0f2c..9cade78 100644 (file)
@@ -731,7 +731,7 @@ gen7_render_set_surface_tiling(struct gen7_surface_state *ss, uint32_t tiling)
 }
 
 /* Set "Shader Channel Select" */
-static void
+void
 gen7_render_set_surface_scs(struct gen7_surface_state *ss)
 {
     ss->ss7.shader_chanel_select_r = HSW_SCS_RED;
index 96a1512..c2fc2bf 100644 (file)
@@ -98,4 +98,9 @@ intel_render_put_subpicture(
     const VARectangle *dst_rect
 );
 
+struct gen7_surface_state;
+
+void
+gen7_render_set_surface_scs(struct gen7_surface_state *ss);
+
 #endif /* _I965_RENDER_H_ */