Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | vk: Add script for generating ifunc entry points | Kristian Høgsberg | 2015-05-18 | 8 | -122/+401 |
| | | | | | This lets us generate a hash table for vkGetProcAddress and lets us call public functions internally without the public entrypoint overhead. | ||||
* | vk: Add missing VKAPI for vkQueueRemoveMemReferences | Kristian Høgsberg | 2015-05-17 | 1 | -1/+1 |
| | |||||
* | Merge remote-tracking branch 'fdo-personal/wip/nir-vtn' into vulkan | Jason Ekstrand | 2015-05-16 | 26 | -35/+3712 |
|\ | | | | | | | This adds the SPIR-V -> NIR translator. | ||||
| * | nir/spirv: Don't assert that the current block is empty | Jason Ekstrand | 2015-05-16 | 1 | -2/+0 |
| | | | | | | | | | | It's possible that someone will give us SPIR-V code in which someone needlessly branches to new blocks. We should handle that ok now. | ||||
| * | nir/spirv: Add initial support for samplers | Jason Ekstrand | 2015-05-16 | 1 | -3/+152 |
| | | |||||
| * | nir/spirv: Move Exp and Log to the list of currently unhandled ALU ops | Jason Ekstrand | 2015-05-16 | 1 | -2/+2 |
| | | | | | | | | NIR doesn't have the native opcodes for them anymore | ||||
| * | nir/types: Add support for sampler types | Jason Ekstrand | 2015-05-16 | 2 | -0/+49 |
| | | |||||
| * | nir/spirv: Make the global constants in spirv.h static | Jason Ekstrand | 2015-05-16 | 1 | -8/+8 |
| | | | | | | | | | | | | I've been promissed in a bug that this will be fixed in a future version of the header. However, in the interest of my branch building, I'm adding these changes in myself for the moment. | ||||
| * | nir/spirv: Handle jump-to-loop in a more general way | Jason Ekstrand | 2015-05-16 | 1 | -21/+25 |
| | | |||||
| * | nir/spirv: Handle boolean uniforms correctly | Jason Ekstrand | 2015-05-16 | 1 | -1/+10 |
| | | |||||
| * | nir/spirv: Handle control-flow with loops | Jason Ekstrand | 2015-05-16 | 2 | -21/+151 |
| | | |||||
| * | nir/spirv: Set a name on temporary variables | Jason Ekstrand | 2015-05-16 | 1 | -0/+1 |
| | | |||||
| * | nir/spirv: Use the correct length for copying string literals | Jason Ekstrand | 2015-05-16 | 1 | -1/+1 |
| | | |||||
| * | nir/spirv: Make vtn_ssa_value handle constants as well as ssa values | Jason Ekstrand | 2015-05-16 | 1 | -1/+20 |
| | | |||||
| * | nir/spirv: Add initial support for GLSL 4.50 builtins | Jason Ekstrand | 2015-05-16 | 4 | -4/+310 |
| | | |||||
| * | nir/spirv: Split the core datastructures into a header file | Jason Ekstrand | 2015-05-16 | 2 | -112/+146 |
| | | |||||
| * | nir/spirv: Use the builder for all instructions | Jason Ekstrand | 2015-05-16 | 1 | -18/+12 |
| | | | | | | | | | | | | We don't actually use it to create all the instructions but we do use it for insertion always. This should make things far more consistent for implementing extended instructions. | ||||
| * | nir/spirv: Add support for a bunch of ALU operations | Jason Ekstrand | 2015-05-16 | 1 | -7/+195 |
| | | |||||
| * | nir/spirv: Add support for indirect array accesses | Jason Ekstrand | 2015-05-16 | 1 | -2/+2 |
| | | |||||
| * | nir/spirv: Explicitly type constants and SSA values | Jason Ekstrand | 2015-05-16 | 1 | -19/+21 |
| | | |||||
| * | nir/spirv: Handle OpBranchConditional | Jason Ekstrand | 2015-05-16 | 1 | -68/+189 |
| | | | | | | | | | | | | | | | | | | We do control-flow handling as a two-step process. The first step is to walk the instructions list and record various information about blocks and functions. This is where the acutal nir_function_overload objects get created. We also record the start/stop instruction for each block. Then a second pass walks over each of the functions and over the blocks in each function in a way that's NIR-friendly and actually parses the instructions. | ||||
| * | nir/spirv: Add a helper for getting a value as an SSA value | Jason Ekstrand | 2015-05-16 | 1 | -0/+6 |
| | | |||||
| * | nir/spirv: Split instruction handling into preamble and body sections | Jason Ekstrand | 2015-05-16 | 1 | -45/+93 |
| | | |||||
| * | nir/spirv: Implement load/store instructiosn | Jason Ekstrand | 2015-05-16 | 1 | -6/+66 |
| | | |||||
| * | nir: Add a helper for getting the tail of a deref chain | Jason Ekstrand | 2015-05-16 | 3 | -23/+13 |
| | | |||||
| * | nir/spirv: Actaully add variables to the funciton or shader | Jason Ekstrand | 2015-05-16 | 1 | -0/+6 |
| | | |||||
| * | nir/spirv: Add a vtn_untyped_value helper | Jason Ekstrand | 2015-05-16 | 1 | -3/+10 |
| | | |||||
| * | nir/spirv: Use vtn_value in the types code and fix a off-by-one error | Jason Ekstrand | 2015-05-16 | 1 | -5/+7 |
| | | |||||
| * | nir/types: Add an is_vector_or_scalar helper | Jason Ekstrand | 2015-05-16 | 2 | -0/+7 |
| | | |||||
| * | nir/spirv: Add support for deref chains | Jason Ekstrand | 2015-05-16 | 1 | -12/+74 |
| | | |||||
| * | nir/types: Add a scalar type constructor | Jason Ekstrand | 2015-05-16 | 2 | -0/+7 |
| | | |||||
| * | nir/spirv: Add support for OpLabel | Jason Ekstrand | 2015-05-16 | 1 | -0/+13 |
| | | |||||
| * | nir/spirv: Add support for declaring functions | Jason Ekstrand | 2015-05-16 | 1 | -0/+67 |
| | | |||||
| * | nir/types: Add accessors for function parameter/return types | Jason Ekstrand | 2015-05-16 | 2 | -0/+18 |
| | | |||||
| * | nir/spirv: Add support for declaring variables | Jason Ekstrand | 2015-05-16 | 1 | -1/+151 |
| | | | | | | | | Deref chains and variable load/store operations are still missing. | ||||
| * | nir/spirv: Add support for constants | Jason Ekstrand | 2015-05-16 | 1 | -1/+67 |
| | | |||||
| * | nir/spirv: Add basic support for types | Jason Ekstrand | 2015-05-16 | 1 | -4/+85 |
| | | |||||
| * | nir/types: Add more helpers for creating types | Jason Ekstrand | 2015-05-16 | 2 | -0/+59 |
| | | |||||
| * | glsl/types: Expose the function_param and struct_field structs to C | Jason Ekstrand | 2015-05-16 | 1 | -4/+4 |
| | | | | | | | | | | Previously, they were hidden behind a #ifdef __cplusplus so C wouldn't find them. This commit simpliy moves the ifdef. | ||||
| * | glsl/types: Add support for function types | Jason Ekstrand | 2015-05-16 | 2 | -1/+122 |
| | | |||||
| * | glsl: Add GLSL_TYPE_FUNCTION to the base types enums | Jason Ekstrand | 2015-05-16 | 11 | -0/+13 |
| | | |||||
| * | nir/spirv: Rework the way values are added | Jason Ekstrand | 2015-05-16 | 1 | -13/+7 |
| | | | | | | | | | | | | Instead of having functions to add values and set various things, we just have a function that does a few asserts and then returns the value. The caller is then responsible for setting the various fields. | ||||
| * | nir/spirv: Add stub support for extension instructions | Jason Ekstrand | 2015-05-16 | 1 | -0/+35 |
| | | |||||
| * | REVERT: Add a simple helper program for testing SPIR-V -> NIR translation | Jason Ekstrand | 2015-05-16 | 2 | -1/+65 |
| | | |||||
| * | glsl/compiler: Move the error_no_memory stub to standalone_scaffolding.cpp | Jason Ekstrand | 2015-05-16 | 2 | -6/+6 |
| | | |||||
| * | nir: Add the start of a SPIR-V to NIR translator | Jason Ekstrand | 2015-05-16 | 3 | -0/+493 |
| | | | | | | | | | | At the moment, it can handle the very basics of strings and can ignore debug instructions. It also has basic support for decorations. | ||||
| * | nir: Import the revision 30 SPIR-V header from Khronos | Jason Ekstrand | 2015-05-16 | 1 | -0/+1304 |
| | | |||||
* | | vk/device: Use bias rather than layers for computing binding table size | Jason Ekstrand | 2015-05-16 | 1 | -1/+1 |
| | | | | | | | | | | Because we statically use the first 8 binding table entries for render targets, we need to create a table of size 8 + surfaces. | ||||
* | | vk/meta: Make clear a no-op if no layers need clearing | Jason Ekstrand | 2015-05-16 | 1 | -0/+3 |
| | | | | | | | | Among other things, this prevents recursive meta. | ||||
* | | vk/meta: Save and restore the old bindings pointer | Jason Ekstrand | 2015-05-16 | 1 | -4/+6 |
| | | | | | | | | | | | | | | | | If we don't do this then recursive meta is completely broken. What happens is that the outer meta call may change the bindings pointer and the inner meta call will change it again and, when it exits set it back to the default. However, the outer meta call may be relying on it being left alone so it uses the non-meta descriptor sets instead of its own. |