On Fri, Aug 5, 2016 at 4:38 PM, Jason Ekstrand <[email protected]> wrote:
> > > On Fri, Aug 5, 2016 at 4:29 PM, Anuj Phogat <[email protected]> wrote: > >> >> >> 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. >> > > You need the vulkan-cts-1.0-dev branch > That explains. Thanks. > > >> >> >>> 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 >> >> >
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
