On Oct 8, 2016 10:36 AM, "Michael Schellenberger Costa" < [email protected]> wrote: > > Hi Jason, > > > is there a reason that the first counter "i" is declared outside of the loop?
Not really. I just moved the code that was there before. I have no idea why it was written that way. > > --Michael > > > > On 08.10.2016 18:18, Jason Ekstrand wrote: >> >> Now that we don't have meta, we have no need for a gen-agnostic pipeline >> create path. We can, instead, just generate one Create*Pipelines function >> per gen and be done with it. >> >> Signed-off-by: Jason Ekstrand <[email protected]> >> --- >> src/intel/vulkan/anv_genX.h | 7 --- >> src/intel/vulkan/anv_pipeline.c | 106 --------------------------------------- >> src/intel/vulkan/anv_private.h | 7 --- >> src/intel/vulkan/genX_pipeline.c | 63 ++++++++++++++++++++++- >> 4 files changed, 61 insertions(+), 122 deletions(-) >> >> diff --git a/src/intel/vulkan/anv_genX.h b/src/intel/vulkan/anv_genX.h >> index b862c06..e6cef53 100644 >> --- a/src/intel/vulkan/anv_genX.h >> +++ b/src/intel/vulkan/anv_genX.h >> @@ -65,12 +65,5 @@ genX(graphics_pipeline_create)(VkDevice _device, >> const VkAllocationCallbacks *alloc, >> VkPipeline *pPipeline); >> -VkResult >> -genX(compute_pipeline_create)(VkDevice _device, >> - struct anv_pipeline_cache *cache, >> - const VkComputePipelineCreateInfo *pCreateInfo, >> - const VkAllocationCallbacks *alloc, >> - VkPipeline *pPipeline); >> - >> void genX(blorp_exec)(struct blorp_batch *batch, >> const struct blorp_params *params); >> diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c >> index 6a364ff..bd1bf38 100644 >> --- a/src/intel/vulkan/anv_pipeline.c >> +++ b/src/intel/vulkan/anv_pipeline.c >> @@ -1116,109 +1116,3 @@ compile_fail: >> return result; >> } >> - >> -VkResult >> -anv_graphics_pipeline_create( >> - VkDevice _device, >> - VkPipelineCache _cache, >> - const VkGraphicsPipelineCreateInfo *pCreateInfo, >> - const VkAllocationCallbacks *pAllocator, >> - VkPipeline *pPipeline) >> -{ >> - ANV_FROM_HANDLE(anv_device, device, _device); >> - ANV_FROM_HANDLE(anv_pipeline_cache, cache, _cache); >> - >> - switch (device->info.gen) { >> - case 7: >> - if (device->info.is_haswell) >> - return gen75_graphics_pipeline_create(_device, cache, pCreateInfo, pAllocator, pPipeline); >> - else >> - return gen7_graphics_pipeline_create(_device, cache, pCreateInfo, pAllocator, pPipeline); >> - case 8: >> - return gen8_graphics_pipeline_create(_device, cache, pCreateInfo, pAllocator, pPipeline); >> - case 9: >> - return gen9_graphics_pipeline_create(_device, cache, pCreateInfo, pAllocator, pPipeline); >> - default: >> - unreachable("unsupported gen\n"); >> - } >> -} >> - >> -VkResult anv_CreateGraphicsPipelines( >> - VkDevice _device, >> - VkPipelineCache pipelineCache, >> - uint32_t count, >> - const VkGraphicsPipelineCreateInfo* pCreateInfos, >> - const VkAllocationCallbacks* pAllocator, >> - VkPipeline* pPipelines) >> -{ >> - VkResult result = VK_SUCCESS; >> - >> - unsigned i = 0; >> - for (; i < count; i++) { >> - result = anv_graphics_pipeline_create(_device, >> - pipelineCache, >> - &pCreateInfos[i], >> - pAllocator, &pPipelines[i]); >> - if (result != VK_SUCCESS) { >> - for (unsigned j = 0; j < i; j++) { >> - anv_DestroyPipeline(_device, pPipelines[j], pAllocator); >> - } >> - >> - return result; >> - } >> - } >> - >> - return VK_SUCCESS; >> -} >> - >> -static VkResult anv_compute_pipeline_create( >> - VkDevice _device, >> - VkPipelineCache _cache, >> - const VkComputePipelineCreateInfo* pCreateInfo, >> - const VkAllocationCallbacks* pAllocator, >> - VkPipeline* pPipeline) >> -{ >> - ANV_FROM_HANDLE(anv_device, device, _device); >> - ANV_FROM_HANDLE(anv_pipeline_cache, cache, _cache); >> - >> - switch (device->info.gen) { >> - case 7: >> - if (device->info.is_haswell) >> - return gen75_compute_pipeline_create(_device, cache, pCreateInfo, pAllocator, pPipeline); >> - else >> - return gen7_compute_pipeline_create(_device, cache, pCreateInfo, pAllocator, pPipeline); >> - case 8: >> - return gen8_compute_pipeline_create(_device, cache, pCreateInfo, pAllocator, pPipeline); >> - case 9: >> - return gen9_compute_pipeline_create(_device, cache, pCreateInfo, pAllocator, pPipeline); >> - default: >> - unreachable("unsupported gen\n"); >> - } >> -} >> - >> -VkResult anv_CreateComputePipelines( >> - VkDevice _device, >> - VkPipelineCache pipelineCache, >> - uint32_t count, >> - const VkComputePipelineCreateInfo* pCreateInfos, >> - const VkAllocationCallbacks* pAllocator, >> - VkPipeline* pPipelines) >> -{ >> - VkResult result = VK_SUCCESS; >> - >> - unsigned i = 0; >> - for (; i < count; i++) { >> - result = anv_compute_pipeline_create(_device, pipelineCache, >> - &pCreateInfos[i], >> - pAllocator, &pPipelines[i]); >> - if (result != VK_SUCCESS) { >> - for (unsigned j = 0; j < i; j++) { >> - anv_DestroyPipeline(_device, pPipelines[j], pAllocator); >> - } >> - >> - return result; >> - } >> - } >> - >> - return VK_SUCCESS; >> -} >> diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h >> index 3545acd..761c7f3 100644 >> --- a/src/intel/vulkan/anv_private.h >> +++ b/src/intel/vulkan/anv_private.h >> @@ -1524,13 +1524,6 @@ anv_pipeline_compile_cs(struct anv_pipeline *pipeline, >> const char *entrypoint, >> const VkSpecializationInfo *spec_info); >> -VkResult >> -anv_graphics_pipeline_create(VkDevice device, >> - VkPipelineCache cache, >> - const VkGraphicsPipelineCreateInfo *pCreateInfo, >> - const VkAllocationCallbacks *alloc, >> - VkPipeline *pPipeline); >> - >> struct anv_format { >> enum isl_format isl_format:16; >> struct isl_swizzle swizzle; >> diff --git a/src/intel/vulkan/genX_pipeline.c b/src/intel/vulkan/genX_pipeline.c >> index dce7c6a..2a4dd8e 100644 >> --- a/src/intel/vulkan/genX_pipeline.c >> +++ b/src/intel/vulkan/genX_pipeline.c >> @@ -26,8 +26,8 @@ >> #include "genxml/gen_macros.h" >> #include "genxml/genX_pack.h" >> -VkResult >> -genX(compute_pipeline_create)( >> +static VkResult >> +compute_pipeline_create( >> VkDevice _device, >> struct anv_pipeline_cache * cache, >> const VkComputePipelineCreateInfo* pCreateInfo, >> @@ -133,3 +133,62 @@ genX(compute_pipeline_create)( >> return VK_SUCCESS; >> } >> + >> +VkResult genX(CreateGraphicsPipelines)( >> + VkDevice _device, >> + VkPipelineCache pipelineCache, >> + uint32_t count, >> + const VkGraphicsPipelineCreateInfo* pCreateInfos, >> + const VkAllocationCallbacks* pAllocator, >> + VkPipeline* pPipelines) >> +{ >> + ANV_FROM_HANDLE(anv_pipeline_cache, pipeline_cache, pipelineCache); >> + >> + VkResult result = VK_SUCCESS; >> + >> + unsigned i = 0; >> + for (; i < count; i++) { >> + result = genX(graphics_pipeline_create)(_device, >> + pipeline_cache, >> + &pCreateInfos[i], >> + pAllocator, &pPipelines[i]); >> + if (result != VK_SUCCESS) { >> + for (unsigned j = 0; j < i; j++) { >> + anv_DestroyPipeline(_device, pPipelines[j], pAllocator); >> + } >> + >> + return result; >> + } >> + } >> + >> + return VK_SUCCESS; >> +} >> + >> +VkResult genX(CreateComputePipelines)( >> + VkDevice _device, >> + VkPipelineCache pipelineCache, >> + uint32_t count, >> + const VkComputePipelineCreateInfo* pCreateInfos, >> + const VkAllocationCallbacks* pAllocator, >> + VkPipeline* pPipelines) >> +{ >> + ANV_FROM_HANDLE(anv_pipeline_cache, pipeline_cache, pipelineCache); >> + >> + VkResult result = VK_SUCCESS; >> + >> + unsigned i = 0; >> + for (; i < count; i++) { >> + result = compute_pipeline_create(_device, pipeline_cache, >> + &pCreateInfos[i], >> + pAllocator, &pPipelines[i]); >> + if (result != VK_SUCCESS) { >> + for (unsigned j = 0; j < i; j++) { >> + anv_DestroyPipeline(_device, pPipelines[j], pAllocator); >> + } >> + >> + return result; >> + } >> + } >> + >> + return VK_SUCCESS; >> +} > >
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
