On Thu, Aug 04, 2016 at 08:07:08PM -0700, Jason Ekstrand wrote: > Drp... There's more work to do here to get the behavior 100% correct on > gen7 but this fixes a bug and is a step in the right direction. >
You're right. To be more accurate, I'll rename the commit title to: "anv/gen7_pipeline: Set PixelShaderKillPixel for discards" > Reviewed-by: Jason Ekstrand <[email protected]> Thanks for the review! > > Unfortunately, gen7 is a bit crazy so the simple solution doesn't cover all > the cases. For the full fix take a look at > > https://cgit.freedesktop.org/mesa/mesa/tree/src/mesa/drivers/dri/i965/gen7_wm_state.c#n74 It'd probably be good for me to totally hook up this field while I'm in the area, so I'll put it on my TODO (though I'm fine with anyone picking this up). I'd send out a v2 which does this, but I would need to spend a decent amount of time ramping up on all the interactions with this field. > > and > > https://cgit.freedesktop.org/mesa/mesa/tree/src/mesa/drivers/dri/i965/gen7_wm_state.c#n81 This condition seems strange. The docs seem to say: if (GEN7_WM_DISPATCH_ENABLE == 0) GEN7_WM_KILL_ENABLE = 0; but i965 does: if (GEN7_WM_KILL_ENABLE == 1) GEN7_WM_DISPATCH_ENABLE = 1; > > and maybe > > https://cgit.freedesktop.org/mesa/mesa/tree/src/mesa/drivers/dri/i965/gen7_wm_state.c#n119 I don't understand how this field is related. - Nanley > > --Jason > > On Aug 4, 2016 4:45 PM, "Nanley Chery" <[email protected]> wrote: > > > According to the IVB PRM Vol2 P1, this bit must be set if a pixel shader > > contains a discard instruction. > > > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97207 > > Cc: "12.0" <[email protected]> > > Signed-off-by: Nanley Chery <[email protected]> > > --- > > src/intel/vulkan/gen7_pipeline.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/src/intel/vulkan/gen7_pipeline.c b/src/intel/vulkan/gen7_ > > pipeline.c > > index 8ce50be..d1b18e0 100644 > > --- a/src/intel/vulkan/gen7_pipeline.c > > +++ b/src/intel/vulkan/gen7_pipeline.c > > @@ -297,6 +297,7 @@ genX(graphics_pipeline_create)( > > wm.LineEndCapAntialiasingRegionWidth = 0; /* 0.5 pixels */ > > wm.LineAntialiasingRegionWidth = 1; /* 1.0 pixels */ > > wm.PointRasterizationRule = RASTRULE_UPPER_RIGHT; > > + wm.PixelShaderKillPixel = wm_prog_data->uses_kill; > > wm.PixelShaderComputedDepthMode = > > wm_prog_data->computed_depth_mode; > > wm.PixelShaderUsesSourceDepth = > > wm_prog_data->uses_src_depth; > > wm.PixelShaderUsesSourceW = > > wm_prog_data->uses_src_w; > > -- > > 2.9.0 > > > > _______________________________________________ > > mesa-dev mailing list > > [email protected] > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev > > _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
