summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* vk: Add script for generating ifunc entry pointsKristian Høgsberg2015-05-188-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 vkQueueRemoveMemReferencesKristian Høgsberg2015-05-171-1/+1
|
* Merge remote-tracking branch 'fdo-personal/wip/nir-vtn' into vulkanJason Ekstrand2015-05-1626-35/+3712
|\ | | | | | | This adds the SPIR-V -> NIR translator.
| * nir/spirv: Don't assert that the current block is emptyJason Ekstrand2015-05-161-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 samplersJason Ekstrand2015-05-161-3/+152
| |
| * nir/spirv: Move Exp and Log to the list of currently unhandled ALU opsJason Ekstrand2015-05-161-2/+2
| | | | | | | | NIR doesn't have the native opcodes for them anymore
| * nir/types: Add support for sampler typesJason Ekstrand2015-05-162-0/+49
| |
| * nir/spirv: Make the global constants in spirv.h staticJason Ekstrand2015-05-161-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 wayJason Ekstrand2015-05-161-21/+25
| |
| * nir/spirv: Handle boolean uniforms correctlyJason Ekstrand2015-05-161-1/+10
| |
| * nir/spirv: Handle control-flow with loopsJason Ekstrand2015-05-162-21/+151
| |
| * nir/spirv: Set a name on temporary variablesJason Ekstrand2015-05-161-0/+1
| |
| * nir/spirv: Use the correct length for copying string literalsJason Ekstrand2015-05-161-1/+1
| |
| * nir/spirv: Make vtn_ssa_value handle constants as well as ssa valuesJason Ekstrand2015-05-161-1/+20
| |
| * nir/spirv: Add initial support for GLSL 4.50 builtinsJason Ekstrand2015-05-164-4/+310
| |
| * nir/spirv: Split the core datastructures into a header fileJason Ekstrand2015-05-162-112/+146
| |
| * nir/spirv: Use the builder for all instructionsJason Ekstrand2015-05-161-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 operationsJason Ekstrand2015-05-161-7/+195
| |
| * nir/spirv: Add support for indirect array accessesJason Ekstrand2015-05-161-2/+2
| |
| * nir/spirv: Explicitly type constants and SSA valuesJason Ekstrand2015-05-161-19/+21
| |
| * nir/spirv: Handle OpBranchConditionalJason Ekstrand2015-05-161-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 valueJason Ekstrand2015-05-161-0/+6
| |
| * nir/spirv: Split instruction handling into preamble and body sectionsJason Ekstrand2015-05-161-45/+93
| |
| * nir/spirv: Implement load/store instructiosnJason Ekstrand2015-05-161-6/+66
| |
| * nir: Add a helper for getting the tail of a deref chainJason Ekstrand2015-05-163-23/+13
| |
| * nir/spirv: Actaully add variables to the funciton or shaderJason Ekstrand2015-05-161-0/+6
| |
| * nir/spirv: Add a vtn_untyped_value helperJason Ekstrand2015-05-161-3/+10
| |
| * nir/spirv: Use vtn_value in the types code and fix a off-by-one errorJason Ekstrand2015-05-161-5/+7
| |
| * nir/types: Add an is_vector_or_scalar helperJason Ekstrand2015-05-162-0/+7
| |
| * nir/spirv: Add support for deref chainsJason Ekstrand2015-05-161-12/+74
| |
| * nir/types: Add a scalar type constructorJason Ekstrand2015-05-162-0/+7
| |
| * nir/spirv: Add support for OpLabelJason Ekstrand2015-05-161-0/+13
| |
| * nir/spirv: Add support for declaring functionsJason Ekstrand2015-05-161-0/+67
| |
| * nir/types: Add accessors for function parameter/return typesJason Ekstrand2015-05-162-0/+18
| |
| * nir/spirv: Add support for declaring variablesJason Ekstrand2015-05-161-1/+151
| | | | | | | | Deref chains and variable load/store operations are still missing.
| * nir/spirv: Add support for constantsJason Ekstrand2015-05-161-1/+67
| |
| * nir/spirv: Add basic support for typesJason Ekstrand2015-05-161-4/+85
| |
| * nir/types: Add more helpers for creating typesJason Ekstrand2015-05-162-0/+59
| |
| * glsl/types: Expose the function_param and struct_field structs to CJason Ekstrand2015-05-161-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 typesJason Ekstrand2015-05-162-1/+122
| |
| * glsl: Add GLSL_TYPE_FUNCTION to the base types enumsJason Ekstrand2015-05-1611-0/+13
| |
| * nir/spirv: Rework the way values are addedJason Ekstrand2015-05-161-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 instructionsJason Ekstrand2015-05-161-0/+35
| |
| * REVERT: Add a simple helper program for testing SPIR-V -> NIR translationJason Ekstrand2015-05-162-1/+65
| |
| * glsl/compiler: Move the error_no_memory stub to standalone_scaffolding.cppJason Ekstrand2015-05-162-6/+6
| |
| * nir: Add the start of a SPIR-V to NIR translatorJason Ekstrand2015-05-163-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 KhronosJason Ekstrand2015-05-161-0/+1304
| |
* | vk/device: Use bias rather than layers for computing binding table sizeJason Ekstrand2015-05-161-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 clearingJason Ekstrand2015-05-161-0/+3
| | | | | | | | Among other things, this prevents recursive meta.
* | vk/meta: Save and restore the old bindings pointerJason Ekstrand2015-05-161-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.