From f9d368b8c33c31a3323f231ad305fe11521f2860 Mon Sep 17 00:00:00 2001 From: Jacob Lifshay Date: Mon, 28 Aug 2017 14:43:59 -0700 Subject: [PATCH] add gsoc-2017-landing-page.md --- docs/gsoc-2017-landing-page.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 docs/gsoc-2017-landing-page.md diff --git a/docs/gsoc-2017-landing-page.md b/docs/gsoc-2017-landing-page.md new file mode 100644 index 0000000..5e54ca3 --- /dev/null +++ b/docs/gsoc-2017-landing-page.md @@ -0,0 +1,31 @@ +# GSOC 2017 Landing Page + +The code produced as part of GSOC is available here: [gsoc-2017 tag](https://github.com/programmerjake/vulkan-cpu/tree/gsoc-2017) +I've probably done more work on the code since GSOC, available here: [master branch](https://github.com/programmerjake/vulkan-cpu/tree/master) + +## State of code at end of GSOC + +A more detailed to-do list is available: [todo.md](todo.md) + +Completed: +- Generation of SPIR-V parser from Khronos's JSON grammar descriptions. +- Using LLVM as JIT compiler back-end. +- Support for Linux + +In-progress: +- Translation from SPIR-V to LLVM IR +- Generation of Graphics Pipelines +- Image support +- Rasterization +- Support for Win32 + +Not yet started: +- Vectorization +- Vulkan ICD interface +- Vulkan WSI +- Support for other platforms. + +## What I learned +- Vulkan doesn't actually specify using the top-left fill rule. (I couldn't find it in the [rasterization section](https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/html/vkspec.html#primsrast-polygons-basic) of the Vulkan spec.) +- SPIR-V is actually surprisingly complicated to parse for an IR that's supposed to be simple to parse. You have to determine the types of values before you can parse OpSwitch instructions properly as the number of words taken by each case depends on the bit-width of the value being switched on. +- I probably should have used the SPIR-V parser that was already written by Khronos. -- 2.30.2