OSDN Git Service

Vulkan: Very rough first implementation of compute shaders
authorBen Clayton <bclayton@google.com>
Fri, 8 Mar 2019 12:02:05 +0000 (12:02 +0000)
committerBen Clayton <bclayton@google.com>
Tue, 12 Mar 2019 10:04:08 +0000 (10:04 +0000)
commitf2be26a1fa60641aac6859a0f35b004876493542
tree301c7fdce56283733934e46aca40b3b220337cd1
parent3d599bebc81f550d1f915124b333971f4ea2f992
Vulkan: Very rough first implementation of compute shaders

This is by no means finished:
* ComputeProgram holds the codegen and the invoke logic. ComputeProgram::run() should probably be moved somewhere else (maybe Renderer?).
* ComputeProgram::run() is currently fully single threaded.
* The compute routines are currently not cached.

With that said, this is enough to start passing a whole bunch of dEQP compute tests.

Test: *.compute.*
Bug: b/126871859
Change-Id: Ic6a76826b2fec0d34d54e0bed564b360ea0610c0
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26551
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
build/Visual Studio 15 2017 Win64/libvk_swiftshader.vcxproj
build/Visual Studio 15 2017 Win64/libvk_swiftshader.vcxproj.filters
src/Pipeline/ComputeProgram.cpp [new file with mode: 0644]
src/Pipeline/ComputeProgram.hpp [new file with mode: 0644]
src/Vulkan/VkCommandBuffer.cpp
src/Vulkan/VkPipeline.cpp
src/Vulkan/VkPipeline.hpp
src/Vulkan/libVulkan.cpp
src/Vulkan/vulkan.vcxproj
src/Vulkan/vulkan.vcxproj.filters