On Monday, January 9, 2017 8:26:34 AM PST Jason Ekstrand wrote: > On Sun, Jan 8, 2017 at 9:26 PM, Kenneth Graunke <kenn...@whitecape.org> > wrote: > > > Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> > > --- > > src/intel/vulkan/anv_pipeline.c | 9 +++++++-- > > 1 file changed, 7 insertions(+), 2 deletions(-) > > > > diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_ > > pipeline.c > > index 17491e34fc0..b34759a5406 100644 > > --- a/src/intel/vulkan/anv_pipeline.c > > +++ b/src/intel/vulkan/anv_pipeline.c > > @@ -212,7 +212,6 @@ static const uint32_t vk_to_gen_primitive_type[] = { > > [VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY] = > > _3DPRIM_LINESTRIP_ADJ, > > [VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY] = > > _3DPRIM_TRILIST_ADJ, > > [VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY] = > > _3DPRIM_TRISTRIP_ADJ, > > -/* [VK_PRIMITIVE_TOPOLOGY_PATCH_LIST] = > > _3DPRIM_PATCHLIST_1 */ > > }; > > > > static void > > @@ -1086,8 +1085,14 @@ anv_pipeline_init(struct anv_pipeline *pipeline, > > > > const VkPipelineInputAssemblyStateCreateInfo *ia_info = > > pCreateInfo->pInputAssemblyState; > > + const VkPipelineTessellationStateCreateInfo *tess_info = > > + pCreateInfo->pTessellationState; > > pipeline->primitive_restart = ia_info->primitiveRestartEnable; > > - pipeline->topology = vk_to_gen_primitive_type[ia_info->topology]; > > + > > + if (tess_info) > > + pipeline->topology = _3DPRIM_PATCHLIST(tess_info-> > > patchControlPoints); > > > > I don't think this is what you want. I think you want to key it off of > whether or not you have a tessellation shader (there's a has_stage helper > for this). They can provide a pTessellationState without a tessellation > shader.
Hmm. I read: "pTessellationState is a pointer to an instance of the VkPipelineTessellationStateCreateInfo structure, or NULL if the pipeline does not include a tessellation control shader stage and tessellation evaluation shader stage." and I suppose I interpreted it as "it'll be NULL unless there's both a TCS and TES". It'd certainly be weird to pass one. But it's probably safer to do anv_pipeline_has_stage(), so I'm happy to do that.
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev