<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>