<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sat, Aug 6, 2016 at 4:15 PM, Kenneth Graunke <span dir="ltr"><<a href="mailto:kenneth@whitecape.org" target="_blank">kenneth@whitecape.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="">On Saturday, August 6, 2016 10:31:19 AM PDT Jason Ekstrand wrote:<br>
> This bit doesn't enable multisampling, it simply sets the multisampling<br>
> mode to DX which is what we want.<br>
<br>
</span>This in fact does not set the multisampling API mode. That's the<br>
DXMultisampleRasterizationMode field, while you're changing the<br>
DXMultisampleRasterizationEnab<wbr>le bit.<br>
<br>
I'm not saying this is wrong, but could you provide a better explanation<br>
for this change? I think you need to cite the 3DSTATE_INT Multisample<br>
Rasterization Modes table and why the signals ultimately produced work<br>
out to what we want despite changing this.<br></blockquote><div><br></div><div>I just kicked this guy off to CI:<br><br><a href="https://cgit.freedesktop.org/~jekstrand/mesa/commit/?h=jenkins_gl">https://cgit.freedesktop.org/~jekstrand/mesa/commit/?h=jenkins_gl</a><br><br></div><div>the i965 driver is probably a better place to prototype this change anyway since it is getting better test coverage.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
If this works, it would be nice - in the GL driver, we could likely<br>
drop the _NEW_MULTISAMPLE flag in the 3DSTATE_RASTER atom.<br>
<div class=""><div class="h5"><br>
> ---<br>
> src/intel/vulkan/gen8_<wbr>pipeline.c | 11 ++---------<br>
> 1 file changed, 2 insertions(+), 9 deletions(-)<br>
><br>
> diff --git a/src/intel/vulkan/gen8_<wbr>pipeline.c b/src/intel/vulkan/gen8_<wbr>pipeline.c<br>
> index 6b7936a..ad8a643 100644<br>
> --- a/src/intel/vulkan/gen8_<wbr>pipeline.c<br>
> +++ b/src/intel/vulkan/gen8_<wbr>pipeline.c<br>
> @@ -47,14 +47,8 @@ emit_ia_state(struct anv_pipeline *pipeline,<br>
> static void<br>
> emit_rs_state(struct anv_pipeline *pipeline,<br>
> const VkPipelineRasterizationStateCr<wbr>eateInfo *info,<br>
> - const VkPipelineMultisampleStateCrea<wbr>teInfo *ms_info,<br>
> const struct anv_graphics_pipeline_create_<wbr>info *extra)<br>
> {<br>
> - uint32_t samples = 1;<br>
> -<br>
> - if (ms_info)<br>
> - samples = ms_info->rasterizationSamples;<br>
> -<br>
> struct GENX(3DSTATE_SF) sf = {<br>
> GENX(3DSTATE_SF_header),<br>
> };<br>
> @@ -75,7 +69,7 @@ emit_rs_state(struct anv_pipeline *pipeline,<br>
> /* For details on 3DSTATE_RASTER multisample state, see the BSpec table<br>
> * "Multisample Modes State".<br>
> */<br>
> - raster.<wbr>DXMultisampleRasterizationEnab<wbr>le = samples > 1;<br>
> + raster.<wbr>DXMultisampleRasterizationEnab<wbr>le = true;<br>
> raster.ForcedSampleCount = FSC_NUMRASTSAMPLES_0;<br>
> raster.ForceMultisampling = false;<br>
><br>
> @@ -176,8 +170,7 @@ genX(graphics_pipeline_create)<wbr>(<br>
> assert(pCreateInfo-><wbr>pInputAssemblyState);<br>
> emit_ia_state(pipeline, pCreateInfo-><wbr>pInputAssemblyState, extra);<br>
> assert(pCreateInfo-><wbr>pRasterizationState);<br>
> - emit_rs_state(pipeline, pCreateInfo-><wbr>pRasterizationState,<br>
> - pCreateInfo-><wbr>pMultisampleState, extra);<br>
> + emit_rs_state(pipeline, pCreateInfo-><wbr>pRasterizationState, extra);<br>
> emit_ms_state(pipeline, pCreateInfo-><wbr>pMultisampleState);<br>
> emit_ds_state(pipeline, pCreateInfo-><wbr>pDepthStencilState, pass, subpass);<br>
> emit_cb_state(pipeline, pCreateInfo->pColorBlendState,<br>
><br>
<br>
</div></div></blockquote></div><br></div></div>