running Vulkan applications. may need to be subdivided into other milestones.
to be broken down into suitable milestones Subgoals of Vulkan driver (not in any particular order): getting basic compute shader to compile and run on x86. getting control barriers to work on x86 getting basic graphics shaders (vertex and fragment only) to compile and run on x86 adding support for required texture formats on x86 adding support for rendering to DRM surfaces on x86 supporting extensions required for zink (mesa opengl to vulkan translator) on x86 running some vulkan games on x86 running some opengl games on x86 using zink passing vulkan test suite on x86 adding support for running shaders on rv64gc (without SimpleV) passing vulkan test suite on rv64gc implementing SimpleV support in llvm working on upstreaming llvm patches getting basic compute shaders to compile and run on SimpleV getting basic graphics shaders to compile and run on SimpleV running vulkan games on SimpleV passing vulkan test suite on SimpleV implementing support for additional custom instructions passing test suite when using additional custom instructions work on inclusion of vulkan driver in debian on x86 and riscv work on inclusion of vulkan driver in fedora on x86 and riscv completed tasks: getting support for rv64gc on linux upstream in rust (completed independently by rust community)
edited so each item is on a single line
already working: * Implementing enough of the Vulkan API to successfully execute vulkaninfo, including implementing (not completely tested yet) X11 interface code. * Implementing the SPIR-V parser generator * Implementing enough of the Vulkan API to pass the first 15 or so tests (all the ones before actual rendering is required) in the Vulkan Conformance Test Suite (in the process rediscovering a bug in debian's version of libvulkan1.so) * Implementing the SPIR-V structure parser (discovering a bug in spirv-opt https://github.com/KhronosGroup/SPIRV-Tools/issues/2433) * Implementing enough of the Vulkan API to get to the call of the shader compiler in https://github.com/programmerjake/vulkan_minimal_compute * Integrating LLVM's build process into Cargo
Milestones completed since Feb 1: (In reply to Luke Kenneth Casson Leighton from comment #3) > already working: > > * Implementing the SPIR-V structure parser (discovering a bug in spirv-opt > https://github.com/KhronosGroup/SPIRV-Tools/issues/2433)
TODO for zink, cross-ref here https://www.collabora.com/news-and-blog/blog/2018/10/31/introducing-zink-opengl-implementation-vulkan/
hi jacob, assigning this one to you, reminder of breakdown of tasks, NLnet will be temporarily assigning EUR $1000 to each plus $3000 on completion of all.
The current plan for the shader compiler is to split it into several phases: * translating SPIR-V into internal IR (bug #161) * shader linking (matching up interfaces between different stages) * optimizations * vectorize IR * optimizations * control barrier lowering * optimizations * translating internal IR into backend IR (llvm or otherwise) * backend optimizations * backend generates machine code