summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2016-10-07 21:55:34 -0700
committerJason Ekstrand <[email protected]>2016-10-14 15:40:39 -0700
commit8e1a8dd47e1f6fb1849b149a42207b16ffd9c10a (patch)
tree1dd367f3a880d9f359337bc5e73e001fa5937791
parent7df46b7533a0ff257dbdb1b844ce0f4fc1c266ac (diff)
anv: Move Create*Pipelines into genX_cmd_buffer.c
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]>
-rw-r--r--src/intel/vulkan/anv_genX.h7
-rw-r--r--src/intel/vulkan/anv_pipeline.c106
-rw-r--r--src/intel/vulkan/anv_private.h7
-rw-r--r--src/intel/vulkan/genX_pipeline.c63
4 files changed, 61 insertions, 122 deletions
diff --git a/src/intel/vulkan/anv_genX.h b/src/intel/vulkan/anv_genX.h
index 1dc4af43c16..27c55b9e684 100644
--- a/src/intel/vulkan/anv_genX.h
+++ b/src/intel/vulkan/anv_genX.h
@@ -73,12 +73,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 386f5a1cea0..c185e8c4f65 100644
--- a/src/intel/vulkan/anv_pipeline.c
+++ b/src/intel/vulkan/anv_pipeline.c
@@ -1118,109 +1118,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 1f20ecba97c..7c5dc562451 100644
--- a/src/intel/vulkan/anv_private.h
+++ b/src/intel/vulkan/anv_private.h
@@ -1525,13 +1525,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 dce7c6a685f..2a4dd8efe2e 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;
+}