summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2013-07-26 09:35:06 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2013-07-28 14:49:07 +0100
commit45d4e8dcf9aee37015b1ee026997ed4dabdf112e (patch)
treec140efa6a28d80266849d08d5ea368419e95c977
parentab28526ea43728fb675448515e1519a970fb5f56 (diff)
uxa: Clear up the common intel directory
Move all the UXA backend specifc files into their own subdirectory. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--Makefile.am2
-rw-r--r--configure.ac13
-rw-r--r--src/Makefile.am67
-rw-r--r--src/intel_module.c3
-rw-r--r--src/uxa/Makefile.am79
-rw-r--r--src/uxa/brw_defines.h (renamed from src/brw_defines.h)0
-rw-r--r--src/uxa/brw_structs.h (renamed from src/brw_structs.h)0
-rw-r--r--src/uxa/common.h (renamed from src/common.h)2
-rw-r--r--src/uxa/i830_3d.c (renamed from src/i830_3d.c)0
-rw-r--r--src/uxa/i830_reg.h (renamed from src/i830_reg.h)0
-rw-r--r--src/uxa/i830_render.c (renamed from src/i830_render.c)0
-rw-r--r--src/uxa/i915_3d.c (renamed from src/i915_3d.c)0
-rw-r--r--src/uxa/i915_3d.h (renamed from src/i915_3d.h)0
-rw-r--r--src/uxa/i915_reg.h (renamed from src/i915_reg.h)0
-rw-r--r--src/uxa/i915_render.c (renamed from src/i915_render.c)0
-rw-r--r--src/uxa/i915_video.c (renamed from src/i915_video.c)0
-rw-r--r--src/uxa/i965_3d.c (renamed from src/i965_3d.c)0
-rw-r--r--src/uxa/i965_reg.h (renamed from src/i965_reg.h)0
-rw-r--r--src/uxa/i965_render.c (renamed from src/i965_render.c)0
-rw-r--r--src/uxa/i965_video.c (renamed from src/i965_video.c)2
-rw-r--r--src/uxa/intel.h (renamed from src/intel.h)0
-rw-r--r--src/uxa/intel_batchbuffer.c (renamed from src/intel_batchbuffer.c)0
-rw-r--r--src/uxa/intel_batchbuffer.h (renamed from src/intel_batchbuffer.h)0
-rw-r--r--src/uxa/intel_display.c (renamed from src/intel_display.c)0
-rw-r--r--src/uxa/intel_dri.c (renamed from src/intel_dri.c)0
-rw-r--r--src/uxa/intel_driver.c (renamed from src/intel_driver.c)2
-rw-r--r--src/uxa/intel_glamor.c (renamed from src/intel_glamor.c)0
-rw-r--r--src/uxa/intel_glamor.h (renamed from src/intel_glamor.h)0
-rw-r--r--src/uxa/intel_hwmc.c (renamed from src/intel_hwmc.c)2
-rw-r--r--src/uxa/intel_memory.c (renamed from src/intel_memory.c)0
-rw-r--r--src/uxa/intel_uxa.c (renamed from src/intel_uxa.c)0
-rw-r--r--src/uxa/intel_video.c (renamed from src/intel_video.c)2
-rw-r--r--src/uxa/intel_video.h (renamed from src/intel_video.h)0
-rw-r--r--src/uxa/uxa_module.h6
-rw-r--r--src/xvmc/Makefile.am24
-rw-r--r--uxa/Makefile.am2
-rw-r--r--uxa/uxa-glyphs.c2
-rw-r--r--xvmc/Makefile.am32
-rw-r--r--xvmc/brw_defines.h881
-rw-r--r--xvmc/brw_structs.h1723
-rw-r--r--xvmc/i830_reg.h805
-rw-r--r--xvmc/i915_program.h (renamed from src/xvmc/i915_program.h)0
-rw-r--r--xvmc/i915_reg.h844
-rw-r--r--xvmc/i915_structs.h (renamed from src/xvmc/i915_structs.h)0
-rw-r--r--xvmc/i915_xvmc.c (renamed from src/xvmc/i915_xvmc.c)0
-rw-r--r--xvmc/i915_xvmc.h (renamed from src/xvmc/i915_xvmc.h)3
-rw-r--r--xvmc/i965_reg.h476
-rw-r--r--xvmc/i965_xvmc.c (renamed from src/xvmc/i965_xvmc.c)4
-rw-r--r--xvmc/intel_batchbuffer.c (renamed from src/xvmc/intel_batchbuffer.c)2
-rw-r--r--xvmc/intel_batchbuffer.h (renamed from src/xvmc/intel_batchbuffer.h)0
-rw-r--r--xvmc/intel_xvmc.c (renamed from src/xvmc/intel_xvmc.c)2
-rw-r--r--xvmc/intel_xvmc.h (renamed from src/intel_hwmc.h)0
-rw-r--r--xvmc/intel_xvmc_dump.c (renamed from src/xvmc/intel_xvmc_dump.c)2
-rw-r--r--xvmc/intel_xvmc_private.h (renamed from src/xvmc/intel_xvmc.h)3
-rw-r--r--xvmc/shader/Makefile.am (renamed from src/xvmc/shader/Makefile.am)0
-rw-r--r--xvmc/shader/mc/Makefile.am (renamed from src/xvmc/shader/mc/Makefile.am)0
-rw-r--r--xvmc/shader/mc/addidct.g4i (renamed from src/xvmc/shader/mc/addidct.g4i)0
-rw-r--r--xvmc/shader/mc/addidct_igd.g4i (renamed from src/xvmc/shader/mc/addidct_igd.g4i)0
-rw-r--r--xvmc/shader/mc/block_clear.g4i (renamed from src/xvmc/shader/mc/block_clear.g4i)0
-rw-r--r--xvmc/shader/mc/dual_prime.g4a (renamed from src/xvmc/shader/mc/dual_prime.g4a)0
-rw-r--r--xvmc/shader/mc/dual_prime.g4b (renamed from src/xvmc/shader/mc/dual_prime.g4b)0
-rw-r--r--xvmc/shader/mc/dual_prime.g4b.gen5 (renamed from src/xvmc/shader/mc/dual_prime.g4b.gen5)0
-rw-r--r--xvmc/shader/mc/dual_prime_igd.g4a (renamed from src/xvmc/shader/mc/dual_prime_igd.g4a)0
-rw-r--r--xvmc/shader/mc/dual_prime_igd.g4b (renamed from src/xvmc/shader/mc/dual_prime_igd.g4b)0
-rw-r--r--xvmc/shader/mc/dual_prime_igd.g4b.gen5 (renamed from src/xvmc/shader/mc/dual_prime_igd.g4b.gen5)0
-rw-r--r--xvmc/shader/mc/field_backward.g4a (renamed from src/xvmc/shader/mc/field_backward.g4a)0
-rw-r--r--xvmc/shader/mc/field_backward.g4b (renamed from src/xvmc/shader/mc/field_backward.g4b)0
-rw-r--r--xvmc/shader/mc/field_backward.g4b.gen5 (renamed from src/xvmc/shader/mc/field_backward.g4b.gen5)0
-rw-r--r--xvmc/shader/mc/field_backward_igd.g4a (renamed from src/xvmc/shader/mc/field_backward_igd.g4a)0
-rw-r--r--xvmc/shader/mc/field_backward_igd.g4b (renamed from src/xvmc/shader/mc/field_backward_igd.g4b)0
-rw-r--r--xvmc/shader/mc/field_backward_igd.g4b.gen5 (renamed from src/xvmc/shader/mc/field_backward_igd.g4b.gen5)0
-rw-r--r--xvmc/shader/mc/field_f_b.g4a (renamed from src/xvmc/shader/mc/field_f_b.g4a)0
-rw-r--r--xvmc/shader/mc/field_f_b.g4b (renamed from src/xvmc/shader/mc/field_f_b.g4b)0
-rw-r--r--xvmc/shader/mc/field_f_b.g4b.gen5 (renamed from src/xvmc/shader/mc/field_f_b.g4b.gen5)0
-rw-r--r--xvmc/shader/mc/field_f_b_igd.g4a (renamed from src/xvmc/shader/mc/field_f_b_igd.g4a)0
-rw-r--r--xvmc/shader/mc/field_f_b_igd.g4b (renamed from src/xvmc/shader/mc/field_f_b_igd.g4b)0
-rw-r--r--xvmc/shader/mc/field_f_b_igd.g4b.gen5 (renamed from src/xvmc/shader/mc/field_f_b_igd.g4b.gen5)0
-rw-r--r--xvmc/shader/mc/field_forward.g4a (renamed from src/xvmc/shader/mc/field_forward.g4a)0
-rw-r--r--xvmc/shader/mc/field_forward.g4b (renamed from src/xvmc/shader/mc/field_forward.g4b)0
-rw-r--r--xvmc/shader/mc/field_forward.g4b.gen5 (renamed from src/xvmc/shader/mc/field_forward.g4b.gen5)0
-rw-r--r--xvmc/shader/mc/field_forward_igd.g4a (renamed from src/xvmc/shader/mc/field_forward_igd.g4a)0
-rw-r--r--xvmc/shader/mc/field_forward_igd.g4b (renamed from src/xvmc/shader/mc/field_forward_igd.g4b)0
-rw-r--r--xvmc/shader/mc/field_forward_igd.g4b.gen5 (renamed from src/xvmc/shader/mc/field_forward_igd.g4b.gen5)0
-rw-r--r--xvmc/shader/mc/frame_backward.g4a (renamed from src/xvmc/shader/mc/frame_backward.g4a)0
-rw-r--r--xvmc/shader/mc/frame_backward.g4b (renamed from src/xvmc/shader/mc/frame_backward.g4b)0
-rw-r--r--xvmc/shader/mc/frame_backward.g4b.gen5 (renamed from src/xvmc/shader/mc/frame_backward.g4b.gen5)0
-rw-r--r--xvmc/shader/mc/frame_backward_igd.g4a (renamed from src/xvmc/shader/mc/frame_backward_igd.g4a)0
-rw-r--r--xvmc/shader/mc/frame_backward_igd.g4b (renamed from src/xvmc/shader/mc/frame_backward_igd.g4b)0
-rw-r--r--xvmc/shader/mc/frame_backward_igd.g4b.gen5 (renamed from src/xvmc/shader/mc/frame_backward_igd.g4b.gen5)0
-rw-r--r--xvmc/shader/mc/frame_f_b.g4a (renamed from src/xvmc/shader/mc/frame_f_b.g4a)0
-rw-r--r--xvmc/shader/mc/frame_f_b.g4b (renamed from src/xvmc/shader/mc/frame_f_b.g4b)0
-rw-r--r--xvmc/shader/mc/frame_f_b.g4b.gen5 (renamed from src/xvmc/shader/mc/frame_f_b.g4b.gen5)0
-rw-r--r--xvmc/shader/mc/frame_f_b_igd.g4a (renamed from src/xvmc/shader/mc/frame_f_b_igd.g4a)0
-rw-r--r--xvmc/shader/mc/frame_f_b_igd.g4b (renamed from src/xvmc/shader/mc/frame_f_b_igd.g4b)0
-rw-r--r--xvmc/shader/mc/frame_f_b_igd.g4b.gen5 (renamed from src/xvmc/shader/mc/frame_f_b_igd.g4b.gen5)0
-rw-r--r--xvmc/shader/mc/frame_forward.g4a (renamed from src/xvmc/shader/mc/frame_forward.g4a)0
-rw-r--r--xvmc/shader/mc/frame_forward.g4b (renamed from src/xvmc/shader/mc/frame_forward.g4b)0
-rw-r--r--xvmc/shader/mc/frame_forward.g4b.gen5 (renamed from src/xvmc/shader/mc/frame_forward.g4b.gen5)0
-rw-r--r--xvmc/shader/mc/frame_forward_igd.g4a (renamed from src/xvmc/shader/mc/frame_forward_igd.g4a)0
-rw-r--r--xvmc/shader/mc/frame_forward_igd.g4b (renamed from src/xvmc/shader/mc/frame_forward_igd.g4b)0
-rw-r--r--xvmc/shader/mc/frame_forward_igd.g4b.gen5 (renamed from src/xvmc/shader/mc/frame_forward_igd.g4b.gen5)0
-rw-r--r--xvmc/shader/mc/ipicture.g4a (renamed from src/xvmc/shader/mc/ipicture.g4a)0
-rw-r--r--xvmc/shader/mc/ipicture.g4b (renamed from src/xvmc/shader/mc/ipicture.g4b)0
-rw-r--r--xvmc/shader/mc/ipicture.g4b.gen5 (renamed from src/xvmc/shader/mc/ipicture.g4b.gen5)0
-rw-r--r--xvmc/shader/mc/ipicture_igd.g4a (renamed from src/xvmc/shader/mc/ipicture_igd.g4a)0
-rw-r--r--xvmc/shader/mc/ipicture_igd.g4b (renamed from src/xvmc/shader/mc/ipicture_igd.g4b)0
-rw-r--r--xvmc/shader/mc/ipicture_igd.g4b.gen5 (renamed from src/xvmc/shader/mc/ipicture_igd.g4b.gen5)0
-rw-r--r--xvmc/shader/mc/lib_igd.g4a (renamed from src/xvmc/shader/mc/lib_igd.g4a)0
-rw-r--r--xvmc/shader/mc/lib_igd.g4b (renamed from src/xvmc/shader/mc/lib_igd.g4b)0
-rw-r--r--xvmc/shader/mc/lib_igd.g4b.gen5 (renamed from src/xvmc/shader/mc/lib_igd.g4b.gen5)0
-rw-r--r--xvmc/shader/mc/motion_field_uv.g4i (renamed from src/xvmc/shader/mc/motion_field_uv.g4i)0
-rw-r--r--xvmc/shader/mc/motion_field_uv_igd.g4i (renamed from src/xvmc/shader/mc/motion_field_uv_igd.g4i)0
-rw-r--r--xvmc/shader/mc/motion_field_y.g4i (renamed from src/xvmc/shader/mc/motion_field_y.g4i)0
-rw-r--r--xvmc/shader/mc/motion_field_y_igd.g4i (renamed from src/xvmc/shader/mc/motion_field_y_igd.g4i)0
-rw-r--r--xvmc/shader/mc/motion_frame_uv.g4i (renamed from src/xvmc/shader/mc/motion_frame_uv.g4i)0
-rw-r--r--xvmc/shader/mc/motion_frame_uv_igd.g4i (renamed from src/xvmc/shader/mc/motion_frame_uv_igd.g4i)0
-rw-r--r--xvmc/shader/mc/motion_frame_y.g4i (renamed from src/xvmc/shader/mc/motion_frame_y.g4i)0
-rw-r--r--xvmc/shader/mc/motion_frame_y_igd.g4i (renamed from src/xvmc/shader/mc/motion_frame_y_igd.g4i)0
-rw-r--r--xvmc/shader/mc/null.g4a (renamed from src/xvmc/shader/mc/null.g4a)0
-rw-r--r--xvmc/shader/mc/null.g4b (renamed from src/xvmc/shader/mc/null.g4b)0
-rw-r--r--xvmc/shader/mc/null.g4b.gen5 (renamed from src/xvmc/shader/mc/null.g4b.gen5)0
-rw-r--r--xvmc/shader/mc/read_field_x0y0_uv.g4i (renamed from src/xvmc/shader/mc/read_field_x0y0_uv.g4i)0
-rw-r--r--xvmc/shader/mc/read_field_x0y0_uv_igd.g4i (renamed from src/xvmc/shader/mc/read_field_x0y0_uv_igd.g4i)0
-rw-r--r--xvmc/shader/mc/read_field_x0y0_y.g4i (renamed from src/xvmc/shader/mc/read_field_x0y0_y.g4i)0
-rw-r--r--xvmc/shader/mc/read_field_x0y0_y_igd.g4i (renamed from src/xvmc/shader/mc/read_field_x0y0_y_igd.g4i)0
-rw-r--r--xvmc/shader/mc/read_field_x0y1_uv.g4i (renamed from src/xvmc/shader/mc/read_field_x0y1_uv.g4i)0
-rw-r--r--xvmc/shader/mc/read_field_x0y1_uv_igd.g4i (renamed from src/xvmc/shader/mc/read_field_x0y1_uv_igd.g4i)0
-rw-r--r--xvmc/shader/mc/read_field_x0y1_y.g4i (renamed from src/xvmc/shader/mc/read_field_x0y1_y.g4i)0
-rw-r--r--xvmc/shader/mc/read_field_x0y1_y_igd.g4i (renamed from src/xvmc/shader/mc/read_field_x0y1_y_igd.g4i)0
-rw-r--r--xvmc/shader/mc/read_field_x1y0_uv.g4i (renamed from src/xvmc/shader/mc/read_field_x1y0_uv.g4i)0
-rw-r--r--xvmc/shader/mc/read_field_x1y0_uv_igd.g4i (renamed from src/xvmc/shader/mc/read_field_x1y0_uv_igd.g4i)0
-rw-r--r--xvmc/shader/mc/read_field_x1y0_y.g4i (renamed from src/xvmc/shader/mc/read_field_x1y0_y.g4i)0
-rw-r--r--xvmc/shader/mc/read_field_x1y0_y_igd.g4i (renamed from src/xvmc/shader/mc/read_field_x1y0_y_igd.g4i)0
-rw-r--r--xvmc/shader/mc/read_field_x1y1_uv.g4i (renamed from src/xvmc/shader/mc/read_field_x1y1_uv.g4i)0
-rw-r--r--xvmc/shader/mc/read_field_x1y1_uv_igd.g4i (renamed from src/xvmc/shader/mc/read_field_x1y1_uv_igd.g4i)0
-rw-r--r--xvmc/shader/mc/read_field_x1y1_y.g4i (renamed from src/xvmc/shader/mc/read_field_x1y1_y.g4i)0
-rw-r--r--xvmc/shader/mc/read_field_x1y1_y_igd.g4i (renamed from src/xvmc/shader/mc/read_field_x1y1_y_igd.g4i)0
-rw-r--r--xvmc/shader/mc/read_frame_x0y0_uv.g4i (renamed from src/xvmc/shader/mc/read_frame_x0y0_uv.g4i)0
-rw-r--r--xvmc/shader/mc/read_frame_x0y0_uv_igd.g4i (renamed from src/xvmc/shader/mc/read_frame_x0y0_uv_igd.g4i)0
-rw-r--r--xvmc/shader/mc/read_frame_x0y0_y.g4i (renamed from src/xvmc/shader/mc/read_frame_x0y0_y.g4i)0
-rw-r--r--xvmc/shader/mc/read_frame_x0y0_y_igd.g4i (renamed from src/xvmc/shader/mc/read_frame_x0y0_y_igd.g4i)0
-rw-r--r--xvmc/shader/mc/read_frame_x0y1_uv.g4i (renamed from src/xvmc/shader/mc/read_frame_x0y1_uv.g4i)0
-rw-r--r--xvmc/shader/mc/read_frame_x0y1_uv_igd.g4i (renamed from src/xvmc/shader/mc/read_frame_x0y1_uv_igd.g4i)0
-rw-r--r--xvmc/shader/mc/read_frame_x0y1_y.g4i (renamed from src/xvmc/shader/mc/read_frame_x0y1_y.g4i)0
-rw-r--r--xvmc/shader/mc/read_frame_x0y1_y_igd.g4i (renamed from src/xvmc/shader/mc/read_frame_x0y1_y_igd.g4i)0
-rw-r--r--xvmc/shader/mc/read_frame_x1y0_uv.g4i (renamed from src/xvmc/shader/mc/read_frame_x1y0_uv.g4i)0
-rw-r--r--xvmc/shader/mc/read_frame_x1y0_uv_igd.g4i (renamed from src/xvmc/shader/mc/read_frame_x1y0_uv_igd.g4i)0
-rw-r--r--xvmc/shader/mc/read_frame_x1y0_y.g4i (renamed from src/xvmc/shader/mc/read_frame_x1y0_y.g4i)0
-rw-r--r--xvmc/shader/mc/read_frame_x1y0_y_igd.g4i (renamed from src/xvmc/shader/mc/read_frame_x1y0_y_igd.g4i)0
-rw-r--r--xvmc/shader/mc/read_frame_x1y1_uv.g4i (renamed from src/xvmc/shader/mc/read_frame_x1y1_uv.g4i)0
-rw-r--r--xvmc/shader/mc/read_frame_x1y1_uv_igd.g4i (renamed from src/xvmc/shader/mc/read_frame_x1y1_uv_igd.g4i)0
-rw-r--r--xvmc/shader/mc/read_frame_x1y1_y.g4i (renamed from src/xvmc/shader/mc/read_frame_x1y1_y.g4i)0
-rw-r--r--xvmc/shader/mc/read_frame_x1y1_y_igd.g4i (renamed from src/xvmc/shader/mc/read_frame_x1y1_y_igd.g4i)0
-rw-r--r--xvmc/shader/vld/Makefile.am (renamed from src/xvmc/shader/vld/Makefile.am)0
-rw-r--r--xvmc/shader/vld/addidct.g4i (renamed from src/xvmc/shader/vld/addidct.g4i)0
-rw-r--r--xvmc/shader/vld/do_iq_intra.g4i (renamed from src/xvmc/shader/vld/do_iq_intra.g4i)0
-rw-r--r--xvmc/shader/vld/do_iq_non_intra.g4i (renamed from src/xvmc/shader/vld/do_iq_non_intra.g4i)0
-rw-r--r--xvmc/shader/vld/field_backward.g4a (renamed from src/xvmc/shader/vld/field_backward.g4a)0
-rw-r--r--xvmc/shader/vld/field_backward.g4b (renamed from src/xvmc/shader/vld/field_backward.g4b)0
-rw-r--r--xvmc/shader/vld/field_backward.g4b.gen5 (renamed from src/xvmc/shader/vld/field_backward.g4b.gen5)0
-rw-r--r--xvmc/shader/vld/field_f_b.g4a (renamed from src/xvmc/shader/vld/field_f_b.g4a)0
-rw-r--r--xvmc/shader/vld/field_f_b.g4b (renamed from src/xvmc/shader/vld/field_f_b.g4b)0
-rw-r--r--xvmc/shader/vld/field_f_b.g4b.gen5 (renamed from src/xvmc/shader/vld/field_f_b.g4b.gen5)0
-rw-r--r--xvmc/shader/vld/field_forward.g4a (renamed from src/xvmc/shader/vld/field_forward.g4a)0
-rw-r--r--xvmc/shader/vld/field_forward.g4b (renamed from src/xvmc/shader/vld/field_forward.g4b)0
-rw-r--r--xvmc/shader/vld/field_forward.g4b.gen5 (renamed from src/xvmc/shader/vld/field_forward.g4b.gen5)0
-rw-r--r--xvmc/shader/vld/frame_backward.g4a (renamed from src/xvmc/shader/vld/frame_backward.g4a)0
-rw-r--r--xvmc/shader/vld/frame_backward.g4b (renamed from src/xvmc/shader/vld/frame_backward.g4b)0
-rw-r--r--xvmc/shader/vld/frame_backward.g4b.gen5 (renamed from src/xvmc/shader/vld/frame_backward.g4b.gen5)0
-rw-r--r--xvmc/shader/vld/frame_f_b.g4a (renamed from src/xvmc/shader/vld/frame_f_b.g4a)0
-rw-r--r--xvmc/shader/vld/frame_f_b.g4b (renamed from src/xvmc/shader/vld/frame_f_b.g4b)0
-rw-r--r--xvmc/shader/vld/frame_f_b.g4b.gen5 (renamed from src/xvmc/shader/vld/frame_f_b.g4b.gen5)0
-rw-r--r--xvmc/shader/vld/frame_forward.g4a (renamed from src/xvmc/shader/vld/frame_forward.g4a)0
-rw-r--r--xvmc/shader/vld/frame_forward.g4b (renamed from src/xvmc/shader/vld/frame_forward.g4b)0
-rw-r--r--xvmc/shader/vld/frame_forward.g4b.gen5 (renamed from src/xvmc/shader/vld/frame_forward.g4b.gen5)0
-rw-r--r--xvmc/shader/vld/idct.g4i (renamed from src/xvmc/shader/vld/idct.g4i)0
-rw-r--r--xvmc/shader/vld/ipicture.g4a (renamed from src/xvmc/shader/vld/ipicture.g4a)0
-rw-r--r--xvmc/shader/vld/ipicture.g4b (renamed from src/xvmc/shader/vld/ipicture.g4b)0
-rw-r--r--xvmc/shader/vld/ipicture.g4b.gen5 (renamed from src/xvmc/shader/vld/ipicture.g4b.gen5)0
-rw-r--r--xvmc/shader/vld/iq_intra.g4i (renamed from src/xvmc/shader/vld/iq_intra.g4i)0
-rw-r--r--xvmc/shader/vld/iq_non_intra.g4i (renamed from src/xvmc/shader/vld/iq_non_intra.g4i)0
-rw-r--r--xvmc/shader/vld/lib.g4a (renamed from src/xvmc/shader/vld/lib.g4a)0
-rw-r--r--xvmc/shader/vld/lib.g4b (renamed from src/xvmc/shader/vld/lib.g4b)0
-rw-r--r--xvmc/shader/vld/lib.g4b.gen5 (renamed from src/xvmc/shader/vld/lib.g4b.gen5)0
-rw-r--r--xvmc/shader/vld/motion_field_uv.g4i (renamed from src/xvmc/shader/vld/motion_field_uv.g4i)0
-rw-r--r--xvmc/shader/vld/motion_field_y.g4i (renamed from src/xvmc/shader/vld/motion_field_y.g4i)0
-rw-r--r--xvmc/shader/vld/motion_frame_uv.g4i (renamed from src/xvmc/shader/vld/motion_frame_uv.g4i)0
-rw-r--r--xvmc/shader/vld/motion_frame_y.g4i (renamed from src/xvmc/shader/vld/motion_frame_y.g4i)0
-rw-r--r--xvmc/shader/vld/read_field_x0y0_uv.g4i (renamed from src/xvmc/shader/vld/read_field_x0y0_uv.g4i)0
-rw-r--r--xvmc/shader/vld/read_field_x0y0_y.g4i (renamed from src/xvmc/shader/vld/read_field_x0y0_y.g4i)0
-rw-r--r--xvmc/shader/vld/read_field_x0y1_uv.g4i (renamed from src/xvmc/shader/vld/read_field_x0y1_uv.g4i)0
-rw-r--r--xvmc/shader/vld/read_field_x0y1_y.g4i (renamed from src/xvmc/shader/vld/read_field_x0y1_y.g4i)0
-rw-r--r--xvmc/shader/vld/read_field_x1y0_uv.g4i (renamed from src/xvmc/shader/vld/read_field_x1y0_uv.g4i)0
-rw-r--r--xvmc/shader/vld/read_field_x1y0_y.g4i (renamed from src/xvmc/shader/vld/read_field_x1y0_y.g4i)0
-rw-r--r--xvmc/shader/vld/read_field_x1y1_uv.g4i (renamed from src/xvmc/shader/vld/read_field_x1y1_uv.g4i)0
-rw-r--r--xvmc/shader/vld/read_field_x1y1_y.g4i (renamed from src/xvmc/shader/vld/read_field_x1y1_y.g4i)0
-rw-r--r--xvmc/shader/vld/read_frame_x0y0_uv.g4i (renamed from src/xvmc/shader/vld/read_frame_x0y0_uv.g4i)0
-rw-r--r--xvmc/shader/vld/read_frame_x0y0_y.g4i (renamed from src/xvmc/shader/vld/read_frame_x0y0_y.g4i)0
-rw-r--r--xvmc/shader/vld/read_frame_x0y1_uv.g4i (renamed from src/xvmc/shader/vld/read_frame_x0y1_uv.g4i)0
-rw-r--r--xvmc/shader/vld/read_frame_x0y1_y.g4i (renamed from src/xvmc/shader/vld/read_frame_x0y1_y.g4i)0
-rw-r--r--xvmc/shader/vld/read_frame_x1y0_uv.g4i (renamed from src/xvmc/shader/vld/read_frame_x1y0_uv.g4i)0
-rw-r--r--xvmc/shader/vld/read_frame_x1y0_y.g4i (renamed from src/xvmc/shader/vld/read_frame_x1y0_y.g4i)0
-rw-r--r--xvmc/shader/vld/read_frame_x1y1_uv.g4i (renamed from src/xvmc/shader/vld/read_frame_x1y1_uv.g4i)0
-rw-r--r--xvmc/shader/vld/read_frame_x1y1_y.g4i (renamed from src/xvmc/shader/vld/read_frame_x1y1_y.g4i)0
-rw-r--r--xvmc/xvmc_vld.c (renamed from src/xvmc/xvmc_vld.c)3
205 files changed, 4877 insertions, 111 deletions
diff --git a/Makefile.am b/Makefile.am
index b4b027d1..75913a62 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -20,7 +20,7 @@
20 20
21ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4 21ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4
22 22
23SUBDIRS = man 23SUBDIRS = man xvmc
24 24
25if UXA 25if UXA
26SUBDIRS += uxa 26SUBDIRS += uxa
diff --git a/configure.ac b/configure.ac
index 3987461a..0eadbabf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -506,20 +506,21 @@ AC_SUBST([moduledir])
506 506
507AC_CONFIG_FILES([ 507AC_CONFIG_FILES([
508 Makefile 508 Makefile
509 man/Makefile
509 uxa/Makefile 510 uxa/Makefile
510 src/Makefile 511 src/Makefile
511 src/xvmc/Makefile
512 src/xvmc/shader/Makefile
513 src/xvmc/shader/mc/Makefile
514 src/xvmc/shader/vld/Makefile
515 src/legacy/Makefile 512 src/legacy/Makefile
516 src/legacy/i810/Makefile 513 src/legacy/i810/Makefile
517 src/legacy/i810/xvmc/Makefile 514 src/legacy/i810/xvmc/Makefile
515 src/render_program/Makefile
518 src/sna/Makefile 516 src/sna/Makefile
519 src/sna/brw/Makefile 517 src/sna/brw/Makefile
520 src/sna/fb/Makefile 518 src/sna/fb/Makefile
521 man/Makefile 519 src/uxa/Makefile
522 src/render_program/Makefile 520 xvmc/Makefile
521 xvmc/shader/Makefile
522 xvmc/shader/mc/Makefile
523 xvmc/shader/vld/Makefile
523 test/Makefile 524 test/Makefile
524]) 525])
525AC_OUTPUT 526AC_OUTPUT
diff --git a/src/Makefile.am b/src/Makefile.am
index 098a94a9..9df09159 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -18,7 +18,7 @@
18# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 18# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 19# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20 20
21SUBDIRS = xvmc render_program legacy 21SUBDIRS = render_program legacy
22 22
23# this is obnoxious: 23# this is obnoxious:
24# -module lets us name the module exactly how we want 24# -module lets us name the module exactly how we want
@@ -38,6 +38,11 @@ SUBDIRS += sna
38intel_drv_la_LIBADD += sna/libsna.la 38intel_drv_la_LIBADD += sna/libsna.la
39endif 39endif
40 40
41if UXA
42SUBDIRS += uxa
43intel_drv_la_LIBADD += uxa/libuxa.la
44endif
45
41NULL:=# 46NULL:=#
42 47
43intel_drv_la_SOURCES = \ 48intel_drv_la_SOURCES = \
@@ -45,70 +50,12 @@ intel_drv_la_SOURCES = \
45 intel_list.h \ 50 intel_list.h \
46 intel_options.h \ 51 intel_options.h \
47 intel_device.c \ 52 intel_device.c \
53 intel_driver.h \
48 intel_options.c \ 54 intel_options.c \
49 intel_module.c \ 55 intel_module.c \
50 compat-api.h \ 56 compat-api.h \
51 $(NULL) 57 $(NULL)
52 58
53if UXA
54AM_CFLAGS += @UDEV_CFLAGS@ @DRM_CFLAGS@ @DRMINTEL_CFLAGS@
55AM_CFLAGS += -I$(top_srcdir)/uxa -I$(top_srcdir)/src/render_program
56intel_drv_la_LIBADD += @UDEV_LIBS@ @DRMINTEL_LIBS@ @DRM_LIBS@ ../uxa/libuxa.la
57intel_drv_la_SOURCES += \
58 brw_defines.h \
59 brw_structs.h \
60 common.h \
61 intel.h \
62 intel_batchbuffer.c \
63 intel_batchbuffer.h \
64 intel_display.c \
65 intel_driver.c \
66 intel_driver.h \
67 intel_glamor.h \
68 intel_memory.c \
69 intel_uxa.c \
70 intel_video.c \
71 intel_video.h \
72 i830_3d.c \
73 i830_render.c \
74 i830_reg.h \
75 i915_3d.h \
76 i915_reg.h \
77 i915_3d.c \
78 i915_render.c \
79 i915_video.c \
80 i965_reg.h \
81 i965_3d.c \
82 i965_video.c \
83 i965_render.c \
84 $(NULL)
85
86if GLAMOR
87AM_CFLAGS += @LIBGLAMOR_CFLAGS@
88intel_drv_la_LIBADD += @LIBGLAMOR_LIBS@
89intel_drv_la_SOURCES += \
90 intel_glamor.c \
91 $(NULL)
92endif
93
94if DRI2
95intel_drv_la_SOURCES += \
96 intel_dri.c \
97 $(NULL)
98intel_drv_la_LIBADD += \
99 $(DRI_LIBS) \
100 @CLOCK_GETTIME_LIBS@ \
101 $(NULL)
102endif
103
104if XVMC
105intel_drv_la_SOURCES += \
106 intel_hwmc.h \
107 intel_hwmc.c \
108 $(NULL)
109endif
110endif
111
112EXTRA_DIST = \ 59EXTRA_DIST = \
113 scripts/clock.5c \ 60 scripts/clock.5c \
114 scripts/clock-graph.5c \ 61 scripts/clock-graph.5c \
diff --git a/src/intel_module.c b/src/intel_module.c
index 005e4185..90643d35 100644
--- a/src/intel_module.c
+++ b/src/intel_module.c
@@ -28,6 +28,7 @@
28#include "config.h" 28#include "config.h"
29#endif 29#endif
30 30
31#include <xf86.h>
31#include <xf86Parser.h> 32#include <xf86Parser.h>
32#include <xorgVersion.h> 33#include <xorgVersion.h>
33 34
@@ -35,11 +36,11 @@
35#include <xf86Resources.h> 36#include <xf86Resources.h>
36#endif 37#endif
37 38
38#include "common.h"
39#include "intel_driver.h" 39#include "intel_driver.h"
40#include "intel_options.h" 40#include "intel_options.h"
41#include "legacy/legacy.h" 41#include "legacy/legacy.h"
42#include "sna/sna_module.h" 42#include "sna/sna_module.h"
43#include "uxa/uxa_module.h"
43 44
44#include "i915_pciids.h" /* copied from (kernel) include/drm/i915_pciids.h */ 45#include "i915_pciids.h" /* copied from (kernel) include/drm/i915_pciids.h */
45 46
diff --git a/src/uxa/Makefile.am b/src/uxa/Makefile.am
new file mode 100644
index 00000000..5f89cfc2
--- /dev/null
+++ b/src/uxa/Makefile.am
@@ -0,0 +1,79 @@
1# Copyright 2005 Adam Jackson.
2#
3# Permission is hereby granted, free of charge, to any person obtaining a
4# copy of this software and associated documentation files (the "Software"),
5# to deal in the Software without restriction, including without limitation
6# on the rights to use, copy, modify, merge, publish, distribute, sub
7# license, and/or sell copies of the Software, and to permit persons to whom
8# the Software is furnished to do so, subject to the following conditions:
9#
10# The above copyright notice and this permission notice (including the next
11# paragraph) shall be included in all copies or substantial portions of the
12# Software.
13#
14# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
17# ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
21AM_CFLAGS = @CWARNFLAGS@ @XORG_CFLAGS@ @DRM_CFLAGS@ @PCIACCESS_CFLAGS@
22AM_CFLAGS += @UDEV_CFLAGS@ @DRM_CFLAGS@ @DRMINTEL_CFLAGS@
23AM_CFLAGS += -I$(top_srcdir)/uxa -I$(top_srcdir)/src -I$(top_srcdir)/src/render_program
24
25noinst_LTLIBRARIES = libuxa.la
26libuxa_la_LIBADD = @UDEV_LIBS@ @DRMINTEL_LIBS@ @DRM_LIBS@ $(top_builddir)/uxa/libuxa.la
27libuxa_la_SOURCES = \
28 brw_defines.h \
29 brw_structs.h \
30 common.h \
31 intel.h \
32 intel_batchbuffer.c \
33 intel_batchbuffer.h \
34 intel_display.c \
35 intel_driver.c \
36 intel_glamor.h \
37 intel_memory.c \
38 intel_uxa.c \
39 intel_video.c \
40 intel_video.h \
41 i830_3d.c \
42 i830_render.c \
43 i830_reg.h \
44 i915_3d.h \
45 i915_reg.h \
46 i915_3d.c \
47 i915_render.c \
48 i915_video.c \
49 i965_reg.h \
50 i965_3d.c \
51 i965_video.c \
52 i965_render.c \
53 uxa_module.h \
54 $(NULL)
55
56if GLAMOR
57AM_CFLAGS += @LIBGLAMOR_CFLAGS@
58libuxa_la_LIBADD += @LIBGLAMOR_LIBS@
59libuxa_la_SOURCES += \
60 intel_glamor.c \
61 $(NULL)
62endif
63
64if DRI2
65libuxa_la_SOURCES += \
66 intel_dri.c \
67 $(NULL)
68libuxa_la_LIBADD += \
69 $(DRI_LIBS) \
70 @CLOCK_GETTIME_LIBS@ \
71 $(NULL)
72endif
73
74if XVMC
75AM_CFLAGS += -I$(top_srcdir)/xvmc
76libuxa_la_SOURCES += \
77 intel_hwmc.c \
78 $(NULL)
79endif
diff --git a/src/brw_defines.h b/src/uxa/brw_defines.h
index e580a8f4..e580a8f4 100644
--- a/src/brw_defines.h
+++ b/src/uxa/brw_defines.h
diff --git a/src/brw_structs.h b/src/uxa/brw_structs.h
index 20c2f857..20c2f857 100644
--- a/src/brw_structs.h
+++ b/src/uxa/brw_structs.h
diff --git a/src/common.h b/src/uxa/common.h
index 86e5b11d..4f55846b 100644
--- a/src/common.h
+++ b/src/uxa/common.h
@@ -55,8 +55,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
55#define KB(x) ((x) * 1024) 55#define KB(x) ((x) * 1024)
56#define MB(x) ((x) * KB(1024)) 56#define MB(x) ((x) * KB(1024))
57 57
58extern Bool intel_init_scrn(ScrnInfoPtr scrn);
59
60/** 58/**
61 * Hints to CreatePixmap to tell the driver how the pixmap is going to be 59 * Hints to CreatePixmap to tell the driver how the pixmap is going to be
62 * used. 60 * used.
diff --git a/src/i830_3d.c b/src/uxa/i830_3d.c
index 10432011..10432011 100644
--- a/src/i830_3d.c
+++ b/src/uxa/i830_3d.c
diff --git a/src/i830_reg.h b/src/uxa/i830_reg.h
index 93d03cf3..93d03cf3 100644
--- a/src/i830_reg.h
+++ b/src/uxa/i830_reg.h
diff --git a/src/i830_render.c b/src/uxa/i830_render.c
index e169cc11..e169cc11 100644
--- a/src/i830_render.c
+++ b/src/uxa/i830_render.c
diff --git a/src/i915_3d.c b/src/uxa/i915_3d.c
index 77db5685..77db5685 100644
--- a/src/i915_3d.c
+++ b/src/uxa/i915_3d.c
diff --git a/src/i915_3d.h b/src/uxa/i915_3d.h
index 04531f33..04531f33 100644
--- a/src/i915_3d.h
+++ b/src/uxa/i915_3d.h
diff --git a/src/i915_reg.h b/src/uxa/i915_reg.h
index 746a4131..746a4131 100644
--- a/src/i915_reg.h
+++ b/src/uxa/i915_reg.h
diff --git a/src/i915_render.c b/src/uxa/i915_render.c
index 6d3400e7..6d3400e7 100644
--- a/src/i915_render.c
+++ b/src/uxa/i915_render.c
diff --git a/src/i915_video.c b/src/uxa/i915_video.c
index ae2e6bb5..ae2e6bb5 100644
--- a/src/i915_video.c
+++ b/src/uxa/i915_video.c
diff --git a/src/i965_3d.c b/src/uxa/i965_3d.c
index fe2d9aa6..fe2d9aa6 100644
--- a/src/i965_3d.c
+++ b/src/uxa/i965_3d.c
diff --git a/src/i965_reg.h b/src/uxa/i965_reg.h
index 4bb5e4d2..4bb5e4d2 100644
--- a/src/i965_reg.h
+++ b/src/uxa/i965_reg.h
diff --git a/src/i965_render.c b/src/uxa/i965_render.c
index 39698b0d..39698b0d 100644
--- a/src/i965_render.c
+++ b/src/uxa/i965_render.c
diff --git a/src/i965_video.c b/src/uxa/i965_video.c
index 65f60612..5706b201 100644
--- a/src/i965_video.c
+++ b/src/uxa/i965_video.c
@@ -36,7 +36,7 @@
36#include "fourcc.h" 36#include "fourcc.h"
37 37
38#include "intel.h" 38#include "intel.h"
39#include "intel_hwmc.h" 39#include "intel_xvmc.h"
40#include "intel_video.h" 40#include "intel_video.h"
41#include "i830_reg.h" 41#include "i830_reg.h"
42#include "i965_reg.h" 42#include "i965_reg.h"
diff --git a/src/intel.h b/src/uxa/intel.h
index d4c9aff2..d4c9aff2 100644
--- a/src/intel.h
+++ b/src/uxa/intel.h
diff --git a/src/intel_batchbuffer.c b/src/uxa/intel_batchbuffer.c
index a44a1563..a44a1563 100644
--- a/src/intel_batchbuffer.c
+++ b/src/uxa/intel_batchbuffer.c
diff --git a/src/intel_batchbuffer.h b/src/uxa/intel_batchbuffer.h
index b2bb390c..b2bb390c 100644
--- a/src/intel_batchbuffer.h
+++ b/src/uxa/intel_batchbuffer.h
diff --git a/src/intel_display.c b/src/uxa/intel_display.c
index 0acb86d4..0acb86d4 100644
--- a/src/intel_display.c
+++ b/src/uxa/intel_display.c
diff --git a/src/intel_dri.c b/src/uxa/intel_dri.c
index 03700343..03700343 100644
--- a/src/intel_dri.c
+++ b/src/uxa/intel_dri.c
diff --git a/src/intel_driver.c b/src/uxa/intel_driver.c
index f4d76bb4..726f0b8b 100644
--- a/src/intel_driver.c
+++ b/src/uxa/intel_driver.c
@@ -66,7 +66,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
66 66
67#ifdef INTEL_XVMC 67#ifdef INTEL_XVMC
68#define _INTEL_XVMC_SERVER_ 68#define _INTEL_XVMC_SERVER_
69#include "intel_hwmc.h" 69#include "intel_xvmc.h"
70#endif 70#endif
71 71
72#include "legacy/legacy.h" 72#include "legacy/legacy.h"
diff --git a/src/intel_glamor.c b/src/uxa/intel_glamor.c
index 0c4e3a77..0c4e3a77 100644
--- a/src/intel_glamor.c
+++ b/src/uxa/intel_glamor.c
diff --git a/src/intel_glamor.h b/src/uxa/intel_glamor.h
index 46692bc8..46692bc8 100644
--- a/src/intel_glamor.h
+++ b/src/uxa/intel_glamor.h
diff --git a/src/intel_hwmc.c b/src/uxa/intel_hwmc.c
index 25978d22..f991aa65 100644
--- a/src/intel_hwmc.c
+++ b/src/uxa/intel_hwmc.c
@@ -30,7 +30,7 @@
30 30
31#define _INTEL_XVMC_SERVER_ 31#define _INTEL_XVMC_SERVER_
32#include "intel.h" 32#include "intel.h"
33#include "intel_hwmc.h" 33#include "intel_xvmc.h"
34 34
35#include <X11/extensions/Xv.h> 35#include <X11/extensions/Xv.h>
36#include <X11/extensions/XvMC.h> 36#include <X11/extensions/XvMC.h>
diff --git a/src/intel_memory.c b/src/uxa/intel_memory.c
index e51fa33a..e51fa33a 100644
--- a/src/intel_memory.c
+++ b/src/uxa/intel_memory.c
diff --git a/src/intel_uxa.c b/src/uxa/intel_uxa.c
index 2f141735..2f141735 100644
--- a/src/intel_uxa.c
+++ b/src/uxa/intel_uxa.c
diff --git a/src/intel_video.c b/src/uxa/intel_video.c
index 6cce1824..c74b793b 100644
--- a/src/intel_video.c
+++ b/src/uxa/intel_video.c
@@ -75,7 +75,7 @@
75 75
76#ifdef INTEL_XVMC 76#ifdef INTEL_XVMC
77#define _INTEL_XVMC_SERVER_ 77#define _INTEL_XVMC_SERVER_
78#include "intel_hwmc.h" 78#include "intel_xvmc.h"
79#endif 79#endif
80 80
81#define OFF_DELAY 250 /* milliseconds */ 81#define OFF_DELAY 250 /* milliseconds */
diff --git a/src/intel_video.h b/src/uxa/intel_video.h
index f405d40b..f405d40b 100644
--- a/src/intel_video.h
+++ b/src/uxa/intel_video.h
diff --git a/src/uxa/uxa_module.h b/src/uxa/uxa_module.h
new file mode 100644
index 00000000..7a248f08
--- /dev/null
+++ b/src/uxa/uxa_module.h
@@ -0,0 +1,6 @@
1#ifndef INTEL_MODULE_H
2#define INTEL_MODULE_H
3
4extern Bool intel_init_scrn(ScrnInfoPtr scrn);
5
6#endif /* INTEL_MODULE_H */
diff --git a/src/xvmc/Makefile.am b/src/xvmc/Makefile.am
deleted file mode 100644
index 51c98b0c..00000000
--- a/src/xvmc/Makefile.am
+++ /dev/null
@@ -1,24 +0,0 @@
1if XVMC
2lib_LTLIBRARIES=libIntelXvMC.la
3endif
4
5SUBDIRS = shader
6
7libIntelXvMC_la_SOURCES = intel_xvmc.c \
8 intel_xvmc.h \
9 intel_xvmc_dump.c \
10 i915_structs.h \
11 i915_program.h \
12 i915_xvmc.c \
13 i915_xvmc.h \
14 i965_xvmc.c \
15 xvmc_vld.c \
16 intel_batchbuffer.c \
17 intel_batchbuffer.h
18
19AM_CFLAGS = @XORG_CFLAGS@ @DRM_CFLAGS@ @DRI_CFLAGS@ \
20 @XVMCLIB_CFLAGS@ @XCB_CFLAGS@ \
21 -I$(top_srcdir)/src -DTRUE=1 -DFALSE=0
22
23libIntelXvMC_la_LDFLAGS = -version-number 1:0:0
24libIntelXvMC_la_LIBADD = @DRI_LIBS@ @DRM_LIBS@ @XVMCLIB_LIBS@ @XCB_LIBS@ @DRMINTEL_LIBS@ -lpthread
diff --git a/uxa/Makefile.am b/uxa/Makefile.am
index 9763637a..2d10f229 100644
--- a/uxa/Makefile.am
+++ b/uxa/Makefile.am
@@ -4,7 +4,7 @@ noinst_LTLIBRARIES = libuxa.la
4# built (in hw/xfree86/os-support/solaris) until after UXA is built 4# built (in hw/xfree86/os-support/solaris) until after UXA is built
5SOLARIS_ASM_CFLAGS="" 5SOLARIS_ASM_CFLAGS=""
6 6
7AM_CFLAGS = $(CWARNFLAGS) $(XORG_CFLAGS) 7AM_CFLAGS = $(CWARNFLAGS) $(XORG_CFLAGS) -I$(top_srcdir)/src/uxa
8 8
9if GLAMOR 9if GLAMOR
10AM_CFLAGS += @LIBGLAMOR_CFLAGS@ 10AM_CFLAGS += @LIBGLAMOR_CFLAGS@
diff --git a/uxa/uxa-glyphs.c b/uxa/uxa-glyphs.c
index f5d4d08b..b022c833 100644
--- a/uxa/uxa-glyphs.c
+++ b/uxa/uxa-glyphs.c
@@ -66,7 +66,7 @@
66 66
67#include "uxa-priv.h" 67#include "uxa-priv.h"
68#include "uxa-glamor.h" 68#include "uxa-glamor.h"
69#include "../src/common.h" 69#include "common.h"
70 70
71#include "mipict.h" 71#include "mipict.h"
72 72
diff --git a/xvmc/Makefile.am b/xvmc/Makefile.am
new file mode 100644
index 00000000..dd884a51
--- /dev/null
+++ b/xvmc/Makefile.am
@@ -0,0 +1,32 @@
1if XVMC
2lib_LTLIBRARIES=libIntelXvMC.la
3endif
4
5SUBDIRS = shader
6
7libIntelXvMC_la_SOURCES = \
8 intel_xvmc.c \
9 intel_xvmc.h \
10 intel_xvmc_private.h \
11 intel_xvmc_dump.c \
12 i830_reg.h \
13 i915_reg.h \
14 i915_structs.h \
15 i915_program.h \
16 i915_xvmc.c \
17 i915_xvmc.h \
18 brw_defines.h \
19 brw_structs.h \
20 i965_reg.h \
21 i965_xvmc.c \
22 xvmc_vld.c \
23 intel_batchbuffer.c \
24 intel_batchbuffer.h \
25 $(NULL)
26
27AM_CFLAGS = @XORG_CFLAGS@ @DRM_CFLAGS@ @DRI_CFLAGS@ \
28 @XVMCLIB_CFLAGS@ @XCB_CFLAGS@ \
29 -I$(top_srcdir)/src -DTRUE=1 -DFALSE=0
30
31libIntelXvMC_la_LDFLAGS = -version-number 1:0:0
32libIntelXvMC_la_LIBADD = @DRI_LIBS@ @DRM_LIBS@ @XVMCLIB_LIBS@ @XCB_LIBS@ @DRMINTEL_LIBS@ -lpthread
diff --git a/xvmc/brw_defines.h b/xvmc/brw_defines.h
new file mode 100644
index 00000000..e580a8f4
--- /dev/null
+++ b/xvmc/brw_defines.h
@@ -0,0 +1,881 @@
1 /**************************************************************************
2 *
3 * Copyright 2005 Tungsten Graphics, Inc., Cedar Park, Texas.
4 * All Rights Reserved.
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a
7 * copy of this software and associated documentation files (the
8 * "Software"), to deal in the Software without restriction, including
9 * without limitation the rights to use, copy, modify, merge, publish,
10 * distribute, sub license, and/or sell copies of the Software, and to
11 * permit persons to whom the Software is furnished to do so, subject to
12 * the following conditions:
13 *
14 * The above copyright notice and this permission notice (including the
15 * next paragraph) shall be included in all copies or substantial portions
16 * of the Software.
17 *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21 * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
22 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25 *
26 **************************************************************************/
27
28#ifndef BRW_DEFINES_H
29#define BRW_DEFINES_H
30
31/*
32 */
33#if 0
34#define MI_NOOP 0x00
35#define MI_USER_INTERRUPT 0x02
36#define MI_WAIT_FOR_EVENT 0x03
37#define MI_FLUSH 0x04
38#define MI_REPORT_HEAD 0x07
39#define MI_ARB_ON_OFF 0x08
40#define MI_BATCH_BUFFER_END 0x0A
41#define MI_OVERLAY_FLIP 0x11
42#define MI_LOAD_SCAN_LINES_INCL 0x12
43#define MI_LOAD_SCAN_LINES_EXCL 0x13
44#define MI_DISPLAY_BUFFER_INFO 0x14
45#define MI_SET_CONTEXT 0x18
46#define MI_STORE_DATA_IMM 0x20
47#define MI_STORE_DATA_INDEX 0x21
48#define MI_LOAD_REGISTER_IMM 0x22
49#define MI_STORE_REGISTER_MEM 0x24
50#define MI_BATCH_BUFFER_START 0x31
51
52#define MI_SYNCHRONOUS_FLIP 0x0
53#define MI_ASYNCHRONOUS_FLIP 0x1
54
55#define MI_BUFFER_SECURE 0x0
56#define MI_BUFFER_NONSECURE 0x1
57
58#define MI_ARBITRATE_AT_CHAIN_POINTS 0x0
59#define MI_ARBITRATE_BETWEEN_INSTS 0x1
60#define MI_NO_ARBITRATION 0x3
61
62#define MI_CONDITION_CODE_WAIT_DISABLED 0x0
63#define MI_CONDITION_CODE_WAIT_0 0x1
64#define MI_CONDITION_CODE_WAIT_1 0x2
65#define MI_CONDITION_CODE_WAIT_2 0x3
66#define MI_CONDITION_CODE_WAIT_3 0x4
67#define MI_CONDITION_CODE_WAIT_4 0x5
68
69#define MI_DISPLAY_PIPE_A 0x0
70#define MI_DISPLAY_PIPE_B 0x1
71
72#define MI_DISPLAY_PLANE_A 0x0
73#define MI_DISPLAY_PLANE_B 0x1
74#define MI_DISPLAY_PLANE_C 0x2
75
76#define MI_STANDARD_FLIP 0x0
77#define MI_ENQUEUE_FLIP_PERFORM_BASE_FRAME_NUMBER_LOAD 0x1
78#define MI_ENQUEUE_FLIP_TARGET_FRAME_NUMBER_RELATIVE 0x2
79#define MI_ENQUEUE_FLIP_ABSOLUTE_TARGET_FRAME_NUMBER 0x3
80
81#define MI_PHYSICAL_ADDRESS 0x0
82#define MI_VIRTUAL_ADDRESS 0x1
83
84#define MI_BUFFER_MEMORY_MAIN 0x0
85#define MI_BUFFER_MEMORY_GTT 0x2
86#define MI_BUFFER_MEMORY_PER_PROCESS_GTT 0x3
87
88#define MI_FLIP_CONTINUE 0x0
89#define MI_FLIP_ON 0x1
90#define MI_FLIP_OFF 0x2
91
92#define MI_UNTRUSTED_REGISTER_SPACE 0x0
93#define MI_TRUSTED_REGISTER_SPACE 0x1
94#endif
95
96/* 3D state:
97 */
98#define _3DOP_3DSTATE_PIPELINED 0x0
99#define _3DOP_3DSTATE_NONPIPELINED 0x1
100#define _3DOP_3DCONTROL 0x2
101#define _3DOP_3DPRIMITIVE 0x3
102
103#define _3DSTATE_PIPELINED_POINTERS 0x00
104#define _3DSTATE_BINDING_TABLE_POINTERS 0x01
105#define _3DSTATE_VERTEX_BUFFERS 0x08
106#define _3DSTATE_VERTEX_ELEMENTS 0x09
107#define _3DSTATE_INDEX_BUFFER 0x0A
108#define _3DSTATE_VF_STATISTICS 0x0B
109#define _3DSTATE_DRAWING_RECTANGLE 0x00
110#define _3DSTATE_CONSTANT_COLOR 0x01
111#define _3DSTATE_SAMPLER_PALETTE_LOAD 0x02
112#define _3DSTATE_CHROMA_KEY 0x04
113#define _3DSTATE_DEPTH_BUFFER 0x05
114#define _3DSTATE_POLY_STIPPLE_OFFSET 0x06
115#define _3DSTATE_POLY_STIPPLE_PATTERN 0x07
116#define _3DSTATE_LINE_STIPPLE 0x08
117#define _3DSTATE_GLOBAL_DEPTH_OFFSET_CLAMP 0x09
118#define _3DCONTROL 0x00
119#define _3DPRIMITIVE 0x00
120
121#define PIPE_CONTROL_NOWRITE 0x00
122#define PIPE_CONTROL_WRITEIMMEDIATE 0x01
123#define PIPE_CONTROL_WRITEDEPTH 0x02
124#define PIPE_CONTROL_WRITETIMESTAMP 0x03
125
126#define PIPE_CONTROL_GTTWRITE_PROCESS_LOCAL 0x00
127#define PIPE_CONTROL_GTTWRITE_GLOBAL 0x01
128
129#define _3DPRIM_POINTLIST 0x01
130#define _3DPRIM_LINELIST 0x02
131#define _3DPRIM_LINESTRIP 0x03
132#define _3DPRIM_TRILIST 0x04
133#define _3DPRIM_TRISTRIP 0x05
134#define _3DPRIM_TRIFAN 0x06
135#define _3DPRIM_QUADLIST 0x07
136#define _3DPRIM_QUADSTRIP 0x08
137#define _3DPRIM_LINELIST_ADJ 0x09
138#define _3DPRIM_LINESTRIP_ADJ 0x0A
139#define _3DPRIM_TRILIST_ADJ 0x0B
140#define _3DPRIM_TRISTRIP_ADJ 0x0C
141#define _3DPRIM_TRISTRIP_REVERSE 0x0D
142#define _3DPRIM_POLYGON 0x0E
143#define _3DPRIM_RECTLIST 0x0F
144#define _3DPRIM_LINELOOP 0x10
145#define _3DPRIM_POINTLIST_BF 0x11
146#define _3DPRIM_LINESTRIP_CONT 0x12
147#define _3DPRIM_LINESTRIP_BF 0x13
148#define _3DPRIM_LINESTRIP_CONT_BF 0x14
149#define _3DPRIM_TRIFAN_NOSTIPPLE 0x15
150
151#define _3DPRIM_VERTEXBUFFER_ACCESS_SEQUENTIAL 0
152#define _3DPRIM_VERTEXBUFFER_ACCESS_RANDOM 1
153
154#define BRW_ANISORATIO_2 0
155#define BRW_ANISORATIO_4 1
156#define BRW_ANISORATIO_6 2
157#define BRW_ANISORATIO_8 3
158#define BRW_ANISORATIO_10 4
159#define BRW_ANISORATIO_12 5
160#define BRW_ANISORATIO_14 6
161#define BRW_ANISORATIO_16 7
162
163#define BRW_BLENDFACTOR_ONE 0x1
164#define BRW_BLENDFACTOR_SRC_COLOR 0x2
165#define BRW_BLENDFACTOR_SRC_ALPHA 0x3
166#define BRW_BLENDFACTOR_DST_ALPHA 0x4
167#define BRW_BLENDFACTOR_DST_COLOR 0x5
168#define BRW_BLENDFACTOR_SRC_ALPHA_SATURATE 0x6
169#define BRW_BLENDFACTOR_CONST_COLOR 0x7
170#define BRW_BLENDFACTOR_CONST_ALPHA 0x8
171#define BRW_BLENDFACTOR_SRC1_COLOR 0x9
172#define BRW_BLENDFACTOR_SRC1_ALPHA 0x0A
173#define BRW_BLENDFACTOR_ZERO 0x11
174#define BRW_BLENDFACTOR_INV_SRC_COLOR 0x12
175#define BRW_BLENDFACTOR_INV_SRC_ALPHA 0x13
176#define BRW_BLENDFACTOR_INV_DST_ALPHA 0x14
177#define BRW_BLENDFACTOR_INV_DST_COLOR 0x15
178#define BRW_BLENDFACTOR_INV_CONST_COLOR 0x17
179#define BRW_BLENDFACTOR_INV_CONST_ALPHA 0x18
180#define BRW_BLENDFACTOR_INV_SRC1_COLOR 0x19
181#define BRW_BLENDFACTOR_INV_SRC1_ALPHA 0x1A
182
183#define BRW_BLENDFUNCTION_ADD 0
184#define BRW_BLENDFUNCTION_SUBTRACT 1
185#define BRW_BLENDFUNCTION_REVERSE_SUBTRACT 2
186#define BRW_BLENDFUNCTION_MIN 3
187#define BRW_BLENDFUNCTION_MAX 4
188
189#define BRW_ALPHATEST_FORMAT_UNORM8 0
190#define BRW_ALPHATEST_FORMAT_FLOAT32 1
191
192#define BRW_CHROMAKEY_KILL_ON_ANY_MATCH 0
193#define BRW_CHROMAKEY_REPLACE_BLACK 1
194
195#define BRW_CLIP_API_OGL 0
196#define BRW_CLIP_API_DX 1
197
198#define BRW_CLIPMODE_NORMAL 0
199#define BRW_CLIPMODE_CLIP_ALL 1
200#define BRW_CLIPMODE_CLIP_NON_REJECTED 2
201#define BRW_CLIPMODE_REJECT_ALL 3
202#define BRW_CLIPMODE_ACCEPT_ALL 4
203
204#define BRW_CLIP_NDCSPACE 0
205#define BRW_CLIP_SCREENSPACE 1
206
207#define BRW_COMPAREFUNCTION_ALWAYS 0
208#define BRW_COMPAREFUNCTION_NEVER 1
209#define BRW_COMPAREFUNCTION_LESS 2
210#define BRW_COMPAREFUNCTION_EQUAL 3
211#define BRW_COMPAREFUNCTION_LEQUAL 4
212#define BRW_COMPAREFUNCTION_GREATER 5
213#define BRW_COMPAREFUNCTION_NOTEQUAL 6
214#define BRW_COMPAREFUNCTION_GEQUAL 7
215
216#define BRW_COVERAGE_PIXELS_HALF 0
217#define BRW_COVERAGE_PIXELS_1 1
218#define BRW_COVERAGE_PIXELS_2 2
219#define BRW_COVERAGE_PIXELS_4 3
220
221#define BRW_CULLMODE_BOTH 0
222#define BRW_CULLMODE_NONE 1
223#define BRW_CULLMODE_FRONT 2
224#define BRW_CULLMODE_BACK 3
225
226#define BRW_DEFAULTCOLOR_R8G8B8A8_UNORM 0
227#define BRW_DEFAULTCOLOR_R32G32B32A32_FLOAT 1
228
229#define BRW_DEPTHFORMAT_D32_FLOAT_S8X24_UINT 0
230#define BRW_DEPTHFORMAT_D32_FLOAT 1
231#define BRW_DEPTHFORMAT_D24_UNORM_S8_UINT 2
232#define BRW_DEPTHFORMAT_D16_UNORM 5
233
234#define BRW_FLOATING_POINT_IEEE_754 0
235#define BRW_FLOATING_POINT_NON_IEEE_754 1
236
237#define BRW_FRONTWINDING_CW 0
238#define BRW_FRONTWINDING_CCW 1
239
240#define BRW_INDEX_BYTE 0
241#define BRW_INDEX_WORD 1
242#define BRW_INDEX_DWORD 2
243
244#define BRW_LOGICOPFUNCTION_CLEAR 0
245#define BRW_LOGICOPFUNCTION_NOR 1
246#define BRW_LOGICOPFUNCTION_AND_INVERTED 2
247#define BRW_LOGICOPFUNCTION_COPY_INVERTED 3
248#define BRW_LOGICOPFUNCTION_AND_REVERSE 4
249#define BRW_LOGICOPFUNCTION_INVERT 5
250#define BRW_LOGICOPFUNCTION_XOR 6
251#define BRW_LOGICOPFUNCTION_NAND 7
252#define BRW_LOGICOPFUNCTION_AND 8
253#define BRW_LOGICOPFUNCTION_EQUIV 9
254#define BRW_LOGICOPFUNCTION_NOOP 10
255#define BRW_LOGICOPFUNCTION_OR_INVERTED 11
256#define BRW_LOGICOPFUNCTION_COPY 12
257#define BRW_LOGICOPFUNCTION_OR_REVERSE 13
258#define BRW_LOGICOPFUNCTION_OR 14
259#define BRW_LOGICOPFUNCTION_SET 15
260
261#define BRW_MAPFILTER_NEAREST 0x0
262#define BRW_MAPFILTER_LINEAR 0x1
263#define BRW_MAPFILTER_ANISOTROPIC 0x2
264
265#define BRW_MIPFILTER_NONE 0
266#define BRW_MIPFILTER_NEAREST 1
267#define BRW_MIPFILTER_LINEAR 3
268
269#define BRW_POLYGON_FRONT_FACING 0
270#define BRW_POLYGON_BACK_FACING 1
271
272#define BRW_PREFILTER_ALWAYS 0x0
273#define BRW_PREFILTER_NEVER 0x1
274#define BRW_PREFILTER_LESS 0x2
275#define BRW_PREFILTER_EQUAL 0x3
276#define BRW_PREFILTER_LEQUAL 0x4
277#define BRW_PREFILTER_GREATER 0x5
278#define BRW_PREFILTER_NOTEQUAL 0x6
279#define BRW_PREFILTER_GEQUAL 0x7
280
281#define BRW_PROVOKING_VERTEX_0 0
282#define BRW_PROVOKING_VERTEX_1 1
283#define BRW_PROVOKING_VERTEX_2 2
284
285#define BRW_RASTRULE_UPPER_LEFT 0
286#define BRW_RASTRULE_UPPER_RIGHT 1
287
288#define BRW_RENDERTARGET_CLAMPRANGE_UNORM 0
289#define BRW_RENDERTARGET_CLAMPRANGE_SNORM 1
290#define BRW_RENDERTARGET_CLAMPRANGE_FORMAT 2
291
292#define BRW_STENCILOP_KEEP 0
293#define BRW_STENCILOP_ZERO 1
294#define BRW_STENCILOP_REPLACE 2
295#define BRW_STENCILOP_INCRSAT 3
296#define BRW_STENCILOP_DECRSAT 4
297#define BRW_STENCILOP_INCR 5
298#define BRW_STENCILOP_DECR 6
299#define BRW_STENCILOP_INVERT 7
300
301#define BRW_SURFACE_MIPMAPLAYOUT_BELOW 0
302#define BRW_SURFACE_MIPMAPLAYOUT_RIGHT 1
303
304#define BRW_SURFACEFORMAT_R32G32B32A32_FLOAT 0x000
305#define BRW_SURFACEFORMAT_R32G32B32A32_SINT 0x001
306#define BRW_SURFACEFORMAT_R32G32B32A32_UINT 0x002
307#define BRW_SURFACEFORMAT_R32G32B32A32_UNORM 0x003
308#define BRW_SURFACEFORMAT_R32G32B32A32_SNORM 0x004
309#define BRW_SURFACEFORMAT_R64G64_FLOAT 0x005
310#define BRW_SURFACEFORMAT_R32G32B32X32_FLOAT 0x006
311#define BRW_SURFACEFORMAT_R32G32B32A32_SSCALED 0x007
312#define BRW_SURFACEFORMAT_R32G32B32A32_USCALED 0x008
313#define BRW_SURFACEFORMAT_R32G32B32_FLOAT 0x040
314#define BRW_SURFACEFORMAT_R32G32B32_SINT 0x041
315#define BRW_SURFACEFORMAT_R32G32B32_UINT 0x042
316#define BRW_SURFACEFORMAT_R32G32B32_UNORM 0x043
317#define BRW_SURFACEFORMAT_R32G32B32_SNORM 0x044
318#define BRW_SURFACEFORMAT_R32G32B32_SSCALED 0x045
319#define BRW_SURFACEFORMAT_R32G32B32_USCALED 0x046
320#define BRW_SURFACEFORMAT_R16G16B16A16_UNORM 0x080
321#define BRW_SURFACEFORMAT_R16G16B16A16_SNORM 0x081
322#define BRW_SURFACEFORMAT_R16G16B16A16_SINT 0x082
323#define BRW_SURFACEFORMAT_R16G16B16A16_UINT 0x083
324#define BRW_SURFACEFORMAT_R16G16B16A16_FLOAT 0x084
325#define BRW_SURFACEFORMAT_R32G32_FLOAT 0x085
326#define BRW_SURFACEFORMAT_R32G32_SINT 0x086
327#define BRW_SURFACEFORMAT_R32G32_UINT 0x087
328#define BRW_SURFACEFORMAT_R32_FLOAT_X8X24_TYPELESS 0x088
329#define BRW_SURFACEFORMAT_X32_TYPELESS_G8X24_UINT 0x089
330#define BRW_SURFACEFORMAT_L32A32_FLOAT 0x08A
331#define BRW_SURFACEFORMAT_R32G32_UNORM 0x08B
332#define BRW_SURFACEFORMAT_R32G32_SNORM 0x08C
333#define BRW_SURFACEFORMAT_R64_FLOAT 0x08D
334#define BRW_SURFACEFORMAT_R16G16B16X16_UNORM 0x08E
335#define BRW_SURFACEFORMAT_R16G16B16X16_FLOAT 0x08F
336#define BRW_SURFACEFORMAT_A32X32_FLOAT 0x090
337#define BRW_SURFACEFORMAT_L32X32_FLOAT 0x091
338#define BRW_SURFACEFORMAT_I32X32_FLOAT 0x092
339#define BRW_SURFACEFORMAT_R16G16B16A16_SSCALED 0x093
340#define BRW_SURFACEFORMAT_R16G16B16A16_USCALED 0x094
341#define BRW_SURFACEFORMAT_R32G32_SSCALED 0x095
342#define BRW_SURFACEFORMAT_R32G32_USCALED 0x096
343#define BRW_SURFACEFORMAT_B8G8R8A8_UNORM 0x0C0
344#define BRW_SURFACEFORMAT_B8G8R8A8_UNORM_SRGB 0x0C1
345#define BRW_SURFACEFORMAT_R10G10B10A2_UNORM 0x0C2
346#define BRW_SURFACEFORMAT_R10G10B10A2_UNORM_SRGB 0x0C3
347#define BRW_SURFACEFORMAT_R10G10B10A2_UINT 0x0C4
348#define BRW_SURFACEFORMAT_R10G10B10_SNORM_A2_UNORM 0x0C5
349#define BRW_SURFACEFORMAT_R8G8B8A8_UNORM 0x0C7
350#define BRW_SURFACEFORMAT_R8G8B8A8_UNORM_SRGB 0x0C8
351#define BRW_SURFACEFORMAT_R8G8B8A8_SNORM 0x0C9
352#define BRW_SURFACEFORMAT_R8G8B8A8_SINT 0x0CA
353#define BRW_SURFACEFORMAT_R8G8B8A8_UINT 0x0CB
354#define BRW_SURFACEFORMAT_R16G16_UNORM 0x0CC
355#define BRW_SURFACEFORMAT_R16G16_SNORM 0x0CD
356#define BRW_SURFACEFORMAT_R16G16_SINT 0x0CE
357#define BRW_SURFACEFORMAT_R16G16_UINT 0x0CF
358#define BRW_SURFACEFORMAT_R16G16_FLOAT 0x0D0
359#define BRW_SURFACEFORMAT_B10G10R10A2_UNORM 0x0D1
360#define BRW_SURFACEFORMAT_B10G10R10A2_UNORM_SRGB 0x0D2
361#define BRW_SURFACEFORMAT_R11G11B10_FLOAT 0x0D3
362#define BRW_SURFACEFORMAT_R32_SINT 0x0D6
363#define BRW_SURFACEFORMAT_R32_UINT 0x0D7
364#define BRW_SURFACEFORMAT_R32_FLOAT 0x0D8
365#define BRW_SURFACEFORMAT_R24_UNORM_X8_TYPELESS 0x0D9
366#define BRW_SURFACEFORMAT_X24_TYPELESS_G8_UINT 0x0DA
367#define BRW_SURFACEFORMAT_L16A16_UNORM 0x0DF
368#define BRW_SURFACEFORMAT_I24X8_UNORM 0x0E0
369#define BRW_SURFACEFORMAT_L24X8_UNORM 0x0E1
370#define BRW_SURFACEFORMAT_A24X8_UNORM 0x0E2
371#define BRW_SURFACEFORMAT_I32_FLOAT 0x0E3
372#define BRW_SURFACEFORMAT_L32_FLOAT 0x0E4
373#define BRW_SURFACEFORMAT_A32_FLOAT 0x0E5
374#define BRW_SURFACEFORMAT_B8G8R8X8_UNORM 0x0E9
375#define BRW_SURFACEFORMAT_B8G8R8X8_UNORM_SRGB 0x0EA
376#define BRW_SURFACEFORMAT_R8G8B8X8_UNORM 0x0EB
377#define BRW_SURFACEFORMAT_R8G8B8X8_UNORM_SRGB 0x0EC
378#define BRW_SURFACEFORMAT_R9G9B9E5_SHAREDEXP 0x0ED
379#define BRW_SURFACEFORMAT_B10G10R10X2_UNORM 0x0EE
380#define BRW_SURFACEFORMAT_L16A16_FLOAT 0x0F0
381#define BRW_SURFACEFORMAT_R32_UNORM 0x0F1
382#define BRW_SURFACEFORMAT_R32_SNORM 0x0F2
383#define BRW_SURFACEFORMAT_R10G10B10X2_USCALED 0x0F3
384#define BRW_SURFACEFORMAT_R8G8B8A8_SSCALED 0x0F4
385#define BRW_SURFACEFORMAT_R8G8B8A8_USCALED 0x0F5
386#define BRW_SURFACEFORMAT_R16G16_SSCALED 0x0F6
387#define BRW_SURFACEFORMAT_R16G16_USCALED 0x0F7
388#define BRW_SURFACEFORMAT_R32_SSCALED 0x0F8
389#define BRW_SURFACEFORMAT_R32_USCALED 0x0F9
390#define BRW_SURFACEFORMAT_B5G6R5_UNORM 0x100
391#define BRW_SURFACEFORMAT_B5G6R5_UNORM_SRGB 0x101
392#define BRW_SURFACEFORMAT_B5G5R5A1_UNORM 0x102
393#define BRW_SURFACEFORMAT_B5G5R5A1_UNORM_SRGB 0x103
394#define BRW_SURFACEFORMAT_B4G4R4A4_UNORM 0x104
395#define BRW_SURFACEFORMAT_B4G4R4A4_UNORM_SRGB 0x105
396#define BRW_SURFACEFORMAT_R8G8_UNORM 0x106
397#define BRW_SURFACEFORMAT_R8G8_SNORM 0x107
398#define BRW_SURFACEFORMAT_R8G8_SINT 0x108
399#define BRW_SURFACEFORMAT_R8G8_UINT 0x109
400#define BRW_SURFACEFORMAT_R16_UNORM 0x10A
401#define BRW_SURFACEFORMAT_R16_SNORM 0x10B
402#define BRW_SURFACEFORMAT_R16_SINT 0x10C
403#define BRW_SURFACEFORMAT_R16_UINT 0x10D
404#define BRW_SURFACEFORMAT_R16_FLOAT 0x10E
405#define BRW_SURFACEFORMAT_I16_UNORM 0x111
406#define BRW_SURFACEFORMAT_L16_UNORM 0x112
407#define BRW_SURFACEFORMAT_A16_UNORM 0x113
408#define BRW_SURFACEFORMAT_L8A8_UNORM 0x114
409#define BRW_SURFACEFORMAT_I16_FLOAT 0x115
410#define BRW_SURFACEFORMAT_L16_FLOAT 0x116
411#define BRW_SURFACEFORMAT_A16_FLOAT 0x117
412#define BRW_SURFACEFORMAT_R5G5_SNORM_B6_UNORM 0x119
413#define BRW_SURFACEFORMAT_B5G5R5X1_UNORM 0x11A
414#define BRW_SURFACEFORMAT_B5G5R5X1_UNORM_SRGB 0x11B
415#define BRW_SURFACEFORMAT_R8G8_SSCALED 0x11C
416#define BRW_SURFACEFORMAT_R8G8_USCALED 0x11D
417#define BRW_SURFACEFORMAT_R16_SSCALED 0x11E
418#define BRW_SURFACEFORMAT_R16_USCALED 0x11F
419#define BRW_SURFACEFORMAT_R8_UNORM 0x140
420#define BRW_SURFACEFORMAT_R8_SNORM 0x141
421#define BRW_SURFACEFORMAT_R8_SINT 0x142
422#define BRW_SURFACEFORMAT_R8_UINT 0x143
423#define BRW_SURFACEFORMAT_A8_UNORM 0x144
424#define BRW_SURFACEFORMAT_I8_UNORM 0x145
425#define BRW_SURFACEFORMAT_L8_UNORM 0x146
426#define BRW_SURFACEFORMAT_P4A4_UNORM 0x147
427#define BRW_SURFACEFORMAT_A4P4_UNORM 0x148
428#define BRW_SURFACEFORMAT_R8_SSCALED 0x149
429#define BRW_SURFACEFORMAT_R8_USCALED 0x14A
430#define BRW_SURFACEFORMAT_R1_UINT 0x181
431#define BRW_SURFACEFORMAT_YCRCB_NORMAL 0x182
432#define BRW_SURFACEFORMAT_YCRCB_SWAPUVY 0x183
433#define BRW_SURFACEFORMAT_BC1_UNORM 0x186
434#define BRW_SURFACEFORMAT_BC2_UNORM 0x187
435#define BRW_SURFACEFORMAT_BC3_UNORM 0x188
436#define BRW_SURFACEFORMAT_BC4_UNORM 0x189
437#define BRW_SURFACEFORMAT_BC5_UNORM 0x18A
438#define BRW_SURFACEFORMAT_BC1_UNORM_SRGB 0x18B
439#define BRW_SURFACEFORMAT_BC2_UNORM_SRGB 0x18C
440#define BRW_SURFACEFORMAT_BC3_UNORM_SRGB 0x18D
441#define BRW_SURFACEFORMAT_MONO8 0x18E
442#define BRW_SURFACEFORMAT_YCRCB_SWAPUV 0x18F
443#define BRW_SURFACEFORMAT_YCRCB_SWAPY 0x190
444#define BRW_SURFACEFORMAT_DXT1_RGB 0x191
445#define BRW_SURFACEFORMAT_FXT1 0x192
446#define BRW_SURFACEFORMAT_R8G8B8_UNORM 0x193
447#define BRW_SURFACEFORMAT_R8G8B8_SNORM 0x194
448#define BRW_SURFACEFORMAT_R8G8B8_SSCALED 0x195
449#define BRW_SURFACEFORMAT_R8G8B8_USCALED 0x196
450#define BRW_SURFACEFORMAT_R64G64B64A64_FLOAT 0x197
451#define BRW_SURFACEFORMAT_R64G64B64_FLOAT 0x198
452#define BRW_SURFACEFORMAT_BC4_SNORM 0x199
453#define BRW_SURFACEFORMAT_BC5_SNORM 0x19A
454#define BRW_SURFACEFORMAT_R16G16B16_UNORM 0x19C
455#define BRW_SURFACEFORMAT_R16G16B16_SNORM 0x19D
456#define BRW_SURFACEFORMAT_R16G16B16_SSCALED 0x19E
457#define BRW_SURFACEFORMAT_R16G16B16_USCALED 0x19F
458
459#define BRW_SURFACERETURNFORMAT_FLOAT32 0
460#define BRW_SURFACERETURNFORMAT_S1 1
461
462#define BRW_SURFACE_1D 0
463#define BRW_SURFACE_2D 1
464#define BRW_SURFACE_3D 2
465#define BRW_SURFACE_CUBE 3
466#define BRW_SURFACE_BUFFER 4
467#define BRW_SURFACE_NULL 7
468
469#define BRW_BORDER_COLOR_MODE_DEFAULT 0
470#define BRW_BORDER_COLOR_MODE_LEGACY 1
471
472#define HSW_SCS_ZERO 0
473#define HSW_SCS_ONE 1
474#define HSW_SCS_RED 4
475#define HSW_SCS_GREEN 5
476#define HSW_SCS_BLUE 6
477#define HSW_SCS_ALPHA 7
478
479#define BRW_TEXCOORDMODE_WRAP 0
480#define BRW_TEXCOORDMODE_MIRROR 1
481#define BRW_TEXCOORDMODE_CLAMP 2
482#define BRW_TEXCOORDMODE_CUBE 3
483#define BRW_TEXCOORDMODE_CLAMP_BORDER 4
484#define BRW_TEXCOORDMODE_MIRROR_ONCE 5
485
486#define BRW_THREAD_PRIORITY_NORMAL 0
487#define BRW_THREAD_PRIORITY_HIGH 1
488
489#define BRW_TILEWALK_XMAJOR 0
490#define BRW_TILEWALK_YMAJOR 1
491
492#define BRW_VERTEX_SUBPIXEL_PRECISION_8BITS 0
493#define BRW_VERTEX_SUBPIXEL_PRECISION_4BITS 1
494
495#define BRW_VERTEXBUFFER_ACCESS_VERTEXDATA 0
496#define BRW_VERTEXBUFFER_ACCESS_INSTANCEDATA 1
497
498#define BRW_VFCOMPONENT_NOSTORE 0
499#define BRW_VFCOMPONENT_STORE_SRC 1
500#define BRW_VFCOMPONENT_STORE_0 2
501#define BRW_VFCOMPONENT_STORE_1_FLT 3
502#define BRW_VFCOMPONENT_STORE_1_INT 4
503#define BRW_VFCOMPONENT_STORE_VID 5
504#define BRW_VFCOMPONENT_STORE_IID 6
505#define BRW_VFCOMPONENT_STORE_PID 7
506
507
508
509/* Execution Unit (EU) defines
510 */
511
512#define BRW_ALIGN_1 0
513#define BRW_ALIGN_16 1
514
515#define BRW_ADDRESS_DIRECT 0
516#define BRW_ADDRESS_REGISTER_INDIRECT_REGISTER 1
517
518#define BRW_CHANNEL_X 0
519#define BRW_CHANNEL_Y 1
520#define BRW_CHANNEL_Z 2
521#define BRW_CHANNEL_W 3
522
523#define BRW_COMPRESSION_NONE 0
524#define BRW_COMPRESSION_2NDHALF 1
525#define BRW_COMPRESSION_COMPRESSED 2
526
527#define BRW_CONDITIONAL_NONE 0
528#define BRW_CONDITIONAL_Z 1
529#define BRW_CONDITIONAL_NZ 2
530#define BRW_CONDITIONAL_EQ 1 /* Z */
531#define BRW_CONDITIONAL_NEQ 2 /* NZ */
532#define BRW_CONDITIONAL_G 3
533#define BRW_CONDITIONAL_GE 4
534#define BRW_CONDITIONAL_L 5
535#define BRW_CONDITIONAL_LE 6
536#define BRW_CONDITIONAL_C 7
537#define BRW_CONDITIONAL_O 8
538
539#define BRW_DEBUG_NONE 0
540#define BRW_DEBUG_BREAKPOINT 1
541
542#define BRW_DEPENDENCY_NORMAL 0
543#define BRW_DEPENDENCY_NOTCLEARED 1
544#define BRW_DEPENDENCY_NOTCHECKED 2
545#define BRW_DEPENDENCY_DISABLE 3
546
547#define BRW_EXECUTE_1 0
548#define BRW_EXECUTE_2 1
549#define BRW_EXECUTE_4 2
550#define BRW_EXECUTE_8 3
551#define BRW_EXECUTE_16 4
552#define BRW_EXECUTE_32 5
553
554#define BRW_HORIZONTAL_STRIDE_0 0
555#define BRW_HORIZONTAL_STRIDE_1 1
556#define BRW_HORIZONTAL_STRIDE_2 2
557#define BRW_HORIZONTAL_STRIDE_4 3
558
559#define BRW_INSTRUCTION_NORMAL 0
560#define BRW_INSTRUCTION_SATURATE 1
561
562#define BRW_MASK_ENABLE 0
563#define BRW_MASK_DISABLE 1
564
565#define BRW_OPCODE_MOV 1
566#define BRW_OPCODE_SEL 2
567#define BRW_OPCODE_NOT 4
568#define BRW_OPCODE_AND 5
569#define BRW_OPCODE_OR 6
570#define BRW_OPCODE_XOR 7
571#define BRW_OPCODE_SHR 8
572#define BRW_OPCODE_SHL 9
573#define BRW_OPCODE_RSR 10
574#define BRW_OPCODE_RSL 11
575#define BRW_OPCODE_ASR 12
576#define BRW_OPCODE_CMP 16
577#define BRW_OPCODE_JMPI 32
578#define BRW_OPCODE_IF 34
579#define BRW_OPCODE_IFF 35
580#define BRW_OPCODE_ELSE 36
581#define BRW_OPCODE_ENDIF 37
582#define BRW_OPCODE_DO 38
583#define BRW_OPCODE_WHILE 39
584#define BRW_OPCODE_BREAK 40
585#define BRW_OPCODE_CONTINUE 41
586#define BRW_OPCODE_HALT 42
587#define BRW_OPCODE_MSAVE 44
588#define BRW_OPCODE_MRESTORE 45
589#define BRW_OPCODE_PUSH 46
590#define BRW_OPCODE_POP 47
591#define BRW_OPCODE_WAIT 48
592#define BRW_OPCODE_SEND 49
593#define BRW_OPCODE_ADD 64
594#define BRW_OPCODE_MUL 65
595#define BRW_OPCODE_AVG 66
596#define BRW_OPCODE_FRC 67
597#define BRW_OPCODE_RNDU 68
598#define BRW_OPCODE_RNDD 69
599#define BRW_OPCODE_RNDE 70
600#define BRW_OPCODE_RNDZ 71
601#define BRW_OPCODE_MAC 72
602#define BRW_OPCODE_MACH 73
603#define BRW_OPCODE_LZD 74
604#define BRW_OPCODE_SAD2 80
605#define BRW_OPCODE_SADA2 81
606#define BRW_OPCODE_DP4 84
607#define BRW_OPCODE_DPH 85
608#define BRW_OPCODE_DP3 86
609#define BRW_OPCODE_DP2 87
610#define BRW_OPCODE_DPA2 88
611#define BRW_OPCODE_LINE 89
612#define BRW_OPCODE_NOP 126
613
614#define BRW_PREDICATE_NONE 0
615#define BRW_PREDICATE_NORMAL 1
616#define BRW_PREDICATE_ALIGN1_ANYV 2
617#define BRW_PREDICATE_ALIGN1_ALLV 3
618#define BRW_PREDICATE_ALIGN1_ANY2H 4
619#define BRW_PREDICATE_ALIGN1_ALL2H 5
620#define BRW_PREDICATE_ALIGN1_ANY4H 6
621#define BRW_PREDICATE_ALIGN1_ALL4H 7
622#define BRW_PREDICATE_ALIGN1_ANY8H 8
623#define BRW_PREDICATE_ALIGN1_ALL8H 9
624#define BRW_PREDICATE_ALIGN1_ANY16H 10
625#define BRW_PREDICATE_ALIGN1_ALL16H 11
626#define BRW_PREDICATE_ALIGN16_REPLICATE_X 2
627#define BRW_PREDICATE_ALIGN16_REPLICATE_Y 3
628#define BRW_PREDICATE_ALIGN16_REPLICATE_Z 4
629#define BRW_PREDICATE_ALIGN16_REPLICATE_W 5
630#define BRW_PREDICATE_ALIGN16_ANY4H 6
631#define BRW_PREDICATE_ALIGN16_ALL4H 7
632
633#define BRW_ARCHITECTURE_REGISTER_FILE 0
634#define BRW_GENERAL_REGISTER_FILE 1
635#define BRW_MESSAGE_REGISTER_FILE 2
636#define BRW_IMMEDIATE_VALUE 3
637
638#define BRW_REGISTER_TYPE_UD 0
639#define BRW_REGISTER_TYPE_D 1
640#define BRW_REGISTER_TYPE_UW 2
641#define BRW_REGISTER_TYPE_W 3
642#define BRW_REGISTER_TYPE_UB 4
643#define BRW_REGISTER_TYPE_B 5
644#define BRW_REGISTER_TYPE_VF 5 /* packed float vector, immediates only? */
645#define BRW_REGISTER_TYPE_HF 6
646#define BRW_REGISTER_TYPE_V 6 /* packed int vector, immediates only, uword dest only */
647#define BRW_REGISTER_TYPE_F 7
648
649#define BRW_ARF_NULL 0x00
650#define BRW_ARF_ADDRESS 0x10
651#define BRW_ARF_ACCUMULATOR 0x20
652#define BRW_ARF_FLAG 0x30
653#define BRW_ARF_MASK 0x40
654#define BRW_ARF_MASK_STACK 0x50
655#define BRW_ARF_MASK_STACK_DEPTH 0x60
656#define BRW_ARF_STATE 0x70
657#define BRW_ARF_CONTROL 0x80
658#define BRW_ARF_NOTIFICATION_COUNT 0x90
659#define BRW_ARF_IP 0xA0
660
661#define BRW_AMASK 0
662#define BRW_IMASK 1
663#define BRW_LMASK 2
664#define BRW_CMASK 3
665
666
667
668#define BRW_THREAD_NORMAL 0
669#define BRW_THREAD_ATOMIC 1
670#define BRW_THREAD_SWITCH 2
671
672#define BRW_VERTICAL_STRIDE_0 0
673#define BRW_VERTICAL_STRIDE_1 1
674#define BRW_VERTICAL_STRIDE_2 2
675#define BRW_VERTICAL_STRIDE_4 3
676#define BRW_VERTICAL_STRIDE_8 4
677#define BRW_VERTICAL_STRIDE_16 5
678#define BRW_VERTICAL_STRIDE_32 6
679#define BRW_VERTICAL_STRIDE_64 7
680#define BRW_VERTICAL_STRIDE_128 8
681#define BRW_VERTICAL_STRIDE_256 9
682#define BRW_VERTICAL_STRIDE_ONE_DIMENSIONAL 0xF
683
684#define BRW_WIDTH_1 0
685#define BRW_WIDTH_2 1
686#define BRW_WIDTH_4 2
687#define BRW_WIDTH_8 3
688#define BRW_WIDTH_16 4
689
690#define BRW_STATELESS_BUFFER_BOUNDARY_1K 0
691#define BRW_STATELESS_BUFFER_BOUNDARY_2K 1
692#define BRW_STATELESS_BUFFER_BOUNDARY_4K 2
693#define BRW_STATELESS_BUFFER_BOUNDARY_8K 3
694#define BRW_STATELESS_BUFFER_BOUNDARY_16K 4
695#define BRW_STATELESS_BUFFER_BOUNDARY_32K 5
696#define BRW_STATELESS_BUFFER_BOUNDARY_64K 6
697#define BRW_STATELESS_BUFFER_BOUNDARY_128K 7
698#define BRW_STATELESS_BUFFER_BOUNDARY_256K 8
699#define BRW_STATELESS_BUFFER_BOUNDARY_512K 9
700#define BRW_STATELESS_BUFFER_BOUNDARY_1M 10
701#define BRW_STATELESS_BUFFER_BOUNDARY_2M 11
702
703#define BRW_POLYGON_FACING_FRONT 0
704#define BRW_POLYGON_FACING_BACK 1
705
706#define BRW_MESSAGE_TARGET_NULL 0
707#define BRW_MESSAGE_TARGET_MATH 1
708#define BRW_MESSAGE_TARGET_SAMPLER 2
709#define BRW_MESSAGE_TARGET_GATEWAY 3
710#define BRW_MESSAGE_TARGET_DATAPORT_READ 4
711#define BRW_MESSAGE_TARGET_DATAPORT_WRITE 5
712#define BRW_MESSAGE_TARGET_URB 6
713#define BRW_MESSAGE_TARGET_THREAD_SPAWNER 7
714
715#define BRW_SAMPLER_RETURN_FORMAT_FLOAT32 0
716#define BRW_SAMPLER_RETURN_FORMAT_UINT32 2
717#define BRW_SAMPLER_RETURN_FORMAT_SINT32 3
718
719#define BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE 0
720#define BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE 0
721#define BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE_BIAS 0
722#define BRW_SAMPLER_MESSAGE_SIMD8_KILLPIX 1
723#define BRW_SAMPLER_MESSAGE_SIMD4X2_SAMPLE_LOD 1
724#define BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE_LOD 1
725#define BRW_SAMPLER_MESSAGE_SIMD4X2_SAMPLE_GRADIENTS 2
726#define BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE_GRADIENTS 2
727#define BRW_SAMPLER_MESSAGE_SIMD4X2_SAMPLE_COMPARE 0
728#define BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE_COMPARE 2
729#define BRW_SAMPLER_MESSAGE_SIMD4X2_RESINFO 2
730#define BRW_SAMPLER_MESSAGE_SIMD8_RESINFO 2
731#define BRW_SAMPLER_MESSAGE_SIMD16_RESINFO 2
732#define BRW_SAMPLER_MESSAGE_SIMD4X2_LD 3
733#define BRW_SAMPLER_MESSAGE_SIMD8_LD 3
734#define BRW_SAMPLER_MESSAGE_SIMD16_LD 3
735
736#define BRW_DATAPORT_OWORD_BLOCK_1_OWORDLOW 0
737#define BRW_DATAPORT_OWORD_BLOCK_1_OWORDHIGH 1
738#define BRW_DATAPORT_OWORD_BLOCK_2_OWORDS 2
739#define BRW_DATAPORT_OWORD_BLOCK_4_OWORDS 3
740#define BRW_DATAPORT_OWORD_BLOCK_8_OWORDS 4
741
742#define BRW_DATAPORT_OWORD_DUAL_BLOCK_1OWORD 0
743#define BRW_DATAPORT_OWORD_DUAL_BLOCK_4OWORDS 2
744
745#define BRW_DATAPORT_DWORD_SCATTERED_BLOCK_8DWORDS 2
746#define BRW_DATAPORT_DWORD_SCATTERED_BLOCK_16DWORDS 3
747
748#define BRW_DATAPORT_READ_MESSAGE_OWORD_BLOCK_READ 0
749#define BRW_DATAPORT_READ_MESSAGE_OWORD_DUAL_BLOCK_READ 1
750#define BRW_DATAPORT_READ_MESSAGE_DWORD_BLOCK_READ 2
751#define BRW_DATAPORT_READ_MESSAGE_DWORD_SCATTERED_READ 3
752
753#define BRW_DATAPORT_READ_TARGET_DATA_CACHE 0
754#define BRW_DATAPORT_READ_TARGET_RENDER_CACHE 1
755#define BRW_DATAPORT_READ_TARGET_SAMPLER_CACHE 2
756
757#define BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD16_SINGLE_SOURCE 0
758#define BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD16_SINGLE_SOURCE_REPLICATED 1
759#define BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD8_DUAL_SOURCE_SUBSPAN01 2
760#define BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD8_DUAL_SOURCE_SUBSPAN23 3
761#define BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD8_SINGLE_SOURCE_SUBSPAN01 4
762
763#define BRW_DATAPORT_WRITE_MESSAGE_OWORD_BLOCK_WRITE 0
764#define BRW_DATAPORT_WRITE_MESSAGE_OWORD_DUAL_BLOCK_WRITE 1
765#define BRW_DATAPORT_WRITE_MESSAGE_DWORD_BLOCK_WRITE 2
766#define BRW_DATAPORT_WRITE_MESSAGE_DWORD_SCATTERED_WRITE 3
767#define BRW_DATAPORT_WRITE_MESSAGE_RENDER_TARGET_WRITE 4
768#define BRW_DATAPORT_WRITE_MESSAGE_STREAMED_VERTEX_BUFFER_WRITE 5
769#define BRW_DATAPORT_WRITE_MESSAGE_FLUSH_RENDER_CACHE 7
770
771#define BRW_MATH_FUNCTION_INV 1
772#define BRW_MATH_FUNCTION_LOG 2
773#define BRW_MATH_FUNCTION_EXP 3
774#define BRW_MATH_FUNCTION_SQRT 4
775#define BRW_MATH_FUNCTION_RSQ 5
776#define BRW_MATH_FUNCTION_SIN 6 /* was 7 */
777#define BRW_MATH_FUNCTION_COS 7 /* was 8 */
778#define BRW_MATH_FUNCTION_SINCOS 8 /* was 6 */
779#define BRW_MATH_FUNCTION_TAN 9
780#define BRW_MATH_FUNCTION_POW 10
781#define BRW_MATH_FUNCTION_INT_DIV_QUOTIENT_AND_REMAINDER 11
782#define BRW_MATH_FUNCTION_INT_DIV_QUOTIENT 12
783#define BRW_MATH_FUNCTION_INT_DIV_REMAINDER 13
784
785#define BRW_MATH_INTEGER_UNSIGNED 0
786#define BRW_MATH_INTEGER_SIGNED 1
787
788#define BRW_MATH_PRECISION_FULL 0
789#define BRW_MATH_PRECISION_PARTIAL 1
790
791#define BRW_MATH_SATURATE_NONE 0
792#define BRW_MATH_SATURATE_SATURATE 1
793
794#define BRW_MATH_DATA_VECTOR 0
795#define BRW_MATH_DATA_SCALAR 1
796
797#define BRW_URB_OPCODE_WRITE 0
798
799#define BRW_URB_SWIZZLE_NONE 0
800#define BRW_URB_SWIZZLE_INTERLEAVE 1
801#define BRW_URB_SWIZZLE_TRANSPOSE 2
802
803#define BRW_SCRATCH_SPACE_SIZE_1K 0
804#define BRW_SCRATCH_SPACE_SIZE_2K 1
805#define BRW_SCRATCH_SPACE_SIZE_4K 2
806#define BRW_SCRATCH_SPACE_SIZE_8K 3
807#define BRW_SCRATCH_SPACE_SIZE_16K 4
808#define BRW_SCRATCH_SPACE_SIZE_32K 5
809#define BRW_SCRATCH_SPACE_SIZE_64K 6
810#define BRW_SCRATCH_SPACE_SIZE_128K 7
811#define BRW_SCRATCH_SPACE_SIZE_256K 8
812#define BRW_SCRATCH_SPACE_SIZE_512K 9
813#define BRW_SCRATCH_SPACE_SIZE_1M 10
814#define BRW_SCRATCH_SPACE_SIZE_2M 11
815
816
817
818
819#define CMD_URB_FENCE 0x6000
820#define CMD_CONST_BUFFER_STATE 0x6001
821#define CMD_CONST_BUFFER 0x6002
822
823#define CMD_STATE_BASE_ADDRESS 0x6101
824#define CMD_STATE_INSN_POINTER 0x6102
825#define CMD_PIPELINE_SELECT 0x6104
826
827#define CMD_PIPELINED_STATE_POINTERS 0x7800
828#define CMD_BINDING_TABLE_PTRS 0x7801
829#define CMD_VERTEX_BUFFER 0x7808
830#define CMD_VERTEX_ELEMENT 0x7809
831#define CMD_INDEX_BUFFER 0x780a
832#define CMD_VF_STATISTICS 0x780b
833
834#define CMD_DRAW_RECT 0x7900
835#define CMD_BLEND_CONSTANT_COLOR 0x7901
836#define CMD_CHROMA_KEY 0x7904
837#define CMD_DEPTH_BUFFER 0x7905
838#define CMD_POLY_STIPPLE_OFFSET 0x7906
839#define CMD_POLY_STIPPLE_PATTERN 0x7907
840#define CMD_LINE_STIPPLE_PATTERN 0x7908
841#define CMD_GLOBAL_DEPTH_OFFSET_CLAMP 0x7908
842
843#define CMD_PIPE_CONTROL 0x7a00
844
845#define CMD_3D_PRIM 0x7b00
846
847#define CMD_MI_FLUSH 0x0200
848
849
850/* Various values from the R0 vertex header:
851 */
852#define R02_PRIM_END 0x1
853#define R02_PRIM_START 0x2
854
855/* media pipeline */
856
857#define BRW_VFE_MODE_GENERIC 0x0
858#define BRW_VFE_MODE_VLD_MPEG2 0x1
859#define BRW_VFE_MODE_IS 0x2
860#define BRW_VFE_MODE_AVC_MC 0x4
861#define BRW_VFE_MODE_AVC_IT 0x7
862#define BRW_VFE_MODE_VC1_IT 0xB
863
864#define BRW_VFE_DEBUG_COUNTER_FREE 0
865#define BRW_VFE_DEBUG_COUNTER_FROZEN 1
866#define BRW_VFE_DEBUG_COUNTER_ONCE 2
867#define BRW_VFE_DEBUG_COUNTER_ALWAYS 3
868
869/* VLD_STATE */
870#define BRW_MPEG_TOP_FIELD 1
871#define BRW_MPEG_BOTTOM_FIELD 2
872#define BRW_MPEG_FRAME 3
873#define BRW_MPEG_QSCALE_LINEAR 0
874#define BRW_MPEG_QSCALE_NONLINEAR 1
875#define BRW_MPEG_ZIGZAG_SCAN 0
876#define BRW_MPEG_ALTER_VERTICAL_SCAN 1
877#define BRW_MPEG_I_PICTURE 1
878#define BRW_MPEG_P_PICTURE 2
879#define BRW_MPEG_B_PICTURE 3
880
881#endif
diff --git a/xvmc/brw_structs.h b/xvmc/brw_structs.h
new file mode 100644
index 00000000..20c2f857
--- /dev/null
+++ b/xvmc/brw_structs.h
@@ -0,0 +1,1723 @@
1 /**************************************************************************
2 *
3 * Copyright 2005 Tungsten Graphics, Inc., Cedar Park, Texas.
4 * All Rights Reserved.
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a
7 * copy of this software and associated documentation files (the
8 * "Software"), to deal in the Software without restriction, including
9 * without limitation the rights to use, copy, modify, merge, publish,
10 * distribute, sub license, and/or sell copies of the Software, and to
11 * permit persons to whom the Software is furnished to do so, subject to
12 * the following conditions:
13 *
14 * The above copyright notice and this permission notice (including the
15 * next paragraph) shall be included in all copies or substantial portions
16 * of the Software.
17 *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21 * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
22 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25 *
26 **************************************************************************/
27
28#ifndef BRW_STRUCTS_H
29#define BRW_STRUCTS_H
30
31/* Command packets:
32 */
33struct header
34{
35 unsigned int length:16;
36 unsigned int opcode:16;
37};
38
39
40union header_union
41{
42 struct header bits;
43 unsigned int dword;
44};
45
46struct brw_3d_control
47{
48 struct
49 {
50 unsigned int length:8;
51 unsigned int notify_enable:1;
52 unsigned int pad:3;
53 unsigned int wc_flush_enable:1;
54 unsigned int depth_stall_enable:1;
55 unsigned int operation:2;
56 unsigned int opcode:16;
57 } header;
58
59 struct
60 {
61 unsigned int pad:2;
62 unsigned int dest_addr_type:1;
63 unsigned int dest_addr:29;
64 } dest;
65
66 unsigned int dword2;
67 unsigned int dword3;
68};
69
70
71struct brw_3d_primitive
72{
73 struct
74 {
75 unsigned int length:8;
76 unsigned int pad:2;
77 unsigned int topology:5;
78 unsigned int indexed:1;
79 unsigned int opcode:16;
80 } header;
81
82 unsigned int verts_per_instance;
83 unsigned int start_vert_location;
84 unsigned int instance_count;
85 unsigned int start_instance_location;
86 unsigned int base_vert_location;
87};
88
89/* These seem to be passed around as function args, so it works out
90 * better to keep them as #defines:
91 */
92#define BRW_FLUSH_READ_CACHE 0x1
93#define BRW_FLUSH_STATE_CACHE 0x2
94#define BRW_INHIBIT_FLUSH_RENDER_CACHE 0x4
95#define BRW_FLUSH_SNAPSHOT_COUNTERS 0x8
96
97struct brw_mi_flush
98{
99 unsigned int flags:4;
100 unsigned int pad:12;
101 unsigned int opcode:16;
102};
103
104struct brw_vf_statistics
105{
106 unsigned int statistics_enable:1;
107 unsigned int pad:15;
108 unsigned int opcode:16;
109};
110
111
112
113struct brw_binding_table_pointers
114{
115 struct header header;
116 unsigned int vs;
117 unsigned int gs;
118 unsigned int clp;
119 unsigned int sf;
120 unsigned int wm;
121};
122
123
124struct brw_blend_constant_color
125{
126 struct header header;
127 float blend_constant_color[4];
128};
129
130
131struct brw_depthbuffer
132{
133 union header_union header;
134
135 union {
136 struct {
137 unsigned int pitch:18;
138 unsigned int format:3;
139 unsigned int pad:4;
140 unsigned int depth_offset_disable:1;
141 unsigned int tile_walk:1;
142 unsigned int tiled_surface:1;
143 unsigned int pad2:1;
144 unsigned int surface_type:3;
145 } bits;
146 unsigned int dword;
147 } dword1;
148
149 unsigned int dword2_base_addr;
150
151 union {
152 struct {
153 unsigned int pad:1;
154 unsigned int mipmap_layout:1;
155 unsigned int lod:4;
156 unsigned int width:13;
157 unsigned int height:13;
158 } bits;
159 unsigned int dword;
160 } dword3;
161
162 union {
163 struct {
164 unsigned int pad:12;
165 unsigned int min_array_element:9;
166 unsigned int depth:11;
167 } bits;
168 unsigned int dword;
169 } dword4;
170};
171
172struct brw_drawrect
173{
174 struct header header;
175 unsigned int xmin:16;
176 unsigned int ymin:16;
177 unsigned int xmax:16;
178 unsigned int ymax:16;
179 unsigned int xorg:16;
180 unsigned int yorg:16;
181};
182
183
184
185
186struct brw_global_depth_offset_clamp
187{
188 struct header header;
189 float depth_offset_clamp;
190};
191
192struct brw_indexbuffer
193{
194 union {
195 struct
196 {
197 unsigned int length:8;
198 unsigned int index_format:2;
199 unsigned int cut_index_enable:1;
200 unsigned int pad:5;
201 unsigned int opcode:16;
202 } bits;
203 unsigned int dword;
204
205 } header;
206
207 unsigned int buffer_start;
208 unsigned int buffer_end;
209};
210
211
212struct brw_line_stipple
213{
214 struct header header;
215
216 struct
217 {
218 unsigned int pattern:16;
219 unsigned int pad:16;
220 } bits0;
221
222 struct
223 {
224 unsigned int repeat_count:9;
225 unsigned int pad:7;
226 unsigned int inverse_repeat_count:16;
227 } bits1;
228};
229
230
231struct brw_pipelined_state_pointers
232{
233 struct header header;
234
235 struct {
236 unsigned int pad:5;
237 unsigned int offset:27;
238 } vs;
239
240 struct
241 {
242 unsigned int enable:1;
243 unsigned int pad:4;
244 unsigned int offset:27;
245 } gs;
246
247 struct
248 {
249 unsigned int enable:1;
250 unsigned int pad:4;
251 unsigned int offset:27;
252 } clp;
253
254 struct
255 {
256 unsigned int pad:5;
257 unsigned int offset:27;
258 } sf;
259
260 struct
261 {
262 unsigned int pad:5;
263 unsigned int offset:27;
264 } wm;
265
266 struct
267 {
268 unsigned int pad:5;
269 unsigned int offset:27; /* KW: check me! */
270 } cc;
271};
272
273
274struct brw_polygon_stipple_offset
275{
276 struct header header;
277
278 struct {
279 unsigned int y_offset:5;
280 unsigned int pad:3;
281 unsigned int x_offset:5;
282 unsigned int pad0:19;
283 } bits0;
284};
285
286
287
288struct brw_polygon_stipple
289{
290 struct header header;
291 unsigned int stipple[32];
292};
293
294
295
296struct brw_pipeline_select
297{
298 struct
299 {
300 unsigned int pipeline_select:1;
301 unsigned int pad:15;
302 unsigned int opcode:16;
303 } header;
304};
305
306
307struct brw_pipe_control
308{
309 struct
310 {
311 unsigned int length:8;
312 unsigned int notify_enable:1;
313 unsigned int pad:2;
314 unsigned int instruction_state_cache_flush_enable:1;
315 unsigned int write_cache_flush_enable:1;
316 unsigned int depth_stall_enable:1;
317 unsigned int post_sync_operation:2;
318
319 unsigned int opcode:16;
320 } header;
321
322 struct
323 {
324 unsigned int pad:2;
325 unsigned int dest_addr_type:1;
326 unsigned int dest_addr:29;
327 } bits1;
328
329 unsigned int data0;
330 unsigned int data1;
331};
332
333
334struct brw_urb_fence
335{
336 struct
337 {
338 unsigned int length:8;
339 unsigned int vs_realloc:1;
340 unsigned int gs_realloc:1;
341 unsigned int clp_realloc:1;
342 unsigned int sf_realloc:1;
343 unsigned int vfe_realloc:1;
344 unsigned int cs_realloc:1;
345 unsigned int pad:2;
346 unsigned int opcode:16;
347 } header;
348
349 struct
350 {
351 unsigned int vs_fence:10;
352 unsigned int gs_fence:10;
353 unsigned int clp_fence:10;
354 unsigned int pad:2;
355 } bits0;
356
357 struct
358 {
359 unsigned int sf_fence:10;
360 unsigned int vf_fence:10;
361 unsigned int cs_fence:10;
362 unsigned int pad:2;
363 } bits1;
364};
365
366struct brw_constant_buffer_state /* previously brw_command_streamer */
367{
368 struct header header;
369
370 struct
371 {
372 unsigned int nr_urb_entries:3;
373 unsigned int pad:1;
374 unsigned int urb_entry_size:5;
375 unsigned int pad0:23;
376 } bits0;
377};
378
379struct brw_constant_buffer
380{
381 struct
382 {
383 unsigned int length:8;
384 unsigned int valid:1;
385 unsigned int pad:7;
386 unsigned int opcode:16;
387 } header;
388
389 struct
390 {
391 unsigned int buffer_length:6;
392 unsigned int buffer_address:26;
393 } bits0;
394};
395
396struct brw_state_base_address
397{
398 struct header header;
399
400 struct
401 {
402 unsigned int modify_enable:1;
403 unsigned int pad:4;
404 unsigned int general_state_address:27;
405 } bits0;
406
407 struct
408 {
409 unsigned int modify_enable:1;
410 unsigned int pad:4;
411 unsigned int surface_state_address:27;
412 } bits1;
413
414 struct
415 {
416 unsigned int modify_enable:1;
417 unsigned int pad:4;
418 unsigned int indirect_object_state_address:27;
419 } bits2;
420
421 struct
422 {
423 unsigned int modify_enable:1;
424 unsigned int pad:11;
425 unsigned int general_state_upper_bound:20;
426 } bits3;
427
428 struct
429 {
430 unsigned int modify_enable:1;
431 unsigned int pad:11;
432 unsigned int indirect_object_state_upper_bound:20;
433 } bits4;
434};
435
436struct brw_state_prefetch
437{
438 struct header header;
439
440 struct
441 {
442 unsigned int prefetch_count:3;
443 unsigned int pad:3;
444 unsigned int prefetch_pointer:26;
445 } bits0;
446};
447
448struct brw_system_instruction_pointer
449{
450 struct header header;
451
452 struct
453 {
454 unsigned int pad:4;
455 unsigned int system_instruction_pointer:28;
456 } bits0;
457};
458
459
460
461
462/* State structs for the various fixed function units:
463 */
464
465
466struct thread0
467{
468 unsigned int pad0:1;
469 unsigned int grf_reg_count:3;
470 unsigned int pad1:2;
471 unsigned int kernel_start_pointer:26;
472};
473
474struct thread1
475{
476 unsigned int ext_halt_exception_enable:1;
477 unsigned int sw_exception_enable:1;
478 unsigned int mask_stack_exception_enable:1;
479 unsigned int timeout_exception_enable:1;
480 unsigned int illegal_op_exception_enable:1;
481 unsigned int pad0:3;
482 unsigned int depth_coef_urb_read_offset:6; /* WM only */
483 unsigned int pad1:2;
484 unsigned int floating_point_mode:1;
485 unsigned int thread_priority:1;
486 unsigned int binding_table_entry_count:8;
487 unsigned int pad3:5;
488 unsigned int single_program_flow:1;
489};
490
491struct thread2
492{
493 unsigned int per_thread_scratch_space:4;
494 unsigned int pad0:6;
495 unsigned int scratch_space_base_pointer:22;
496};
497
498
499struct thread3
500{
501 unsigned int dispatch_grf_start_reg:4;
502 unsigned int urb_entry_read_offset:6;
503 unsigned int pad0:1;
504 unsigned int urb_entry_read_length:6;
505 unsigned int pad1:1;
506 unsigned int const_urb_entry_read_offset:6;
507 unsigned int pad2:1;
508 unsigned int const_urb_entry_read_length:6;
509 unsigned int pad3:1;
510};
511
512
513
514struct brw_clip_unit_state
515{
516 struct thread0 thread0;
517 struct thread1 thread1;
518 struct thread2 thread2;
519 struct thread3 thread3;
520
521 struct
522 {
523 unsigned int pad0:9;
524 unsigned int gs_output_stats:1; /* not always */
525 unsigned int stats_enable:1;
526 unsigned int nr_urb_entries:7;
527 unsigned int pad1:1;
528 unsigned int urb_entry_allocation_size:5;
529 unsigned int pad2:1;
530 unsigned int max_threads:6; /* may be less */
531 unsigned int pad3:1;
532 } thread4;
533
534 struct
535 {
536 unsigned int pad0:13;
537 unsigned int clip_mode:3;
538 unsigned int userclip_enable_flags:8;
539 unsigned int userclip_must_clip:1;
540 unsigned int pad1:1;
541 unsigned int guard_band_enable:1;
542 unsigned int viewport_z_clip_enable:1;
543 unsigned int viewport_xy_clip_enable:1;
544 unsigned int vertex_position_space:1;
545 unsigned int api_mode:1;
546 unsigned int pad2:1;
547 } clip5;
548
549 struct
550 {
551 unsigned int pad0:5;
552 unsigned int clipper_viewport_state_ptr:27;
553 } clip6;
554
555
556 float viewport_xmin;
557 float viewport_xmax;
558 float viewport_ymin;
559 float viewport_ymax;
560};
561
562
563
564struct brw_cc_unit_state
565{
566 struct
567 {
568 unsigned int pad0:3;
569 unsigned int bf_stencil_pass_depth_pass_op:3;
570 unsigned int bf_stencil_pass_depth_fail_op:3;
571 unsigned int bf_stencil_fail_op:3;
572 unsigned int bf_stencil_func:3;
573 unsigned int bf_stencil_enable:1;
574 unsigned int pad1:2;
575 unsigned int stencil_write_enable:1;
576 unsigned int stencil_pass_depth_pass_op:3;
577 unsigned int stencil_pass_depth_fail_op:3;
578 unsigned int stencil_fail_op:3;
579 unsigned int stencil_func:3;
580 unsigned int stencil_enable:1;
581 } cc0;
582
583
584 struct
585 {
586 unsigned int bf_stencil_ref:8;
587 unsigned int stencil_write_mask:8;
588 unsigned int stencil_test_mask:8;
589 unsigned int stencil_ref:8;
590 } cc1;
591
592
593 struct
594 {
595 unsigned int logicop_enable:1;
596 unsigned int pad0:10;
597 unsigned int depth_write_enable:1;
598 unsigned int depth_test_function:3;
599 unsigned int depth_test:1;
600 unsigned int bf_stencil_write_mask:8;
601 unsigned int bf_stencil_test_mask:8;
602 } cc2;
603
604
605 struct
606 {
607 unsigned int pad0:8;
608 unsigned int alpha_test_func:3;
609 unsigned int alpha_test:1;
610 unsigned int blend_enable:1;
611 unsigned int ia_blend_enable:1;
612 unsigned int pad1:1;
613 unsigned int alpha_test_format:1;
614 unsigned int pad2:16;
615 } cc3;
616
617 struct
618 {
619 unsigned int pad0:5;
620 unsigned int cc_viewport_state_offset:27;
621 } cc4;
622
623 struct
624 {
625 unsigned int pad0:2;
626 unsigned int ia_dest_blend_factor:5;
627 unsigned int ia_src_blend_factor:5;
628 unsigned int ia_blend_function:3;
629 unsigned int statistics_enable:1;
630 unsigned int logicop_func:4;
631 unsigned int pad1:11;
632 unsigned int dither_enable:1;
633 } cc5;
634
635 struct
636 {
637 unsigned int clamp_post_alpha_blend:1;
638 unsigned int clamp_pre_alpha_blend:1;
639 unsigned int clamp_range:2;
640 unsigned int pad0:11;
641 unsigned int y_dither_offset:2;
642 unsigned int x_dither_offset:2;
643 unsigned int dest_blend_factor:5;
644 unsigned int src_blend_factor:5;
645 unsigned int blend_function:3;
646 } cc6;
647
648 struct {
649 union {
650 float f;
651 unsigned char ub[4];
652 } alpha_ref;
653 } cc7;
654};
655
656
657
658struct brw_sf_unit_state
659{
660 struct thread0 thread0;
661 struct {
662 unsigned int pad0:7;
663 unsigned int sw_exception_enable:1;
664 unsigned int pad1:3;
665 unsigned int mask_stack_exception_enable:1;
666 unsigned int pad2:1;
667 unsigned int illegal_op_exception_enable:1;
668 unsigned int pad3:2;
669 unsigned int floating_point_mode:1;
670 unsigned int thread_priority:1;
671 unsigned int binding_table_entry_count:8;
672 unsigned int pad4:5;
673 unsigned int single_program_flow:1;
674 } sf1;
675
676 struct thread2 thread2;
677 struct thread3 thread3;
678
679 struct
680 {
681 unsigned int pad0:10;
682 unsigned int stats_enable:1;
683 unsigned int nr_urb_entries:7;
684 unsigned int pad1:1;
685 unsigned int urb_entry_allocation_size:5;
686 unsigned int pad2:1;
687 unsigned int max_threads:6;
688 unsigned int pad3:1;
689 } thread4;
690
691 struct
692 {
693 unsigned int front_winding:1;
694 unsigned int viewport_transform:1;
695 unsigned int pad0:3;
696 unsigned int sf_viewport_state_offset:27;
697 } sf5;
698
699 struct
700 {
701 unsigned int pad0:9;
702 unsigned int dest_org_vbias:4;
703 unsigned int dest_org_hbias:4;
704 unsigned int scissor:1;
705 unsigned int disable_2x2_trifilter:1;
706 unsigned int disable_zero_pix_trifilter:1;
707 unsigned int point_rast_rule:2;
708 unsigned int line_endcap_aa_region_width:2;
709 unsigned int line_width:4;
710 unsigned int fast_scissor_disable:1;
711 unsigned int cull_mode:2;
712 unsigned int aa_enable:1;
713 } sf6;
714
715 struct
716 {
717 unsigned int point_size:11;
718 unsigned int use_point_size_state:1;
719 unsigned int subpixel_precision:1;
720 unsigned int sprite_point:1;
721 unsigned int pad0:11;
722 unsigned int trifan_pv:2;
723 unsigned int linestrip_pv:2;
724 unsigned int tristrip_pv:2;
725 unsigned int line_last_pixel_enable:1;
726 } sf7;
727
728};
729
730
731struct brw_gs_unit_state
732{
733 struct thread0 thread0;
734 struct thread1 thread1;
735 struct thread2 thread2;
736 struct thread3 thread3;
737
738 struct
739 {
740 unsigned int pad0:10;
741 unsigned int stats_enable:1;
742 unsigned int nr_urb_entries:7;
743 unsigned int pad1:1;
744 unsigned int urb_entry_allocation_size:5;
745 unsigned int pad2:1;
746 unsigned int max_threads:1;
747 unsigned int pad3:6;
748 } thread4;
749
750 struct
751 {
752 unsigned int sampler_count:3;
753 unsigned int pad0:2;
754 unsigned int sampler_state_pointer:27;
755 } gs5;
756
757
758 struct
759 {
760 unsigned int max_vp_index:4;
761 unsigned int pad0:26;
762 unsigned int reorder_enable:1;
763 unsigned int pad1:1;
764 } gs6;
765};
766
767
768struct brw_vs_unit_state
769{
770 struct thread0 thread0;
771 struct thread1 thread1;
772 struct thread2 thread2;
773 struct thread3 thread3;
774
775 struct
776 {
777 unsigned int pad0:10;
778 unsigned int stats_enable:1;
779 unsigned int nr_urb_entries:7;
780 unsigned int pad1:1;
781 unsigned int urb_entry_allocation_size:5;
782 unsigned int pad2:1;
783 unsigned int max_threads:4;
784 unsigned int pad3:3;
785 } thread4;
786
787 struct
788 {
789 unsigned int sampler_count:3;
790 unsigned int pad0:2;
791 unsigned int sampler_state_pointer:27;
792 } vs5;
793
794 struct
795 {
796 unsigned int vs_enable:1;
797 unsigned int vert_cache_disable:1;
798 unsigned int pad0:30;
799 } vs6;
800};
801
802
803struct brw_wm_unit_state
804{
805 struct thread0 thread0;
806 struct thread1 thread1;
807 struct thread2 thread2;
808 struct thread3 thread3;
809
810 struct {
811 unsigned int stats_enable:1;
812 unsigned int pad0:1;
813 unsigned int sampler_count:3;
814 unsigned int sampler_state_pointer:27;
815 } wm4;
816
817 struct
818 {
819 unsigned int enable_8_pix:1;
820 unsigned int enable_16_pix:1;
821 unsigned int enable_32_pix:1;
822 unsigned int pad0:7;
823 unsigned int legacy_global_depth_bias:1;
824 unsigned int line_stipple:1;
825 unsigned int depth_offset:1;
826 unsigned int polygon_stipple:1;
827 unsigned int line_aa_region_width:2;
828 unsigned int line_endcap_aa_region_width:2;
829 unsigned int early_depth_test:1;
830 unsigned int thread_dispatch_enable:1;
831 unsigned int program_uses_depth:1;
832 unsigned int program_computes_depth:1;
833 unsigned int program_uses_killpixel:1;
834 unsigned int legacy_line_rast: 1;
835 unsigned int transposed_urb_read:1;
836 unsigned int max_threads:7;
837 } wm5;
838
839 float global_depth_offset_constant;
840 float global_depth_offset_scale;
841
842 struct {
843 unsigned int pad0:1;
844 unsigned int grf_reg_count_1:3;
845 unsigned int pad1:2;
846 unsigned int kernel_start_pointer_1:26;
847 } wm8;
848
849 struct {
850 unsigned int pad0:1;
851 unsigned int grf_reg_count_2:3;
852 unsigned int pad1:2;
853 unsigned int kernel_start_pointer_2:26;
854 } wm9;
855
856 struct {
857 unsigned int pad0:1;
858 unsigned int grf_reg_count_3:3;
859 unsigned int pad1:2;
860 unsigned int kernel_start_pointer_3:26;
861 } wm10;
862};
863
864struct brw_wm_unit_state_padded {
865 struct brw_wm_unit_state state;
866 char pad[64 - sizeof(struct brw_wm_unit_state)];
867};
868
869/* The hardware supports two different modes for border color. The
870 * default (OpenGL) mode uses floating-point color channels, while the
871 * legacy mode uses 4 bytes.
872 *
873 * More significantly, the legacy mode respects the components of the
874 * border color for channels not present in the source, (whereas the
875 * default mode will ignore the border color's alpha channel and use
876 * alpha==1 for an RGB source, for example).
877 *
878 * The legacy mode matches the semantics specified by the Render
879 * extension.
880 */
881struct brw_sampler_default_border_color {
882 float color[4];
883};
884
885struct brw_sampler_legacy_border_color {
886 uint8_t color[4];
887};
888
889struct brw_sampler_state
890{
891
892 struct
893 {
894 unsigned int shadow_function:3;
895 unsigned int lod_bias:11;
896 unsigned int min_filter:3;
897 unsigned int mag_filter:3;
898 unsigned int mip_filter:2;
899 unsigned int base_level:5;
900 unsigned int pad:1;
901 unsigned int lod_preclamp:1;
902 unsigned int border_color_mode:1;
903 unsigned int pad0:1;
904 unsigned int disable:1;
905 } ss0;
906
907 struct
908 {
909 unsigned int r_wrap_mode:3;
910 unsigned int t_wrap_mode:3;
911 unsigned int s_wrap_mode:3;
912 unsigned int pad:3;
913 unsigned int max_lod:10;
914 unsigned int min_lod:10;
915 } ss1;
916
917
918 struct
919 {
920 unsigned int pad:5;
921 unsigned int border_color_pointer:27;
922 } ss2;
923
924 struct
925 {
926 unsigned int pad:19;
927 unsigned int max_aniso:3;
928 unsigned int chroma_key_mode:1;
929 unsigned int chroma_key_index:2;
930 unsigned int chroma_key_enable:1;
931 unsigned int monochrome_filter_width:3;
932 unsigned int monochrome_filter_height:3;
933 } ss3;
934};
935
936
937struct brw_clipper_viewport
938{
939 float xmin;
940 float xmax;
941 float ymin;
942 float ymax;
943};
944
945struct brw_cc_viewport
946{
947 float min_depth;
948 float max_depth;
949};
950
951struct brw_sf_viewport
952{
953 struct {
954 float m00;
955 float m11;
956 float m22;
957 float m30;
958 float m31;
959 float m32;
960 } viewport;
961
962 struct {
963 short xmin;
964 short ymin;
965 short xmax;
966 short ymax;
967 } scissor;
968};
969
970/* Documented in the subsystem/shared-functions/sampler chapter...
971 */
972struct brw_surface_state
973{
974 struct {
975 unsigned int cube_pos_z:1;
976 unsigned int cube_neg_z:1;
977 unsigned int cube_pos_y:1;
978 unsigned int cube_neg_y:1;
979 unsigned int cube_pos_x:1;
980 unsigned int cube_neg_x:1;
981 unsigned int pad:3;
982 unsigned int render_cache_read_mode:1;
983 unsigned int mipmap_layout_mode:1;
984 unsigned int vert_line_stride_ofs:1;
985 unsigned int vert_line_stride:1;
986 unsigned int color_blend:1;
987 unsigned int writedisable_blue:1;
988 unsigned int writedisable_green:1;
989 unsigned int writedisable_red:1;
990 unsigned int writedisable_alpha:1;
991 unsigned int surface_format:9;
992 unsigned int data_return_format:1;
993 unsigned int pad0:1;
994 unsigned int surface_type:3;
995 } ss0;
996
997 struct {
998 unsigned int base_addr;
999 } ss1;
1000
1001 struct {
1002 unsigned int render_target_rotation:2;
1003 unsigned int mip_count:4;
1004 unsigned int width:13;
1005 unsigned int height:13;
1006 } ss2;
1007
1008 struct {
1009 unsigned int tile_walk:1;
1010 unsigned int tiled_surface:1;
1011 unsigned int pad:1;
1012 unsigned int pitch:18;
1013 unsigned int depth:11;
1014 } ss3;
1015
1016 struct {
1017 unsigned int pad:19;
1018 unsigned int min_array_elt:9;
1019 unsigned int min_lod:4;
1020 } ss4;
1021
1022 struct {
1023 unsigned int pad:20;
1024 unsigned int y_offset:4;
1025 unsigned int pad2:1;
1026 unsigned int x_offset:7;
1027 } ss5;
1028};
1029
1030
1031
1032struct brw_vertex_buffer_state
1033{
1034 struct {
1035 unsigned int pitch:11;
1036 unsigned int pad:15;
1037 unsigned int access_type:1;
1038 unsigned int vb_index:5;
1039 } vb0;
1040
1041 unsigned int start_addr;
1042 unsigned int max_index;
1043#if 1
1044 unsigned int instance_data_step_rate; /* not included for sequential/random vertices? */
1045#endif
1046};
1047
1048#define BRW_VBP_MAX 17
1049
1050struct brw_vb_array_state {
1051 struct header header;
1052 struct brw_vertex_buffer_state vb[BRW_VBP_MAX];
1053};
1054
1055
1056struct brw_vertex_element_state
1057{
1058 struct
1059 {
1060 unsigned int src_offset:11;
1061 unsigned int pad:5;
1062 unsigned int src_format:9;
1063 unsigned int pad0:1;
1064 unsigned int valid:1;
1065 unsigned int vertex_buffer_index:5;
1066 } ve0;
1067
1068 struct
1069 {
1070 unsigned int dst_offset:8;
1071 unsigned int pad:8;
1072 unsigned int vfcomponent3:4;
1073 unsigned int vfcomponent2:4;
1074 unsigned int vfcomponent1:4;
1075 unsigned int vfcomponent0:4;
1076 } ve1;
1077};
1078
1079#define BRW_VEP_MAX 18
1080
1081struct brw_vertex_element_packet {
1082 struct header header;
1083 struct brw_vertex_element_state ve[BRW_VEP_MAX]; /* note: less than _TNL_ATTRIB_MAX */
1084};
1085
1086
1087struct brw_urb_immediate {
1088 unsigned int opcode:4;
1089 unsigned int offset:6;
1090 unsigned int swizzle_control:2;
1091 unsigned int pad:1;
1092 unsigned int allocate:1;
1093 unsigned int used:1;
1094 unsigned int complete:1;
1095 unsigned int response_length:4;
1096 unsigned int msg_length:4;
1097 unsigned int msg_target:4;
1098 unsigned int pad1:3;
1099 unsigned int end_of_thread:1;
1100};
1101
1102/* Instruction format for the execution units:
1103 */
1104
1105struct brw_instruction
1106{
1107 struct
1108 {
1109 unsigned int opcode:7;
1110 unsigned int pad:1;
1111 unsigned int access_mode:1;
1112 unsigned int mask_control:1;
1113 unsigned int dependency_control:2;
1114 unsigned int compression_control:2;
1115 unsigned int thread_control:2;
1116 unsigned int predicate_control:4;
1117 unsigned int predicate_inverse:1;
1118 unsigned int execution_size:3;
1119 unsigned int destreg__conditonalmod:4; /* destreg - send, conditionalmod - others */
1120 unsigned int pad0:2;
1121 unsigned int debug_control:1;
1122 unsigned int saturate:1;
1123 } header;
1124
1125 union {
1126 struct
1127 {
1128 unsigned int dest_reg_file:2;
1129 unsigned int dest_reg_type:3;
1130 unsigned int src0_reg_file:2;
1131 unsigned int src0_reg_type:3;
1132 unsigned int src1_reg_file:2;
1133 unsigned int src1_reg_type:3;
1134 unsigned int pad:1;
1135 unsigned int dest_subreg_nr:5;
1136 unsigned int dest_reg_nr:8;
1137 unsigned int dest_horiz_stride:2;
1138 unsigned int dest_address_mode:1;
1139 } da1;
1140
1141 struct
1142 {
1143 unsigned int dest_reg_file:2;
1144 unsigned int dest_reg_type:3;
1145 unsigned int src0_reg_file:2;
1146 unsigned int src0_reg_type:3;
1147 unsigned int pad:6;
1148 int dest_indirect_offset:10; /* offset against the deref'd address reg */
1149 unsigned int dest_subreg_nr:3; /* subnr for the address reg a0.x */
1150 unsigned int dest_horiz_stride:2;
1151 unsigned int dest_address_mode:1;
1152 } ia1;
1153
1154 struct
1155 {
1156 unsigned int dest_reg_file:2;
1157 unsigned int dest_reg_type:3;
1158 unsigned int src0_reg_file:2;
1159 unsigned int src0_reg_type:3;
1160 unsigned int src1_reg_file:2;
1161 unsigned int src1_reg_type:3;
1162 unsigned int pad0:1;
1163 unsigned int dest_writemask:4;
1164 unsigned int dest_subreg_nr:1;
1165 unsigned int dest_reg_nr:8;
1166 unsigned int pad1:2;
1167 unsigned int dest_address_mode:1;
1168 } da16;
1169
1170 struct
1171 {
1172 unsigned int dest_reg_file:2;
1173 unsigned int dest_reg_type:3;
1174 unsigned int src0_reg_file:2;
1175 unsigned int src0_reg_type:3;
1176 unsigned int pad0:6;
1177 unsigned int dest_writemask:4;
1178 int dest_indirect_offset:6;
1179 unsigned int dest_subreg_nr:3;
1180 unsigned int pad1:2;
1181 unsigned int dest_address_mode:1;
1182 } ia16;
1183 } bits1;
1184
1185
1186 union {
1187 struct
1188 {
1189 unsigned int src0_subreg_nr:5;
1190 unsigned int src0_reg_nr:8;
1191 unsigned int src0_abs:1;
1192 unsigned int src0_negate:1;
1193 unsigned int src0_address_mode:1;
1194 unsigned int src0_horiz_stride:2;
1195 unsigned int src0_width:3;
1196 unsigned int src0_vert_stride:4;
1197 unsigned int flag_reg_nr:1;
1198 unsigned int pad:6;
1199 } da1;
1200
1201 struct
1202 {
1203 int src0_indirect_offset:10;
1204 unsigned int src0_subreg_nr:3;
1205 unsigned int src0_abs:1;
1206 unsigned int src0_negate:1;
1207 unsigned int src0_address_mode:1;
1208 unsigned int src0_horiz_stride:2;
1209 unsigned int src0_width:3;
1210 unsigned int src0_vert_stride:4;
1211 unsigned int flag_reg_nr:1;
1212 unsigned int pad:6;
1213 } ia1;
1214
1215 struct
1216 {
1217 unsigned int src0_swz_x:2;
1218 unsigned int src0_swz_y:2;
1219 unsigned int src0_subreg_nr:1;
1220 unsigned int src0_reg_nr:8;
1221 unsigned int src0_abs:1;
1222 unsigned int src0_negate:1;
1223 unsigned int src0_address_mode:1;
1224 unsigned int src0_swz_z:2;
1225 unsigned int src0_swz_w:2;
1226 unsigned int pad0:1;
1227 unsigned int src0_vert_stride:4;
1228 unsigned int flag_reg_nr:1;
1229 unsigned int pad1:6;
1230 } da16;
1231
1232 struct
1233 {
1234 unsigned int src0_swz_x:2;
1235 unsigned int src0_swz_y:2;
1236 int src0_indirect_offset:6;
1237 unsigned int src0_subreg_nr:3;
1238 unsigned int src0_abs:1;
1239 unsigned int src0_negate:1;
1240 unsigned int src0_address_mode:1;
1241 unsigned int src0_swz_z:2;
1242 unsigned int src0_swz_w:2;
1243 unsigned int pad0:1;
1244 unsigned int src0_vert_stride:4;
1245 unsigned int flag_reg_nr:1;
1246 unsigned int pad1:6;
1247 } ia16;
1248
1249 } bits2;
1250
1251 union
1252 {
1253 struct
1254 {
1255 unsigned int src1_subreg_nr:5;
1256 unsigned int src1_reg_nr:8;
1257 unsigned int src1_abs:1;
1258 unsigned int src1_negate:1;
1259 unsigned int pad:1;
1260 unsigned int src1_horiz_stride:2;
1261 unsigned int src1_width:3;
1262 unsigned int src1_vert_stride:4;
1263 unsigned int pad0:7;
1264 } da1;
1265
1266 struct
1267 {
1268 unsigned int src1_swz_x:2;
1269 unsigned int src1_swz_y:2;
1270 unsigned int src1_subreg_nr:1;
1271 unsigned int src1_reg_nr:8;
1272 unsigned int src1_abs:1;
1273 unsigned int src1_negate:1;
1274 unsigned int pad0:1;
1275 unsigned int src1_swz_z:2;
1276 unsigned int src1_swz_w:2;
1277 unsigned int pad1:1;
1278 unsigned int src1_vert_stride:4;
1279 unsigned int pad2:7;
1280 } da16;
1281
1282 struct
1283 {
1284 int src1_indirect_offset:10;
1285 unsigned int src1_subreg_nr:3;
1286 unsigned int src1_abs:1;
1287 unsigned int src1_negate:1;
1288 unsigned int pad0:1;
1289 unsigned int src1_horiz_stride:2;
1290 unsigned int src1_width:3;
1291 unsigned int src1_vert_stride:4;
1292 unsigned int flag_reg_nr:1;
1293 unsigned int pad1:6;
1294 } ia1;
1295
1296 struct
1297 {
1298 unsigned int src1_swz_x:2;
1299 unsigned int src1_swz_y:2;
1300 int src1_indirect_offset:6;
1301 unsigned int src1_subreg_nr:3;
1302 unsigned int src1_abs:1;
1303 unsigned int src1_negate:1;
1304 unsigned int pad0:1;
1305 unsigned int src1_swz_z:2;
1306 unsigned int src1_swz_w:2;
1307 unsigned int pad1:1;
1308 unsigned int src1_vert_stride:4;
1309 unsigned int flag_reg_nr:1;
1310 unsigned int pad2:6;
1311 } ia16;
1312
1313
1314 struct
1315 {
1316 int jump_count:16; /* note: signed */
1317 unsigned int pop_count:4;
1318 unsigned int pad0:12;
1319 } if_else;
1320
1321 struct {
1322 unsigned int function:4;
1323 unsigned int int_type:1;
1324 unsigned int precision:1;
1325 unsigned int saturate:1;
1326 unsigned int data_type:1;
1327 unsigned int pad0:8;
1328 unsigned int response_length:4;
1329 unsigned int msg_length:4;
1330 unsigned int msg_target:4;
1331 unsigned int pad1:3;
1332 unsigned int end_of_thread:1;
1333 } math;
1334
1335 struct {
1336 unsigned int binding_table_index:8;
1337 unsigned int sampler:4;
1338 unsigned int return_format:2;
1339 unsigned int msg_type:2;
1340 unsigned int response_length:4;
1341 unsigned int msg_length:4;
1342 unsigned int msg_target:4;
1343 unsigned int pad1:3;
1344 unsigned int end_of_thread:1;
1345 } sampler;
1346
1347 struct brw_urb_immediate urb;
1348
1349 struct {
1350 unsigned int binding_table_index:8;
1351 unsigned int msg_control:4;
1352 unsigned int msg_type:2;
1353 unsigned int target_cache:2;
1354 unsigned int response_length:4;
1355 unsigned int msg_length:4;
1356 unsigned int msg_target:4;
1357 unsigned int pad1:3;
1358 unsigned int end_of_thread:1;
1359 } dp_read;
1360
1361 struct {
1362 unsigned int binding_table_index:8;
1363 unsigned int msg_control:3;
1364 unsigned int pixel_scoreboard_clear:1;
1365 unsigned int msg_type:3;
1366 unsigned int send_commit_msg:1;
1367 unsigned int response_length:4;
1368 unsigned int msg_length:4;
1369 unsigned int msg_target:4;
1370 unsigned int pad1:3;
1371 unsigned int end_of_thread:1;
1372 } dp_write;
1373
1374 struct {
1375 unsigned int pad:16;
1376 unsigned int response_length:4;
1377 unsigned int msg_length:4;
1378 unsigned int msg_target:4;
1379 unsigned int pad1:3;
1380 unsigned int end_of_thread:1;
1381 } generic;
1382
1383 unsigned int ud;
1384 } bits3;
1385};
1386
1387/* media pipeline */
1388
1389struct brw_vfe_state {
1390 struct {
1391 unsigned int per_thread_scratch_space:4;
1392 unsigned int pad3:3;
1393 unsigned int extend_vfe_state_present:1;
1394 unsigned int pad2:2;
1395 unsigned int scratch_base:22;
1396 } vfe0;
1397
1398 struct {
1399 unsigned int debug_counter_control:2;
1400 unsigned int children_present:1;
1401 unsigned int vfe_mode:4;
1402 unsigned int pad2:2;
1403 unsigned int num_urb_entries:7;
1404 unsigned int urb_entry_alloc_size:9;
1405 unsigned int max_threads:7;
1406 } vfe1;
1407
1408 struct {
1409 unsigned int pad4:4;
1410 unsigned int interface_descriptor_base:28;
1411 } vfe2;
1412};
1413
1414struct brw_vld_state {
1415 struct {
1416 unsigned int pad6:6;
1417 unsigned int scan_order:1;
1418 unsigned int intra_vlc_format:1;
1419 unsigned int quantizer_scale_type:1;
1420 unsigned int concealment_motion_vector:1;
1421 unsigned int frame_predict_frame_dct:1;
1422 unsigned int top_field_first:1;
1423 unsigned int picture_structure:2;
1424 unsigned int intra_dc_precision:2;
1425 unsigned int f_code_0_0:4;
1426 unsigned int f_code_0_1:4;
1427 unsigned int f_code_1_0:4;
1428 unsigned int f_code_1_1:4;
1429 } vld0;
1430
1431 struct {
1432 unsigned int pad2:9;
1433 unsigned int picture_coding_type:2;
1434 unsigned int pad:21;
1435 } vld1;
1436
1437 struct {
1438 unsigned int index_0:4;
1439 unsigned int index_1:4;
1440 unsigned int index_2:4;
1441 unsigned int index_3:4;
1442 unsigned int index_4:4;
1443 unsigned int index_5:4;
1444 unsigned int index_6:4;
1445 unsigned int index_7:4;
1446 } desc_remap_table0;
1447
1448 struct {
1449 unsigned int index_8:4;
1450 unsigned int index_9:4;
1451 unsigned int index_10:4;
1452 unsigned int index_11:4;
1453 unsigned int index_12:4;
1454 unsigned int index_13:4;
1455 unsigned int index_14:4;
1456 unsigned int index_15:4;
1457 } desc_remap_table1;
1458};
1459
1460struct brw_interface_descriptor {
1461 struct {
1462 unsigned int grf_reg_blocks:4;
1463 unsigned int pad:2;
1464 unsigned int kernel_start_pointer:26;
1465 } desc0;
1466
1467 struct {
1468 unsigned int pad:7;
1469 unsigned int software_exception:1;
1470 unsigned int pad2:3;
1471 unsigned int maskstack_exception:1;
1472 unsigned int pad3:1;
1473 unsigned int illegal_opcode_exception:1;
1474 unsigned int pad4:2;
1475 unsigned int floating_point_mode:1;
1476 unsigned int thread_priority:1;
1477 unsigned int single_program_flow:1;
1478 unsigned int pad5:1;
1479 unsigned int const_urb_entry_read_offset:6;
1480 unsigned int const_urb_entry_read_len:6;
1481 } desc1;
1482
1483 struct {
1484 unsigned int pad:2;
1485 unsigned int sampler_count:3;
1486 unsigned int sampler_state_pointer:27;
1487 } desc2;
1488
1489 struct {
1490 unsigned int binding_table_entry_count:5;
1491 unsigned int binding_table_pointer:27;
1492 } desc3;
1493};
1494
1495struct gen6_blend_state
1496{
1497 struct {
1498 unsigned int dest_blend_factor:5;
1499 unsigned int source_blend_factor:5;
1500 unsigned int pad3:1;
1501 unsigned int blend_func:3;
1502 unsigned int pad2:1;
1503 unsigned int ia_dest_blend_factor:5;
1504 unsigned int ia_source_blend_factor:5;
1505 unsigned int pad1:1;
1506 unsigned int ia_blend_func:3;
1507 unsigned int pad0:1;
1508 unsigned int ia_blend_enable:1;
1509 unsigned int blend_enable:1;
1510 } blend0;
1511
1512 struct {
1513 unsigned int post_blend_clamp_enable:1;
1514 unsigned int pre_blend_clamp_enable:1;
1515 unsigned int clamp_range:2;
1516 unsigned int pad0:4;
1517 unsigned int x_dither_offset:2;
1518 unsigned int y_dither_offset:2;
1519 unsigned int dither_enable:1;
1520 unsigned int alpha_test_func:3;
1521 unsigned int alpha_test_enable:1;
1522 unsigned int pad1:1;
1523 unsigned int logic_op_func:4;
1524 unsigned int logic_op_enable:1;
1525 unsigned int pad2:1;
1526 unsigned int write_disable_b:1;
1527 unsigned int write_disable_g:1;
1528 unsigned int write_disable_r:1;
1529 unsigned int write_disable_a:1;
1530 unsigned int pad3:1;
1531 unsigned int alpha_to_coverage_dither:1;
1532 unsigned int alpha_to_one:1;
1533 unsigned int alpha_to_coverage:1;
1534 } blend1;
1535};
1536
1537struct gen6_color_calc_state
1538{
1539 struct {
1540 unsigned int alpha_test_format:1;
1541 unsigned int pad0:14;
1542 unsigned int round_disable:1;
1543 unsigned int bf_stencil_ref:8;
1544 unsigned int stencil_ref:8;
1545 } cc0;
1546
1547 union {
1548 float alpha_ref_f;
1549 struct {
1550 unsigned int ui:8;
1551 unsigned int pad0:24;
1552 } alpha_ref_fi;
1553 } cc1;
1554
1555 float constant_r;
1556 float constant_g;
1557 float constant_b;
1558 float constant_a;
1559};
1560
1561struct gen6_depth_stencil_state
1562{
1563 struct {
1564 unsigned int pad0:3;
1565 unsigned int bf_stencil_pass_depth_pass_op:3;
1566 unsigned int bf_stencil_pass_depth_fail_op:3;
1567 unsigned int bf_stencil_fail_op:3;
1568 unsigned int bf_stencil_func:3;
1569 unsigned int bf_stencil_enable:1;
1570 unsigned int pad1:2;
1571 unsigned int stencil_write_enable:1;
1572 unsigned int stencil_pass_depth_pass_op:3;
1573 unsigned int stencil_pass_depth_fail_op:3;
1574 unsigned int stencil_fail_op:3;
1575 unsigned int stencil_func:3;
1576 unsigned int stencil_enable:1;
1577 } ds0;
1578
1579 struct {
1580 unsigned int bf_stencil_write_mask:8;
1581 unsigned int bf_stencil_test_mask:8;
1582 unsigned int stencil_write_mask:8;
1583 unsigned int stencil_test_mask:8;
1584 } ds1;
1585
1586 struct {
1587 unsigned int pad0:26;
1588 unsigned int depth_write_enable:1;
1589 unsigned int depth_test_func:3;
1590 unsigned int pad1:1;
1591 unsigned int depth_test_enable:1;
1592 } ds2;
1593};
1594
1595struct gen7_surface_state
1596{
1597 struct {
1598 unsigned int cube_pos_z:1;
1599 unsigned int cube_neg_z:1;
1600 unsigned int cube_pos_y:1;
1601 unsigned int cube_neg_y:1;
1602 unsigned int cube_pos_x:1;
1603 unsigned int cube_neg_x:1;
1604 unsigned int pad2:2;
1605 unsigned int render_cache_read_write:1;
1606 unsigned int pad1:1;
1607 unsigned int surface_array_spacing:1;
1608 unsigned int vert_line_stride_ofs:1;
1609 unsigned int vert_line_stride:1;
1610 unsigned int tile_walk:1;
1611 unsigned int tiled_surface:1;
1612 unsigned int horizontal_alignment:1;
1613 unsigned int vertical_alignment:2;
1614 unsigned int surface_format:9; /**< BRW_SURFACEFORMAT_x */
1615 unsigned int pad0:1;
1616 unsigned int is_array:1;
1617 unsigned int surface_type:3; /**< BRW_SURFACE_1D/2D/3D/CUBE */
1618 } ss0;
1619
1620 struct {
1621 unsigned int base_addr;
1622 } ss1;
1623
1624 struct {
1625 unsigned int width:14;
1626 unsigned int pad1:2;
1627 unsigned int height:14;
1628 unsigned int pad0:2;
1629 } ss2;
1630
1631 struct {
1632 unsigned int pitch:18;
1633 unsigned int pad:3;
1634 unsigned int depth:11;
1635 } ss3;
1636
1637 struct {
1638 unsigned int multisample_position_palette_index:3;
1639 unsigned int num_multisamples:3;
1640 unsigned int multisampled_surface_storage_format:1;
1641 unsigned int render_target_view_extent:11;
1642 unsigned int min_array_elt:11;
1643 unsigned int rotation:2;
1644 unsigned int pad0:1;
1645 } ss4;
1646
1647 struct {
1648 unsigned int mip_count:4;
1649 unsigned int min_lod:4;
1650 unsigned int pad1:12;
1651 unsigned int y_offset:4;
1652 unsigned int pad0:1;
1653 unsigned int x_offset:7;
1654 } ss5;
1655
1656 struct {
1657 unsigned int pad; /* Multisample Control Surface stuff */
1658 } ss6;
1659
1660 struct {
1661 unsigned int resource_min_lod:12;
1662 unsigned int pad0:4;
1663 unsigned int shader_chanel_select_a:3;
1664 unsigned int shader_chanel_select_b:3;
1665 unsigned int shader_chanel_select_g:3;
1666 unsigned int shader_chanel_select_r:3;
1667 unsigned int alpha_clear_color:1;
1668 unsigned int blue_clear_color:1;
1669 unsigned int green_clear_color:1;
1670 unsigned int red_clear_color:1;
1671 } ss7;
1672};
1673
1674struct gen7_sampler_state
1675{
1676 struct
1677 {
1678 unsigned int aniso_algorithm:1;
1679 unsigned int lod_bias:13;
1680 unsigned int min_filter:3;
1681 unsigned int mag_filter:3;
1682 unsigned int mip_filter:2;
1683 unsigned int base_level:5;
1684 unsigned int pad1:1;
1685 unsigned int lod_preclamp:1;
1686 unsigned int default_color_mode:1;
1687 unsigned int pad0:1;
1688 unsigned int disable:1;
1689 } ss0;
1690
1691 struct
1692 {
1693 unsigned int cube_control_mode:1;
1694 unsigned int shadow_function:3;
1695 unsigned int pad:4;
1696 unsigned int max_lod:12;
1697 unsigned int min_lod:12;
1698 } ss1;
1699
1700 struct
1701 {
1702 unsigned int pad:5;
1703 unsigned int default_color_pointer:27;
1704 } ss2;
1705
1706 struct
1707 {
1708 unsigned int r_wrap_mode:3;
1709 unsigned int t_wrap_mode:3;
1710 unsigned int s_wrap_mode:3;
1711 unsigned int pad:1;
1712 unsigned int non_normalized_coord:1;
1713 unsigned int trilinear_quality:2;
1714 unsigned int address_round:6;
1715 unsigned int max_aniso:3;
1716 unsigned int chroma_key_mode:1;
1717 unsigned int chroma_key_index:2;
1718 unsigned int chroma_key_enable:1;
1719 unsigned int pad0:6;
1720 } ss3;
1721};
1722
1723#endif
diff --git a/xvmc/i830_reg.h b/xvmc/i830_reg.h
new file mode 100644
index 00000000..93d03cf3
--- /dev/null
+++ b/xvmc/i830_reg.h
@@ -0,0 +1,805 @@
1/**************************************************************************
2 *
3 * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas.
4 * All Rights Reserved.
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a
7 * copy of this software and associated documentation files (the
8 * "Software"), to deal in the Software without restriction, including
9 * without limitation the rights to use, copy, modify, merge, publish,
10 * distribute, sub license, and/or sell copies of the Software, and to
11 * permit persons to whom the Software is furnished to do so, subject to
12 * the following conditions:
13 *
14 * The above copyright notice and this permission notice (including the
15 * next paragraph) shall be included in all copies or substantial portions
16 * of the Software.
17 *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21 * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
22 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25 *
26 **************************************************************************/
27
28#ifndef _I830_REG_H_
29#define _I830_REG_H_
30
31#define I830_SET_FIELD( var, mask, value ) (var &= ~(mask), var |= value)
32
33/* Flush */
34#define MI_FLUSH (0x04<<23)
35#define MI_FLUSH_DW (0x26<<23)
36
37#define MI_WRITE_DIRTY_STATE (1<<4)
38#define MI_END_SCENE (1<<3)
39#define MI_GLOBAL_SNAPSHOT_COUNT_RESET (1<<3)
40#define MI_INHIBIT_RENDER_CACHE_FLUSH (1<<2)
41#define MI_STATE_INSTRUCTION_CACHE_FLUSH (1<<1)
42#define MI_INVALIDATE_MAP_CACHE (1<<0)
43/* broadwater flush bits */
44#define BRW_MI_GLOBAL_SNAPSHOT_RESET (1 << 3)
45
46#define MI_BATCH_BUFFER_END (0xA << 23)
47
48/* Noop */
49#define MI_NOOP 0x00
50#define MI_NOOP_WRITE_ID (1<<22)
51#define MI_NOOP_ID_MASK (1<<22 - 1)
52
53/* Wait for Events */
54#define MI_WAIT_FOR_EVENT (0x03<<23)
55#define MI_WAIT_FOR_PIPEB_SVBLANK (1<<18)
56#define MI_WAIT_FOR_PIPEA_SVBLANK (1<<17)
57#define MI_WAIT_FOR_OVERLAY_FLIP (1<<16)
58#define MI_WAIT_FOR_PIPEB_VBLANK (1<<7)
59#define MI_WAIT_FOR_PIPEB_SCAN_LINE_WINDOW (1<<5)
60#define MI_WAIT_FOR_PIPEA_VBLANK (1<<3)
61#define MI_WAIT_FOR_PIPEA_SCAN_LINE_WINDOW (1<<1)
62
63/* Set the scan line for MI_WAIT_FOR_PIPE?_SCAN_LINE_WINDOW */
64#define MI_LOAD_SCAN_LINES_INCL (0x12<<23)
65#define MI_LOAD_SCAN_LINES_DISPLAY_PIPEA (0)
66#define MI_LOAD_SCAN_LINES_DISPLAY_PIPEB (0x1<<20)
67
68/* BLT commands */
69#define COLOR_BLT_CMD ((2<<29)|(0x40<<22)|(0x3))
70#define COLOR_BLT_WRITE_ALPHA (1<<21)
71#define COLOR_BLT_WRITE_RGB (1<<20)
72
73#define XY_COLOR_BLT_CMD ((2<<29)|(0x50<<22)|(0x4))
74#define XY_COLOR_BLT_WRITE_ALPHA (1<<21)
75#define XY_COLOR_BLT_WRITE_RGB (1<<20)
76#define XY_COLOR_BLT_TILED (1<<11)
77
78#define XY_SETUP_CLIP_BLT_CMD ((2<<29)|(3<<22)|1)
79
80#define XY_SRC_COPY_BLT_CMD ((2<<29)|(0x53<<22)|6)
81#define XY_SRC_COPY_BLT_WRITE_ALPHA (1<<21)
82#define XY_SRC_COPY_BLT_WRITE_RGB (1<<20)
83#define XY_SRC_COPY_BLT_SRC_TILED (1<<15)
84#define XY_SRC_COPY_BLT_DST_TILED (1<<11)
85
86#define SRC_COPY_BLT_CMD ((2<<29)|(0x43<<22)|0x4)
87#define SRC_COPY_BLT_WRITE_ALPHA (1<<21)
88#define SRC_COPY_BLT_WRITE_RGB (1<<20)
89
90#define XY_PAT_BLT_IMMEDIATE ((2<<29)|(0x72<<22))
91
92#define XY_MONO_PAT_BLT_CMD ((0x2<<29)|(0x52<<22)|0x7)
93#define XY_MONO_PAT_VERT_SEED ((1<<10)|(1<<9)|(1<<8))
94#define XY_MONO_PAT_HORT_SEED ((1<<14)|(1<<13)|(1<<12))
95#define XY_MONO_PAT_BLT_WRITE_ALPHA (1<<21)
96#define XY_MONO_PAT_BLT_WRITE_RGB (1<<20)
97
98#define XY_MONO_SRC_BLT_CMD ((0x2<<29)|(0x54<<22)|(0x6))
99#define XY_MONO_SRC_BLT_WRITE_ALPHA (1<<21)
100#define XY_MONO_SRC_BLT_WRITE_RGB (1<<20)
101
102#define CMD_3D (0x3<<29)
103
104#define PRIM3D_INLINE (CMD_3D | (0x1f<<24))
105#define PRIM3D_TRILIST (0x0<<18)
106#define PRIM3D_TRISTRIP (0x1<<18)
107#define PRIM3D_TRISTRIP_RVRSE (0x2<<18)
108#define PRIM3D_TRIFAN (0x3<<18)
109#define PRIM3D_POLY (0x4<<18)
110#define PRIM3D_LINELIST (0x5<<18)
111#define PRIM3D_LINESTRIP (0x6<<18)
112#define PRIM3D_RECTLIST (0x7<<18)
113#define PRIM3D_POINTLIST (0x8<<18)
114#define PRIM3D_DIB (0x9<<18)
115#define PRIM3D_CLEAR_RECT (0xa<<18)
116#define PRIM3D_ZONE_INIT (0xd<<18)
117#define PRIM3D_MASK (0x1f<<18)
118
119#define _3DSTATE_AA_CMD (CMD_3D | (0x06<<24))
120#define AA_LINE_ECAAR_WIDTH_ENABLE (1<<16)
121#define AA_LINE_ECAAR_WIDTH_0_5 0
122#define AA_LINE_ECAAR_WIDTH_1_0 (1<<14)
123#define AA_LINE_ECAAR_WIDTH_2_0 (2<<14)
124#define AA_LINE_ECAAR_WIDTH_4_0 (3<<14)
125#define AA_LINE_REGION_WIDTH_ENABLE (1<<8)
126#define AA_LINE_REGION_WIDTH_0_5 0
127#define AA_LINE_REGION_WIDTH_1_0 (1<<6)
128#define AA_LINE_REGION_WIDTH_2_0 (2<<6)
129#define AA_LINE_REGION_WIDTH_4_0 (3<<6)
130#define AA_LINE_ENABLE ((1<<1) | 1)
131#define AA_LINE_DISABLE (1<<1)
132
133#define _3DSTATE_BUF_INFO_CMD (CMD_3D | (0x1d<<24) | (0x8e<<16) | 1)
134/* Dword 1 */
135#define BUF_3D_ID_COLOR_BACK (0x3<<24)
136#define BUF_3D_ID_DEPTH (0x7<<24)
137#define BUF_3D_USE_FENCE (1<<23)
138#define BUF_3D_TILED_SURFACE (1<<22)
139#define BUF_3D_TILE_WALK_X 0
140#define BUF_3D_TILE_WALK_Y (1<<21)
141#define BUF_3D_PITCH(x) (((x)/4)<<2)
142/* Dword 2 */
143#define BUF_3D_ADDR(x) ((x) & ~0x3)
144
145#define _3DSTATE_COLOR_FACTOR_CMD (CMD_3D | (0x1d<<24) | (0x1<<16))
146
147#define _3DSTATE_COLOR_FACTOR_N_CMD(stage) (CMD_3D | (0x1d<<24) | \
148 ((0x90+(stage))<<16))
149
150#define _3DSTATE_CONST_BLEND_COLOR_CMD (CMD_3D | (0x1d<<24) | (0x88<<16))
151
152#define _3DSTATE_DFLT_DIFFUSE_CMD (CMD_3D | (0x1d<<24) | (0x99<<16))
153
154#define _3DSTATE_DFLT_SPEC_CMD (CMD_3D | (0x1d<<24) | (0x9a<<16))
155
156#define _3DSTATE_DFLT_Z_CMD (CMD_3D | (0x1d<<24) | (0x98<<16))
157
158#define _3DSTATE_DST_BUF_VARS_CMD (CMD_3D | (0x1d<<24) | (0x85<<16))
159/* Dword 1 */
160#define DSTORG_HORT_BIAS(x) ((x)<<20)
161#define DSTORG_VERT_BIAS(x) ((x)<<16)
162#define COLOR_4_2_2_CHNL_WRT_ALL 0
163#define COLOR_4_2_2_CHNL_WRT_Y (1<<12)
164#define COLOR_4_2_2_CHNL_WRT_CR (2<<12)
165#define COLOR_4_2_2_CHNL_WRT_CB (3<<12)
166#define COLOR_4_2_2_CHNL_WRT_CRCB (4<<12)
167#define COLR_BUF_8BIT 0
168#define COLR_BUF_RGB555 (1<<8)
169#define COLR_BUF_RGB565 (2<<8)
170#define COLR_BUF_ARGB8888 (3<<8)
171#define COLR_BUF_ARGB4444 (8<<8)
172#define COLR_BUF_ARGB1555 (9<<8)
173#define DEPTH_IS_Z 0
174#define DEPTH_IS_W (1<<6)
175#define DEPTH_FRMT_16_FIXED 0
176#define DEPTH_FRMT_16_FLOAT (1<<2)
177#define DEPTH_FRMT_24_FIXED_8_OTHER (2<<2)
178#define DEPTH_FRMT_24_FLOAT_8_OTHER (3<<2)
179#define VERT_LINE_STRIDE_1 (1<<1)
180#define VERT_LINE_STRIDE_0 0
181#define VERT_LINE_STRIDE_OFS_1 1
182#define VERT_LINE_STRIDE_OFS_0 0
183
184#define _3DSTATE_DRAW_RECT_CMD (CMD_3D|(0x1d<<24)|(0x80<<16)|3)
185/* Dword 1 */
186#define DRAW_RECT_DIS_DEPTH_OFS (1<<30)
187#define DRAW_DITHER_OFS_X(x) ((x)<<26)
188#define DRAW_DITHER_OFS_Y(x) ((x)<<24)
189/* Dword 2 */
190#define DRAW_YMIN(x) ((x)<<16)
191#define DRAW_XMIN(x) (x)
192/* Dword 3 */
193#define DRAW_YMAX(x) ((x)<<16)
194#define DRAW_XMAX(x) (x)
195/* Dword 4 */
196#define DRAW_YORG(x) ((x)<<16)
197#define DRAW_XORG(x) (x)
198
199#define _3DSTATE_ENABLES_1_CMD (CMD_3D|(0x3<<24))
200#define ENABLE_LOGIC_OP_MASK ((1<<23)|(1<<22))
201#define ENABLE_LOGIC_OP ((1<<23)|(1<<22))
202#define DISABLE_LOGIC_OP (1<<23)
203#define ENABLE_STENCIL_TEST ((1<<21)|(1<<20))
204#define DISABLE_STENCIL_TEST (1<<21)
205#define ENABLE_DEPTH_BIAS ((1<<11)|(1<<10))
206#define DISABLE_DEPTH_BIAS (1<<11)
207#define ENABLE_SPEC_ADD_MASK ((1<<9)|(1<<8))
208#define ENABLE_SPEC_ADD ((1<<9)|(1<<8))
209#define DISABLE_SPEC_ADD (1<<9)
210#define ENABLE_DIS_FOG_MASK ((1<<7)|(1<<6))
211#define ENABLE_FOG ((1<<7)|(1<<6))
212#define DISABLE_FOG (1<<7)
213#define ENABLE_DIS_ALPHA_TEST_MASK ((1<<5)|(1<<4))
214#define ENABLE_ALPHA_TEST ((1<<5)|(1<<4))
215#define DISABLE_ALPHA_TEST (1<<5)
216#define ENABLE_DIS_CBLEND_MASK ((1<<3)|(1<<2))
217#define ENABLE_COLOR_BLEND ((1<<3)|(1<<2))
218#define DISABLE_COLOR_BLEND (1<<3)
219#define ENABLE_DIS_DEPTH_TEST_MASK ((1<<1)|1)
220#define ENABLE_DEPTH_TEST ((1<<1)|1)
221#define DISABLE_DEPTH_TEST (1<<1)
222
223/* _3DSTATE_ENABLES_2, p138 */
224#define _3DSTATE_ENABLES_2_CMD (CMD_3D|(0x4<<24))
225#define ENABLE_STENCIL_WRITE ((1<<21)|(1<<20))
226#define DISABLE_STENCIL_WRITE (1<<21)
227#define ENABLE_TEX_CACHE ((1<<17)|(1<<16))
228#define DISABLE_TEX_CACHE (1<<17)
229#define ENABLE_DITHER ((1<<9)|(1<<8))
230#define DISABLE_DITHER (1<<9)
231#define ENABLE_COLOR_MASK (1<<10)
232#define WRITEMASK_ALPHA (1<<7)
233#define WRITEMASK_ALPHA_SHIFT 7
234#define WRITEMASK_RED (1<<6)
235#define WRITEMASK_RED_SHIFT 6
236#define WRITEMASK_GREEN (1<<5)
237#define WRITEMASK_GREEN_SHIFT 5
238#define WRITEMASK_BLUE (1<<4)
239#define WRITEMASK_BLUE_SHIFT 4
240#define WRITEMASK_MASK ((1<<4)|(1<<5)|(1<<6)|(1<<7))
241#define ENABLE_COLOR_WRITE ((1<<3)|(1<<2))
242#define DISABLE_COLOR_WRITE (1<<3)
243#define ENABLE_DIS_DEPTH_WRITE_MASK 0x3
244#define ENABLE_DEPTH_WRITE ((1<<1)|1)
245#define DISABLE_DEPTH_WRITE (1<<1)
246
247/* _3DSTATE_FOG_COLOR, p139 */
248#define _3DSTATE_FOG_COLOR_CMD (CMD_3D|(0x15<<24))
249#define FOG_COLOR_RED(x) ((x)<<16)
250#define FOG_COLOR_GREEN(x) ((x)<<8)
251#define FOG_COLOR_BLUE(x) (x)
252
253/* _3DSTATE_FOG_MODE, p140 */
254#define _3DSTATE_FOG_MODE_CMD (CMD_3D|(0x1d<<24)|(0x89<<16)|2)
255/* Dword 1 */
256#define FOGFUNC_ENABLE (1<<31)
257#define FOGFUNC_VERTEX 0
258#define FOGFUNC_PIXEL_EXP (1<<28)
259#define FOGFUNC_PIXEL_EXP2 (2<<28)
260#define FOGFUNC_PIXEL_LINEAR (3<<28)
261#define FOGSRC_INDEX_Z (1<<27)
262#define FOGSRC_INDEX_W ((1<<27)|(1<<25))
263#define FOG_LINEAR_CONST (1<<24)
264#define FOG_CONST_1(x) ((x)<<4)
265#define ENABLE_FOG_DENSITY (1<<23)
266/* Dword 2 */
267#define FOG_CONST_2(x) (x)
268/* Dword 3 */
269#define FOG_DENSITY(x) (x)
270
271/* _3DSTATE_INDEPENDENT_ALPHA_BLEND, p142 */
272#define _3DSTATE_INDPT_ALPHA_BLEND_CMD (CMD_3D|(0x0b<<24))
273#define ENABLE_INDPT_ALPHA_BLEND ((1<<23)|(1<<22))
274#define DISABLE_INDPT_ALPHA_BLEND (1<<23)
275#define ALPHA_BLENDFUNC_MASK 0x3f0000
276#define ENABLE_ALPHA_BLENDFUNC (1<<21)
277#define ABLENDFUNC_ADD 0
278#define ABLENDFUNC_SUB (1<<16)
279#define ABLENDFUNC_RVSE_SUB (2<<16)
280#define ABLENDFUNC_MIN (3<<16)
281#define ABLENDFUNC_MAX (4<<16)
282#define SRC_DST_ABLEND_MASK 0xfff
283#define ENABLE_SRC_ABLEND_FACTOR (1<<11)
284#define SRC_ABLEND_FACT(x) ((x)<<6)
285#define ENABLE_DST_ABLEND_FACTOR (1<<5)
286#define DST_ABLEND_FACT(x) (x)
287
288#define BLENDFACTOR_ZERO 0x01
289#define BLENDFACTOR_ONE 0x02
290#define BLENDFACTOR_SRC_COLR 0x03
291#define BLENDFACTOR_INV_SRC_COLR 0x04
292#define BLENDFACTOR_SRC_ALPHA 0x05
293#define BLENDFACTOR_INV_SRC_ALPHA 0x06
294#define BLENDFACTOR_DST_ALPHA 0x07
295#define BLENDFACTOR_INV_DST_ALPHA 0x08
296#define BLENDFACTOR_DST_COLR 0x09
297#define BLENDFACTOR_INV_DST_COLR 0x0a
298#define BLENDFACTOR_SRC_ALPHA_SATURATE 0x0b
299#define BLENDFACTOR_CONST_COLOR 0x0c
300#define BLENDFACTOR_INV_CONST_COLOR 0x0d
301#define BLENDFACTOR_CONST_ALPHA 0x0e
302#define BLENDFACTOR_INV_CONST_ALPHA 0x0f
303#define BLENDFACTOR_MASK 0x0f
304
305/* _3DSTATE_MAP_BLEND_ARG, p152 */
306#define _3DSTATE_MAP_BLEND_ARG_CMD(stage) (CMD_3D|(0x0e<<24)|((stage)<<20))
307
308#define TEXPIPE_COLOR 0
309#define TEXPIPE_ALPHA (1<<18)
310#define TEXPIPE_KILL (2<<18)
311#define TEXBLEND_ARG0 0
312#define TEXBLEND_ARG1 (1<<15)
313#define TEXBLEND_ARG2 (2<<15)
314#define TEXBLEND_ARG3 (3<<15)
315#define TEXBLENDARG_MODIFY_PARMS (1<<6)
316#define TEXBLENDARG_REPLICATE_ALPHA (1<<5)
317#define TEXBLENDARG_INV_ARG (1<<4)
318#define TEXBLENDARG_ONE 0
319#define TEXBLENDARG_FACTOR 0x01
320#define TEXBLENDARG_ACCUM 0x02
321#define TEXBLENDARG_DIFFUSE 0x03
322#define TEXBLENDARG_SPEC 0x04
323#define TEXBLENDARG_CURRENT 0x05
324#define TEXBLENDARG_TEXEL0 0x06
325#define TEXBLENDARG_TEXEL1 0x07
326#define TEXBLENDARG_TEXEL2 0x08
327#define TEXBLENDARG_TEXEL3 0x09
328#define TEXBLENDARG_FACTOR_N 0x0e
329
330/* _3DSTATE_MAP_BLEND_OP, p155 */
331#define _3DSTATE_MAP_BLEND_OP_CMD(stage) (CMD_3D|(0x0d<<24)|((stage)<<20))
332#if 0
333# define TEXPIPE_COLOR 0
334# define TEXPIPE_ALPHA (1<<18)
335# define TEXPIPE_KILL (2<<18)
336#endif
337#define ENABLE_TEXOUTPUT_WRT_SEL (1<<17)
338#define TEXOP_OUTPUT_CURRENT 0
339#define TEXOP_OUTPUT_ACCUM (1<<15)
340#define ENABLE_TEX_CNTRL_STAGE ((1<<12)|(1<<11))
341#define DISABLE_TEX_CNTRL_STAGE (1<<12)
342#define TEXOP_SCALE_SHIFT 9
343#define TEXOP_SCALE_1X (0 << TEXOP_SCALE_SHIFT)
344#define TEXOP_SCALE_2X (1 << TEXOP_SCALE_SHIFT)
345#define TEXOP_SCALE_4X (2 << TEXOP_SCALE_SHIFT)
346#define TEXOP_MODIFY_PARMS (1<<8)
347#define TEXOP_LAST_STAGE (1<<7)
348#define TEXBLENDOP_KILLPIXEL 0x02
349#define TEXBLENDOP_ARG1 0x01
350#define TEXBLENDOP_ARG2 0x02
351#define TEXBLENDOP_MODULATE 0x03
352#define TEXBLENDOP_ADD 0x06
353#define TEXBLENDOP_ADDSIGNED 0x07
354#define TEXBLENDOP_BLEND 0x08
355#define TEXBLENDOP_BLEND_AND_ADD 0x09
356#define TEXBLENDOP_SUBTRACT 0x0a
357#define TEXBLENDOP_DOT3 0x0b
358#define TEXBLENDOP_DOT4 0x0c
359#define TEXBLENDOP_MODULATE_AND_ADD 0x0d
360#define TEXBLENDOP_MODULATE_2X_AND_ADD 0x0e
361#define TEXBLENDOP_MODULATE_4X_AND_ADD 0x0f
362
363/* _3DSTATE_MAP_BUMP_TABLE, p160 TODO */
364/* _3DSTATE_MAP_COLOR_CHROMA_KEY, p161 TODO */
365
366#define _3DSTATE_MAP_COORD_TRANSFORM ((3<<29)|(0x1d<<24)|(0x8c<<16))
367#define DISABLE_TEX_TRANSFORM (1<<28)
368#define TEXTURE_SET(x) (x<<29)
369
370#define _3DSTATE_VERTEX_TRANSFORM ((3<<29)|(0x1d<<24)|(0x8b<<16))
371#define DISABLE_VIEWPORT_TRANSFORM (1<<31)
372#define DISABLE_PERSPECTIVE_DIVIDE (1<<29)
373
374/* _3DSTATE_MAP_COORD_SET_BINDINGS, p162 */
375#define _3DSTATE_MAP_COORD_SETBIND_CMD (CMD_3D|(0x1d<<24)|(0x02<<16))
376#define TEXBIND_MASK3 ((1<<15)|(1<<14)|(1<<13)|(1<<12))
377#define TEXBIND_MASK2 ((1<<11)|(1<<10)|(1<<9)|(1<<8))
378#define TEXBIND_MASK1 ((1<<7)|(1<<6)|(1<<5)|(1<<4))
379#define TEXBIND_MASK0 ((1<<3)|(1<<2)|(1<<1)|1)
380
381#define TEXBIND_SET3(x) ((x)<<12)
382#define TEXBIND_SET2(x) ((x)<<8)
383#define TEXBIND_SET1(x) ((x)<<4)
384#define TEXBIND_SET0(x) (x)
385
386#define TEXCOORDSRC_KEEP 0
387#define TEXCOORDSRC_DEFAULT 0x01
388#define TEXCOORDSRC_VTXSET_0 0x08
389#define TEXCOORDSRC_VTXSET_1 0x09
390#define TEXCOORDSRC_VTXSET_2 0x0a
391#define TEXCOORDSRC_VTXSET_3 0x0b
392#define TEXCOORDSRC_VTXSET_4 0x0c
393#define TEXCOORDSRC_VTXSET_5 0x0d
394#define TEXCOORDSRC_VTXSET_6 0x0e
395#define TEXCOORDSRC_VTXSET_7 0x0f
396
397#define MAP_UNIT(unit) ((unit)<<16)
398#define MAP_UNIT_MASK (0x7<<16)
399
400/* _3DSTATE_MAP_COORD_SETS, p164 */
401#define _3DSTATE_MAP_COORD_SET_CMD (CMD_3D|(0x1c<<24)|(0x01<<19))
402#define TEXCOORD_SET(n) ((n)<<16)
403#define ENABLE_TEXCOORD_PARAMS (1<<15)
404#define TEXCOORDS_ARE_NORMAL (1<<14)
405#define TEXCOORDS_ARE_IN_TEXELUNITS 0
406#define TEXCOORDTYPE_CARTESIAN 0
407#define TEXCOORDTYPE_HOMOGENEOUS (1<<11)
408#define TEXCOORDTYPE_VECTOR (2<<11)
409#define TEXCOORDTYPE_MASK (0x7<<11)
410#define ENABLE_ADDR_V_CNTL (1<<7)
411#define ENABLE_ADDR_U_CNTL (1<<3)
412#define TEXCOORD_ADDR_V_MODE(x) ((x)<<4)
413#define TEXCOORD_ADDR_U_MODE(x) (x)
414#define TEXCOORDMODE_WRAP 0
415#define TEXCOORDMODE_MIRROR 1
416#define TEXCOORDMODE_CLAMP 2
417#define TEXCOORDMODE_WRAP_SHORTEST 3
418#define TEXCOORDMODE_CLAMP_BORDER 4
419#define TEXCOORD_ADDR_V_MASK 0x70
420#define TEXCOORD_ADDR_U_MASK 0x7
421
422/* _3DSTATE_MAP_CUBE, p168 TODO */
423#define _3DSTATE_MAP_CUBE (CMD_3D|(0x1c<<24)|(0x0a<<19))
424#define CUBE_NEGX_ENABLE (1<<5)
425#define CUBE_POSX_ENABLE (1<<4)
426#define CUBE_NEGY_ENABLE (1<<3)
427#define CUBE_POSY_ENABLE (1<<2)
428#define CUBE_NEGZ_ENABLE (1<<1)
429#define CUBE_POSZ_ENABLE (1<<0)
430
431#define _3DSTATE_MAP_INFO_CMD (CMD_3D|(0x1d<<24)|(0x0<<16)|3)
432#define TEXMAP_INDEX(x) ((x)<<28)
433#define MAP_SURFACE_8BIT (1<<24)
434#define MAP_SURFACE_16BIT (2<<24)
435#define MAP_SURFACE_32BIT (3<<24)
436#define MAP_FORMAT_2D (0)
437#define MAP_FORMAT_3D_CUBE (1<<11)
438
439/* _3DSTATE_MODES_1, p190 */
440#define _3DSTATE_MODES_1_CMD (CMD_3D|(0x08<<24))
441#define BLENDFUNC_MASK 0x3f0000
442#define ENABLE_COLR_BLND_FUNC (1<<21)
443#define BLENDFUNC_ADD 0
444#define BLENDFUNC_SUB (1<<16)
445#define BLENDFUNC_RVRSE_SUB (2<<16)
446#define BLENDFUNC_MIN (3<<16)
447#define BLENDFUNC_MAX (4<<16)
448#define SRC_DST_BLND_MASK 0xfff
449#define ENABLE_SRC_BLND_FACTOR (1<<11)
450#define ENABLE_DST_BLND_FACTOR (1<<5)
451#define SRC_BLND_FACT(x) ((x)<<6)
452#define DST_BLND_FACT(x) (x)
453
454/* _3DSTATE_MODES_2, p192 */
455#define _3DSTATE_MODES_2_CMD (CMD_3D|(0x0f<<24))
456#define ENABLE_GLOBAL_DEPTH_BIAS (1<<22)
457#define GLOBAL_DEPTH_BIAS(x) ((x)<<14)
458#define ENABLE_ALPHA_TEST_FUNC (1<<13)
459#define ENABLE_ALPHA_REF_VALUE (1<<8)
460#define ALPHA_TEST_FUNC(x) ((x)<<9)
461#define ALPHA_REF_VALUE(x) (x)
462
463#define ALPHA_TEST_REF_MASK 0x3fff
464
465/* _3DSTATE_MODES_3, p193 */
466#define _3DSTATE_MODES_3_CMD (CMD_3D|(0x02<<24))
467#define DEPTH_TEST_FUNC_MASK 0x1f0000
468#define ENABLE_DEPTH_TEST_FUNC (1<<20)
469/* Uses COMPAREFUNC */
470#define DEPTH_TEST_FUNC(x) ((x)<<16)
471#define ENABLE_ALPHA_SHADE_MODE (1<<11)
472#define ENABLE_FOG_SHADE_MODE (1<<9)
473#define ENABLE_SPEC_SHADE_MODE (1<<7)
474#define ENABLE_COLOR_SHADE_MODE (1<<5)
475#define ALPHA_SHADE_MODE(x) ((x)<<10)
476#define FOG_SHADE_MODE(x) ((x)<<8)
477#define SPEC_SHADE_MODE(x) ((x)<<6)
478#define COLOR_SHADE_MODE(x) ((x)<<4)
479#define CULLMODE_MASK 0xf
480#define ENABLE_CULL_MODE (1<<3)
481#define CULLMODE_BOTH 0
482#define CULLMODE_NONE 1
483#define CULLMODE_CW 2
484#define CULLMODE_CCW 3
485
486#define SHADE_MODE_LINEAR 0
487#define SHADE_MODE_FLAT 0x1
488
489/* _3DSTATE_MODES_4, p195 */
490#define _3DSTATE_MODES_4_CMD (CMD_3D|(0x16<<24))
491#define ENABLE_LOGIC_OP_FUNC (1<<23)
492#define LOGIC_OP_FUNC(x) ((x)<<18)
493#define LOGICOP_MASK ((1<<18)|(1<<19)|(1<<20)|(1<<21))
494#define LOGICOP_CLEAR 0
495#define LOGICOP_NOR 0x1
496#define LOGICOP_AND_INV 0x2
497#define LOGICOP_COPY_INV 0x3
498#define LOGICOP_AND_RVRSE 0x4
499#define LOGICOP_INV 0x5
500#define LOGICOP_XOR 0x6
501#define LOGICOP_NAND 0x7
502#define LOGICOP_AND 0x8
503#define LOGICOP_EQUIV 0x9
504#define LOGICOP_NOOP 0xa
505#define LOGICOP_OR_INV 0xb
506#define LOGICOP_COPY 0xc
507#define LOGICOP_OR_RVRSE 0xd
508#define LOGICOP_OR 0xe
509#define LOGICOP_SET 0xf
510#define MODE4_ENABLE_STENCIL_TEST_MASK ((1<<17)|(0xff00))
511#define ENABLE_STENCIL_TEST_MASK (1<<17)
512#define STENCIL_TEST_MASK(x) ((x)<<8)
513#define MODE4_ENABLE_STENCIL_WRITE_MASK ((1<<16)|(0x00ff))
514#define ENABLE_STENCIL_WRITE_MASK (1<<16)
515#define STENCIL_WRITE_MASK(x) ((x)&0xff)
516
517/* _3DSTATE_MODES_5, p196 */
518#define _3DSTATE_MODES_5_CMD (CMD_3D|(0x0c<<24))
519#define ENABLE_SPRITE_POINT_TEX (1<<23)
520#define SPRITE_POINT_TEX_ON (1<<22)
521#define SPRITE_POINT_TEX_OFF 0
522#define FLUSH_RENDER_CACHE (1<<18)
523#define FLUSH_TEXTURE_CACHE (1<<16)
524#define FIXED_LINE_WIDTH_MASK 0xfc00
525#define ENABLE_FIXED_LINE_WIDTH (1<<15)
526#define FIXED_LINE_WIDTH(x) ((x)<<10)
527#define FIXED_POINT_WIDTH_MASK 0x3ff
528#define ENABLE_FIXED_POINT_WIDTH (1<<9)
529#define FIXED_POINT_WIDTH(x) (x)
530
531/* _3DSTATE_RASTERIZATION_RULES, p198 */
532#define _3DSTATE_RASTER_RULES_CMD (CMD_3D|(0x07<<24))
533#define ENABLE_POINT_RASTER_RULE (1<<15)
534#define OGL_POINT_RASTER_RULE (1<<13)
535#define ENABLE_LINE_STRIP_PROVOKE_VRTX (1<<8)
536#define ENABLE_TRI_FAN_PROVOKE_VRTX (1<<5)
537#define ENABLE_TRI_STRIP_PROVOKE_VRTX (1<<2)
538#define LINE_STRIP_PROVOKE_VRTX(x) ((x)<<6)
539#define TRI_FAN_PROVOKE_VRTX(x) ((x)<<3)
540#define TRI_STRIP_PROVOKE_VRTX(x) (x)
541
542/* _3DSTATE_SCISSOR_ENABLE, p200 */
543#define _3DSTATE_SCISSOR_ENABLE_CMD (CMD_3D|(0x1c<<24)|(0x10<<19))
544#define ENABLE_SCISSOR_RECT ((1<<1) | 1)
545#define DISABLE_SCISSOR_RECT (1<<1)
546
547/* _3DSTATE_SCISSOR_RECTANGLE_0, p201 */
548#define _3DSTATE_SCISSOR_RECT_0_CMD (CMD_3D|(0x1d<<24)|(0x81<<16)|1)
549/* Dword 1 */
550#define SCISSOR_RECT_0_YMIN(x) ((x)<<16)
551#define SCISSOR_RECT_0_XMIN(x) (x)
552/* Dword 2 */
553#define SCISSOR_RECT_0_YMAX(x) ((x)<<16)
554#define SCISSOR_RECT_0_XMAX(x) (x)
555
556/* _3DSTATE_STENCIL_TEST, p202 */
557#define _3DSTATE_STENCIL_TEST_CMD (CMD_3D|(0x09<<24))
558#define ENABLE_STENCIL_PARMS (1<<23)
559#define STENCIL_OPS_MASK (0xffc000)
560#define STENCIL_FAIL_OP(x) ((x)<<20)
561#define STENCIL_PASS_DEPTH_FAIL_OP(x) ((x)<<17)
562#define STENCIL_PASS_DEPTH_PASS_OP(x) ((x)<<14)
563
564#define ENABLE_STENCIL_TEST_FUNC_MASK ((1<<13)|(1<<12)|(1<<11)|(1<<10)|(1<<9))
565#define ENABLE_STENCIL_TEST_FUNC (1<<13)
566/* Uses COMPAREFUNC */
567#define STENCIL_TEST_FUNC(x) ((x)<<9)
568#define STENCIL_REF_VALUE_MASK ((1<<8)|0xff)
569#define ENABLE_STENCIL_REF_VALUE (1<<8)
570#define STENCIL_REF_VALUE(x) (x)
571
572/* _3DSTATE_VERTEX_FORMAT, p204 */
573#define _3DSTATE_VFT0_CMD (CMD_3D|(0x05<<24))
574#define VFT0_POINT_WIDTH (1<<12)
575#define VFT0_TEX_COUNT_MASK (7<<8)
576#define VFT0_TEX_COUNT_SHIFT 8
577#define VFT0_TEX_COUNT(x) ((x)<<8)
578#define VFT0_SPEC (1<<7)
579#define VFT0_DIFFUSE (1<<6)
580#define VFT0_DEPTH_OFFSET (1<<5)
581#define VFT0_XYZ (1<<1)
582#define VFT0_XYZW (2<<1)
583#define VFT0_XY (3<<1)
584#define VFT0_XYW (4<<1)
585#define VFT0_XYZW_MASK (7<<1)
586
587/* _3DSTATE_VERTEX_FORMAT_2, p206 */
588#define _3DSTATE_VERTEX_FORMAT_2_CMD (CMD_3D|(0x0a<<24))
589#define VFT1_TEX7_FMT(x) ((x)<<14)
590#define VFT1_TEX6_FMT(x) ((x)<<12)
591#define VFT1_TEX5_FMT(x) ((x)<<10)
592#define VFT1_TEX4_FMT(x) ((x)<<8)
593#define VFT1_TEX3_FMT(x) ((x)<<6)
594#define VFT1_TEX2_FMT(x) ((x)<<4)
595#define VFT1_TEX1_FMT(x) ((x)<<2)
596#define VFT1_TEX0_FMT(x) (x)
597#define VFT1_TEX0_MASK 3
598#define VFT1_TEX1_SHIFT 2
599#define TEXCOORDFMT_2D 0
600#define TEXCOORDFMT_3D 1
601#define TEXCOORDFMT_4D 2
602#define TEXCOORDFMT_1D 3
603
604/*New stuff picked up along the way */
605
606#define MLC_LOD_BIAS_MASK ((1<<7)-1)
607
608/* _3DSTATE_VERTEX_TRANSFORM, p207 */
609#define _3DSTATE_VERTEX_TRANS_CMD (CMD_3D|(0x1d<<24)|(0x8b<<16)|0)
610#define _3DSTATE_VERTEX_TRANS_MTX_CMD (CMD_3D|(0x1d<<24)|(0x8b<<16)|6)
611/* Dword 1 */
612#define ENABLE_VIEWPORT_TRANSFORM ((1<<31)|(1<<30))
613#define DISABLE_VIEWPORT_TRANSFORM (1<<31)
614#define ENABLE_PERSP_DIVIDE ((1<<29)|(1<<28))
615#define DISABLE_PERSP_DIVIDE (1<<29)
616#define VRTX_TRANS_LOAD_MATRICES 0x7421
617#define VRTX_TRANS_NO_LOAD_MATRICES 0x0000
618/* Dword 2 -> 7 are matrix elements */
619
620/* _3DSTATE_W_STATE, p209 */
621#define _3DSTATE_W_STATE_CMD (CMD_3D|(0x1d<<24)|(0x8d<<16)|1)
622/* Dword 1 */
623#define MAGIC_W_STATE_DWORD1 0x00000008
624/* Dword 2 */
625#define WFAR_VALUE(x) (x)
626
627/* Stipple command, carried over from the i810, apparently:
628 */
629#define _3DSTATE_STIPPLE (CMD_3D|(0x1d<<24)|(0x83<<16))
630#define ST1_ENABLE (1<<16)
631#define ST1_MASK (0xffff)
632
633#define _3DSTATE_LOAD_STATE_IMMEDIATE_1 (CMD_3D|(0x1d<<24)|(0x04<<16))
634#define I1_LOAD_S(n) (1<<((n)+4))
635#define S3_POINT_WIDTH_SHIFT 23
636#define S3_LINE_WIDTH_SHIFT 19
637#define S3_ALPHA_SHADE_MODE_SHIFT 18
638#define S3_FOG_SHADE_MODE_SHIFT 17
639#define S3_SPEC_SHADE_MODE_SHIFT 16
640#define S3_COLOR_SHADE_MODE_SHIFT 15
641#define S3_CULL_MODE_SHIFT 13
642#define S3_CULLMODE_BOTH (0)
643#define S3_CULLMODE_NONE (1<<13)
644#define S3_CULLMODE_CW (2<<13)
645#define S3_CULLMODE_CCW (3<<13)
646#define S3_POINT_WIDTH_PRESENT (1<<12)
647#define S3_SPEC_FOG_PRESENT (1<<11)
648#define S3_DIFFUSE_PRESENT (1<<10)
649#define S3_DEPTH_OFFSET_PRESENT (1<<9)
650#define S3_POSITION_SHIFT 6
651#define S3_VERTEXHAS_XYZ (1<<6)
652#define S3_VERTEXHAS_XYZW (2<<6)
653#define S3_VERTEXHAS_XY (3<<6)
654#define S3_VERTEXHAS_XYW (4<<6)
655#define S3_ENABLE_SPEC_ADD (1<<5)
656#define S3_ENABLE_FOG (1<<4)
657#define S3_ENABLE_LOCAL_DEPTH_BIAS (1<<3)
658#define S3_ENABLE_SPRITE_POINT (1<<1)
659#define S3_ENABLE_ANTIALIASING 1
660#define S8_ENABLE_ALPHA_TEST (1<<31)
661#define S8_ALPHA_TEST_FUNC_SHIFT 28
662#define S8_ALPHA_REFVALUE_SHIFT 20
663#define S8_ENABLE_DEPTH_TEST (1<<19)
664#define S8_DEPTH_TEST_FUNC_SHIFT 16
665#define S8_ENABLE_COLOR_BLEND (1<<15)
666#define S8_COLOR_BLEND_FUNC_SHIFT 12
667#define S8_BLENDFUNC_ADD (0)
668#define S8_BLENDFUNC_SUB (1<<12)
669#define S8_BLENDFUNC_RVRSE_SUB (2<<12)
670#define S8_BLENDFUNC_MIN (3<<12)
671#define S8_BLENDFUNC_MAX (4<<12)
672#define S8_SRC_BLEND_FACTOR_SHIFT 8
673#define S8_DST_BLEND_FACTOR_SHIFT 4
674#define S8_ENABLE_DEPTH_BUFFER_WRITE (1<<3)
675#define S8_ENABLE_COLOR_BUFFER_WRITE (1<<2)
676
677#define _3DSTATE_LOAD_STATE_IMMEDIATE_2 (CMD_3D|(0x1d<<24)|(0x03<<16))
678#define LOAD_TEXTURE_MAP(x) (1<<((x)+11))
679#define LOAD_TEXTURE_BLEND_STAGE(x) (1<<((x)+7))
680#define LOAD_GLOBAL_COLOR_FACTOR (1<<6)
681
682#define TM0S0_ADDRESS_MASK 0xfffffffc
683#define TM0S0_USE_FENCE (1<<1)
684
685#define TM0S1_HEIGHT_SHIFT 21
686#define TM0S1_WIDTH_SHIFT 10
687#define TM0S1_PALETTE_SELECT (1<<9)
688#define TM0S1_MAPSURF_FORMAT_MASK (0x7 << 6)
689#define TM0S1_MAPSURF_FORMAT_SHIFT 6
690#define MAPSURF_8BIT_INDEXED (0<<6)
691#define MAPSURF_8BIT (1<<6)
692#define MAPSURF_16BIT (2<<6)
693#define MAPSURF_32BIT (3<<6)
694#define MAPSURF_411 (4<<6)
695#define MAPSURF_422 (5<<6)
696#define MAPSURF_COMPRESSED (6<<6)
697#define MAPSURF_4BIT_INDEXED (7<<6)
698#define TM0S1_MT_FORMAT_MASK (0x7 << 3)
699#define TM0S1_MT_FORMAT_SHIFT 3
700#define MT_4BIT_IDX_ARGB8888 (7<<3) /* SURFACE_4BIT_INDEXED */
701#define MT_8BIT_IDX_RGB565 (0<<3) /* SURFACE_8BIT_INDEXED */
702#define MT_8BIT_IDX_ARGB1555 (1<<3)
703#define MT_8BIT_IDX_ARGB4444 (2<<3)
704#define MT_8BIT_IDX_AY88 (3<<3)
705#define MT_8BIT_IDX_ABGR8888 (4<<3)
706#define MT_8BIT_IDX_BUMP_88DVDU (5<<3)
707#define MT_8BIT_IDX_BUMP_655LDVDU (6<<3)
708#define MT_8BIT_IDX_ARGB8888 (7<<3)
709#define MT_8BIT_I8 (0<<3) /* SURFACE_8BIT */
710#define MT_8BIT_L8 (1<<3)
711#define MT_8BIT_A8 (4<<3)
712#define MT_16BIT_RGB565 (0<<3) /* SURFACE_16BIT */
713#define MT_16BIT_ARGB1555 (1<<3)
714#define MT_16BIT_ARGB4444 (2<<3)
715#define MT_16BIT_AY88 (3<<3)
716#define MT_16BIT_DIB_ARGB1555_8888 (4<<3)
717#define MT_16BIT_BUMP_88DVDU (5<<3)
718#define MT_16BIT_BUMP_655LDVDU (6<<3)
719#define MT_16BIT_DIB_RGB565_8888 (7<<3)
720#define MT_32BIT_ARGB8888 (0<<3) /* SURFACE_32BIT */
721#define MT_32BIT_ABGR8888 (1<<3)
722#define MT_32BIT_XRGB8888 (2<<3)
723#define MT_32BIT_XBGR8888 (3<<3)
724#define MT_32BIT_BUMP_XLDVDU_8888 (6<<3)
725#define MT_32BIT_DIB_8888 (7<<3)
726#define MT_411_YUV411 (0<<3) /* SURFACE_411 */
727#define MT_422_YCRCB_SWAPY (0<<3) /* SURFACE_422 */
728#define MT_422_YCRCB_NORMAL (1<<3)
729#define MT_422_YCRCB_SWAPUV (2<<3)
730#define MT_422_YCRCB_SWAPUVY (3<<3)
731#define MT_COMPRESS_DXT1 (0<<3) /* SURFACE_COMPRESSED */
732#define MT_COMPRESS_DXT2_3 (1<<3)
733#define MT_COMPRESS_DXT4_5 (2<<3)
734#define MT_COMPRESS_FXT1 (3<<3)
735#define TM0S1_COLORSPACE_CONVERSION (1 << 2)
736#define TM0S1_TILED_SURFACE (1 << 1)
737#define TM0S1_TILE_WALK (1 << 0)
738
739#define TM0S2_PITCH_SHIFT 21
740#define TM0S2_CUBE_FACE_ENA_SHIFT 15
741#define TM0S2_CUBE_FACE_ENA_MASK (1<<15)
742#define TM0S2_MAP_FORMAT (1<<14)
743#define TM0S2_MAP_2D (0<<14)
744#define TM0S2_MAP_3D_CUBE (1<<14)
745#define TM0S2_VERTICAL_LINE_STRIDE (1<<13)
746#define TM0S2_VERITCAL_LINE_STRIDE_OFF (1<<12)
747#define TM0S2_OUTPUT_CHAN_SHIFT 10
748#define TM0S2_OUTPUT_CHAN_MASK (3<<10)
749
750#define TM0S3_MIP_FILTER_MASK (0x3<<30)
751#define TM0S3_MIP_FILTER_SHIFT 30
752#define MIPFILTER_NONE 0
753#define MIPFILTER_NEAREST 1
754#define MIPFILTER_LINEAR 3
755#define TM0S3_MAG_FILTER_MASK (0x3<<28)
756#define TM0S3_MAG_FILTER_SHIFT 28
757#define TM0S3_MIN_FILTER_MASK (0x3<<26)
758#define TM0S3_MIN_FILTER_SHIFT 26
759#define FILTER_NEAREST 0
760#define FILTER_LINEAR 1
761#define FILTER_ANISOTROPIC 2
762
763#define TM0S3_LOD_BIAS_SHIFT 17
764#define TM0S3_LOD_BIAS_MASK (0x1ff<<17)
765#define TM0S3_MAX_MIP_SHIFT 9
766#define TM0S3_MAX_MIP_MASK (0xff<<9)
767#define TM0S3_MIN_MIP_SHIFT 3
768#define TM0S3_MIN_MIP_MASK (0x3f<<3)
769#define TM0S3_KILL_PIXEL (1<<2)
770#define TM0S3_KEYED_FILTER (1<<1)
771#define TM0S3_CHROMA_KEY (1<<0)
772
773/* _3DSTATE_MAP_TEXEL_STREAM, p188 */
774#define _3DSTATE_MAP_TEX_STREAM_CMD (CMD_3D|(0x1c<<24)|(0x05<<19))
775#define DISABLE_TEX_STREAM_BUMP (1<<12)
776#define ENABLE_TEX_STREAM_BUMP ((1<<12)|(1<<11))
777#define TEX_MODIFY_UNIT_0 0
778#define TEX_MODIFY_UNIT_1 (1<<8)
779#define ENABLE_TEX_STREAM_COORD_SET (1<<7)
780#define TEX_STREAM_COORD_SET(x) ((x)<<4)
781#define ENABLE_TEX_STREAM_MAP_IDX (1<<3)
782#define TEX_STREAM_MAP_IDX(x) (x)
783
784#define FLUSH_MAP_CACHE (1<<0)
785
786#define _3DSTATE_MAP_FILTER_CMD (CMD_3D|(0x1c<<24)|(0x02<<19))
787#define FILTER_TEXMAP_INDEX(x) ((x) << 16)
788#define MAG_MODE_FILTER_ENABLE (1 << 5)
789#define MIN_MODE_FILTER_ENABLE (1 << 2)
790#define MAG_MAPFILTER_NEAREST (0 << 3)
791#define MAG_MAPFILTER_LINEAR (1 << 3)
792#define MAG_MAPFILTER_ANISOTROPIC (2 << 3)
793#define MIN_MAPFILTER_NEAREST (0)
794#define MIN_MAPFILTER_LINEAR (1)
795#define MIN_MAPFILTER_ANISOTROPIC (2)
796#define ENABLE_KEYS (1<<15)
797#define DISABLE_COLOR_KEY 0
798#define DISABLE_CHROMA_KEY 0
799#define DISABLE_KILL_PIXEL 0
800#define ENABLE_MIP_MODE_FILTER (1 << 9)
801#define MIPFILTER_NONE 0
802#define MIPFILTER_NEAREST 1
803#define MIPFILTER_LINEAR 3
804
805#endif
diff --git a/src/xvmc/i915_program.h b/xvmc/i915_program.h
index da315437..da315437 100644
--- a/src/xvmc/i915_program.h
+++ b/xvmc/i915_program.h
diff --git a/xvmc/i915_reg.h b/xvmc/i915_reg.h
new file mode 100644
index 00000000..746a4131
--- /dev/null
+++ b/xvmc/i915_reg.h
@@ -0,0 +1,844 @@
1/**************************************************************************
2 *
3 * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas.
4 * All Rights Reserved.
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a
7 * copy of this software and associated documentation files (the
8 * "Software"), to deal in the Software without restriction, including
9 * without limitation the rights to use, copy, modify, merge, publish,
10 * distribute, sub license, and/or sell copies of the Software, and to
11 * permit persons to whom the Software is furnished to do so, subject to
12 * the following conditions:
13 *
14 * The above copyright notice and this permission notice (including the
15 * next paragraph) shall be included in all copies or substantial portions
16 * of the Software.
17 *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21 * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
22 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25 *
26 **************************************************************************/
27
28#ifndef _I915_REG_H_
29#define _I915_REG_H_
30
31#define I915_SET_FIELD( var, mask, value ) (var &= ~(mask), var |= value)
32
33#define CMD_3D (0x3<<29)
34
35#define PRIM3D (CMD_3D | (0x1f<<24))
36#define PRIM3D_INDIRECT_SEQUENTIAL ((1<<23) | (0<<17))
37#define PRIM3D_TRILIST (PRIM3D | (0x0<<18))
38#define PRIM3D_TRISTRIP (PRIM3D | (0x1<<18))
39#define PRIM3D_TRISTRIP_RVRSE (PRIM3D | (0x2<<18))
40#define PRIM3D_TRIFAN (PRIM3D | (0x3<<18))
41#define PRIM3D_POLY (PRIM3D | (0x4<<18))
42#define PRIM3D_LINELIST (PRIM3D | (0x5<<18))
43#define PRIM3D_LINESTRIP (PRIM3D | (0x6<<18))
44#define PRIM3D_RECTLIST (PRIM3D | (0x7<<18))
45#define PRIM3D_POINTLIST (PRIM3D | (0x8<<18))
46#define PRIM3D_DIB (PRIM3D | (0x9<<18))
47#define PRIM3D_CLEAR_RECT (PRIM3D | (0xa<<18))
48#define PRIM3D_ZONE_INIT (PRIM3D | (0xd<<18))
49#define PRIM3D_MASK (0x1f<<18)
50
51/* p137 */
52#define _3DSTATE_AA_CMD (CMD_3D | (0x06<<24))
53#define AA_LINE_ECAAR_WIDTH_ENABLE (1<<16)
54#define AA_LINE_ECAAR_WIDTH_0_5 0
55#define AA_LINE_ECAAR_WIDTH_1_0 (1<<14)
56#define AA_LINE_ECAAR_WIDTH_2_0 (2<<14)
57#define AA_LINE_ECAAR_WIDTH_4_0 (3<<14)
58#define AA_LINE_REGION_WIDTH_ENABLE (1<<8)
59#define AA_LINE_REGION_WIDTH_0_5 0
60#define AA_LINE_REGION_WIDTH_1_0 (1<<6)
61#define AA_LINE_REGION_WIDTH_2_0 (2<<6)
62#define AA_LINE_REGION_WIDTH_4_0 (3<<6)
63
64/* 3DSTATE_BACKFACE_STENCIL_OPS, p138*/
65#define _3DSTATE_BACKFACE_STENCIL_OPS (CMD_3D | (0x8<<24))
66#define BFO_ENABLE_STENCIL_REF (1<<23)
67#define BFO_STENCIL_REF_SHIFT 15
68#define BFO_STENCIL_REF_MASK (0xff<<15)
69#define BFO_ENABLE_STENCIL_FUNCS (1<<14)
70#define BFO_STENCIL_TEST_SHIFT 11
71#define BFO_STENCIL_TEST_MASK (0x7<<11)
72#define BFO_STENCIL_FAIL_SHIFT 8
73#define BFO_STENCIL_FAIL_MASK (0x7<<8)
74#define BFO_STENCIL_PASS_Z_FAIL_SHIFT 5
75#define BFO_STENCIL_PASS_Z_FAIL_MASK (0x7<<5)
76#define BFO_STENCIL_PASS_Z_PASS_SHIFT 2
77#define BFO_STENCIL_PASS_Z_PASS_MASK (0x7<<2)
78#define BFO_ENABLE_STENCIL_TWO_SIDE (1<<1)
79#define BFO_STENCIL_TWO_SIDE (1<<0)
80
81/* 3DSTATE_BACKFACE_STENCIL_MASKS, p140 */
82#define _3DSTATE_BACKFACE_STENCIL_MASKS (CMD_3D | (0x9<<24))
83#define BFM_ENABLE_STENCIL_TEST_MASK (1<<17)
84#define BFM_ENABLE_STENCIL_WRITE_MASK (1<<16)
85#define BFM_STENCIL_TEST_MASK_SHIFT 8
86#define BFM_STENCIL_TEST_MASK_MASK (0xff<<8)
87#define BFM_STENCIL_WRITE_MASK_SHIFT 0
88#define BFM_STENCIL_WRITE_MASK_MASK (0xff<<0)
89
90/* 3DSTATE_BIN_CONTROL p141 */
91
92/* p143 */
93#define _3DSTATE_BUF_INFO_CMD (CMD_3D | (0x1d<<24) | (0x8e<<16) | 1)
94/* Dword 1 */
95#define BUF_3D_ID_COLOR_BACK (0x3<<24)
96#define BUF_3D_ID_DEPTH (0x7<<24)
97#define BUF_3D_USE_FENCE (1<<23)
98#define BUF_3D_TILED_SURFACE (1<<22)
99#define BUF_3D_TILE_WALK_X 0
100#define BUF_3D_TILE_WALK_Y (1<<21)
101#define BUF_3D_PITCH(x) (((x)/4)<<2)
102/* Dword 2 */
103#define BUF_3D_ADDR(x) ((x) & ~0x3)
104
105/* 3DSTATE_CHROMA_KEY */
106
107/* 3DSTATE_CLEAR_PARAMETERS, p150 */
108#define _3DSTATE_CLEAR_PARAMETERS (CMD_3D | (0x1d<<24) | (0x9c<<16) | 5)
109/* Dword 1 */
110#define CLEARPARAM_CLEAR_RECT (1 << 16)
111#define CLEARPARAM_ZONE_INIT (0 << 16)
112#define CLEARPARAM_WRITE_COLOR (1 << 2)
113#define CLEARPARAM_WRITE_DEPTH (1 << 1)
114#define CLEARPARAM_WRITE_STENCIL (1 << 0)
115
116/* 3DSTATE_CONSTANT_BLEND_COLOR, p153 */
117#define _3DSTATE_CONST_BLEND_COLOR_CMD (CMD_3D | (0x1d<<24) | (0x88<<16))
118
119/* 3DSTATE_COORD_SET_BINDINGS, p154 */
120#define _3DSTATE_COORD_SET_BINDINGS (CMD_3D | (0x16<<24))
121#define CSB_TCB(iunit, eunit) ((eunit)<<(iunit*3))
122
123/* p156 */
124#define _3DSTATE_DFLT_DIFFUSE_CMD (CMD_3D | (0x1d<<24) | (0x99<<16))
125
126/* p157 */
127#define _3DSTATE_DFLT_SPEC_CMD (CMD_3D | (0x1d<<24) | (0x9a<<16))
128
129/* p158 */
130#define _3DSTATE_DFLT_Z_CMD (CMD_3D | (0x1d<<24) | (0x98<<16))
131
132/* 3DSTATE_DEPTH_OFFSET_SCALE, p159 */
133#define _3DSTATE_DEPTH_OFFSET_SCALE (CMD_3D | (0x1d<<24) | (0x97<<16))
134/* scale in dword 1 */
135
136/* The depth subrectangle is not supported, but must be disabled. */
137/* 3DSTATE_DEPTH_SUBRECT_DISABLE, p160 */
138#define _3DSTATE_DEPTH_SUBRECT_DISABLE (CMD_3D | (0x1c<<24) | (0x11<<19) | (1 << 1) | (0 << 0))
139
140/* p161 */
141#define _3DSTATE_DST_BUF_VARS_CMD (CMD_3D | (0x1d<<24) | (0x85<<16))
142/* Dword 1 */
143#define TEX_DEFAULT_COLOR_OGL (0<<30)
144#define TEX_DEFAULT_COLOR_D3D (1<<30)
145#define ZR_EARLY_DEPTH (1<<29)
146#define LOD_PRECLAMP_OGL (1<<28)
147#define LOD_PRECLAMP_D3D (0<<28)
148#define DITHER_FULL_ALWAYS (0<<26)
149#define DITHER_FULL_ON_FB_BLEND (1<<26)
150#define DITHER_CLAMPED_ALWAYS (2<<26)
151#define LINEAR_GAMMA_BLEND_32BPP (1<<25)
152#define DEBUG_DISABLE_ENH_DITHER (1<<24)
153#define DSTORG_HORT_BIAS(x) ((x)<<20)
154#define DSTORG_VERT_BIAS(x) ((x)<<16)
155#define COLOR_4_2_2_CHNL_WRT_ALL 0
156#define COLOR_4_2_2_CHNL_WRT_Y (1<<12)
157#define COLOR_4_2_2_CHNL_WRT_CR (2<<12)
158#define COLOR_4_2_2_CHNL_WRT_CB (3<<12)
159#define COLOR_4_2_2_CHNL_WRT_CRCB (4<<12)
160#define COLR_BUF_8BIT 0
161#define COLR_BUF_RGB555 (1<<8)
162#define COLR_BUF_RGB565 (2<<8)
163#define COLR_BUF_ARGB8888 (3<<8)
164#define COLR_BUF_ARGB4444 (8<<8)
165#define COLR_BUF_ARGB1555 (9<<8)
166#define COLR_BUF_ARGB2AAA (0xa<<8)
167#define DEPTH_FRMT_16_FIXED 0
168#define DEPTH_FRMT_16_FLOAT (1<<2)
169#define DEPTH_FRMT_24_FIXED_8_OTHER (2<<2)
170#define VERT_LINE_STRIDE_1 (1<<1)
171#define VERT_LINE_STRIDE_0 (0<<1)
172#define VERT_LINE_STRIDE_OFS_1 1
173#define VERT_LINE_STRIDE_OFS_0 0
174
175/* p166 */
176#define _3DSTATE_DRAW_RECT_CMD (CMD_3D|(0x1d<<24)|(0x80<<16)|3)
177/* Dword 1 */
178#define DRAW_RECT_DIS_DEPTH_OFS (1<<30)
179#define DRAW_DITHER_OFS_X(x) ((x)<<26)
180#define DRAW_DITHER_OFS_Y(x) ((x)<<24)
181/* Dword 2 */
182#define DRAW_YMIN(x) ((x)<<16)
183#define DRAW_XMIN(x) (x)
184/* Dword 3 */
185#define DRAW_YMAX(x) ((x)<<16)
186#define DRAW_XMAX(x) (x)
187/* Dword 4 */
188#define DRAW_YORG(x) ((x)<<16)
189#define DRAW_XORG(x) (x)
190
191/* 3DSTATE_FILTER_COEFFICIENTS_4X4, p170 */
192
193/* 3DSTATE_FILTER_COEFFICIENTS_6X5, p172 */
194
195/* _3DSTATE_FOG_COLOR, p173 */
196#define _3DSTATE_FOG_COLOR_CMD (CMD_3D|(0x15<<24))
197#define FOG_COLOR_RED(x) ((x)<<16)
198#define FOG_COLOR_GREEN(x) ((x)<<8)
199#define FOG_COLOR_BLUE(x) (x)
200
201/* _3DSTATE_FOG_MODE, p174 */
202#define _3DSTATE_FOG_MODE_CMD (CMD_3D|(0x1d<<24)|(0x89<<16)|2)
203/* Dword 1 */
204#define FMC1_FOGFUNC_MODIFY_ENABLE (1<<31)
205#define FMC1_FOGFUNC_VERTEX (0<<28)
206#define FMC1_FOGFUNC_PIXEL_EXP (1<<28)
207#define FMC1_FOGFUNC_PIXEL_EXP2 (2<<28)
208#define FMC1_FOGFUNC_PIXEL_LINEAR (3<<28)
209#define FMC1_FOGFUNC_MASK (3<<28)
210#define FMC1_FOGINDEX_MODIFY_ENABLE (1<<27)
211#define FMC1_FOGINDEX_Z (0<<25)
212#define FMC1_FOGINDEX_W (1<<25)
213#define FMC1_C1_C2_MODIFY_ENABLE (1<<24)
214#define FMC1_DENSITY_MODIFY_ENABLE (1<<23)
215#define FMC1_C1_ONE (1<<13)
216#define FMC1_C1_MASK (0xffff<<4)
217/* Dword 2 */
218#define FMC2_C2_ONE (1<<16)
219/* Dword 3 */
220#define FMC3_D_ONE (1<<16)
221
222/* _3DSTATE_INDEPENDENT_ALPHA_BLEND, p177 */
223#define _3DSTATE_INDEPENDENT_ALPHA_BLEND_CMD (CMD_3D|(0x0b<<24))
224#define IAB_MODIFY_ENABLE (1<<23)
225#define IAB_ENABLE (1<<22)
226#define IAB_MODIFY_FUNC (1<<21)
227#define IAB_FUNC_SHIFT 16
228#define IAB_MODIFY_SRC_FACTOR (1<<11)
229#define IAB_SRC_FACTOR_SHIFT 6
230#define IAB_SRC_FACTOR_MASK (BLENDFACT_MASK<<6)
231#define IAB_MODIFY_DST_FACTOR (1<<5)
232#define IAB_DST_FACTOR_SHIFT 0
233#define IAB_DST_FACTOR_MASK (BLENDFACT_MASK<<0)
234
235#define BLENDFACT_ZERO 0x01
236#define BLENDFACT_ONE 0x02
237#define BLENDFACT_SRC_COLR 0x03
238#define BLENDFACT_INV_SRC_COLR 0x04
239#define BLENDFACT_SRC_ALPHA 0x05
240#define BLENDFACT_INV_SRC_ALPHA 0x06
241#define BLENDFACT_DST_ALPHA 0x07
242#define BLENDFACT_INV_DST_ALPHA 0x08
243#define BLENDFACT_DST_COLR 0x09
244#define BLENDFACT_INV_DST_COLR 0x0a
245#define BLENDFACT_SRC_ALPHA_SATURATE 0x0b
246#define BLENDFACT_CONST_COLOR 0x0c
247#define BLENDFACT_INV_CONST_COLOR 0x0d
248#define BLENDFACT_CONST_ALPHA 0x0e
249#define BLENDFACT_INV_CONST_ALPHA 0x0f
250#define BLENDFACT_MASK 0x0f
251
252#define BLENDFUNC_ADD 0x0
253#define BLENDFUNC_SUBTRACT 0x1
254#define BLENDFUNC_REVERSE_SUBTRACT 0x2
255#define BLENDFUNC_MIN 0x3
256#define BLENDFUNC_MAX 0x4
257#define BLENDFUNC_MASK 0x7
258
259/* 3DSTATE_LOAD_INDIRECT, p180 */
260
261#define _3DSTATE_LOAD_INDIRECT (CMD_3D|(0x1d<<24)|(0x7<<16))
262#define LI0_STATE_STATIC_INDIRECT (0x01<<8)
263#define LI0_STATE_DYNAMIC_INDIRECT (0x02<<8)
264#define LI0_STATE_SAMPLER (0x04<<8)
265#define LI0_STATE_MAP (0x08<<8)
266#define LI0_STATE_PROGRAM (0x10<<8)
267#define LI0_STATE_CONSTANTS (0x20<<8)
268
269#define SIS0_BUFFER_ADDRESS(x) ((x)&~0x3)
270#define SIS0_FORCE_LOAD (1<<1)
271#define SIS0_BUFFER_VALID (1<<0)
272#define SIS1_BUFFER_LENGTH(x) ((x)&0xff)
273
274#define DIS0_BUFFER_ADDRESS(x) ((x)&~0x3)
275#define DIS0_BUFFER_RESET (1<<1)
276#define DIS0_BUFFER_VALID (1<<0)
277
278#define SSB0_BUFFER_ADDRESS(x) ((x)&~0x3)
279#define SSB0_FORCE_LOAD (1<<1)
280#define SSB0_BUFFER_VALID (1<<0)
281#define SSB1_BUFFER_LENGTH(x) ((x)&0xff)
282
283#define MSB0_BUFFER_ADDRESS(x) ((x)&~0x3)
284#define MSB0_FORCE_LOAD (1<<1)
285#define MSB0_BUFFER_VALID (1<<0)
286#define MSB1_BUFFER_LENGTH(x) ((x)&0xff)
287
288#define PSP0_BUFFER_ADDRESS(x) ((x)&~0x3)
289#define PSP0_FORCE_LOAD (1<<1)
290#define PSP0_BUFFER_VALID (1<<0)
291#define PSP1_BUFFER_LENGTH(x) ((x)&0xff)
292
293#define PSC0_BUFFER_ADDRESS(x) ((x)&~0x3)
294#define PSC0_FORCE_LOAD (1<<1)
295#define PSC0_BUFFER_VALID (1<<0)
296#define PSC1_BUFFER_LENGTH(x) ((x)&0xff)
297
298/* _3DSTATE_RASTERIZATION_RULES */
299#define _3DSTATE_RASTER_RULES_CMD (CMD_3D|(0x07<<24))
300#define ENABLE_POINT_RASTER_RULE (1<<15)
301#define OGL_POINT_RASTER_RULE (1<<13)
302#define ENABLE_TEXKILL_3D_4D (1<<10)
303#define TEXKILL_3D (0<<9)
304#define TEXKILL_4D (1<<9)
305#define ENABLE_LINE_STRIP_PROVOKE_VRTX (1<<8)
306#define ENABLE_TRI_FAN_PROVOKE_VRTX (1<<5)
307#define LINE_STRIP_PROVOKE_VRTX(x) ((x)<<6)
308#define TRI_FAN_PROVOKE_VRTX(x) ((x)<<3)
309
310/* _3DSTATE_SCISSOR_ENABLE, p256 */
311#define _3DSTATE_SCISSOR_ENABLE_CMD (CMD_3D|(0x1c<<24)|(0x10<<19))
312#define ENABLE_SCISSOR_RECT ((1<<1) | 1)
313#define DISABLE_SCISSOR_RECT (1<<1)
314
315/* _3DSTATE_SCISSOR_RECTANGLE_0, p257 */
316#define _3DSTATE_SCISSOR_RECT_0_CMD (CMD_3D|(0x1d<<24)|(0x81<<16)|1)
317/* Dword 1 */
318#define SCISSOR_RECT_0_YMIN(x) ((x)<<16)
319#define SCISSOR_RECT_0_XMIN(x) (x)
320/* Dword 2 */
321#define SCISSOR_RECT_0_YMAX(x) ((x)<<16)
322#define SCISSOR_RECT_0_XMAX(x) (x)
323
324/* p189 */
325#define _3DSTATE_LOAD_STATE_IMMEDIATE_1 ((0x3<<29)|(0x1d<<24)|(0x04<<16))
326#define I1_LOAD_S(n) (1<<(4+n))
327
328#define S0_VB_OFFSET_MASK 0xffffffc
329#define S0_AUTO_CACHE_INV_DISABLE (1<<0)
330
331#define S1_VERTEX_WIDTH_SHIFT 24
332#define S1_VERTEX_WIDTH_MASK (0x3f<<24)
333#define S1_VERTEX_PITCH_SHIFT 16
334#define S1_VERTEX_PITCH_MASK (0x3f<<16)
335
336#define TEXCOORDFMT_2D 0x0
337#define TEXCOORDFMT_3D 0x1
338#define TEXCOORDFMT_4D 0x2
339#define TEXCOORDFMT_1D 0x3
340#define TEXCOORDFMT_2D_16 0x4
341#define TEXCOORDFMT_4D_16 0x5
342#define TEXCOORDFMT_NOT_PRESENT 0xf
343#define S2_TEXCOORD_FMT0_MASK 0xf
344#define S2_TEXCOORD_FMT1_SHIFT 4
345#define S2_TEXCOORD_FMT(unit, type) ((type)<<(unit*4))
346#define S2_TEXCOORD_NONE (~0)
347
348#define TEXCOORD_WRAP_SHORTEST_TCX 8
349#define TEXCOORD_WRAP_SHORTEST_TCY 4
350#define TEXCOORD_WRAP_SHORTEST_TCZ 2
351#define TEXCOORD_PERSPECTIVE_DISABLE 1
352
353#define S3_WRAP_SHORTEST_TCX(unit) (TEXCOORD_WRAP_SHORTEST_TCX << ((unit) * 4))
354#define S3_WRAP_SHORTEST_TCY(unit) (TEXCOORD_WRAP_SHORTEST_TCY << ((unit) * 4))
355#define S3_WRAP_SHORTEST_TCZ(unit) (TEXCOORD_WRAP_SHORTEST_TCZ << ((unit) * 4))
356#define S3_PERSPECTIVE_DISABLE(unit) (TEXCOORD_PERSPECTIVE_DISABLE << ((unit) * 4))
357
358/* S3 not interesting */
359
360#define S4_POINT_WIDTH_SHIFT 23
361#define S4_POINT_WIDTH_MASK (0x1ff<<23)
362#define S4_LINE_WIDTH_SHIFT 19
363#define S4_LINE_WIDTH_ONE (0x2<<19)
364#define S4_LINE_WIDTH_MASK (0xf<<19)
365#define S4_FLATSHADE_ALPHA (1<<18)
366#define S4_FLATSHADE_FOG (1<<17)
367#define S4_FLATSHADE_SPECULAR (1<<16)
368#define S4_FLATSHADE_COLOR (1<<15)
369#define S4_CULLMODE_BOTH (0<<13)
370#define S4_CULLMODE_NONE (1<<13)
371#define S4_CULLMODE_CW (2<<13)
372#define S4_CULLMODE_CCW (3<<13)
373#define S4_CULLMODE_MASK (3<<13)
374#define S4_VFMT_POINT_WIDTH (1<<12)
375#define S4_VFMT_SPEC_FOG (1<<11)
376#define S4_VFMT_COLOR (1<<10)
377#define S4_VFMT_DEPTH_OFFSET (1<<9)
378#define S4_VFMT_XYZ (1<<6)
379#define S4_VFMT_XYZW (2<<6)
380#define S4_VFMT_XY (3<<6)
381#define S4_VFMT_XYW (4<<6)
382#define S4_VFMT_XYZW_MASK (7<<6)
383#define S4_FORCE_DEFAULT_DIFFUSE (1<<5)
384#define S4_FORCE_DEFAULT_SPECULAR (1<<4)
385#define S4_LOCAL_DEPTH_OFFSET_ENABLE (1<<3)
386#define S4_VFMT_FOG_PARAM (1<<2)
387#define S4_SPRITE_POINT_ENABLE (1<<1)
388#define S4_LINE_ANTIALIAS_ENABLE (1<<0)
389
390#define S4_VFMT_MASK (S4_VFMT_POINT_WIDTH | \
391 S4_VFMT_SPEC_FOG | \
392 S4_VFMT_COLOR | \
393 S4_VFMT_DEPTH_OFFSET | \
394 S4_VFMT_XYZW_MASK | \
395 S4_VFMT_FOG_PARAM)
396
397#define S5_WRITEDISABLE_ALPHA (1<<31)
398#define S5_WRITEDISABLE_RED (1<<30)
399#define S5_WRITEDISABLE_GREEN (1<<29)
400#define S5_WRITEDISABLE_BLUE (1<<28)
401#define S5_WRITEDISABLE_MASK (0xf<<28)
402#define S5_FORCE_DEFAULT_POINT_SIZE (1<<27)
403#define S5_LAST_PIXEL_ENABLE (1<<26)
404#define S5_GLOBAL_DEPTH_OFFSET_ENABLE (1<<25)
405#define S5_FOG_ENABLE (1<<24)
406#define S5_STENCIL_REF_SHIFT 16
407#define S5_STENCIL_REF_MASK (0xff<<16)
408#define S5_STENCIL_TEST_FUNC_SHIFT 13
409#define S5_STENCIL_TEST_FUNC_MASK (0x7<<13)
410#define S5_STENCIL_FAIL_SHIFT 10
411#define S5_STENCIL_FAIL_MASK (0x7<<10)
412#define S5_STENCIL_PASS_Z_FAIL_SHIFT 7
413#define S5_STENCIL_PASS_Z_FAIL_MASK (0x7<<7)
414#define S5_STENCIL_PASS_Z_PASS_SHIFT 4
415#define S5_STENCIL_PASS_Z_PASS_MASK (0x7<<4)
416#define S5_STENCIL_WRITE_ENABLE (1<<3)
417#define S5_STENCIL_TEST_ENABLE (1<<2)
418#define S5_COLOR_DITHER_ENABLE (1<<1)
419#define S5_LOGICOP_ENABLE (1<<0)
420
421#define S6_ALPHA_TEST_ENABLE (1<<31)
422#define S6_ALPHA_TEST_FUNC_SHIFT 28
423#define S6_ALPHA_TEST_FUNC_MASK (0x7<<28)
424#define S6_ALPHA_REF_SHIFT 20
425#define S6_ALPHA_REF_MASK (0xff<<20)
426#define S6_DEPTH_TEST_ENABLE (1<<19)
427#define S6_DEPTH_TEST_FUNC_SHIFT 16
428#define S6_DEPTH_TEST_FUNC_MASK (0x7<<16)
429#define S6_CBUF_BLEND_ENABLE (1<<15)
430#define S6_CBUF_BLEND_FUNC_SHIFT 12
431#define S6_CBUF_BLEND_FUNC_MASK (0x7<<12)
432#define S6_CBUF_SRC_BLEND_FACT_SHIFT 8
433#define S6_CBUF_SRC_BLEND_FACT_MASK (0xf<<8)
434#define S6_CBUF_DST_BLEND_FACT_SHIFT 4
435#define S6_CBUF_DST_BLEND_FACT_MASK (0xf<<4)
436#define S6_DEPTH_WRITE_ENABLE (1<<3)
437#define S6_COLOR_WRITE_ENABLE (1<<2)
438#define S6_TRISTRIP_PV_SHIFT 0
439#define S6_TRISTRIP_PV_MASK (0x3<<0)
440
441#define S7_DEPTH_OFFSET_CONST_MASK ~0
442
443/* 3DSTATE_MAP_DEINTERLACER_PARAMETERS */
444/* 3DSTATE_MAP_PALETTE_LOAD_32, p206 */
445
446/* _3DSTATE_MODES_4, p218 */
447#define _3DSTATE_MODES_4_CMD (CMD_3D|(0x0d<<24))
448#define ENABLE_LOGIC_OP_FUNC (1<<23)
449#define LOGIC_OP_FUNC(x) ((x)<<18)
450#define LOGICOP_MASK (0xf<<18)
451#define LOGICOP_COPY 0xc
452#define MODE4_ENABLE_STENCIL_TEST_MASK ((1<<17)|(0xff00))
453#define ENABLE_STENCIL_TEST_MASK (1<<17)
454#define STENCIL_TEST_MASK(x) ((x)<<8)
455#define MODE4_ENABLE_STENCIL_WRITE_MASK ((1<<16)|(0x00ff))
456#define ENABLE_STENCIL_WRITE_MASK (1<<16)
457#define STENCIL_WRITE_MASK(x) ((x)&0xff)
458
459/* _3DSTATE_MODES_5, p220 */
460#define _3DSTATE_MODES_5_CMD (CMD_3D|(0x0c<<24))
461#define PIPELINE_FLUSH_RENDER_CACHE (1<<18)
462#define PIPELINE_FLUSH_TEXTURE_CACHE (1<<16)
463
464/* p221 */
465#define _3DSTATE_PIXEL_SHADER_CONSTANTS (CMD_3D|(0x1d<<24)|(0x6<<16))
466#define PS1_REG(n) (1<<(n))
467#define PS2_CONST_X(n) (n)
468#define PS3_CONST_Y(n) (n)
469#define PS4_CONST_Z(n) (n)
470#define PS5_CONST_W(n) (n)
471
472/* p222 */
473
474#define I915_MAX_TEX_INDIRECT 4
475#define I915_MAX_TEX_INSN 32
476#define I915_MAX_ALU_INSN 64
477#define I915_MAX_DECL_INSN 27
478#define I915_MAX_TEMPORARY 16
479
480/* Each instruction is 3 dwords long, though most don't require all
481 * this space. Maximum of 123 instructions. Smaller maxes per insn
482 * type.
483 */
484#define _3DSTATE_PIXEL_SHADER_PROGRAM (CMD_3D|(0x1d<<24)|(0x5<<16))
485
486#define REG_TYPE_R 0 /* temporary regs, no need to
487 * dcl, must be written before
488 * read -- Preserved between
489 * phases.
490 */
491#define REG_TYPE_T 1 /* Interpolated values, must be
492 * dcl'ed before use.
493 *
494 * 0..7: texture coord,
495 * 8: diffuse spec,
496 * 9: specular color,
497 * 10: fog parameter in w.
498 */
499#define REG_TYPE_CONST 2 /* Restriction: only one const
500 * can be referenced per
501 * instruction, though it may be
502 * selected for multiple inputs.
503 * Constants not initialized
504 * default to zero.
505 */
506#define REG_TYPE_S 3 /* sampler */
507#define REG_TYPE_OC 4 /* output color (rgba) */
508#define REG_TYPE_OD 5 /* output depth (w), xyz are
509 * temporaries. If not written,
510 * interpolated depth is used?
511 */
512#define REG_TYPE_U 6 /* unpreserved temporaries */
513#define REG_TYPE_MASK 0x7
514#define REG_NR_MASK 0xf
515
516/* REG_TYPE_T:
517 */
518#define T_TEX0 0
519#define T_TEX1 1
520#define T_TEX2 2
521#define T_TEX3 3
522#define T_TEX4 4
523#define T_TEX5 5
524#define T_TEX6 6
525#define T_TEX7 7
526#define T_DIFFUSE 8
527#define T_SPECULAR 9
528#define T_FOG_W 10 /* interpolated fog is in W coord */
529
530/* Arithmetic instructions */
531
532/* .replicate_swizzle == selection and replication of a particular
533 * scalar channel, ie., .xxxx, .yyyy, .zzzz or .wwww
534 */
535#define A0_NOP (0x0<<24) /* no operation */
536#define A0_ADD (0x1<<24) /* dst = src0 + src1 */
537#define A0_MOV (0x2<<24) /* dst = src0 */
538#define A0_MUL (0x3<<24) /* dst = src0 * src1 */
539#define A0_MAD (0x4<<24) /* dst = src0 * src1 + src2 */
540#define A0_DP2ADD (0x5<<24) /* dst.xyzw = src0.xy dot src1.xy + src2.replicate_swizzle */
541#define A0_DP3 (0x6<<24) /* dst.xyzw = src0.xyz dot src1.xyz */
542#define A0_DP4 (0x7<<24) /* dst.xyzw = src0.xyzw dot src1.xyzw */
543#define A0_FRC (0x8<<24) /* dst = src0 - floor(src0) */
544#define A0_RCP (0x9<<24) /* dst.xyzw = 1/(src0.replicate_swizzle) */
545#define A0_RSQ (0xa<<24) /* dst.xyzw = 1/(sqrt(abs(src0.replicate_swizzle))) */
546#define A0_EXP (0xb<<24) /* dst.xyzw = exp2(src0.replicate_swizzle) */
547#define A0_LOG (0xc<<24) /* dst.xyzw = log2(abs(src0.replicate_swizzle)) */
548#define A0_CMP (0xd<<24) /* dst = (src0 >= 0.0) ? src1 : src2 */
549#define A0_MIN (0xe<<24) /* dst = (src0 < src1) ? src0 : src1 */
550#define A0_MAX (0xf<<24) /* dst = (src0 >= src1) ? src0 : src1 */
551#define A0_FLR (0x10<<24) /* dst = floor(src0) */
552#define A0_MOD (0x11<<24) /* dst = src0 fmod 1.0 */
553#define A0_TRC (0x12<<24) /* dst = int(src0) */
554#define A0_SGE (0x13<<24) /* dst = src0 >= src1 ? 1.0 : 0.0 */
555#define A0_SLT (0x14<<24) /* dst = src0 < src1 ? 1.0 : 0.0 */
556#define A0_DEST_SATURATE (1<<22)
557#define A0_DEST_TYPE_SHIFT 19
558/* Allow: R, OC, OD, U */
559#define A0_DEST_NR_SHIFT 14
560/* Allow R: 0..15, OC,OD: 0..0, U: 0..2 */
561#define A0_DEST_CHANNEL_X (1<<10)
562#define A0_DEST_CHANNEL_Y (2<<10)
563#define A0_DEST_CHANNEL_Z (4<<10)
564#define A0_DEST_CHANNEL_W (8<<10)
565#define A0_DEST_CHANNEL_ALL (0xf<<10)
566#define A0_DEST_CHANNEL_SHIFT 10
567#define A0_SRC0_TYPE_SHIFT 7
568#define A0_SRC0_NR_SHIFT 2
569
570#define A0_DEST_CHANNEL_XY (A0_DEST_CHANNEL_X|A0_DEST_CHANNEL_Y)
571#define A0_DEST_CHANNEL_XYZ (A0_DEST_CHANNEL_XY|A0_DEST_CHANNEL_Z)
572
573#define SRC_X 0
574#define SRC_Y 1
575#define SRC_Z 2
576#define SRC_W 3
577#define SRC_ZERO 4
578#define SRC_ONE 5
579
580#define A1_SRC0_CHANNEL_X_NEGATE (1<<31)
581#define A1_SRC0_CHANNEL_X_SHIFT 28
582#define A1_SRC0_CHANNEL_Y_NEGATE (1<<27)
583#define A1_SRC0_CHANNEL_Y_SHIFT 24
584#define A1_SRC0_CHANNEL_Z_NEGATE (1<<23)
585#define A1_SRC0_CHANNEL_Z_SHIFT 20
586#define A1_SRC0_CHANNEL_W_NEGATE (1<<19)
587#define A1_SRC0_CHANNEL_W_SHIFT 16
588#define A1_SRC1_TYPE_SHIFT 13
589#define A1_SRC1_NR_SHIFT 8
590#define A1_SRC1_CHANNEL_X_NEGATE (1<<7)
591#define A1_SRC1_CHANNEL_X_SHIFT 4
592#define A1_SRC1_CHANNEL_Y_NEGATE (1<<3)
593#define A1_SRC1_CHANNEL_Y_SHIFT 0
594
595#define A2_SRC1_CHANNEL_Z_NEGATE (1<<31)
596#define A2_SRC1_CHANNEL_Z_SHIFT 28
597#define A2_SRC1_CHANNEL_W_NEGATE (1<<27)
598#define A2_SRC1_CHANNEL_W_SHIFT 24
599#define A2_SRC2_TYPE_SHIFT 21
600#define A2_SRC2_NR_SHIFT 16
601#define A2_SRC2_CHANNEL_X_NEGATE (1<<15)
602#define A2_SRC2_CHANNEL_X_SHIFT 12
603#define A2_SRC2_CHANNEL_Y_NEGATE (1<<11)
604#define A2_SRC2_CHANNEL_Y_SHIFT 8
605#define A2_SRC2_CHANNEL_Z_NEGATE (1<<7)
606#define A2_SRC2_CHANNEL_Z_SHIFT 4
607#define A2_SRC2_CHANNEL_W_NEGATE (1<<3)
608#define A2_SRC2_CHANNEL_W_SHIFT 0
609
610/* Texture instructions */
611#define T0_TEXLD (0x15<<24) /* Sample texture using predeclared
612 * sampler and address, and output
613 * filtered texel data to destination
614 * register */
615#define T0_TEXLDP (0x16<<24) /* Same as texld but performs a
616 * perspective divide of the texture
617 * coordinate .xyz values by .w before
618 * sampling. */
619#define T0_TEXLDB (0x17<<24) /* Same as texld but biases the
620 * computed LOD by w. Only S4.6 two's
621 * comp is used. This implies that a
622 * float to fixed conversion is
623 * done. */
624#define T0_TEXKILL (0x18<<24) /* Does not perform a sampling
625 * operation. Simply kills the pixel
626 * if any channel of the address
627 * register is < 0.0. */
628#define T0_DEST_TYPE_SHIFT 19
629/* Allow: R, OC, OD, U */
630/* Note: U (unpreserved) regs do not retain their values between
631 * phases (cannot be used for feedback)
632 *
633 * Note: oC and OD registers can only be used as the destination of a
634 * texture instruction once per phase (this is an implementation
635 * restriction).
636 */
637#define T0_DEST_NR_SHIFT 14
638/* Allow R: 0..15, OC,OD: 0..0, U: 0..2 */
639#define T0_SAMPLER_NR_SHIFT 0 /* This field ignored for TEXKILL */
640#define T0_SAMPLER_NR_MASK (0xf<<0)
641
642#define T1_ADDRESS_REG_TYPE_SHIFT 24 /* Reg to use as texture coord */
643/* Allow R, T, OC, OD -- R, OC, OD are 'dependent' reads, new program phase */
644#define T1_ADDRESS_REG_NR_SHIFT 17
645#define T2_MBZ 0
646
647/* Declaration instructions */
648#define D0_DCL (0x19<<24) /* Declare a t (interpolated attrib)
649 * register or an s (sampler)
650 * register. */
651#define D0_SAMPLE_TYPE_SHIFT 22
652#define D0_SAMPLE_TYPE_2D (0x0<<22)
653#define D0_SAMPLE_TYPE_CUBE (0x1<<22)
654#define D0_SAMPLE_TYPE_VOLUME (0x2<<22)
655#define D0_SAMPLE_TYPE_MASK (0x3<<22)
656
657#define D0_TYPE_SHIFT 19
658/* Allow: T, S */
659#define D0_NR_SHIFT 14
660/* Allow T: 0..10, S: 0..15 */
661#define D0_CHANNEL_X (1<<10)
662#define D0_CHANNEL_Y (2<<10)
663#define D0_CHANNEL_Z (4<<10)
664#define D0_CHANNEL_W (8<<10)
665#define D0_CHANNEL_ALL (0xf<<10)
666#define D0_CHANNEL_NONE (0<<10)
667
668#define D0_CHANNEL_XY (D0_CHANNEL_X|D0_CHANNEL_Y)
669#define D0_CHANNEL_XYZ (D0_CHANNEL_XY|D0_CHANNEL_Z)
670
671/* I915 Errata: Do not allow (xz), (xw), (xzw) combinations for diffuse
672 * or specular declarations.
673 *
674 * For T dcls, only allow: (x), (xy), (xyz), (w), (xyzw)
675 *
676 * Must be zero for S (sampler) dcls
677 */
678#define D1_MBZ 0
679#define D2_MBZ 0
680
681/* p207.
682 * The DWORD count is 3 times the number of bits set in MS1_MAPMASK_MASK
683 */
684#define _3DSTATE_MAP_STATE (CMD_3D|(0x1d<<24)|(0x0<<16))
685
686#define MS1_MAPMASK_SHIFT 0
687#define MS1_MAPMASK_MASK (0x8fff<<0)
688
689#define MS2_UNTRUSTED_SURFACE (1<<31)
690#define MS2_ADDRESS_MASK 0xfffffffc
691#define MS2_VERTICAL_LINE_STRIDE (1<<1)
692#define MS2_VERTICAL_OFFSET (1<<1)
693
694#define MS3_HEIGHT_SHIFT 21
695#define MS3_WIDTH_SHIFT 10
696#define MS3_PALETTE_SELECT (1<<9)
697#define MS3_MAPSURF_FORMAT_SHIFT 7
698#define MS3_MAPSURF_FORMAT_MASK (0x7<<7)
699#define MAPSURF_8BIT (1<<7)
700#define MAPSURF_16BIT (2<<7)
701#define MAPSURF_32BIT (3<<7)
702#define MAPSURF_422 (5<<7)
703#define MAPSURF_COMPRESSED (6<<7)
704#define MAPSURF_4BIT_INDEXED (7<<7)
705#define MS3_MT_FORMAT_MASK (0x7 << 3)
706#define MS3_MT_FORMAT_SHIFT 3
707#define MT_4BIT_IDX_ARGB8888 (7<<3) /* SURFACE_4BIT_INDEXED */
708#define MT_8BIT_I8 (0<<3) /* SURFACE_8BIT */
709#define MT_8BIT_L8 (1<<3)
710#define MT_8BIT_A8 (4<<3)
711#define MT_8BIT_MONO8 (5<<3)
712#define MT_16BIT_RGB565 (0<<3) /* SURFACE_16BIT */
713#define MT_16BIT_ARGB1555 (1<<3)
714#define MT_16BIT_ARGB4444 (2<<3)
715#define MT_16BIT_AY88 (3<<3)
716#define MT_16BIT_88DVDU (5<<3)
717#define MT_16BIT_BUMP_655LDVDU (6<<3)
718#define MT_16BIT_I16 (7<<3)
719#define MT_16BIT_L16 (8<<3)
720#define MT_16BIT_A16 (9<<3)
721#define MT_32BIT_ARGB8888 (0<<3) /* SURFACE_32BIT */
722#define MT_32BIT_ABGR8888 (1<<3)
723#define MT_32BIT_XRGB8888 (2<<3)
724#define MT_32BIT_XBGR8888 (3<<3)
725#define MT_32BIT_QWVU8888 (4<<3)
726#define MT_32BIT_AXVU8888 (5<<3)
727#define MT_32BIT_LXVU8888 (6<<3)
728#define MT_32BIT_XLVU8888 (7<<3)
729#define MT_32BIT_ARGB2101010 (8<<3)
730#define MT_32BIT_ABGR2101010 (9<<3)
731#define MT_32BIT_AWVU2101010 (0xA<<3)
732#define MT_32BIT_GR1616 (0xB<<3)
733#define MT_32BIT_VU1616 (0xC<<3)
734#define MT_32BIT_xI824 (0xD<<3)
735#define MT_32BIT_xA824 (0xE<<3)
736#define MT_32BIT_xL824 (0xF<<3)
737#define MT_422_YCRCB_SWAPY (0<<3) /* SURFACE_422 */
738#define MT_422_YCRCB_NORMAL (1<<3)
739#define MT_422_YCRCB_SWAPUV (2<<3)
740#define MT_422_YCRCB_SWAPUVY (3<<3)
741#define MT_COMPRESS_DXT1 (0<<3) /* SURFACE_COMPRESSED */
742#define MT_COMPRESS_DXT2_3 (1<<3)
743#define MT_COMPRESS_DXT4_5 (2<<3)
744#define MT_COMPRESS_FXT1 (3<<3)
745#define MT_COMPRESS_DXT1_RGB (4<<3)
746#define MS3_USE_FENCE_REGS (1<<2)
747#define MS3_TILED_SURFACE (1<<1)
748#define MS3_TILE_WALK (1<<0)
749
750/* The pitch is the pitch measured in DWORDS, minus 1 */
751#define MS4_PITCH_SHIFT 21
752#define MS4_CUBE_FACE_ENA_NEGX (1<<20)
753#define MS4_CUBE_FACE_ENA_POSX (1<<19)
754#define MS4_CUBE_FACE_ENA_NEGY (1<<18)
755#define MS4_CUBE_FACE_ENA_POSY (1<<17)
756#define MS4_CUBE_FACE_ENA_NEGZ (1<<16)
757#define MS4_CUBE_FACE_ENA_POSZ (1<<15)
758#define MS4_CUBE_FACE_ENA_MASK (0x3f<<15)
759#define MS4_MAX_LOD_SHIFT 9
760#define MS4_MAX_LOD_MASK (0x3f<<9)
761#define MS4_MIP_LAYOUT_LEGACY (0<<8)
762#define MS4_MIP_LAYOUT_BELOW_LPT (0<<8)
763#define MS4_MIP_LAYOUT_RIGHT_LPT (1<<8)
764#define MS4_VOLUME_DEPTH_SHIFT 0
765#define MS4_VOLUME_DEPTH_MASK (0xff<<0)
766
767/* p244.
768 * The DWORD count is 3 times the number of bits set in SS1_MAPMASK_MASK.
769 */
770#define _3DSTATE_SAMPLER_STATE (CMD_3D|(0x1d<<24)|(0x1<<16))
771
772#define SS1_MAPMASK_SHIFT 0
773#define SS1_MAPMASK_MASK (0x8fff<<0)
774
775#define SS2_REVERSE_GAMMA_ENABLE (1<<31)
776#define SS2_PACKED_TO_PLANAR_ENABLE (1<<30)
777#define SS2_COLORSPACE_CONVERSION (1<<29)
778#define SS2_CHROMAKEY_SHIFT 27
779#define SS2_BASE_MIP_LEVEL_SHIFT 22
780#define SS2_BASE_MIP_LEVEL_MASK (0x1f<<22)
781#define SS2_MIP_FILTER_SHIFT 20
782#define SS2_MIP_FILTER_MASK (0x3<<20)
783#define MIPFILTER_NONE 0
784#define MIPFILTER_NEAREST 1
785#define MIPFILTER_LINEAR 3
786#define SS2_MAG_FILTER_SHIFT 17
787#define SS2_MAG_FILTER_MASK (0x7<<17)
788#define FILTER_NEAREST 0
789#define FILTER_LINEAR 1
790#define FILTER_ANISOTROPIC 2
791#define FILTER_4X4_1 3
792#define FILTER_4X4_2 4
793#define FILTER_4X4_FLAT 5
794#define FILTER_6X5_MONO 6 /* XXX - check */
795#define SS2_MIN_FILTER_SHIFT 14
796#define SS2_MIN_FILTER_MASK (0x7<<14)
797#define SS2_LOD_BIAS_SHIFT 5
798#define SS2_LOD_BIAS_ONE (0x10<<5)
799#define SS2_LOD_BIAS_MASK (0x1ff<<5)
800/* Shadow requires:
801 * MT_X8{I,L,A}24 or MT_{I,L,A}16 texture format
802 * FILTER_4X4_x MIN and MAG filters
803 */
804#define SS2_SHADOW_ENABLE (1<<4)
805#define SS2_MAX_ANISO_MASK (1<<3)
806#define SS2_MAX_ANISO_2 (0<<3)
807#define SS2_MAX_ANISO_4 (1<<3)
808#define SS2_SHADOW_FUNC_SHIFT 0
809#define SS2_SHADOW_FUNC_MASK (0x7<<0)
810/* SS2_SHADOW_FUNC values: see COMPAREFUNC_* */
811
812#define SS3_MIN_LOD_SHIFT 24
813#define SS3_MIN_LOD_ONE (0x10<<24)
814#define SS3_MIN_LOD_MASK (0xff<<24)
815#define SS3_KILL_PIXEL_ENABLE (1<<17)
816#define SS3_TCX_ADDR_MODE_SHIFT 12
817#define SS3_TCX_ADDR_MODE_MASK (0x7<<12)
818#define TEXCOORDMODE_WRAP 0
819#define TEXCOORDMODE_MIRROR 1
820#define TEXCOORDMODE_CLAMP_EDGE 2
821#define TEXCOORDMODE_CUBE 3
822#define TEXCOORDMODE_CLAMP_BORDER 4
823#define TEXCOORDMODE_MIRROR_ONCE 5
824#define SS3_TCY_ADDR_MODE_SHIFT 9
825#define SS3_TCY_ADDR_MODE_MASK (0x7<<9)
826#define SS3_TCZ_ADDR_MODE_SHIFT 6
827#define SS3_TCZ_ADDR_MODE_MASK (0x7<<6)
828#define SS3_NORMALIZED_COORDS (1<<5)
829#define SS3_TEXTUREMAP_INDEX_SHIFT 1
830#define SS3_TEXTUREMAP_INDEX_MASK (0xf<<1)
831#define SS3_DEINTERLACER_ENABLE (1<<0)
832
833#define SS4_BORDER_COLOR_MASK (~0)
834
835/* 3DSTATE_SPAN_STIPPLE, p258
836 */
837#define _3DSTATE_STIPPLE ((0x3<<29)|(0x1d<<24)|(0x83<<16))
838#define ST1_ENABLE (1<<16)
839#define ST1_MASK (0xffff)
840
841#define FLUSH_MAP_CACHE (1<<0)
842#define FLUSH_RENDER_CACHE (1<<1)
843
844#endif
diff --git a/src/xvmc/i915_structs.h b/xvmc/i915_structs.h
index 2aa9d239..2aa9d239 100644
--- a/src/xvmc/i915_structs.h
+++ b/xvmc/i915_structs.h
diff --git a/src/xvmc/i915_xvmc.c b/xvmc/i915_xvmc.c
index fbd4555e..fbd4555e 100644
--- a/src/xvmc/i915_xvmc.c
+++ b/xvmc/i915_xvmc.c
diff --git a/src/xvmc/i915_xvmc.h b/xvmc/i915_xvmc.h
index 852e3eab..a0bb9a62 100644
--- a/src/xvmc/i915_xvmc.h
+++ b/xvmc/i915_xvmc.h
@@ -28,8 +28,7 @@
28#ifndef _I915XVMC_H 28#ifndef _I915XVMC_H
29#define _I915XVMC_H 29#define _I915XVMC_H
30 30
31#include "intel_xvmc.h" 31#include "intel_xvmc_private.h"
32#include "intel_hwmc.h"
33 32
34#define I915_SUBPIC_PALETTE_SIZE 16 33#define I915_SUBPIC_PALETTE_SIZE 16
35#define MAX_SUBCONTEXT_LEN 1024 34#define MAX_SUBCONTEXT_LEN 1024
diff --git a/xvmc/i965_reg.h b/xvmc/i965_reg.h
new file mode 100644
index 00000000..4bb5e4d2
--- /dev/null
+++ b/xvmc/i965_reg.h
@@ -0,0 +1,476 @@
1/*
2 * New regs for broadwater -- we need to split this file up sensibly somehow.
3 */
4#define BRW_3D(Pipeline,Opcode,Subopcode) ((3 << 29) | \
5 ((Pipeline) << 27) | \
6 ((Opcode) << 24) | \
7 ((Subopcode) << 16))
8
9#define BRW_URB_FENCE BRW_3D(0, 0, 0)
10#define BRW_CS_URB_STATE BRW_3D(0, 0, 1)
11#define BRW_CONSTANT_BUFFER BRW_3D(0, 0, 2)
12#define BRW_STATE_PREFETCH BRW_3D(0, 0, 3)
13
14#define BRW_STATE_BASE_ADDRESS BRW_3D(0, 1, 1)
15#define BRW_STATE_SIP BRW_3D(0, 1, 2)
16#define BRW_PIPELINE_SELECT BRW_3D(0, 1, 4)
17
18#define NEW_PIPELINE_SELECT BRW_3D(1, 1, 4)
19
20#define BRW_MEDIA_STATE_POINTERS BRW_3D(2, 0, 0)
21#define BRW_MEDIA_OBJECT BRW_3D(2, 1, 0)
22
23#define BRW_3DSTATE_PIPELINED_POINTERS BRW_3D(3, 0, 0)
24#define BRW_3DSTATE_BINDING_TABLE_POINTERS BRW_3D(3, 0, 1)
25# define GEN6_3DSTATE_BINDING_TABLE_MODIFY_PS (1 << 12)/* for GEN6 */
26# define GEN6_3DSTATE_BINDING_TABLE_MODIFY_GS (1 << 9) /* for GEN6 */
27# define GEN6_3DSTATE_BINDING_TABLE_MODIFY_VS (1 << 8) /* for GEN6 */
28
29#define BRW_3DSTATE_VERTEX_BUFFERS BRW_3D(3, 0, 8)
30#define BRW_3DSTATE_VERTEX_ELEMENTS BRW_3D(3, 0, 9)
31#define BRW_3DSTATE_INDEX_BUFFER BRW_3D(3, 0, 0xa)
32#define BRW_3DSTATE_VF_STATISTICS BRW_3D(3, 0, 0xb)
33
34#define BRW_3DSTATE_DRAWING_RECTANGLE BRW_3D(3, 1, 0)
35#define BRW_3DSTATE_CONSTANT_COLOR BRW_3D(3, 1, 1)
36#define BRW_3DSTATE_SAMPLER_PALETTE_LOAD BRW_3D(3, 1, 2)
37#define BRW_3DSTATE_CHROMA_KEY BRW_3D(3, 1, 4)
38#define BRW_3DSTATE_DEPTH_BUFFER BRW_3D(3, 1, 5)
39# define BRW_3DSTATE_DEPTH_BUFFER_TYPE_SHIFT 29
40# define BRW_3DSTATE_DEPTH_BUFFER_FORMAT_SHIFT 18
41
42#define BRW_3DSTATE_POLY_STIPPLE_OFFSET BRW_3D(3, 1, 6)
43#define BRW_3DSTATE_POLY_STIPPLE_PATTERN BRW_3D(3, 1, 7)
44#define BRW_3DSTATE_LINE_STIPPLE BRW_3D(3, 1, 8)
45#define BRW_3DSTATE_GLOBAL_DEPTH_OFFSET_CLAMP BRW_3D(3, 1, 9)
46/* These two are BLC and CTG only, not BW or CL */
47#define BRW_3DSTATE_AA_LINE_PARAMS BRW_3D(3, 1, 0xa)
48#define BRW_3DSTATE_GS_SVB_INDEX BRW_3D(3, 1, 0xb)
49
50#define BRW_PIPE_CONTROL BRW_3D(3, 2, 0)
51
52#define BRW_3DPRIMITIVE BRW_3D(3, 3, 0)
53
54#define BRW_3DSTATE_CLEAR_PARAMS BRW_3D(3, 1, 0x10)
55/* DW1 */
56# define BRW_3DSTATE_DEPTH_CLEAR_VALID (1 << 15)
57
58/* for GEN6+ */
59#define GEN6_3DSTATE_SAMPLER_STATE_POINTERS BRW_3D(3, 0, 0x02)
60# define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_PS (1 << 12)
61# define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_GS (1 << 9)
62# define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_VS (1 << 8)
63
64#define GEN6_3DSTATE_URB BRW_3D(3, 0, 0x05)
65/* DW1 */
66# define GEN6_3DSTATE_URB_VS_SIZE_SHIFT 16
67# define GEN6_3DSTATE_URB_VS_ENTRIES_SHIFT 0
68/* DW2 */
69# define GEN6_3DSTATE_URB_GS_ENTRIES_SHIFT 8
70# define GEN6_3DSTATE_URB_GS_SIZE_SHIFT 0
71
72#define GEN6_3DSTATE_VIEWPORT_STATE_POINTERS BRW_3D(3, 0, 0x0d)
73# define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_CC (1 << 12)
74# define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_SF (1 << 11)
75# define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_CLIP (1 << 10)
76
77#define GEN6_3DSTATE_CC_STATE_POINTERS BRW_3D(3, 0, 0x0e)
78
79#define GEN6_3DSTATE_VS BRW_3D(3, 0, 0x10)
80
81#define GEN6_3DSTATE_GS BRW_3D(3, 0, 0x11)
82/* DW4 */
83# define GEN6_3DSTATE_GS_DISPATCH_START_GRF_SHIFT 0
84
85#define GEN6_3DSTATE_CLIP BRW_3D(3, 0, 0x12)
86
87#define GEN6_3DSTATE_SF BRW_3D(3, 0, 0x13)
88/* DW1 */
89# define GEN6_3DSTATE_SF_NUM_OUTPUTS_SHIFT 22
90# define GEN6_3DSTATE_SF_URB_ENTRY_READ_LENGTH_SHIFT 11
91# define GEN6_3DSTATE_SF_URB_ENTRY_READ_OFFSET_SHIFT 4
92/* DW2 */
93/* DW3 */
94# define GEN6_3DSTATE_SF_CULL_BOTH (0 << 29)
95# define GEN6_3DSTATE_SF_CULL_NONE (1 << 29)
96# define GEN6_3DSTATE_SF_CULL_FRONT (2 << 29)
97# define GEN6_3DSTATE_SF_CULL_BACK (3 << 29)
98/* DW4 */
99# define GEN6_3DSTATE_SF_TRI_PROVOKE_SHIFT 29
100# define GEN6_3DSTATE_SF_LINE_PROVOKE_SHIFT 27
101# define GEN6_3DSTATE_SF_TRIFAN_PROVOKE_SHIFT 25
102
103
104#define GEN6_3DSTATE_WM BRW_3D(3, 0, 0x14)
105/* DW2 */
106# define GEN6_3DSTATE_WM_SAMPLER_COUNT_SHITF 27
107# define GEN6_3DSTATE_WM_BINDING_TABLE_ENTRY_COUNT_SHIFT 18
108/* DW4 */
109# define GEN6_3DSTATE_WM_DISPATCH_START_GRF_0_SHIFT 16
110/* DW5 */
111# define GEN6_3DSTATE_WM_MAX_THREADS_SHIFT 25
112# define GEN6_3DSTATE_WM_DISPATCH_ENABLE (1 << 19)
113# define GEN6_3DSTATE_WM_16_DISPATCH_ENABLE (1 << 1)
114# define GEN6_3DSTATE_WM_8_DISPATCH_ENABLE (1 << 0)
115/* DW6 */
116# define GEN6_3DSTATE_WM_NUM_SF_OUTPUTS_SHIFT 20
117# define GEN6_3DSTATE_WM_NONPERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 15)
118# define GEN6_3DSTATE_WM_NONPERSPECTIVE_CENTROID_BARYCENTRIC (1 << 14)
119# define GEN6_3DSTATE_WM_NONPERSPECTIVE_PIXEL_BARYCENTRIC (1 << 13)
120# define GEN6_3DSTATE_WM_PERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 12)
121# define GEN6_3DSTATE_WM_PERSPECTIVE_CENTROID_BARYCENTRIC (1 << 11)
122# define GEN6_3DSTATE_WM_PERSPECTIVE_PIXEL_BARYCENTRIC (1 << 10)
123
124
125#define GEN6_3DSTATE_CONSTANT_VS BRW_3D(3, 0, 0x15)
126#define GEN6_3DSTATE_CONSTANT_GS BRW_3D(3, 0, 0x16)
127#define GEN6_3DSTATE_CONSTANT_PS BRW_3D(3, 0, 0x17)
128
129#define GEN6_3DSTATE_SAMPLE_MASK BRW_3D(3, 0, 0x18)
130
131#define GEN6_3DSTATE_MULTISAMPLE BRW_3D(3, 1, 0x0d)
132/* DW1 */
133# define GEN6_3DSTATE_MULTISAMPLE_PIXEL_LOCATION_CENTER (0 << 4)
134# define GEN6_3DSTATE_MULTISAMPLE_PIXEL_LOCATION_UPPER_LEFT (1 << 4)
135# define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_1 (0 << 1)
136# define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_4 (2 << 1)
137# define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_8 (3 << 1)
138
139/* on GEN7+ */
140/* _3DSTATE_VERTEX_BUFFERS on GEN7*/
141/* DW1 */
142#define GEN7_VB0_ADDRESS_MODIFYENABLE (1 << 14)
143
144/* _3DPRIMITIVE on GEN7 */
145/* DW1 */
146# define GEN7_3DPRIM_VERTEXBUFFER_ACCESS_SEQUENTIAL (0 << 8)
147# define GEN7_3DPRIM_VERTEXBUFFER_ACCESS_RANDOM (1 << 8)
148
149/* 3DSTATE_WM on GEN7 */
150/* DW1 */
151# define GEN7_WM_STATISTICS_ENABLE (1 << 31)
152# define GEN7_WM_DEPTH_CLEAR (1 << 30)
153# define GEN7_WM_DISPATCH_ENABLE (1 << 29)
154# define GEN6_WM_DEPTH_RESOLVE (1 << 28)
155# define GEN7_WM_HIERARCHICAL_DEPTH_RESOLVE (1 << 27)
156# define GEN7_WM_KILL_ENABLE (1 << 25)
157# define GEN7_WM_PSCDEPTH_OFF (0 << 23)
158# define GEN7_WM_PSCDEPTH_ON (1 << 23)
159# define GEN7_WM_PSCDEPTH_ON_GE (2 << 23)
160# define GEN7_WM_PSCDEPTH_ON_LE (3 << 23)
161# define GEN7_WM_USES_SOURCE_DEPTH (1 << 20)
162# define GEN7_WM_USES_SOURCE_W (1 << 19)
163# define GEN7_WM_POSITION_ZW_PIXEL (0 << 17)
164# define GEN7_WM_POSITION_ZW_CENTROID (2 << 17)
165# define GEN7_WM_POSITION_ZW_SAMPLE (3 << 17)
166# define GEN7_WM_NONPERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 16)
167# define GEN7_WM_NONPERSPECTIVE_CENTROID_BARYCENTRIC (1 << 15)
168# define GEN7_WM_NONPERSPECTIVE_PIXEL_BARYCENTRIC (1 << 14)
169# define GEN7_WM_PERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 13)
170# define GEN7_WM_PERSPECTIVE_CENTROID_BARYCENTRIC (1 << 12)
171# define GEN7_WM_PERSPECTIVE_PIXEL_BARYCENTRIC (1 << 11)
172# define GEN7_WM_USES_INPUT_COVERAGE_MASK (1 << 10)
173# define GEN7_WM_LINE_END_CAP_AA_WIDTH_0_5 (0 << 8)
174# define GEN7_WM_LINE_END_CAP_AA_WIDTH_1_0 (1 << 8)
175# define GEN7_WM_LINE_END_CAP_AA_WIDTH_2_0 (2 << 8)
176# define GEN7_WM_LINE_END_CAP_AA_WIDTH_4_0 (3 << 8)
177# define GEN7_WM_LINE_AA_WIDTH_0_5 (0 << 6)
178# define GEN7_WM_LINE_AA_WIDTH_1_0 (1 << 6)
179# define GEN7_WM_LINE_AA_WIDTH_2_0 (2 << 6)
180# define GEN7_WM_LINE_AA_WIDTH_4_0 (3 << 6)
181# define GEN7_WM_POLYGON_STIPPLE_ENABLE (1 << 4)
182# define GEN7_WM_LINE_STIPPLE_ENABLE (1 << 3)
183# define GEN7_WM_POINT_RASTRULE_UPPER_RIGHT (1 << 2)
184# define GEN7_WM_MSRAST_OFF_PIXEL (0 << 0)
185# define GEN7_WM_MSRAST_OFF_PATTERN (1 << 0)
186# define GEN7_WM_MSRAST_ON_PIXEL (2 << 0)
187# define GEN7_WM_MSRAST_ON_PATTERN (3 << 0)
188/* DW2 */
189# define GEN7_WM_MSDISPMODE_PERPIXEL (1 << 31)
190
191#define GEN7_3DSTATE_CLEAR_PARAMS BRW_3D(3, 0, 0x04)
192#define GEN7_3DSTATE_DEPTH_BUFFER BRW_3D(3, 0, 0x05)
193
194#define GEN7_3DSTATE_CONSTANT_HS BRW_3D(3, 0, 0x19)
195#define GEN7_3DSTATE_CONSTANT_DS BRW_3D(3, 0, 0x1a)
196
197#define GEN7_3DSTATE_HS BRW_3D(3, 0, 0x1b)
198#define GEN7_3DSTATE_TE BRW_3D(3, 0, 0x1c)
199#define GEN7_3DSTATE_DS BRW_3D(3, 0, 0x1d)
200#define GEN7_3DSTATE_STREAMOUT BRW_3D(3, 0, 0x1e)
201#define GEN7_3DSTATE_SBE BRW_3D(3, 0, 0x1f)
202
203/* DW1 */
204# define GEN7_SBE_SWIZZLE_CONTROL_MODE (1 << 28)
205# define GEN7_SBE_NUM_OUTPUTS_SHIFT 22
206# define GEN7_SBE_SWIZZLE_ENABLE (1 << 21)
207# define GEN7_SBE_POINT_SPRITE_LOWERLEFT (1 << 20)
208# define GEN7_SBE_URB_ENTRY_READ_LENGTH_SHIFT 11
209# define GEN7_SBE_URB_ENTRY_READ_OFFSET_SHIFT 4
210
211#define GEN7_3DSTATE_PS BRW_3D(3, 0, 0x20)
212/* DW1: kernel pointer */
213/* DW2 */
214# define GEN7_PS_SPF_MODE (1 << 31)
215# define GEN7_PS_VECTOR_MASK_ENABLE (1 << 30)
216# define GEN7_PS_SAMPLER_COUNT_SHIFT 27
217# define GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT 18
218# define GEN7_PS_FLOATING_POINT_MODE_IEEE_754 (0 << 16)
219# define GEN7_PS_FLOATING_POINT_MODE_ALT (1 << 16)
220/* DW3: scratch space */
221/* DW4 */
222# define GEN7_PS_MAX_THREADS_SHIFT_IVB 24
223# define GEN7_PS_MAX_THREADS_SHIFT_HSW 23
224# define GEN7_PS_SAMPLE_MASK_SHIFT_HSW 12
225# define GEN7_PS_PUSH_CONSTANT_ENABLE (1 << 11)
226# define GEN7_PS_ATTRIBUTE_ENABLE (1 << 10)
227# define GEN7_PS_OMASK_TO_RENDER_TARGET (1 << 9)
228# define GEN7_PS_DUAL_SOURCE_BLEND_ENABLE (1 << 7)
229# define GEN7_PS_POSOFFSET_NONE (0 << 3)
230# define GEN7_PS_POSOFFSET_CENTROID (2 << 3)
231# define GEN7_PS_POSOFFSET_SAMPLE (3 << 3)
232# define GEN7_PS_32_DISPATCH_ENABLE (1 << 2)
233# define GEN7_PS_16_DISPATCH_ENABLE (1 << 1)
234# define GEN7_PS_8_DISPATCH_ENABLE (1 << 0)
235/* DW5 */
236# define GEN7_PS_DISPATCH_START_GRF_SHIFT_0 16
237# define GEN7_PS_DISPATCH_START_GRF_SHIFT_1 8
238# define GEN7_PS_DISPATCH_START_GRF_SHIFT_2 0
239/* DW6: kernel 1 pointer */
240/* DW7: kernel 2 pointer */
241
242#define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CL BRW_3D(3, 0, 0x21)
243#define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC BRW_3D(3, 0, 0x23)
244
245#define GEN7_3DSTATE_BLEND_STATE_POINTERS BRW_3D(3, 0, 0x24)
246#define GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS BRW_3D(3, 0, 0x25)
247
248#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS BRW_3D(3, 0, 0x26)
249#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS BRW_3D(3, 0, 0x27)
250#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS BRW_3D(3, 0, 0x28)
251#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS BRW_3D(3, 0, 0x29)
252#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS BRW_3D(3, 0, 0x2a)
253
254#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS BRW_3D(3, 0, 0x2b)
255#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS BRW_3D(3, 0, 0x2e)
256#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS BRW_3D(3, 0, 0x2f)
257
258#define GEN7_3DSTATE_URB_VS BRW_3D(3, 0, 0x30)
259#define GEN7_3DSTATE_URB_HS BRW_3D(3, 0, 0x31)
260#define GEN7_3DSTATE_URB_DS BRW_3D(3, 0, 0x32)
261#define GEN7_3DSTATE_URB_GS BRW_3D(3, 0, 0x33)
262/* DW1 */
263# define GEN7_URB_ENTRY_NUMBER_SHIFT 0
264# define GEN7_URB_ENTRY_SIZE_SHIFT 16
265# define GEN7_URB_STARTING_ADDRESS_SHIFT 25
266
267#define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS BRW_3D(3, 1, 0x12)
268#define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS BRW_3D(3, 1, 0x16)
269/* DW1 */
270# define GEN7_PUSH_CONSTANT_BUFFER_OFFSET_SHIFT 16
271
272
273#define PIPELINE_SELECT_3D 0
274#define PIPELINE_SELECT_MEDIA 1
275
276#define UF0_CS_REALLOC (1 << 13)
277#define UF0_VFE_REALLOC (1 << 12)
278#define UF0_SF_REALLOC (1 << 11)
279#define UF0_CLIP_REALLOC (1 << 10)
280#define UF0_GS_REALLOC (1 << 9)
281#define UF0_VS_REALLOC (1 << 8)
282#define UF1_CLIP_FENCE_SHIFT 20
283#define UF1_GS_FENCE_SHIFT 10
284#define UF1_VS_FENCE_SHIFT 0
285#define UF2_CS_FENCE_SHIFT 20
286#define UF2_VFE_FENCE_SHIFT 10
287#define UF2_SF_FENCE_SHIFT 0
288
289/* for BRW_STATE_BASE_ADDRESS */
290#define BASE_ADDRESS_MODIFY (1 << 0)
291
292/* for BRW_3DSTATE_PIPELINED_POINTERS */
293#define BRW_GS_DISABLE 0
294#define BRW_GS_ENABLE 1
295#define BRW_CLIP_DISABLE 0
296#define BRW_CLIP_ENABLE 1
297
298/* for BRW_PIPE_CONTROL */
299#define BRW_PIPE_CONTROL_CS_STALL (1 << 20)
300#define BRW_PIPE_CONTROL_NOWRITE (0 << 14)
301#define BRW_PIPE_CONTROL_WRITE_QWORD (1 << 14)
302#define BRW_PIPE_CONTROL_WRITE_DEPTH (2 << 14)
303#define BRW_PIPE_CONTROL_WRITE_TIME (3 << 14)
304#define BRW_PIPE_CONTROL_DEPTH_STALL (1 << 13)
305#define BRW_PIPE_CONTROL_WC_FLUSH (1 << 12)
306#define BRW_PIPE_CONTROL_IS_FLUSH (1 << 11)
307#define BRW_PIPE_CONTROL_TC_FLUSH (1 << 10)
308#define BRW_PIPE_CONTROL_NOTIFY_ENABLE (1 << 8)
309#define BRW_PIPE_CONTROL_GLOBAL_GTT (1 << 2)
310#define BRW_PIPE_CONTROL_LOCAL_PGTT (0 << 2)
311#define BRW_PIPE_CONTROL_STALL_AT_SCOREBOARD (1 << 1)
312#define BRW_PIPE_CONTROL_DEPTH_CACHE_FLUSH (1 << 0)
313
314/* VERTEX_BUFFER_STATE Structure */
315#define VB0_BUFFER_INDEX_SHIFT 27
316#define GEN6_VB0_BUFFER_INDEX_SHIFT 26
317#define VB0_VERTEXDATA (0 << 26)
318#define VB0_INSTANCEDATA (1 << 26)
319#define GEN6_VB0_VERTEXDATA (0 << 20)
320#define GEN6_VB0_INSTANCEDATA (1 << 20)
321#define VB0_BUFFER_PITCH_SHIFT 0
322
323/* VERTEX_ELEMENT_STATE Structure */
324#define VE0_VERTEX_BUFFER_INDEX_SHIFT 27
325#define GEN6_VE0_VERTEX_BUFFER_INDEX_SHIFT 26 /* for GEN6 */
326#define VE0_VALID (1 << 26)
327#define GEN6_VE0_VALID (1 << 25) /* for GEN6 */
328#define VE0_FORMAT_SHIFT 16
329#define VE0_OFFSET_SHIFT 0
330#define VE1_VFCOMPONENT_0_SHIFT 28
331#define VE1_VFCOMPONENT_1_SHIFT 24
332#define VE1_VFCOMPONENT_2_SHIFT 20
333#define VE1_VFCOMPONENT_3_SHIFT 16
334#define VE1_DESTINATION_ELEMENT_OFFSET_SHIFT 0
335
336/* 3DPRIMITIVE bits */
337#define BRW_3DPRIMITIVE_VERTEX_SEQUENTIAL (0 << 15)
338#define BRW_3DPRIMITIVE_VERTEX_RANDOM (1 << 15)
339/* Primitive types are in brw_defines.h */
340#define BRW_3DPRIMITIVE_TOPOLOGY_SHIFT 10
341
342#define BRW_SVG_CTL 0x7400
343
344#define BRW_SVG_CTL_GS_BA (0 << 8)
345#define BRW_SVG_CTL_SS_BA (1 << 8)
346#define BRW_SVG_CTL_IO_BA (2 << 8)
347#define BRW_SVG_CTL_GS_AUB (3 << 8)
348#define BRW_SVG_CTL_IO_AUB (4 << 8)
349#define BRW_SVG_CTL_SIP (5 << 8)
350
351#define BRW_SVG_RDATA 0x7404
352#define BRW_SVG_WORK_CTL 0x7408
353
354#define BRW_VF_CTL 0x7500
355
356#define BRW_VF_CTL_SNAPSHOT_COMPLETE (1 << 31)
357#define BRW_VF_CTL_SNAPSHOT_MUX_SELECT_THREADID (0 << 8)
358#define BRW_VF_CTL_SNAPSHOT_MUX_SELECT_VF_DEBUG (1 << 8)
359#define BRW_VF_CTL_SNAPSHOT_TYPE_VERTEX_SEQUENCE (0 << 4)
360#define BRW_VF_CTL_SNAPSHOT_TYPE_VERTEX_INDEX (1 << 4)
361#define BRW_VF_CTL_SKIP_INITIAL_PRIMITIVES (1 << 3)
362#define BRW_VF_CTL_MAX_PRIMITIVES_LIMIT_ENABLE (1 << 2)
363#define BRW_VF_CTL_VERTEX_RANGE_LIMIT_ENABLE (1 << 1)
364#define BRW_VF_CTL_SNAPSHOT_ENABLE (1 << 0)
365
366#define BRW_VF_STRG_VAL 0x7504
367#define BRW_VF_STR_VL_OVR 0x7508
368#define BRW_VF_VC_OVR 0x750c
369#define BRW_VF_STR_PSKIP 0x7510
370#define BRW_VF_MAX_PRIM 0x7514
371#define BRW_VF_RDATA 0x7518
372
373#define BRW_VS_CTL 0x7600
374#define BRW_VS_CTL_SNAPSHOT_COMPLETE (1 << 31)
375#define BRW_VS_CTL_SNAPSHOT_MUX_VERTEX_0 (0 << 8)
376#define BRW_VS_CTL_SNAPSHOT_MUX_VERTEX_1 (1 << 8)
377#define BRW_VS_CTL_SNAPSHOT_MUX_VALID_COUNT (2 << 8)
378#define BRW_VS_CTL_SNAPSHOT_MUX_VS_KERNEL_POINTER (3 << 8)
379#define BRW_VS_CTL_SNAPSHOT_ALL_THREADS (1 << 2)
380#define BRW_VS_CTL_THREAD_SNAPSHOT_ENABLE (1 << 1)
381#define BRW_VS_CTL_SNAPSHOT_ENABLE (1 << 0)
382
383#define BRW_VS_STRG_VAL 0x7604
384#define BRW_VS_RDATA 0x7608
385
386#define BRW_SF_CTL 0x7b00
387#define BRW_SF_CTL_SNAPSHOT_COMPLETE (1 << 31)
388#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_0_FF_ID (0 << 8)
389#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_0_REL_COUNT (1 << 8)
390#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_1_FF_ID (2 << 8)
391#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_1_REL_COUNT (3 << 8)
392#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_2_FF_ID (4 << 8)
393#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_2_REL_COUNT (5 << 8)
394#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_COUNT (6 << 8)
395#define BRW_SF_CTL_SNAPSHOT_MUX_SF_KERNEL_POINTER (7 << 8)
396#define BRW_SF_CTL_MIN_MAX_PRIMITIVE_RANGE_ENABLE (1 << 4)
397#define BRW_SF_CTL_DEBUG_CLIP_RECTANGLE_ENABLE (1 << 3)
398#define BRW_SF_CTL_SNAPSHOT_ALL_THREADS (1 << 2)
399#define BRW_SF_CTL_THREAD_SNAPSHOT_ENABLE (1 << 1)
400#define BRW_SF_CTL_SNAPSHOT_ENABLE (1 << 0)
401
402#define BRW_SF_STRG_VAL 0x7b04
403#define BRW_SF_RDATA 0x7b18
404
405#define BRW_WIZ_CTL 0x7c00
406#define BRW_WIZ_CTL_SNAPSHOT_COMPLETE (1 << 31)
407#define BRW_WIZ_CTL_SUBSPAN_INSTANCE_SHIFT 16
408#define BRW_WIZ_CTL_SNAPSHOT_MUX_WIZ_KERNEL_POINTER (0 << 8)
409#define BRW_WIZ_CTL_SNAPSHOT_MUX_SUBSPAN_INSTANCE (1 << 8)
410#define BRW_WIZ_CTL_SNAPSHOT_MUX_PRIMITIVE_SEQUENCE (2 << 8)
411#define BRW_WIZ_CTL_SINGLE_SUBSPAN_DISPATCH (1 << 6)
412#define BRW_WIZ_CTL_IGNORE_COLOR_SCOREBOARD_STALLS (1 << 5)
413#define BRW_WIZ_CTL_ENABLE_SUBSPAN_INSTANCE_COMPARE (1 << 4)
414#define BRW_WIZ_CTL_USE_UPSTREAM_SNAPSHOT_FLAG (1 << 3)
415#define BRW_WIZ_CTL_SNAPSHOT_ALL_THREADS (1 << 2)
416#define BRW_WIZ_CTL_THREAD_SNAPSHOT_ENABLE (1 << 1)
417#define BRW_WIZ_CTL_SNAPSHOT_ENABLE (1 << 0)
418
419#define BRW_WIZ_STRG_VAL 0x7c04
420#define BRW_WIZ_RDATA 0x7c18
421
422#define BRW_TS_CTL 0x7e00
423#define BRW_TS_CTL_SNAPSHOT_COMPLETE (1 << 31)
424#define BRW_TS_CTL_SNAPSHOT_MESSAGE_ERROR (0 << 8)
425#define BRW_TS_CTL_SNAPSHOT_INTERFACE_DESCRIPTOR (3 << 8)
426#define BRW_TS_CTL_SNAPSHOT_ALL_CHILD_THREADS (1 << 2)
427#define BRW_TS_CTL_SNAPSHOT_ALL_ROOT_THREADS (1 << 1)
428#define BRW_TS_CTL_SNAPSHOT_ENABLE (1 << 0)
429
430#define BRW_TS_STRG_VAL 0x7e04
431#define BRW_TS_RDATA 0x7e08
432
433#define BRW_TD_CTL 0x8000
434#define BRW_TD_CTL_MUX_SHIFT 8
435#define BRW_TD_CTL_EXTERNAL_HALT_R0_DEBUG_MATCH (1 << 7)
436#define BRW_TD_CTL_FORCE_EXTERNAL_HALT (1 << 6)
437#define BRW_TD_CTL_EXCEPTION_MASK_OVERRIDE (1 << 5)
438#define BRW_TD_CTL_FORCE_THREAD_BREAKPOINT_ENABLE (1 << 4)
439#define BRW_TD_CTL_BREAKPOINT_ENABLE (1 << 2)
440#define BRW_TD_CTL2 0x8004
441#define BRW_TD_CTL2_ILLEGAL_OPCODE_EXCEPTION_OVERRIDE (1 << 28)
442#define BRW_TD_CTL2_MASKSTACK_EXCEPTION_OVERRIDE (1 << 26)
443#define BRW_TD_CTL2_SOFTWARE_EXCEPTION_OVERRIDE (1 << 25)
444#define BRW_TD_CTL2_ACTIVE_THREAD_LIMIT_SHIFT 16
445#define BRW_TD_CTL2_ACTIVE_THREAD_LIMIT_ENABLE (1 << 8)
446#define BRW_TD_CTL2_THREAD_SPAWNER_EXECUTION_MASK_ENABLE (1 << 7)
447#define BRW_TD_CTL2_WIZ_EXECUTION_MASK_ENABLE (1 << 6)
448#define BRW_TD_CTL2_SF_EXECUTION_MASK_ENABLE (1 << 5)
449#define BRW_TD_CTL2_CLIPPER_EXECUTION_MASK_ENABLE (1 << 4)
450#define BRW_TD_CTL2_GS_EXECUTION_MASK_ENABLE (1 << 3)
451#define BRW_TD_CTL2_VS_EXECUTION_MASK_ENABLE (1 << 0)
452#define BRW_TD_VF_VS_EMSK 0x8008
453#define BRW_TD_GS_EMSK 0x800c
454#define BRW_TD_CLIP_EMSK 0x8010
455#define BRW_TD_SF_EMSK 0x8014
456#define BRW_TD_WIZ_EMSK 0x8018
457#define BRW_TD_0_6_EHTRG_VAL 0x801c
458#define BRW_TD_0_7_EHTRG_VAL 0x8020
459#define BRW_TD_0_6_EHTRG_MSK 0x8024
460#define BRW_TD_0_7_EHTRG_MSK 0x8028
461#define BRW_TD_RDATA 0x802c
462#define BRW_TD_TS_EMSK 0x8030
463
464#define BRW_EU_CTL 0x8800
465#define BRW_EU_CTL_SELECT_SHIFT 16
466#define BRW_EU_CTL_DATA_MUX_SHIFT 8
467#define BRW_EU_ATT_0 0x8810
468#define BRW_EU_ATT_1 0x8814
469#define BRW_EU_ATT_DATA_0 0x8820
470#define BRW_EU_ATT_DATA_1 0x8824
471#define BRW_EU_ATT_CLR_0 0x8830
472#define BRW_EU_ATT_CLR_1 0x8834
473#define BRW_EU_RDATA 0x8840
474
475/* End regs for broadwater */
476
diff --git a/src/xvmc/i965_xvmc.c b/xvmc/i965_xvmc.c
index 261cf35e..1850480c 100644
--- a/src/xvmc/i965_xvmc.c
+++ b/xvmc/i965_xvmc.c
@@ -24,13 +24,11 @@
24 * Zou Nan hai <nanhai.zou@intel.com> 24 * Zou Nan hai <nanhai.zou@intel.com>
25 * 25 *
26 */ 26 */
27#include "intel_xvmc.h" 27#include "intel_xvmc_private.h"
28#include "i830_reg.h" 28#include "i830_reg.h"
29#include "i965_reg.h" 29#include "i965_reg.h"
30#include "brw_defines.h" 30#include "brw_defines.h"
31#include "brw_structs.h" 31#include "brw_structs.h"
32#include "intel_batchbuffer.h"
33#include "intel_hwmc.h"
34#define BATCH_STRUCT(x) intelBatchbufferData(&x, sizeof(x), 0) 32#define BATCH_STRUCT(x) intelBatchbufferData(&x, sizeof(x), 0)
35#define URB_SIZE 256 /* XXX */ 33#define URB_SIZE 256 /* XXX */
36 34
diff --git a/src/xvmc/intel_batchbuffer.c b/xvmc/intel_batchbuffer.c
index 2b5526c5..3fa16bb4 100644
--- a/src/xvmc/intel_batchbuffer.c
+++ b/xvmc/intel_batchbuffer.c
@@ -43,7 +43,7 @@
43#include <X11/extensions/XvMC.h> 43#include <X11/extensions/XvMC.h>
44#include <X11/extensions/XvMClib.h> 44#include <X11/extensions/XvMClib.h>
45 45
46#include "intel_xvmc.h" 46#include "intel_xvmc_private.h"
47#include "intel_batchbuffer.h" 47#include "intel_batchbuffer.h"
48#include "brw_defines.h" 48#include "brw_defines.h"
49#include "brw_structs.h" 49#include "brw_structs.h"
diff --git a/src/xvmc/intel_batchbuffer.h b/xvmc/intel_batchbuffer.h
index 7fae6f7d..7fae6f7d 100644
--- a/src/xvmc/intel_batchbuffer.h
+++ b/xvmc/intel_batchbuffer.h
diff --git a/src/xvmc/intel_xvmc.c b/xvmc/intel_xvmc.c
index 883dadae..1d7b6e20 100644
--- a/src/xvmc/intel_xvmc.c
+++ b/xvmc/intel_xvmc.c
@@ -24,7 +24,7 @@
24 * Zhenyu Wang <zhenyu.z.wang@intel.com> 24 * Zhenyu Wang <zhenyu.z.wang@intel.com>
25 * 25 *
26 */ 26 */
27#include "intel_xvmc.h" 27#include "intel_xvmc_private.h"
28#include <xcb/xcb.h> 28#include <xcb/xcb.h>
29#include <xcb/xcb_aux.h> 29#include <xcb/xcb_aux.h>
30#include <xcb/dri2.h> 30#include <xcb/dri2.h>
diff --git a/src/intel_hwmc.h b/xvmc/intel_xvmc.h
index 8682fe0e..8682fe0e 100644
--- a/src/intel_hwmc.h
+++ b/xvmc/intel_xvmc.h
diff --git a/src/xvmc/intel_xvmc_dump.c b/xvmc/intel_xvmc_dump.c
index d22d311a..8103754f 100644
--- a/src/xvmc/intel_xvmc_dump.c
+++ b/xvmc/intel_xvmc_dump.c
@@ -24,7 +24,7 @@
24 * Zhenyu Wang <zhenyu.z.wang@intel.com> 24 * Zhenyu Wang <zhenyu.z.wang@intel.com>
25 * 25 *
26 */ 26 */
27#include "intel_xvmc.h" 27#include "intel_xvmc_private.h"
28 28
29#define DUMPFILE "./intel_xvmc_dump" 29#define DUMPFILE "./intel_xvmc_dump"
30 30
diff --git a/src/xvmc/intel_xvmc.h b/xvmc/intel_xvmc_private.h
index 7fdfd062..e2ea2dca 100644
--- a/src/xvmc/intel_xvmc.h
+++ b/xvmc/intel_xvmc_private.h
@@ -41,7 +41,6 @@
41#include <stdint.h> 41#include <stdint.h>
42 42
43#include <xf86drm.h> 43#include <xf86drm.h>
44#include "intel_hwmc.h"
45#include <X11/X.h> 44#include <X11/X.h>
46#include <X11/Xlibint.h> 45#include <X11/Xlibint.h>
47#include <X11/Xutil.h> 46#include <X11/Xutil.h>
@@ -52,9 +51,11 @@
52#include <X11/extensions/XvMClib.h> 51#include <X11/extensions/XvMClib.h>
53#include <X11/extensions/vldXvMC.h> 52#include <X11/extensions/vldXvMC.h>
54#include <drm_sarea.h> 53#include <drm_sarea.h>
54
55#include "i915_drm.h" 55#include "i915_drm.h"
56#include "intel_bufmgr.h" 56#include "intel_bufmgr.h"
57 57
58#include "intel_xvmc.h"
58#include "intel_batchbuffer.h" 59#include "intel_batchbuffer.h"
59 60
60#define GTT_PAGE_SIZE 4*1024 61#define GTT_PAGE_SIZE 4*1024
diff --git a/src/xvmc/shader/Makefile.am b/xvmc/shader/Makefile.am
index 2a58cfde..2a58cfde 100644
--- a/src/xvmc/shader/Makefile.am
+++ b/xvmc/shader/Makefile.am
diff --git a/src/xvmc/shader/mc/Makefile.am b/xvmc/shader/mc/Makefile.am
index 8d657691..8d657691 100644
--- a/src/xvmc/shader/mc/Makefile.am
+++ b/xvmc/shader/mc/Makefile.am
diff --git a/src/xvmc/shader/mc/addidct.g4i b/xvmc/shader/mc/addidct.g4i
index bd3d5fe5..bd3d5fe5 100644
--- a/src/xvmc/shader/mc/addidct.g4i
+++ b/xvmc/shader/mc/addidct.g4i
diff --git a/src/xvmc/shader/mc/addidct_igd.g4i b/xvmc/shader/mc/addidct_igd.g4i
index 56fa2af3..56fa2af3 100644
--- a/src/xvmc/shader/mc/addidct_igd.g4i
+++ b/xvmc/shader/mc/addidct_igd.g4i
diff --git a/src/xvmc/shader/mc/block_clear.g4i b/xvmc/shader/mc/block_clear.g4i
index ce12f3b5..ce12f3b5 100644
--- a/src/xvmc/shader/mc/block_clear.g4i
+++ b/xvmc/shader/mc/block_clear.g4i
diff --git a/src/xvmc/shader/mc/dual_prime.g4a b/xvmc/shader/mc/dual_prime.g4a
index 7066a75b..7066a75b 100644
--- a/src/xvmc/shader/mc/dual_prime.g4a
+++ b/xvmc/shader/mc/dual_prime.g4a
diff --git a/src/xvmc/shader/mc/dual_prime.g4b b/xvmc/shader/mc/dual_prime.g4b
index 4a1eb4be..4a1eb4be 100644
--- a/src/xvmc/shader/mc/dual_prime.g4b
+++ b/xvmc/shader/mc/dual_prime.g4b
diff --git a/src/xvmc/shader/mc/dual_prime.g4b.gen5 b/xvmc/shader/mc/dual_prime.g4b.gen5
index af9a7adf..af9a7adf 100644
--- a/src/xvmc/shader/mc/dual_prime.g4b.gen5
+++ b/xvmc/shader/mc/dual_prime.g4b.gen5
diff --git a/src/xvmc/shader/mc/dual_prime_igd.g4a b/xvmc/shader/mc/dual_prime_igd.g4a
index e741244b..e741244b 100644
--- a/src/xvmc/shader/mc/dual_prime_igd.g4a
+++ b/xvmc/shader/mc/dual_prime_igd.g4a
diff --git a/src/xvmc/shader/mc/dual_prime_igd.g4b b/xvmc/shader/mc/dual_prime_igd.g4b
index 6a558fdb..6a558fdb 100644
--- a/src/xvmc/shader/mc/dual_prime_igd.g4b
+++ b/xvmc/shader/mc/dual_prime_igd.g4b
diff --git a/src/xvmc/shader/mc/dual_prime_igd.g4b.gen5 b/xvmc/shader/mc/dual_prime_igd.g4b.gen5
index 10daa149..10daa149 100644
--- a/src/xvmc/shader/mc/dual_prime_igd.g4b.gen5
+++ b/xvmc/shader/mc/dual_prime_igd.g4b.gen5
diff --git a/src/xvmc/shader/mc/field_backward.g4a b/xvmc/shader/mc/field_backward.g4a
index 8c721c62..8c721c62 100644
--- a/src/xvmc/shader/mc/field_backward.g4a
+++ b/xvmc/shader/mc/field_backward.g4a
diff --git a/src/xvmc/shader/mc/field_backward.g4b b/xvmc/shader/mc/field_backward.g4b
index cce7d454..cce7d454 100644
--- a/src/xvmc/shader/mc/field_backward.g4b
+++ b/xvmc/shader/mc/field_backward.g4b
diff --git a/src/xvmc/shader/mc/field_backward.g4b.gen5 b/xvmc/shader/mc/field_backward.g4b.gen5
index 3fc1d7a9..3fc1d7a9 100644
--- a/src/xvmc/shader/mc/field_backward.g4b.gen5
+++ b/xvmc/shader/mc/field_backward.g4b.gen5
diff --git a/src/xvmc/shader/mc/field_backward_igd.g4a b/xvmc/shader/mc/field_backward_igd.g4a
index 9938ab5d..9938ab5d 100644
--- a/src/xvmc/shader/mc/field_backward_igd.g4a
+++ b/xvmc/shader/mc/field_backward_igd.g4a
diff --git a/src/xvmc/shader/mc/field_backward_igd.g4b b/xvmc/shader/mc/field_backward_igd.g4b
index 6236e786..6236e786 100644
--- a/src/xvmc/shader/mc/field_backward_igd.g4b
+++ b/xvmc/shader/mc/field_backward_igd.g4b
diff --git a/src/xvmc/shader/mc/field_backward_igd.g4b.gen5 b/xvmc/shader/mc/field_backward_igd.g4b.gen5
index 6236e786..6236e786 100644
--- a/src/xvmc/shader/mc/field_backward_igd.g4b.gen5
+++ b/xvmc/shader/mc/field_backward_igd.g4b.gen5
diff --git a/src/xvmc/shader/mc/field_f_b.g4a b/xvmc/shader/mc/field_f_b.g4a
index 7066a75b..7066a75b 100644
--- a/src/xvmc/shader/mc/field_f_b.g4a
+++ b/xvmc/shader/mc/field_f_b.g4a
diff --git a/src/xvmc/shader/mc/field_f_b.g4b b/xvmc/shader/mc/field_f_b.g4b
index 4a1eb4be..4a1eb4be 100644
--- a/src/xvmc/shader/mc/field_f_b.g4b
+++ b/xvmc/shader/mc/field_f_b.g4b
diff --git a/src/xvmc/shader/mc/field_f_b.g4b.gen5 b/xvmc/shader/mc/field_f_b.g4b.gen5
index af9a7adf..af9a7adf 100644
--- a/src/xvmc/shader/mc/field_f_b.g4b.gen5
+++ b/xvmc/shader/mc/field_f_b.g4b.gen5
diff --git a/src/xvmc/shader/mc/field_f_b_igd.g4a b/xvmc/shader/mc/field_f_b_igd.g4a
index c072cd60..c072cd60 100644
--- a/src/xvmc/shader/mc/field_f_b_igd.g4a
+++ b/xvmc/shader/mc/field_f_b_igd.g4a
diff --git a/src/xvmc/shader/mc/field_f_b_igd.g4b b/xvmc/shader/mc/field_f_b_igd.g4b
index c0bd0bed..c0bd0bed 100644
--- a/src/xvmc/shader/mc/field_f_b_igd.g4b
+++ b/xvmc/shader/mc/field_f_b_igd.g4b
diff --git a/src/xvmc/shader/mc/field_f_b_igd.g4b.gen5 b/xvmc/shader/mc/field_f_b_igd.g4b.gen5
index c0bd0bed..c0bd0bed 100644
--- a/src/xvmc/shader/mc/field_f_b_igd.g4b.gen5
+++ b/xvmc/shader/mc/field_f_b_igd.g4b.gen5
diff --git a/src/xvmc/shader/mc/field_forward.g4a b/xvmc/shader/mc/field_forward.g4a
index f5595ee1..f5595ee1 100644
--- a/src/xvmc/shader/mc/field_forward.g4a
+++ b/xvmc/shader/mc/field_forward.g4a
diff --git a/src/xvmc/shader/mc/field_forward.g4b b/xvmc/shader/mc/field_forward.g4b
index 3514c868..3514c868 100644
--- a/src/xvmc/shader/mc/field_forward.g4b
+++ b/xvmc/shader/mc/field_forward.g4b
diff --git a/src/xvmc/shader/mc/field_forward.g4b.gen5 b/xvmc/shader/mc/field_forward.g4b.gen5
index e7dd773a..e7dd773a 100644
--- a/src/xvmc/shader/mc/field_forward.g4b.gen5
+++ b/xvmc/shader/mc/field_forward.g4b.gen5
diff --git a/src/xvmc/shader/mc/field_forward_igd.g4a b/xvmc/shader/mc/field_forward_igd.g4a
index 61719ed2..61719ed2 100644
--- a/src/xvmc/shader/mc/field_forward_igd.g4a
+++ b/xvmc/shader/mc/field_forward_igd.g4a
diff --git a/src/xvmc/shader/mc/field_forward_igd.g4b b/xvmc/shader/mc/field_forward_igd.g4b
index 12036bf7..12036bf7 100644
--- a/src/xvmc/shader/mc/field_forward_igd.g4b
+++ b/xvmc/shader/mc/field_forward_igd.g4b
diff --git a/src/xvmc/shader/mc/field_forward_igd.g4b.gen5 b/xvmc/shader/mc/field_forward_igd.g4b.gen5
index 12036bf7..12036bf7 100644
--- a/src/xvmc/shader/mc/field_forward_igd.g4b.gen5
+++ b/xvmc/shader/mc/field_forward_igd.g4b.gen5
diff --git a/src/xvmc/shader/mc/frame_backward.g4a b/xvmc/shader/mc/frame_backward.g4a
index f669dac5..f669dac5 100644
--- a/src/xvmc/shader/mc/frame_backward.g4a
+++ b/xvmc/shader/mc/frame_backward.g4a
diff --git a/src/xvmc/shader/mc/frame_backward.g4b b/xvmc/shader/mc/frame_backward.g4b
index 980ad62f..980ad62f 100644
--- a/src/xvmc/shader/mc/frame_backward.g4b
+++ b/xvmc/shader/mc/frame_backward.g4b
diff --git a/src/xvmc/shader/mc/frame_backward.g4b.gen5 b/xvmc/shader/mc/frame_backward.g4b.gen5
index b9e28401..b9e28401 100644
--- a/src/xvmc/shader/mc/frame_backward.g4b.gen5
+++ b/xvmc/shader/mc/frame_backward.g4b.gen5
diff --git a/src/xvmc/shader/mc/frame_backward_igd.g4a b/xvmc/shader/mc/frame_backward_igd.g4a
index 774c1190..774c1190 100644
--- a/src/xvmc/shader/mc/frame_backward_igd.g4a
+++ b/xvmc/shader/mc/frame_backward_igd.g4a
diff --git a/src/xvmc/shader/mc/frame_backward_igd.g4b b/xvmc/shader/mc/frame_backward_igd.g4b
index 1b533e5f..1b533e5f 100644
--- a/src/xvmc/shader/mc/frame_backward_igd.g4b
+++ b/xvmc/shader/mc/frame_backward_igd.g4b
diff --git a/src/xvmc/shader/mc/frame_backward_igd.g4b.gen5 b/xvmc/shader/mc/frame_backward_igd.g4b.gen5
index 1b533e5f..1b533e5f 100644
--- a/src/xvmc/shader/mc/frame_backward_igd.g4b.gen5
+++ b/xvmc/shader/mc/frame_backward_igd.g4b.gen5
diff --git a/src/xvmc/shader/mc/frame_f_b.g4a b/xvmc/shader/mc/frame_f_b.g4a
index 98729dd2..98729dd2 100644
--- a/src/xvmc/shader/mc/frame_f_b.g4a
+++ b/xvmc/shader/mc/frame_f_b.g4a
diff --git a/src/xvmc/shader/mc/frame_f_b.g4b b/xvmc/shader/mc/frame_f_b.g4b
index 760cae14..760cae14 100644
--- a/src/xvmc/shader/mc/frame_f_b.g4b
+++ b/xvmc/shader/mc/frame_f_b.g4b
diff --git a/src/xvmc/shader/mc/frame_f_b.g4b.gen5 b/xvmc/shader/mc/frame_f_b.g4b.gen5
index 14497ab1..14497ab1 100644
--- a/src/xvmc/shader/mc/frame_f_b.g4b.gen5
+++ b/xvmc/shader/mc/frame_f_b.g4b.gen5
diff --git a/src/xvmc/shader/mc/frame_f_b_igd.g4a b/xvmc/shader/mc/frame_f_b_igd.g4a
index 35231f14..35231f14 100644
--- a/src/xvmc/shader/mc/frame_f_b_igd.g4a
+++ b/xvmc/shader/mc/frame_f_b_igd.g4a
diff --git a/src/xvmc/shader/mc/frame_f_b_igd.g4b b/xvmc/shader/mc/frame_f_b_igd.g4b
index 6505aec4..6505aec4 100644
--- a/src/xvmc/shader/mc/frame_f_b_igd.g4b
+++ b/xvmc/shader/mc/frame_f_b_igd.g4b
diff --git a/src/xvmc/shader/mc/frame_f_b_igd.g4b.gen5 b/xvmc/shader/mc/frame_f_b_igd.g4b.gen5
index 6505aec4..6505aec4 100644
--- a/src/xvmc/shader/mc/frame_f_b_igd.g4b.gen5
+++ b/xvmc/shader/mc/frame_f_b_igd.g4b.gen5
diff --git a/src/xvmc/shader/mc/frame_forward.g4a b/xvmc/shader/mc/frame_forward.g4a
index 925d568e..925d568e 100644
--- a/src/xvmc/shader/mc/frame_forward.g4a
+++ b/xvmc/shader/mc/frame_forward.g4a
diff --git a/src/xvmc/shader/mc/frame_forward.g4b b/xvmc/shader/mc/frame_forward.g4b
index efbd20c7..efbd20c7 100644
--- a/src/xvmc/shader/mc/frame_forward.g4b
+++ b/xvmc/shader/mc/frame_forward.g4b
diff --git a/src/xvmc/shader/mc/frame_forward.g4b.gen5 b/xvmc/shader/mc/frame_forward.g4b.gen5
index 9f90e7e0..9f90e7e0 100644
--- a/src/xvmc/shader/mc/frame_forward.g4b.gen5
+++ b/xvmc/shader/mc/frame_forward.g4b.gen5
diff --git a/src/xvmc/shader/mc/frame_forward_igd.g4a b/xvmc/shader/mc/frame_forward_igd.g4a
index 11928eaf..11928eaf 100644
--- a/src/xvmc/shader/mc/frame_forward_igd.g4a
+++ b/xvmc/shader/mc/frame_forward_igd.g4a
diff --git a/src/xvmc/shader/mc/frame_forward_igd.g4b b/xvmc/shader/mc/frame_forward_igd.g4b
index ea7ecf8b..ea7ecf8b 100644
--- a/src/xvmc/shader/mc/frame_forward_igd.g4b
+++ b/xvmc/shader/mc/frame_forward_igd.g4b
diff --git a/src/xvmc/shader/mc/frame_forward_igd.g4b.gen5 b/xvmc/shader/mc/frame_forward_igd.g4b.gen5
index ea7ecf8b..ea7ecf8b 100644
--- a/src/xvmc/shader/mc/frame_forward_igd.g4b.gen5
+++ b/xvmc/shader/mc/frame_forward_igd.g4b.gen5
diff --git a/src/xvmc/shader/mc/ipicture.g4a b/xvmc/shader/mc/ipicture.g4a
index afd5bc3d..afd5bc3d 100644
--- a/src/xvmc/shader/mc/ipicture.g4a
+++ b/xvmc/shader/mc/ipicture.g4a
diff --git a/src/xvmc/shader/mc/ipicture.g4b b/xvmc/shader/mc/ipicture.g4b
index 10be527f..10be527f 100644
--- a/src/xvmc/shader/mc/ipicture.g4b
+++ b/xvmc/shader/mc/ipicture.g4b
diff --git a/src/xvmc/shader/mc/ipicture.g4b.gen5 b/xvmc/shader/mc/ipicture.g4b.gen5
index 216883f1..216883f1 100644
--- a/src/xvmc/shader/mc/ipicture.g4b.gen5
+++ b/xvmc/shader/mc/ipicture.g4b.gen5
diff --git a/src/xvmc/shader/mc/ipicture_igd.g4a b/xvmc/shader/mc/ipicture_igd.g4a
index 20c3d8ea..20c3d8ea 100644
--- a/src/xvmc/shader/mc/ipicture_igd.g4a
+++ b/xvmc/shader/mc/ipicture_igd.g4a
diff --git a/src/xvmc/shader/mc/ipicture_igd.g4b b/xvmc/shader/mc/ipicture_igd.g4b
index c0947f74..c0947f74 100644
--- a/src/xvmc/shader/mc/ipicture_igd.g4b
+++ b/xvmc/shader/mc/ipicture_igd.g4b
diff --git a/src/xvmc/shader/mc/ipicture_igd.g4b.gen5 b/xvmc/shader/mc/ipicture_igd.g4b.gen5
index 79b8cad2..79b8cad2 100644
--- a/src/xvmc/shader/mc/ipicture_igd.g4b.gen5
+++ b/xvmc/shader/mc/ipicture_igd.g4b.gen5
diff --git a/src/xvmc/shader/mc/lib_igd.g4a b/xvmc/shader/mc/lib_igd.g4a
index 649619f0..649619f0 100644
--- a/src/xvmc/shader/mc/lib_igd.g4a
+++ b/xvmc/shader/mc/lib_igd.g4a
diff --git a/src/xvmc/shader/mc/lib_igd.g4b b/xvmc/shader/mc/lib_igd.g4b
index 0e8fe01c..0e8fe01c 100644
--- a/src/xvmc/shader/mc/lib_igd.g4b
+++ b/xvmc/shader/mc/lib_igd.g4b
diff --git a/src/xvmc/shader/mc/lib_igd.g4b.gen5 b/xvmc/shader/mc/lib_igd.g4b.gen5
index 442fa6ae..442fa6ae 100644
--- a/src/xvmc/shader/mc/lib_igd.g4b.gen5
+++ b/xvmc/shader/mc/lib_igd.g4b.gen5
diff --git a/src/xvmc/shader/mc/motion_field_uv.g4i b/xvmc/shader/mc/motion_field_uv.g4i
index 46401974..46401974 100644
--- a/src/xvmc/shader/mc/motion_field_uv.g4i
+++ b/xvmc/shader/mc/motion_field_uv.g4i
diff --git a/src/xvmc/shader/mc/motion_field_uv_igd.g4i b/xvmc/shader/mc/motion_field_uv_igd.g4i
index 9681e2e8..9681e2e8 100644
--- a/src/xvmc/shader/mc/motion_field_uv_igd.g4i
+++ b/xvmc/shader/mc/motion_field_uv_igd.g4i
diff --git a/src/xvmc/shader/mc/motion_field_y.g4i b/xvmc/shader/mc/motion_field_y.g4i
index 06fa6cb6..06fa6cb6 100644
--- a/src/xvmc/shader/mc/motion_field_y.g4i
+++ b/xvmc/shader/mc/motion_field_y.g4i
diff --git a/src/xvmc/shader/mc/motion_field_y_igd.g4i b/xvmc/shader/mc/motion_field_y_igd.g4i
index 619857a0..619857a0 100644
--- a/src/xvmc/shader/mc/motion_field_y_igd.g4i
+++ b/xvmc/shader/mc/motion_field_y_igd.g4i
diff --git a/src/xvmc/shader/mc/motion_frame_uv.g4i b/xvmc/shader/mc/motion_frame_uv.g4i
index c027c903..c027c903 100644
--- a/src/xvmc/shader/mc/motion_frame_uv.g4i
+++ b/xvmc/shader/mc/motion_frame_uv.g4i
diff --git a/src/xvmc/shader/mc/motion_frame_uv_igd.g4i b/xvmc/shader/mc/motion_frame_uv_igd.g4i
index 7fc8931a..7fc8931a 100644
--- a/src/xvmc/shader/mc/motion_frame_uv_igd.g4i
+++ b/xvmc/shader/mc/motion_frame_uv_igd.g4i
diff --git a/src/xvmc/shader/mc/motion_frame_y.g4i b/xvmc/shader/mc/motion_frame_y.g4i
index f0b212f2..f0b212f2 100644
--- a/src/xvmc/shader/mc/motion_frame_y.g4i
+++ b/xvmc/shader/mc/motion_frame_y.g4i
diff --git a/src/xvmc/shader/mc/motion_frame_y_igd.g4i b/xvmc/shader/mc/motion_frame_y_igd.g4i
index d888b543..d888b543 100644
--- a/src/xvmc/shader/mc/motion_frame_y_igd.g4i
+++ b/xvmc/shader/mc/motion_frame_y_igd.g4i
diff --git a/src/xvmc/shader/mc/null.g4a b/xvmc/shader/mc/null.g4a
index 65698426..65698426 100644
--- a/src/xvmc/shader/mc/null.g4a
+++ b/xvmc/shader/mc/null.g4a
diff --git a/src/xvmc/shader/mc/null.g4b b/xvmc/shader/mc/null.g4b
index 960fda9a..960fda9a 100644
--- a/src/xvmc/shader/mc/null.g4b
+++ b/xvmc/shader/mc/null.g4b
diff --git a/src/xvmc/shader/mc/null.g4b.gen5 b/xvmc/shader/mc/null.g4b.gen5
index fa9755c6..fa9755c6 100644
--- a/src/xvmc/shader/mc/null.g4b.gen5
+++ b/xvmc/shader/mc/null.g4b.gen5
diff --git a/src/xvmc/shader/mc/read_field_x0y0_uv.g4i b/xvmc/shader/mc/read_field_x0y0_uv.g4i
index 673b8cd3..673b8cd3 100644
--- a/src/xvmc/shader/mc/read_field_x0y0_uv.g4i
+++ b/xvmc/shader/mc/read_field_x0y0_uv.g4i
diff --git a/src/xvmc/shader/mc/read_field_x0y0_uv_igd.g4i b/xvmc/shader/mc/read_field_x0y0_uv_igd.g4i
index 23fe1a5d..23fe1a5d 100644
--- a/src/xvmc/shader/mc/read_field_x0y0_uv_igd.g4i
+++ b/xvmc/shader/mc/read_field_x0y0_uv_igd.g4i
diff --git a/src/xvmc/shader/mc/read_field_x0y0_y.g4i b/xvmc/shader/mc/read_field_x0y0_y.g4i
index 8f4e339c..8f4e339c 100644
--- a/src/xvmc/shader/mc/read_field_x0y0_y.g4i
+++ b/xvmc/shader/mc/read_field_x0y0_y.g4i
diff --git a/src/xvmc/shader/mc/read_field_x0y0_y_igd.g4i b/xvmc/shader/mc/read_field_x0y0_y_igd.g4i
index 8dcb96d4..8dcb96d4 100644
--- a/src/xvmc/shader/mc/read_field_x0y0_y_igd.g4i
+++ b/xvmc/shader/mc/read_field_x0y0_y_igd.g4i
diff --git a/src/xvmc/shader/mc/read_field_x0y1_uv.g4i b/xvmc/shader/mc/read_field_x0y1_uv.g4i
index 1be4fd29..1be4fd29 100644
--- a/src/xvmc/shader/mc/read_field_x0y1_uv.g4i
+++ b/xvmc/shader/mc/read_field_x0y1_uv.g4i
diff --git a/src/xvmc/shader/mc/read_field_x0y1_uv_igd.g4i b/xvmc/shader/mc/read_field_x0y1_uv_igd.g4i
index 489f50a5..489f50a5 100644
--- a/src/xvmc/shader/mc/read_field_x0y1_uv_igd.g4i
+++ b/xvmc/shader/mc/read_field_x0y1_uv_igd.g4i
diff --git a/src/xvmc/shader/mc/read_field_x0y1_y.g4i b/xvmc/shader/mc/read_field_x0y1_y.g4i
index a15a2218..a15a2218 100644
--- a/src/xvmc/shader/mc/read_field_x0y1_y.g4i
+++ b/xvmc/shader/mc/read_field_x0y1_y.g4i
diff --git a/src/xvmc/shader/mc/read_field_x0y1_y_igd.g4i b/xvmc/shader/mc/read_field_x0y1_y_igd.g4i
index 58d3f266..58d3f266 100644
--- a/src/xvmc/shader/mc/read_field_x0y1_y_igd.g4i
+++ b/xvmc/shader/mc/read_field_x0y1_y_igd.g4i
diff --git a/src/xvmc/shader/mc/read_field_x1y0_uv.g4i b/xvmc/shader/mc/read_field_x1y0_uv.g4i
index e89a2dc2..e89a2dc2 100644
--- a/src/xvmc/shader/mc/read_field_x1y0_uv.g4i
+++ b/xvmc/shader/mc/read_field_x1y0_uv.g4i
diff --git a/src/xvmc/shader/mc/read_field_x1y0_uv_igd.g4i b/xvmc/shader/mc/read_field_x1y0_uv_igd.g4i
index 0cec2e01..0cec2e01 100644
--- a/src/xvmc/shader/mc/read_field_x1y0_uv_igd.g4i
+++ b/xvmc/shader/mc/read_field_x1y0_uv_igd.g4i
diff --git a/src/xvmc/shader/mc/read_field_x1y0_y.g4i b/xvmc/shader/mc/read_field_x1y0_y.g4i
index a517aaa8..a517aaa8 100644
--- a/src/xvmc/shader/mc/read_field_x1y0_y.g4i
+++ b/xvmc/shader/mc/read_field_x1y0_y.g4i
diff --git a/src/xvmc/shader/mc/read_field_x1y0_y_igd.g4i b/xvmc/shader/mc/read_field_x1y0_y_igd.g4i
index f76a2679..f76a2679 100644
--- a/src/xvmc/shader/mc/read_field_x1y0_y_igd.g4i
+++ b/xvmc/shader/mc/read_field_x1y0_y_igd.g4i
diff --git a/src/xvmc/shader/mc/read_field_x1y1_uv.g4i b/xvmc/shader/mc/read_field_x1y1_uv.g4i
index 162de9a2..162de9a2 100644
--- a/src/xvmc/shader/mc/read_field_x1y1_uv.g4i
+++ b/xvmc/shader/mc/read_field_x1y1_uv.g4i
diff --git a/src/xvmc/shader/mc/read_field_x1y1_uv_igd.g4i b/xvmc/shader/mc/read_field_x1y1_uv_igd.g4i
index e2612255..e2612255 100644
--- a/src/xvmc/shader/mc/read_field_x1y1_uv_igd.g4i
+++ b/xvmc/shader/mc/read_field_x1y1_uv_igd.g4i
diff --git a/src/xvmc/shader/mc/read_field_x1y1_y.g4i b/xvmc/shader/mc/read_field_x1y1_y.g4i
index 7c017012..7c017012 100644
--- a/src/xvmc/shader/mc/read_field_x1y1_y.g4i
+++ b/xvmc/shader/mc/read_field_x1y1_y.g4i
diff --git a/src/xvmc/shader/mc/read_field_x1y1_y_igd.g4i b/xvmc/shader/mc/read_field_x1y1_y_igd.g4i
index db635fe5..db635fe5 100644
--- a/src/xvmc/shader/mc/read_field_x1y1_y_igd.g4i
+++ b/xvmc/shader/mc/read_field_x1y1_y_igd.g4i
diff --git a/src/xvmc/shader/mc/read_frame_x0y0_uv.g4i b/xvmc/shader/mc/read_frame_x0y0_uv.g4i
index 43f77a8f..43f77a8f 100644
--- a/src/xvmc/shader/mc/read_frame_x0y0_uv.g4i
+++ b/xvmc/shader/mc/read_frame_x0y0_uv.g4i
diff --git a/src/xvmc/shader/mc/read_frame_x0y0_uv_igd.g4i b/xvmc/shader/mc/read_frame_x0y0_uv_igd.g4i
index edff59b6..edff59b6 100644
--- a/src/xvmc/shader/mc/read_frame_x0y0_uv_igd.g4i
+++ b/xvmc/shader/mc/read_frame_x0y0_uv_igd.g4i
diff --git a/src/xvmc/shader/mc/read_frame_x0y0_y.g4i b/xvmc/shader/mc/read_frame_x0y0_y.g4i
index 20f577d6..20f577d6 100644
--- a/src/xvmc/shader/mc/read_frame_x0y0_y.g4i
+++ b/xvmc/shader/mc/read_frame_x0y0_y.g4i
diff --git a/src/xvmc/shader/mc/read_frame_x0y0_y_igd.g4i b/xvmc/shader/mc/read_frame_x0y0_y_igd.g4i
index ba3dc729..ba3dc729 100644
--- a/src/xvmc/shader/mc/read_frame_x0y0_y_igd.g4i
+++ b/xvmc/shader/mc/read_frame_x0y0_y_igd.g4i
diff --git a/src/xvmc/shader/mc/read_frame_x0y1_uv.g4i b/xvmc/shader/mc/read_frame_x0y1_uv.g4i
index 58bebbc0..58bebbc0 100644
--- a/src/xvmc/shader/mc/read_frame_x0y1_uv.g4i
+++ b/xvmc/shader/mc/read_frame_x0y1_uv.g4i
diff --git a/src/xvmc/shader/mc/read_frame_x0y1_uv_igd.g4i b/xvmc/shader/mc/read_frame_x0y1_uv_igd.g4i
index 7240b3f2..7240b3f2 100644
--- a/src/xvmc/shader/mc/read_frame_x0y1_uv_igd.g4i
+++ b/xvmc/shader/mc/read_frame_x0y1_uv_igd.g4i
diff --git a/src/xvmc/shader/mc/read_frame_x0y1_y.g4i b/xvmc/shader/mc/read_frame_x0y1_y.g4i
index bbc0d787..bbc0d787 100644
--- a/src/xvmc/shader/mc/read_frame_x0y1_y.g4i
+++ b/xvmc/shader/mc/read_frame_x0y1_y.g4i
diff --git a/src/xvmc/shader/mc/read_frame_x0y1_y_igd.g4i b/xvmc/shader/mc/read_frame_x0y1_y_igd.g4i
index 65cc88b4..65cc88b4 100644
--- a/src/xvmc/shader/mc/read_frame_x0y1_y_igd.g4i
+++ b/xvmc/shader/mc/read_frame_x0y1_y_igd.g4i
diff --git a/src/xvmc/shader/mc/read_frame_x1y0_uv.g4i b/xvmc/shader/mc/read_frame_x1y0_uv.g4i
index bed4abe5..bed4abe5 100644
--- a/src/xvmc/shader/mc/read_frame_x1y0_uv.g4i
+++ b/xvmc/shader/mc/read_frame_x1y0_uv.g4i
diff --git a/src/xvmc/shader/mc/read_frame_x1y0_uv_igd.g4i b/xvmc/shader/mc/read_frame_x1y0_uv_igd.g4i
index c63e8ecd..c63e8ecd 100644
--- a/src/xvmc/shader/mc/read_frame_x1y0_uv_igd.g4i
+++ b/xvmc/shader/mc/read_frame_x1y0_uv_igd.g4i
diff --git a/src/xvmc/shader/mc/read_frame_x1y0_y.g4i b/xvmc/shader/mc/read_frame_x1y0_y.g4i
index 3af3e085..3af3e085 100644
--- a/src/xvmc/shader/mc/read_frame_x1y0_y.g4i
+++ b/xvmc/shader/mc/read_frame_x1y0_y.g4i
diff --git a/src/xvmc/shader/mc/read_frame_x1y0_y_igd.g4i b/xvmc/shader/mc/read_frame_x1y0_y_igd.g4i
index 64bd8e81..64bd8e81 100644
--- a/src/xvmc/shader/mc/read_frame_x1y0_y_igd.g4i
+++ b/xvmc/shader/mc/read_frame_x1y0_y_igd.g4i
diff --git a/src/xvmc/shader/mc/read_frame_x1y1_uv.g4i b/xvmc/shader/mc/read_frame_x1y1_uv.g4i
index d124d298..d124d298 100644
--- a/src/xvmc/shader/mc/read_frame_x1y1_uv.g4i
+++ b/xvmc/shader/mc/read_frame_x1y1_uv.g4i
diff --git a/src/xvmc/shader/mc/read_frame_x1y1_uv_igd.g4i b/xvmc/shader/mc/read_frame_x1y1_uv_igd.g4i
index 96aada87..96aada87 100644
--- a/src/xvmc/shader/mc/read_frame_x1y1_uv_igd.g4i
+++ b/xvmc/shader/mc/read_frame_x1y1_uv_igd.g4i
diff --git a/src/xvmc/shader/mc/read_frame_x1y1_y.g4i b/xvmc/shader/mc/read_frame_x1y1_y.g4i
index fa55d865..fa55d865 100644
--- a/src/xvmc/shader/mc/read_frame_x1y1_y.g4i
+++ b/xvmc/shader/mc/read_frame_x1y1_y.g4i
diff --git a/src/xvmc/shader/mc/read_frame_x1y1_y_igd.g4i b/xvmc/shader/mc/read_frame_x1y1_y_igd.g4i
index ce8f46a3..ce8f46a3 100644
--- a/src/xvmc/shader/mc/read_frame_x1y1_y_igd.g4i
+++ b/xvmc/shader/mc/read_frame_x1y1_y_igd.g4i
diff --git a/src/xvmc/shader/vld/Makefile.am b/xvmc/shader/vld/Makefile.am
index 8f1047e0..8f1047e0 100644
--- a/src/xvmc/shader/vld/Makefile.am
+++ b/xvmc/shader/vld/Makefile.am
diff --git a/src/xvmc/shader/vld/addidct.g4i b/xvmc/shader/vld/addidct.g4i
index b57548d1..b57548d1 100644
--- a/src/xvmc/shader/vld/addidct.g4i
+++ b/xvmc/shader/vld/addidct.g4i
diff --git a/src/xvmc/shader/vld/do_iq_intra.g4i b/xvmc/shader/vld/do_iq_intra.g4i
index 29bd0208..29bd0208 100644
--- a/src/xvmc/shader/vld/do_iq_intra.g4i
+++ b/xvmc/shader/vld/do_iq_intra.g4i
diff --git a/src/xvmc/shader/vld/do_iq_non_intra.g4i b/xvmc/shader/vld/do_iq_non_intra.g4i
index da85e845..da85e845 100644
--- a/src/xvmc/shader/vld/do_iq_non_intra.g4i
+++ b/xvmc/shader/vld/do_iq_non_intra.g4i
diff --git a/src/xvmc/shader/vld/field_backward.g4a b/xvmc/shader/vld/field_backward.g4a
index 9db50eda..9db50eda 100644
--- a/src/xvmc/shader/vld/field_backward.g4a
+++ b/xvmc/shader/vld/field_backward.g4a
diff --git a/src/xvmc/shader/vld/field_backward.g4b b/xvmc/shader/vld/field_backward.g4b
index 5d468295..5d468295 100644
--- a/src/xvmc/shader/vld/field_backward.g4b
+++ b/xvmc/shader/vld/field_backward.g4b
diff --git a/src/xvmc/shader/vld/field_backward.g4b.gen5 b/xvmc/shader/vld/field_backward.g4b.gen5
index 18595b26..18595b26 100644
--- a/src/xvmc/shader/vld/field_backward.g4b.gen5
+++ b/xvmc/shader/vld/field_backward.g4b.gen5
diff --git a/src/xvmc/shader/vld/field_f_b.g4a b/xvmc/shader/vld/field_f_b.g4a
index fdc1e838..fdc1e838 100644
--- a/src/xvmc/shader/vld/field_f_b.g4a
+++ b/xvmc/shader/vld/field_f_b.g4a
diff --git a/src/xvmc/shader/vld/field_f_b.g4b b/xvmc/shader/vld/field_f_b.g4b
index 9bd272e4..9bd272e4 100644
--- a/src/xvmc/shader/vld/field_f_b.g4b
+++ b/xvmc/shader/vld/field_f_b.g4b
diff --git a/src/xvmc/shader/vld/field_f_b.g4b.gen5 b/xvmc/shader/vld/field_f_b.g4b.gen5
index b99ad57f..b99ad57f 100644
--- a/src/xvmc/shader/vld/field_f_b.g4b.gen5
+++ b/xvmc/shader/vld/field_f_b.g4b.gen5
diff --git a/src/xvmc/shader/vld/field_forward.g4a b/xvmc/shader/vld/field_forward.g4a
index 4c79c5f4..4c79c5f4 100644
--- a/src/xvmc/shader/vld/field_forward.g4a
+++ b/xvmc/shader/vld/field_forward.g4a
diff --git a/src/xvmc/shader/vld/field_forward.g4b b/xvmc/shader/vld/field_forward.g4b
index 6c02221f..6c02221f 100644
--- a/src/xvmc/shader/vld/field_forward.g4b
+++ b/xvmc/shader/vld/field_forward.g4b
diff --git a/src/xvmc/shader/vld/field_forward.g4b.gen5 b/xvmc/shader/vld/field_forward.g4b.gen5
index 4c2434ab..4c2434ab 100644
--- a/src/xvmc/shader/vld/field_forward.g4b.gen5
+++ b/xvmc/shader/vld/field_forward.g4b.gen5
diff --git a/src/xvmc/shader/vld/frame_backward.g4a b/xvmc/shader/vld/frame_backward.g4a
index 28fe910e..28fe910e 100644
--- a/src/xvmc/shader/vld/frame_backward.g4a
+++ b/xvmc/shader/vld/frame_backward.g4a
diff --git a/src/xvmc/shader/vld/frame_backward.g4b b/xvmc/shader/vld/frame_backward.g4b
index 475200b6..475200b6 100644
--- a/src/xvmc/shader/vld/frame_backward.g4b
+++ b/xvmc/shader/vld/frame_backward.g4b
diff --git a/src/xvmc/shader/vld/frame_backward.g4b.gen5 b/xvmc/shader/vld/frame_backward.g4b.gen5
index 5f5c174a..5f5c174a 100644
--- a/src/xvmc/shader/vld/frame_backward.g4b.gen5
+++ b/xvmc/shader/vld/frame_backward.g4b.gen5
diff --git a/src/xvmc/shader/vld/frame_f_b.g4a b/xvmc/shader/vld/frame_f_b.g4a
index cf7ef57c..cf7ef57c 100644
--- a/src/xvmc/shader/vld/frame_f_b.g4a
+++ b/xvmc/shader/vld/frame_f_b.g4a
diff --git a/src/xvmc/shader/vld/frame_f_b.g4b b/xvmc/shader/vld/frame_f_b.g4b
index 0ca1f384..0ca1f384 100644
--- a/src/xvmc/shader/vld/frame_f_b.g4b
+++ b/xvmc/shader/vld/frame_f_b.g4b
diff --git a/src/xvmc/shader/vld/frame_f_b.g4b.gen5 b/xvmc/shader/vld/frame_f_b.g4b.gen5
index 1078caa5..1078caa5 100644
--- a/src/xvmc/shader/vld/frame_f_b.g4b.gen5
+++ b/xvmc/shader/vld/frame_f_b.g4b.gen5
diff --git a/src/xvmc/shader/vld/frame_forward.g4a b/xvmc/shader/vld/frame_forward.g4a
index 22f48041..22f48041 100644
--- a/src/xvmc/shader/vld/frame_forward.g4a
+++ b/xvmc/shader/vld/frame_forward.g4a
diff --git a/src/xvmc/shader/vld/frame_forward.g4b b/xvmc/shader/vld/frame_forward.g4b
index 4bf6c935..4bf6c935 100644
--- a/src/xvmc/shader/vld/frame_forward.g4b
+++ b/xvmc/shader/vld/frame_forward.g4b
diff --git a/src/xvmc/shader/vld/frame_forward.g4b.gen5 b/xvmc/shader/vld/frame_forward.g4b.gen5
index 9d894888..9d894888 100644
--- a/src/xvmc/shader/vld/frame_forward.g4b.gen5
+++ b/xvmc/shader/vld/frame_forward.g4b.gen5
diff --git a/src/xvmc/shader/vld/idct.g4i b/xvmc/shader/vld/idct.g4i
index c1747d18..c1747d18 100644
--- a/src/xvmc/shader/vld/idct.g4i
+++ b/xvmc/shader/vld/idct.g4i
diff --git a/src/xvmc/shader/vld/ipicture.g4a b/xvmc/shader/vld/ipicture.g4a
index 688cf940..688cf940 100644
--- a/src/xvmc/shader/vld/ipicture.g4a
+++ b/xvmc/shader/vld/ipicture.g4a
diff --git a/src/xvmc/shader/vld/ipicture.g4b b/xvmc/shader/vld/ipicture.g4b
index 4c1c8c44..4c1c8c44 100644
--- a/src/xvmc/shader/vld/ipicture.g4b
+++ b/xvmc/shader/vld/ipicture.g4b
diff --git a/src/xvmc/shader/vld/ipicture.g4b.gen5 b/xvmc/shader/vld/ipicture.g4b.gen5
index 957f6fc3..957f6fc3 100644
--- a/src/xvmc/shader/vld/ipicture.g4b.gen5
+++ b/xvmc/shader/vld/ipicture.g4b.gen5
diff --git a/src/xvmc/shader/vld/iq_intra.g4i b/xvmc/shader/vld/iq_intra.g4i
index b0143613..b0143613 100644
--- a/src/xvmc/shader/vld/iq_intra.g4i
+++ b/xvmc/shader/vld/iq_intra.g4i
diff --git a/src/xvmc/shader/vld/iq_non_intra.g4i b/xvmc/shader/vld/iq_non_intra.g4i
index 03c09aa0..03c09aa0 100644
--- a/src/xvmc/shader/vld/iq_non_intra.g4i
+++ b/xvmc/shader/vld/iq_non_intra.g4i
diff --git a/src/xvmc/shader/vld/lib.g4a b/xvmc/shader/vld/lib.g4a
index 567caafe..567caafe 100644
--- a/src/xvmc/shader/vld/lib.g4a
+++ b/xvmc/shader/vld/lib.g4a
diff --git a/src/xvmc/shader/vld/lib.g4b b/xvmc/shader/vld/lib.g4b
index 262bff90..262bff90 100644
--- a/src/xvmc/shader/vld/lib.g4b
+++ b/xvmc/shader/vld/lib.g4b
diff --git a/src/xvmc/shader/vld/lib.g4b.gen5 b/xvmc/shader/vld/lib.g4b.gen5
index 2371beb0..2371beb0 100644
--- a/src/xvmc/shader/vld/lib.g4b.gen5
+++ b/xvmc/shader/vld/lib.g4b.gen5
diff --git a/src/xvmc/shader/vld/motion_field_uv.g4i b/xvmc/shader/vld/motion_field_uv.g4i
index 4598c85a..4598c85a 100644
--- a/src/xvmc/shader/vld/motion_field_uv.g4i
+++ b/xvmc/shader/vld/motion_field_uv.g4i
diff --git a/src/xvmc/shader/vld/motion_field_y.g4i b/xvmc/shader/vld/motion_field_y.g4i
index 47d2ec40..47d2ec40 100644
--- a/src/xvmc/shader/vld/motion_field_y.g4i
+++ b/xvmc/shader/vld/motion_field_y.g4i
diff --git a/src/xvmc/shader/vld/motion_frame_uv.g4i b/xvmc/shader/vld/motion_frame_uv.g4i
index 00a5f2bf..00a5f2bf 100644
--- a/src/xvmc/shader/vld/motion_frame_uv.g4i
+++ b/xvmc/shader/vld/motion_frame_uv.g4i
diff --git a/src/xvmc/shader/vld/motion_frame_y.g4i b/xvmc/shader/vld/motion_frame_y.g4i
index 88c80851..88c80851 100644
--- a/src/xvmc/shader/vld/motion_frame_y.g4i
+++ b/xvmc/shader/vld/motion_frame_y.g4i
diff --git a/src/xvmc/shader/vld/read_field_x0y0_uv.g4i b/xvmc/shader/vld/read_field_x0y0_uv.g4i
index 36e589a1..36e589a1 100644
--- a/src/xvmc/shader/vld/read_field_x0y0_uv.g4i
+++ b/xvmc/shader/vld/read_field_x0y0_uv.g4i
diff --git a/src/xvmc/shader/vld/read_field_x0y0_y.g4i b/xvmc/shader/vld/read_field_x0y0_y.g4i
index e5495981..e5495981 100644
--- a/src/xvmc/shader/vld/read_field_x0y0_y.g4i
+++ b/xvmc/shader/vld/read_field_x0y0_y.g4i
diff --git a/src/xvmc/shader/vld/read_field_x0y1_uv.g4i b/xvmc/shader/vld/read_field_x0y1_uv.g4i
index ac8030b8..ac8030b8 100644
--- a/src/xvmc/shader/vld/read_field_x0y1_uv.g4i
+++ b/xvmc/shader/vld/read_field_x0y1_uv.g4i
diff --git a/src/xvmc/shader/vld/read_field_x0y1_y.g4i b/xvmc/shader/vld/read_field_x0y1_y.g4i
index 7a7909fe..7a7909fe 100644
--- a/src/xvmc/shader/vld/read_field_x0y1_y.g4i
+++ b/xvmc/shader/vld/read_field_x0y1_y.g4i
diff --git a/src/xvmc/shader/vld/read_field_x1y0_uv.g4i b/xvmc/shader/vld/read_field_x1y0_uv.g4i
index 4c364382..4c364382 100644
--- a/src/xvmc/shader/vld/read_field_x1y0_uv.g4i
+++ b/xvmc/shader/vld/read_field_x1y0_uv.g4i
diff --git a/src/xvmc/shader/vld/read_field_x1y0_y.g4i b/xvmc/shader/vld/read_field_x1y0_y.g4i
index c8ff505d..c8ff505d 100644
--- a/src/xvmc/shader/vld/read_field_x1y0_y.g4i
+++ b/xvmc/shader/vld/read_field_x1y0_y.g4i
diff --git a/src/xvmc/shader/vld/read_field_x1y1_uv.g4i b/xvmc/shader/vld/read_field_x1y1_uv.g4i
index 816dd724..816dd724 100644
--- a/src/xvmc/shader/vld/read_field_x1y1_uv.g4i
+++ b/xvmc/shader/vld/read_field_x1y1_uv.g4i
diff --git a/src/xvmc/shader/vld/read_field_x1y1_y.g4i b/xvmc/shader/vld/read_field_x1y1_y.g4i
index dcc9ebf0..dcc9ebf0 100644
--- a/src/xvmc/shader/vld/read_field_x1y1_y.g4i
+++ b/xvmc/shader/vld/read_field_x1y1_y.g4i
diff --git a/src/xvmc/shader/vld/read_frame_x0y0_uv.g4i b/xvmc/shader/vld/read_frame_x0y0_uv.g4i
index 63f898f1..63f898f1 100644
--- a/src/xvmc/shader/vld/read_frame_x0y0_uv.g4i
+++ b/xvmc/shader/vld/read_frame_x0y0_uv.g4i
diff --git a/src/xvmc/shader/vld/read_frame_x0y0_y.g4i b/xvmc/shader/vld/read_frame_x0y0_y.g4i
index 3ab5ccd5..3ab5ccd5 100644
--- a/src/xvmc/shader/vld/read_frame_x0y0_y.g4i
+++ b/xvmc/shader/vld/read_frame_x0y0_y.g4i
diff --git a/src/xvmc/shader/vld/read_frame_x0y1_uv.g4i b/xvmc/shader/vld/read_frame_x0y1_uv.g4i
index 6351ec50..6351ec50 100644
--- a/src/xvmc/shader/vld/read_frame_x0y1_uv.g4i
+++ b/xvmc/shader/vld/read_frame_x0y1_uv.g4i
diff --git a/src/xvmc/shader/vld/read_frame_x0y1_y.g4i b/xvmc/shader/vld/read_frame_x0y1_y.g4i
index db3dcc55..db3dcc55 100644
--- a/src/xvmc/shader/vld/read_frame_x0y1_y.g4i
+++ b/xvmc/shader/vld/read_frame_x0y1_y.g4i
diff --git a/src/xvmc/shader/vld/read_frame_x1y0_uv.g4i b/xvmc/shader/vld/read_frame_x1y0_uv.g4i
index 05736f0e..05736f0e 100644
--- a/src/xvmc/shader/vld/read_frame_x1y0_uv.g4i
+++ b/xvmc/shader/vld/read_frame_x1y0_uv.g4i
diff --git a/src/xvmc/shader/vld/read_frame_x1y0_y.g4i b/xvmc/shader/vld/read_frame_x1y0_y.g4i
index c236d117..c236d117 100644
--- a/src/xvmc/shader/vld/read_frame_x1y0_y.g4i
+++ b/xvmc/shader/vld/read_frame_x1y0_y.g4i
diff --git a/src/xvmc/shader/vld/read_frame_x1y1_uv.g4i b/xvmc/shader/vld/read_frame_x1y1_uv.g4i
index 2f741fa0..2f741fa0 100644
--- a/src/xvmc/shader/vld/read_frame_x1y1_uv.g4i
+++ b/xvmc/shader/vld/read_frame_x1y1_uv.g4i
diff --git a/src/xvmc/shader/vld/read_frame_x1y1_y.g4i b/xvmc/shader/vld/read_frame_x1y1_y.g4i
index 990927dc..990927dc 100644
--- a/src/xvmc/shader/vld/read_frame_x1y1_y.g4i
+++ b/xvmc/shader/vld/read_frame_x1y1_y.g4i
diff --git a/src/xvmc/xvmc_vld.c b/xvmc/xvmc_vld.c
index 3f5fa5e1..e5762941 100644
--- a/src/xvmc/xvmc_vld.c
+++ b/xvmc/xvmc_vld.c
@@ -23,8 +23,7 @@
23 * Author: 23 * Author:
24 * Zou Nan hai <nanhai.zou@intel.com> 24 * Zou Nan hai <nanhai.zou@intel.com>
25 */ 25 */
26#include "intel_xvmc.h" 26#include "intel_xvmc_private.h"
27#include "intel_hwmc.h"
28#include "i830_reg.h" 27#include "i830_reg.h"
29#include "i965_reg.h" 28#include "i965_reg.h"
30#include "brw_defines.h" 29#include "brw_defines.h"