If you are interested in implementing an upscaling technique, feel free to pick
out out from the
list of upscaler
issues,
and assign yourself.
Alternatively, if you'd like to implement a technique that isn't listed,
simply create a new issue, tag it with the upscaler
label,
and add some supporting documentation to the issue (paper, website, Git repo,
etc).
You'll almost certainly have to add a new compute shader for your technique.
- Add the HLSL file to the
src/app/shaders/
folder. - Update the
src/app/shaders/build_shaders.sh
script (though you aren't obliged to use it) - Update
src/app/CMakeLists.txt
with the new shader. - Compile the shader!
- Make sure the compiled SPIR-V binary is added to
assets/shaders/
- If you run CMake with
-DBUILD_SHADERS=TRUE
, this will automatically build the shaders you hooked throughsrc/app/CMakeLists.txt
- Make sure the compiled SPIR-V binary is added to
Current verified DXC commit is 9c89a1c2.
- Find how shaders are compiled into pipelines by looking at
VkexInfoApp::SetupShaders
- Add a toggle to the GUI via
VkexInfoApp::DrawAppInfoGUI
- Execute your pipeline by adding it to
VkexInfoApp::UpscaleInternalToTarget
- Allocate + update constant buffers and update descriptor sets
Add a new Markdown file to the docs/
folder, and add a link to
docs/TECHNIQUES.md.
In your new Markdown file, describe the technique you implemented with:
- Supporting documentation - Papers, webpages, Git repos, etcs
- Performance information
- Diagrams
- Implementation details/pointers/code samples
There is plenty of general infrastructure work that needs to be done on the project!
- Enhancements - These are issues that would provide project enhancements that are not necessarily tied directly to upscaling.
- Cleanup - Quality-of-life changes needed to improve the project
There might be a scenario where you want to assign yourself an issue, only to discover that someone is already assigned! Please reach out to the assignee to see if you can share the work, or take the issue. Perhaps the technique has variants, and we could support multiple implementations.