[graphite] Patch up some Vulkan shader issues
* The validator is complaining when we tear down the device that there
are shader modules still around, so clean up the shader modules that
don't get used yet to make a pipeline.
* At least one shader is failing to compile and we hadn't set up an
errorHandler.
Bug: b/277583609
Change-Id: I4c9f19aaed64c6ce596a127d0cfe5935efda67a0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/702840
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Nicolette Prevost <nicolettep@google.com>
diff --git a/src/gpu/graphite/vk/VulkanCaps.cpp b/src/gpu/graphite/vk/VulkanCaps.cpp
index 0369928..552eacc 100644
--- a/src/gpu/graphite/vk/VulkanCaps.cpp
+++ b/src/gpu/graphite/vk/VulkanCaps.cpp
@@ -89,6 +89,8 @@
if (!contextOptions.fDisableDriverCorrectnessWorkarounds) {
this->applyDriverCorrectnessWorkarounds(physDevProperties);
}
+
+ this->finishInitialization(contextOptions);
}
void VulkanCaps::applyDriverCorrectnessWorkarounds(const VkPhysicalDeviceProperties& properties) {
diff --git a/src/gpu/graphite/vk/VulkanResourceProvider.cpp b/src/gpu/graphite/vk/VulkanResourceProvider.cpp
index 006d77c..ce85880 100644
--- a/src/gpu/graphite/vk/VulkanResourceProvider.cpp
+++ b/src/gpu/graphite/vk/VulkanResourceProvider.cpp
@@ -169,6 +169,13 @@
return {};
}
+ // for now, clean up shader modules
+ VULKAN_CALL(this->vulkanSharedContext()->interface(),
+ DestroyShaderModule(this->vulkanSharedContext()->device(), vsModule, nullptr));
+ VULKAN_CALL(this->vulkanSharedContext()->interface(),
+ DestroyShaderModule(this->vulkanSharedContext()->device(), fsModule, nullptr));
+
+
// TODO: Generate depth-stencil state, blend info
return VulkanGraphicsPipeline::Make(this->vulkanSharedContext());
}