From: Jason Ekstrand Date: Fri, 11 Dec 2015 21:25:15 +0000 (-0800) Subject: gen8/pipeline: Support vec4 vertex shaders X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d12ea21dd5ea5bf00b7aecd98ec1f10f79f26c3a;p=mesa.git gen8/pipeline: Support vec4 vertex shaders In order to actually get them, you need INTEL_DEBUG=vec4. --- diff --git a/src/vulkan/gen8_pipeline.c b/src/vulkan/gen8_pipeline.c index 85b1e15a0f6..07a43bdbe55 100644 --- a/src/vulkan/gen8_pipeline.c +++ b/src/vulkan/gen8_pipeline.c @@ -484,7 +484,10 @@ genX(graphics_pipeline_create)( offset = 1; length = (vue_prog_data->vue_map.num_slots + 1) / 2 - offset; - if (pipeline->vs_simd8 == NO_KERNEL || (extra && extra->disable_vs)) + uint32_t vs_start = pipeline->vs_simd8 != NO_KERNEL ? pipeline->vs_simd8 : + pipeline->vs_vec4; + + if (vs_start == NO_KERNEL || (extra && extra->disable_vs)) anv_batch_emit(&pipeline->batch, GENX(3DSTATE_VS), .FunctionEnable = false, /* Even if VS is disabled, SBE still gets the amount of @@ -493,7 +496,7 @@ genX(graphics_pipeline_create)( .VertexURBEntryOutputLength = length); else anv_batch_emit(&pipeline->batch, GENX(3DSTATE_VS), - .KernelStartPointer = pipeline->vs_simd8, + .KernelStartPointer = vs_start, .SingleVertexDispatch = Multiple, .VectorMaskEnable = Dmask, .SamplerCount = 0, @@ -515,7 +518,7 @@ genX(graphics_pipeline_create)( .MaximumNumberofThreads = device->info.max_vs_threads - 1, .StatisticsEnable = false, - .SIMD8DispatchEnable = true, + .SIMD8DispatchEnable = pipeline->vs_simd8 != NO_KERNEL, .VertexCacheDisable = false, .FunctionEnable = true,