-
Notifications
You must be signed in to change notification settings - Fork 722
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add SPIR-V codegen #216
Comments
Very nice effort.. |
@oscarbg Well if/when I finish my SPIRV backend for LLVM it should be possible to go That would also require "transplanting" the DX stuff from this repo into my LLVM (or trunk when I get it into upstream). |
@thewilsonator I thought that Khronos already provided a bidirectional SPIRV<->LLVM translator but seems only has OpenCL SPIRV support.. |
@oscarbg yes the Khronos provided bidirectional SPIRV<->LLVM translator only supports OpenCL. My efforts are to make adding Vulkan support easier as part of moving to a TableGen architecture. I have no current plans to add Vulkan support, but if, as I hope, I get sponsored to work on this then I may, if there is enough demand from the D community, but my priority is still OpenCL support. Of course if anyone wants to take the reigns I am more than happy to help them learn the ropes once I get the codebase in to a somewhat respectable state. My work is indeed destined (hopefully) for LLVM master as
About reverse translation from DXIL to LLVM IR: I assumed that MS would already have that builtin, because (at least for Khronos' SPIRV-LLVM) the whole point of reverse translation is so that hardware vendors that already have an LLVM backend can change a few intrinsics and the target and then feed it through their standard backend pipeline. |
thanks for details @thewilsonator! |
I wouldn't hold your breath. I won't start sponsored work until halfway though this year and my priority is compute. |
We consider the SPIR-V CodeGen as mature-ish right now. You can find a summary of HLSL and Vulkan feature coverages in the Shader Toolchain: HLSL for Vulkan slides I presented on April 30th Montreal Vulkan Developer's Day. I'll close this. But yes, we'll continue improving SPIR-V CodeGen and adding new features for sure. ;-P |
Clang produces a warning when a method that overrides another is not marked with the override keyword. Adding the keyword has no effect on overridden functions, but it is good practice to mark all methods intended to override as such because if they fail to do so, the keyword will produce an error. Fixes 78 Clang warnings. Contributes to google#206
Clang produces a warning when a method that overrides another is not marked with the override keyword. Adding the keyword has no effect on overridden functions, but it is good practice to mark all methods intended to override as such because if they fail to do so, the keyword will produce an error. Fixes 78 Clang warnings. Contributes to google#206
We are Google engineers working on Vulkan/SPIR-V developer tools. We would like to extend DirectXShaderCompiler so it can compile HLSL into SPIR-V for Vulkan.
HLSL is the prevalent shading language nowadays and DirectXShaderCompiler is the reference compiler for HLSL. Therefore we believe this effort will benefit the general graphics ecosystem.
The general approach is to directly translate frontend AST into SPIR-V words. Main components involved include:
This does not reflect the order of implementation. Currently we have the basic SPIR-V infrastructure (SPIR-V builder classes,
ASTFrontendAction
, and command line integration) ready and will upstream them soon.For more details about the logistics and design choices, please see
docs/SPIR-V.rst
.cc @dneto0 @ehsannas @jfroy
The text was updated successfully, but these errors were encountered: