Chromium Code Reviews| Index: src/gpu/vk/GrVkResourceProvider.cpp |
| diff --git a/src/gpu/vk/GrVkResourceProvider.cpp b/src/gpu/vk/GrVkResourceProvider.cpp |
| index f4cfa27224d16e908244c72015698373f9e981f2..0b940f5aeb5b3b98d49d295d9fe5bc32b897c982 100644 |
| --- a/src/gpu/vk/GrVkResourceProvider.cpp |
| +++ b/src/gpu/vk/GrVkResourceProvider.cpp |
| @@ -17,13 +17,31 @@ SkTDynamicHash<GrVkResource, uint32_t> GrVkResource::fTrace; |
| SkRandom GrVkResource::fRandom; |
| #endif |
| -GrVkResourceProvider::GrVkResourceProvider(GrVkGpu* gpu) : fGpu(gpu) { |
| +GrVkResourceProvider::GrVkResourceProvider(GrVkGpu* gpu) : fGpu(gpu) |
| + , fPipelineCache(VK_NULL_HANDLE) { |
| } |
| GrVkResourceProvider::~GrVkResourceProvider() { |
| SkASSERT(0 == fSimpleRenderPasses.count()); |
| } |
| +void GrVkResourceProvider::init() { |
| + VkPipelineCacheCreateInfo createInfo; |
| + memset(&createInfo, 0, sizeof(VkPipelineCacheCreateInfo)); |
| + createInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO; |
| + createInfo.pNext = nullptr; |
| + createInfo.flags = 0; |
| + createInfo.initialDataSize = 0; |
| + createInfo.pInitialData = nullptr; |
| + VkResult result = GR_VK_CALL(fGpu->vkInterface(), |
| + CreatePipelineCache(fGpu->device(), &createInfo, nullptr, |
| + &fPipelineCache)); |
| + SkASSERT(VK_SUCCESS == result); |
| + if (VK_SUCCESS != result) { |
| + fPipelineCache = VK_NULL_HANDLE; |
| + } |
| +} |
| + |
| GrVkPipeline* GrVkResourceProvider::createPipeline(const GrPipeline& pipeline, |
| const GrPrimitiveProcessor& primProc, |
| VkPipelineShaderStageCreateInfo* shaderStageInfo, |
| @@ -33,7 +51,7 @@ GrVkPipeline* GrVkResourceProvider::createPipeline(const GrPipeline& pipeline, |
| VkPipelineLayout layout) { |
| return GrVkPipeline::Create(fGpu, pipeline, primProc, shaderStageInfo, shaderStageCount, |
| - primitiveType, renderPass, layout); |
| + primitiveType, renderPass, layout, fPipelineCache); |
| } |
| @@ -115,4 +133,4 @@ void GrVkResourceProvider::abandonResources() { |
| #ifdef SK_TRACE_VK_RESOURCES |
| SkASSERT(0 == GrVkResource::fTrace.count()); |
| #endif |
| -} |
| +} |
|
egdaniel
2016/03/01 18:47:46
the fact that this line is highlighted worries me.
jvanverth1
2016/03/01 18:51:40
git cl was complaining that the file had a missing
|