[Mesa-dev] [PATCH 4/5] anv/pipeline: Make a copy of VkPipelineDepthStencilStateCreateinfo
Nanley Chery
nanleychery at gmail.com
Thu Feb 9 18:53:19 UTC 2017
On Wed, Feb 01, 2017 at 05:43:54PM -0800, Jason Ekstrand wrote:
> ---
> src/intel/vulkan/genX_pipeline.c | 34 ++++++++++++++++++----------------
> 1 file changed, 18 insertions(+), 16 deletions(-)
This patch is
Reviewed-by: Nanley Chery <nanley.g.chery at intel.com>
>
> diff --git a/src/intel/vulkan/genX_pipeline.c b/src/intel/vulkan/genX_pipeline.c
> index a7b294f..f6940d2 100644
> --- a/src/intel/vulkan/genX_pipeline.c
> +++ b/src/intel/vulkan/genX_pipeline.c
> @@ -636,7 +636,7 @@ static const uint32_t vk_to_gen_stencil_op[] = {
>
> static void
> emit_ds_state(struct anv_pipeline *pipeline,
> - const VkPipelineDepthStencilStateCreateInfo *info,
> + const VkPipelineDepthStencilStateCreateInfo *pCreateInfo,
> const struct anv_render_pass *pass,
> const struct anv_subpass *subpass)
> {
> @@ -648,7 +648,7 @@ emit_ds_state(struct anv_pipeline *pipeline,
> # define depth_stencil_dw pipeline->gen9.wm_depth_stencil
> #endif
>
> - if (info == NULL) {
> + if (pCreateInfo == NULL) {
> /* We're going to OR this together with the dynamic state. We need
> * to make sure it's initialized to something useful.
> */
> @@ -656,29 +656,31 @@ emit_ds_state(struct anv_pipeline *pipeline,
> return;
> }
>
> + VkPipelineDepthStencilStateCreateInfo info = *pCreateInfo;
> +
> /* VkBool32 depthBoundsTestEnable; // optional (depth_bounds_test) */
>
> - pipeline->writes_stencil = info->stencilTestEnable;
> + pipeline->writes_stencil = info.stencilTestEnable;
>
> #if GEN_GEN <= 7
> struct GENX(DEPTH_STENCIL_STATE) depth_stencil = {
> #else
> struct GENX(3DSTATE_WM_DEPTH_STENCIL) depth_stencil = {
> #endif
> - .DepthTestEnable = info->depthTestEnable,
> - .DepthBufferWriteEnable = info->depthWriteEnable,
> - .DepthTestFunction = vk_to_gen_compare_op[info->depthCompareOp],
> + .DepthTestEnable = info.depthTestEnable,
> + .DepthBufferWriteEnable = info.depthWriteEnable,
> + .DepthTestFunction = vk_to_gen_compare_op[info.depthCompareOp],
> .DoubleSidedStencilEnable = true,
>
> - .StencilTestEnable = info->stencilTestEnable,
> - .StencilFailOp = vk_to_gen_stencil_op[info->front.failOp],
> - .StencilPassDepthPassOp = vk_to_gen_stencil_op[info->front.passOp],
> - .StencilPassDepthFailOp = vk_to_gen_stencil_op[info->front.depthFailOp],
> - .StencilTestFunction = vk_to_gen_compare_op[info->front.compareOp],
> - .BackfaceStencilFailOp = vk_to_gen_stencil_op[info->back.failOp],
> - .BackfaceStencilPassDepthPassOp = vk_to_gen_stencil_op[info->back.passOp],
> - .BackfaceStencilPassDepthFailOp =vk_to_gen_stencil_op[info->back.depthFailOp],
> - .BackfaceStencilTestFunction = vk_to_gen_compare_op[info->back.compareOp],
> + .StencilTestEnable = info.stencilTestEnable,
> + .StencilFailOp = vk_to_gen_stencil_op[info.front.failOp],
> + .StencilPassDepthPassOp = vk_to_gen_stencil_op[info.front.passOp],
> + .StencilPassDepthFailOp = vk_to_gen_stencil_op[info.front.depthFailOp],
> + .StencilTestFunction = vk_to_gen_compare_op[info.front.compareOp],
> + .BackfaceStencilFailOp = vk_to_gen_stencil_op[info.back.failOp],
> + .BackfaceStencilPassDepthPassOp = vk_to_gen_stencil_op[info.back.passOp],
> + .BackfaceStencilPassDepthFailOp =vk_to_gen_stencil_op[info.back.depthFailOp],
> + .BackfaceStencilTestFunction = vk_to_gen_compare_op[info.back.compareOp],
> };
>
> VkImageAspectFlags aspects = 0;
> @@ -707,7 +709,7 @@ emit_ds_state(struct anv_pipeline *pipeline,
> * "If Depth_Test_Enable = 1 AND Depth_Test_func = EQUAL, the
> * Depth_Write_Enable must be set to 0."
> */
> - if (info->depthTestEnable && info->depthCompareOp == VK_COMPARE_OP_EQUAL)
> + if (info.depthTestEnable && info.depthCompareOp == VK_COMPARE_OP_EQUAL)
> depth_stencil.DepthBufferWriteEnable = false;
>
> pipeline->writes_depth = depth_stencil.DepthBufferWriteEnable;
> --
> 2.5.0.400.gff86faf
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list