add todo.md
authorJacob Lifshay <programmerjake@gmail.com>
Mon, 28 Aug 2017 12:42:19 +0000 (05:42 -0700)
committerJacob Lifshay <programmerjake@gmail.com>
Mon, 28 Aug 2017 12:42:19 +0000 (05:42 -0700)
docs/todo.md [new file with mode: 0644]

diff --git a/docs/todo.md b/docs/todo.md
new file mode 100644 (file)
index 0000000..438a390
--- /dev/null
@@ -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