On Fri, Aug 5, 2016 at 3:57 PM, Lionel Landwerlin <[email protected]> wrote:
> Fixes the following failures : > > dEQP-VK.api.copy_and_blit.resolve_image.whole_4_bit > dEQP-VK.api.copy_and_blit.resolve_image.whole_8_bit > dEQP-VK.api.copy_and_blit.resolve_image.partial_4_bit > dEQP-VK.api.copy_and_blit.resolve_image.partial_8_bit > dEQP-VK.api.copy_and_blit.resolve_image.with_regions_4_bit > dEQP-VK.api.copy_and_blit.resolve_image.with_regions_8_bit > I couldn't find these test in vulkan-cts-1.0 at https://github.com/KhronosGroup/Vulkan-CTS.git I'm using commit f13b15d . You should remove them from commit message if they are no longer part of CTS. > Tested on IVB/HSW > > v2: Check pMultisampleState is not NULL > > Signed-off-by: Lionel Landwerlin <[email protected]> > Cc: Anuj Phogat <[email protected]> > --- > src/intel/vulkan/gen7_pipeline.c | 24 +++++++++++++++++------- > 1 file changed, 17 insertions(+), 7 deletions(-) > > diff --git a/src/intel/vulkan/gen7_pipeline.c > b/src/intel/vulkan/gen7_pipeline.c > index c2a38ac..f4ad1bc 100644 > --- a/src/intel/vulkan/gen7_pipeline.c > +++ b/src/intel/vulkan/gen7_pipeline.c > @@ -37,8 +37,14 @@ > static void > gen7_emit_rs_state(struct anv_pipeline *pipeline, > const VkPipelineRasterizationStateCreateInfo *rs_info, > + const VkPipelineMultisampleStateCreateInfo *ms_info, > We just need samples in this function, so just pass samples as parameter. You can drop your first patch in that case. > const struct anv_graphics_pipeline_create_info *extra) > { > + uint32_t samples = 1; > + > + if (ms_info) > + samples = ms_info->rasterizationSamples; > + > struct GENX(3DSTATE_SF) sf = { > GENX(3DSTATE_SF_header), > > @@ -56,7 +62,7 @@ gen7_emit_rs_state(struct anv_pipeline *pipeline, > /* uint32_t > LineEndCapAntialiasingRegionWidth; */ > .ScissorRectangleEnable = !(extra && > extra->use_rectlist), > > - /* uint32_t > MultisampleRasterizationMode; */ > + .MultisampleRasterizationMode = samples > 1 ? > MSDISPMODE_PERPIXEL : MSDISPMODE_PERSAMPLE, > This should match MultisampleRasterizationMode not MultisampleDispatchMode in WM_STATE. > /* bool LastPixelEnable; */ > > .TriangleStripListProvokingVertexSelect = 0, > @@ -108,7 +114,8 @@ genX(graphics_pipeline_create)( > emit_vertex_input(pipeline, pCreateInfo->pVertexInputState, extra); > > assert(pCreateInfo->pRasterizationState); > - gen7_emit_rs_state(pipeline, pCreateInfo->pRasterizationState, extra); > + gen7_emit_rs_state(pipeline, pCreateInfo->pRasterizationState, > + pCreateInfo->pMultisampleState, extra); > > emit_ds_state(pipeline, pCreateInfo->pDepthStencilState, pass, > subpass); > > @@ -121,11 +128,8 @@ genX(graphics_pipeline_create)( > pCreateInfo->pRasterizationState, extra); > emit_3dstate_streamout(pipeline, pCreateInfo->pRasterizationState); > > - if (pCreateInfo->pMultisampleState && > - pCreateInfo->pMultisampleState->rasterizationSamples > 1) > - anv_finishme("VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_C > REATE_INFO"); > We should keep this finishme until we fix all the multisample cts tests. > - > - uint32_t samples = 1; > + uint32_t samples = pCreateInfo->pMultisampleState ? > + pCreateInfo->pMultisampleState->rasterizationSamples > : 1; > uint32_t log2_samples = __builtin_ffs(samples) - 1; > > anv_batch_emit(&pipeline->batch, GENX(3DSTATE_MULTISAMPLE), ms) { > @@ -233,6 +237,7 @@ genX(graphics_pipeline_create)( > wm.LineAntialiasingRegionWidth = 1; /* 1.0 pixels */ > wm.EarlyDepthStencilControl = EDSC_NORMAL; > wm.PointRasterizationRule = RASTRULE_UPPER_RIGHT; > + wm.MultisampleDispatchMode = MSDISPMODE_PERSAMPLE; > Dispatch mode doesn't matter when there is no fragment shader. Drop this change. > } > > /* Even if no fragments are ever dispatched, the hardware hangs if > we > @@ -312,6 +317,11 @@ genX(graphics_pipeline_create)( > } > > wm.BarycentricInterpolationMode = > wm_prog_data->barycentric_interp_modes; > + > + wm.MultisampleRasterizationMode = samples > 1 ? > + MSRASTMODE_ON_PATTERN : > MSRASTMODE_OFF_PIXEL; > + wm.MultisampleDispatchMode = > wm_prog_data->persample_dispatch ? > + MSDISPMODE_PERSAMPLE : > MSDISPMODE_PERPIXEL; > } > } > > -- > 2.8.1 > >
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
