summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* vk: Add new vk_errorf that takes a format stringKristian Høgsberg Kristensen2015-09-036-27/+52
| | | | | | This allows us to annotate error cases in debug builds. Signed-off-by: Kristian Høgsberg Kristensen <[email protected]>
* vk: Make vk_error a little more helpfulKristian Høgsberg Kristensen2015-09-032-7/+52
| | | | | | | Print out file and line number and translate the error code to the symbolic name. Signed-off-by: Kristian Høgsberg Kristensen <[email protected]>
* vk/image: Add PRM reference for QPitch equationChad Versace2015-09-031-0/+4
| | | | Suggested-by: Nanley Chery <[email protected]>
* vk/meta: Partially fix vkCmdCopyBufferToImage for S8_UINTChad Versace2015-09-021-4/+13
| | | | | | | | | | Create R8_UINT VkAttachmentView and VkImageView for the stencil data. This fixes a crash, but the pixels in the destination image are still incorrect. They are not properly tiled. Fixes crashes in Crucible tests func.miptree.s8-uint.aspect-stencil.* as of crucible-7471449. Test results improve 'lost' -> 'fail'.
* vk/meta: Use SPIR-V for shadersJason Ekstrand2015-09-013-228/+212
| | | | | We are also now using glslc for compiling the Vulkan driver like we do in curcible.
* vk/compiler: Handle interpolation qualifiers for SPIR-V shadersJason Ekstrand2015-09-011-0/+10
|
* vk/extensions: count needs to be <= number of extensionsJason Ekstrand2015-09-011-1/+1
|
* vk/compiler: Properly reference/delete programs when using SPIR-VJason Ekstrand2015-09-011-10/+12
|
* vk/meta: Add a helper for making an image from a bufferJason Ekstrand2015-08-311-65/+49
|
* nir/spirv: Use VERTEX_ID_ZERO_BASE for VertexIdJason Ekstrand2015-08-311-1/+4
| | | | | | In Vulkan, VertexId and InstanceId will be zero-based and new intrinsics, VertexIndex and InstanceIndex, will be added for non-zer-based. See also, Khronos bug #14255
* Merge remote-tracking branch 'fdo-personal/nir-spirv' into vulkanJason Ekstrand2015-08-3111-65/+78
|\ | | | | | | | | | | From now on, the majority of SPIR-V improvements should happen on the spirv branch which will also be public. It will be frequently merged into the vulkan driver.
| * nir/spirv: Update to the latest revisionJason Ekstrand2015-08-315-1311/+2311
| |
| * nir/builder: Use nir_after_instr to advance the cursorJason Ekstrand2015-08-311-2/+1
| | | | | | | | | | | | | | | | | | | | This *should* ensure that the cursor gets properly advanced in all cases. We had a problem before where, if the cursor was created using nir_after_cf_node on a non-block cf_node, that would call nir_before_block on the block following the cf node. Instructions would then get inserted in backwards order at the top of the block which is not at all what you would expect from nir_after_cf_node. By just resetting to after_instr, we avoid all these problems.
| * nir/intrinsics: Move to a two-dimensional binding model for UBO'sJason Ekstrand2015-08-311-3/+4
| |
| * nir/nir_variable: Add a descriptor set fieldJason Ekstrand2015-08-311-0/+5
| | | | | | | | We need this for SPIR-V
| * mesa: Move gl_vert_attrib from mtypes.h to shader_enums.hJason Ekstrand2015-08-312-107/+108
| | | | | | | | It is a shader enum after all...
| * nir/cursor: Add a helper for getting the current blockJason Ekstrand2015-08-311-0/+11
| |
| * nir/builder: add a nir_fdot() convenience functionConnor Abbott2015-08-311-0/+17
| |
| * nir: Add a pass to lower outputs to temporary variablesJason Ekstrand2015-08-313-0/+96
| | | | | | | | | | This pass can be used as a helper for NIR producers so they don't have to worry about creating the temporaries themselves.
| * nir/cursor: Add a constructor for the end of a block but before the jumpJason Ekstrand2015-08-312-6/+12
| |
| * nir/types: add more nir_type_is_xxx() wrappersConnor Abbott2015-08-312-0/+14
| |
| * nir/types: add a helper to transpose a matrix typeConnor Abbott2015-08-312-0/+9
| |
| * nir/spirv: Don't assert that the current block is emptyJason Ekstrand2015-08-311-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-08-311-3/+152
| |
| * nir/spirv: Move Exp and Log to the list of currently unhandled ALU opsJason Ekstrand2015-08-311-2/+2
| | | | | | | | NIR doesn't have the native opcodes for them anymore
| * nir/types: Add support for sampler typesJason Ekstrand2015-08-312-0/+49
| |
| * nir/spirv: Make the global constants in spirv.h staticJason Ekstrand2015-08-311-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-08-311-21/+25
| |
| * nir/spirv: Handle boolean uniforms correctlyJason Ekstrand2015-08-311-1/+10
| |
| * nir/spirv: Handle control-flow with loopsJason Ekstrand2015-08-312-21/+151
| |
| * nir/spirv: Set a name on temporary variablesJason Ekstrand2015-08-311-0/+1
| |
| * nir/spirv: Use the correct length for copying string literalsJason Ekstrand2015-08-311-1/+1
| |
| * nir/spirv: Make vtn_ssa_value handle constants as well as ssa valuesJason Ekstrand2015-08-311-1/+20
| |
| * nir/spirv: Add initial support for GLSL 4.50 builtinsJason Ekstrand2015-08-314-4/+310
| |
| * nir/spirv: Split the core datastructures into a header fileJason Ekstrand2015-08-312-112/+146
| |
| * nir/spirv: Use the builder for all instructionsJason Ekstrand2015-08-311-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-08-311-7/+195
| |
| * nir/spirv: Add support for indirect array accessesJason Ekstrand2015-08-311-2/+2
| |
| * nir/spirv: Explicitly type constants and SSA valuesJason Ekstrand2015-08-311-19/+21
| |
| * nir/spirv: Handle OpBranchConditionalJason Ekstrand2015-08-311-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-08-311-0/+6
| |
| * nir/spirv: Split instruction handling into preamble and body sectionsJason Ekstrand2015-08-311-45/+93
| |
| * nir/spirv: Implement load/store instructiosnJason Ekstrand2015-08-311-6/+66
| |
| * nir: Add a helper for getting the tail of a deref chainJason Ekstrand2015-08-313-23/+13
| |
| * nir/spirv: Actaully add variables to the funciton or shaderJason Ekstrand2015-08-311-0/+6
| |
| * nir/spirv: Add a vtn_untyped_value helperJason Ekstrand2015-08-311-3/+10
| |
| * nir/spirv: Use vtn_value in the types code and fix a off-by-one errorJason Ekstrand2015-08-311-5/+7
| |
| * nir/types: Add an is_vector_or_scalar helperJason Ekstrand2015-08-312-0/+7
| |
| * nir/spirv: Add support for deref chainsJason Ekstrand2015-08-311-12/+74
| |
| * nir/types: Add a scalar type constructorJason Ekstrand2015-08-312-0/+7
| |