diff options
author | Nanley Chery <nanley.g.chery@intel.com> | 2018-10-26 14:52:35 -0700 |
---|---|---|
committer | Nanley Chery <nanley.g.chery@intel.com> | 2018-11-20 15:22:09 -0800 |
commit | 97e825aa53e28de7e128b3c933cc93692501d501 (patch) | |
tree | 49176cf8b935ff9633f196a2e195b208410f5eeb | |
parent | 3486fe655a2d62e42c8a9d0571df6dff753a9af6 (diff) |
intel/blorp: Set up some other state for WM_HZ_OPwip/fix/hiz-bugs
TODO: Test what happens when setting each of those bits to their opposite value.
XXX: Split each addition into a patch.
XXX: Finish writing the documentation.
-rw-r--r-- | src/intel/blorp/blorp_genX_exec.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/intel/blorp/blorp_genX_exec.h b/src/intel/blorp/blorp_genX_exec.h index 065980616ec..91ddff80933 100644 --- a/src/intel/blorp/blorp_genX_exec.h +++ b/src/intel/blorp/blorp_genX_exec.h @@ -1617,6 +1617,10 @@ blorp_emit_gen8_hiz_op(struct blorp_batch *batch, if (params->stencil.enabled) assert(params->hiz_op == ISL_AUX_OP_FAST_CLEAR); + blorp_emit(batch, GENX(3DSTATE_PS_BLEND), ps_blend) { + ps_blend.AlphaTestEnable = false; + } + /* From the BDW PRM Volume 2, 3DSTATE_WM_HZ_OP: * * 3DSTATE_MULTISAMPLE packet must be used prior to this packet to change @@ -1628,6 +1632,35 @@ blorp_emit_gen8_hiz_op(struct blorp_batch *batch, */ blorp_emit_3dstate_multisample(batch, params); + /* From the BDW PRM Volume 2, 3DSTATE_WM_HZ_OP: + * + * 3DSTATE_RASTER if used must be programmed prior to using this packet. + * + * The formula for WM_INT::Multisample Rasterization Mode shows that + * 3DSTATE_RASTER::Force Multisampling has the ability to override + * 3DSTATE_WM_HZ_OP::Number of Multisamples. Disable the override by setting + * it to false. + */ + blorp_emit(batch, GENX(3DSTATE_RASTER), raster) { + raster.ForceMultisampling = false; + } + + /* From the BDW+ HW docs XXX: + * + * WM_INT::Pixel Shader Computed Depth Mode = + * (3DSTATE_PS_EXTRA::ForceComputedDepth == Force) ? + * 3DSTATE_PS_EXTRA::Pixel Shader Computed Depth Mode : + * (WM_INT::WM_HZ_OP || WM_INT::RT Independent Rasterization Enable ) ? + * PSCDEPTH_OFF: + * 3DSTATE_PS_EXTRA::Pixel Shader Computed Depth Mode + * + * To avoid 3DSTATE_PS_EXTRA::ForceComputedDepth from overriding + * 3DSTATE_WM_HZ_OP's preverence of PSCDEPTH_OFF, set it to false. + */ + blorp_emit(batch, GENX(3DSTATE_PS_EXTRA), psx) { + psx.ForceComputedDepth = false; + } + /* From the BDW PRM Volume 7, Depth Buffer Clear: * * The clear value must be between the min and max depth values |