From ecfab13021d7bb91fb5d59c9f279341e287453c7 Mon Sep 17 00:00:00 2001 From: Jacob Lifshay Date: Mon, 28 Aug 2017 05:42:19 -0700 Subject: [PATCH] add todo.md --- docs/todo.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 docs/todo.md diff --git a/docs/todo.md b/docs/todo.md new file mode 100644 index 0000000..438a390 --- /dev/null +++ b/docs/todo.md @@ -0,0 +1,30 @@ +# TODO list + +This is a partial TODO list, mostly because I can't remember the full list of things left to do. + +Partially implemented: +- SPIR-V to LLVM IR translation code. Need to implement all required instructions. `spirv_to_llvm/` +- Graphics pipeline + +Temporary implementation that needs to be rewritten: +- Rasterization code, need to change to use a tiled rasterizer with binning. `pipeline/pipeline.cpp` +- Shader input/output variable layout. Need to implement layout to a array of 128-bit chunks, and matching variables based on those chunks. `spirv_to_llvm/` +- Image memory handling -- needs to be changed to use `VkDeviceMemory` + +Implementation that needs to be improved: +- LLVM optimization pass ordering. `pipeline/pipeline.cpp` + +Not implemented: +- control-barrier lowering pass for LLVM. +- whole-function vectorization pass for LLVM. +- depth buffering +- non-builtin shader input variables +- multithreading +- multisampling +- command buffers +- actual Vulkan ICD interface -- can just wrap the internal functions that already implement the guts for part of the interface +- `VkBuffer` +- SPIR-V image variables, samplers, and other SPIR-V opaque types. +- indexed drawing -- should implement a vertex cache of some sort +- shader compile cache +- Vulkan WSI -- 2.30.2