Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | anv/pipeline: Better vertex input channel setup | Jason Ekstrand | 2015-12-31 | 3 | -12/+40 |
| | | | | | | First off, it now uses isl formats instead of anv_format. Also, it properly handles integer vs. floating-point default channels and can properly handle alpha-only channels. (Not sure if those are allowed). | ||||
* | anv/pipeline: Move vk_to_gen tables into a shared header | Jason Ekstrand | 2015-12-31 | 3 | -178/+115 |
| | |||||
* | isl: Better document surface units | Chad Versace | 2015-12-31 | 1 | -2/+60 |
| | | | | | | Logical pixels, physical surface samples, and physical surface elements. Requested-by: Jason Ekstrand <[email protected]> | ||||
* | isl: Document the 3D block extent of isl_format | Chad Versace | 2015-12-31 | 1 | -0/+7 |
| | |||||
* | nir/spirv: Add a missing break statement in handle_image | Jason Ekstrand | 2015-12-30 | 1 | -0/+1 |
| | |||||
* | Revert "isl: Fix assertion failure for npot pixel formats" | Jason Ekstrand | 2015-12-30 | 1 | -2/+2 |
| | | | | This reverts commit 96d1baa88d37c51c94579f650cfd9465d28634f4. | ||||
* | nir/spirv: Handle push constants after decorations | Jason Ekstrand | 2015-12-30 | 1 | -1/+14 |
| | |||||
* | anv/device: Place memory types at heapIndex == 0 | Jason Ekstrand | 2015-12-30 | 1 | -3/+3 |
| | | | | | Previously, they were at heapIndex == 1 even though we only advertised one heap. | ||||
* | nir/spirv: Fix constant num_elements and allocation | Jason Ekstrand | 2015-12-30 | 1 | -3/+5 |
| | | | | | | Thanks to the addition of nir_clone, we now have a num_elements field in nir_constant which we weren't setting. Also, constants have to be parented to the variable they initialize, so we have to make a copy. | ||||
* | nir/lower_outputs_to_temporaries: Reparent constant initializers | Jason Ekstrand | 2015-12-30 | 1 | -0/+3 |
| | |||||
* | nir/clone: Expose nir_constant_clone | Jason Ekstrand | 2015-12-30 | 2 | -4/+5 |
| | |||||
* | nir/gather_info: Add support for end_primitive_with_counter | Jason Ekstrand | 2015-12-30 | 1 | -0/+1 |
| | |||||
* | nir/spirv: Handle OpLine | Jason Ekstrand | 2015-12-30 | 1 | -4/+6 |
| | |||||
* | nir/spirv: Let OpEntryPoint act as an OpName | Jason Ekstrand | 2015-12-30 | 1 | -4/+5 |
| | |||||
* | nir/lower_outputs_to_temporaries: Take a nir_function entrypoint | Jason Ekstrand | 2015-12-30 | 4 | -7/+15 |
| | |||||
* | nir/spirv: Add support for multiple entrypoints per shader | Jason Ekstrand | 2015-12-30 | 5 | -22/+38 |
| | | | | | | This is done by passing the entrypoint name into spirv_to_nir. It will then process the shader as if that were the only entrypoint we care about. Instead of returning a nir_shader, it now returns a nir_function. | ||||
* | nir/spirv: Get the shader stage from the SPIR-V | Jason Ekstrand | 2015-12-30 | 5 | -14/+31 |
| | | | | Previously, we depended on it being passed in. | ||||
* | nir/spirv: Use shader stage for determining variable locations | Jason Ekstrand | 2015-12-30 | 1 | -2/+2 |
| | |||||
* | nir/spirv: Get rid of default GS info | Jason Ekstrand | 2015-12-30 | 1 | -6/+0 |
| | | | | shaderc has been fixed for a while now. | ||||
* | nir/spirv: Handle execution modes as decorations | Jason Ekstrand | 2015-12-30 | 2 | -107/+168 |
| | | | | They're basically the same thing. | ||||
* | nir/spirv: Separate handling of preamble from type/var/const instructions | Jason Ekstrand | 2015-12-30 | 1 | -0/+36 |
| | |||||
* | isl: Fix assertion failure for npot pixel formats | Chad Versace | 2015-12-30 | 1 | -2/+2 |
| | | | | | | | | | When aligning to isl_format_layout::bs (which is the number of bytes in the pixel), use isl_align_npot() instead of isl_align(), because isl_align() works only for power-of-2 alignment. Fixes assertion in dEQP-VK.pipeline.image.view_type.1d.format.r16g16b16_sfloat.size.512x1. | ||||
* | nir/spirv/GLSL450: Add support for SAbs | Jason Ekstrand | 2015-12-30 | 1 | -0/+1 |
| | |||||
* | nir/spirv: Implement IsInf and IsNan built-ins. | Kenneth Graunke | 2015-12-30 | 1 | -0/+7 |
| | |||||
* | isl: Tile-align height in image size calculation | Jason Ekstrand | 2015-12-30 | 1 | -1/+1 |
| | | | | | This fixes a bunch of gpu hangs on the dEQP-VK.glsl.ShaderExecutor.common group of CTS tests. | ||||
* | Revert "nir/spirv: Update to the 1.0 GLSL.std.450 header" | Kenneth Graunke | 2015-12-30 | 2 | -49/+43 |
| | | | | | | | | This reverts commit b33f5d388979f23c583c78f10a18a941cb04ce04, and also removes the (empty) case statements for the new built-ins. It doesn't look like glslang has updated yet, so updating the header just breaks everything, as we no longer agree on opcode numbers. | ||||
* | anv/allocator: Rework state streams again | Jason Ekstrand | 2015-12-30 | 2 | -44/+48 |
| | | | | | | | | | | If we're going to hav valgrind verify state streams then we need to ensure that once we choose a pointer into a block we always use that pointer until the block is freed. I was trying to do this with the "current_map" thing. However, that breaks down because you have to use the map from the block pool to get to the stream_block to get at current_map. Instead, this commit changes things to track the stream_block by pointer instead of by offset into the block pool. | ||||
* | gen7/8/cmd_buffer: Allocate the correct ammount for COLOR_CALC_STATE | Jason Ekstrand | 2015-12-30 | 2 | -3/+6 |
| | | | | We were allocating 6 bytes when we should have been allocating 6 dwords. | ||||
* | anv/stream_alloc: Properly manage valgrind NOACCESS and UNDEFINED status | Jason Ekstrand | 2015-12-30 | 1 | -3/+19 |
| | | | | | | | | | | | | When I first did the valgrindifying for stream allocators, I misunderstood some things about valgrind's expectations for NOACCESS and UNDEFINED. First off, valgrind expects things to be marked NOACCESS before you allocate out of them. Since our blocks came from a pool backed by a mmapped memfd, they came in as UNDEFINED; we needed to mark them as NOACCESS. Also, I didn't realize that VALGRIND_MEMPOOL_CHANGE only updated the mempool allocation state and didn't actually change definedness; we had to add a VALGRIND_MAKE_MEM_UNDEFINED to get rid of the NOACCESS on the newly allocated portion. | ||||
* | nir/spirv: Lower gl_GlobalInvocationID correctly | Kristian Høgsberg Kristensen | 2015-12-30 | 1 | -1/+1 |
| | | | | | | Use nir_intrinsic_load_local_invocation_id, not nir_intrinsic_load_invocation_id (missing 'local'), which is a geometry shader built-in. | ||||
* | nir/spirv/cfg: Handle discard | Jason Ekstrand | 2015-12-29 | 1 | -0/+6 |
| | |||||
* | nir/print: Handle variables with var->name == NULL | Jason Ekstrand | 2015-12-29 | 1 | -8/+13 |
| | |||||
* | nir/inline_functions: Switch to inlining everything | Jason Ekstrand | 2015-12-29 | 2 | -12/+26 |
| | |||||
* | nir/spirv/glsl450: Enumerate more built-in opcodes. | Kenneth Graunke | 2015-12-29 | 1 | -0/+9 |
| | |||||
* | anv/state: Fix reversed MIN vs. MAX in levelCount handling. | Kenneth Graunke | 2015-12-29 | 2 | -4/+4 |
| | | | | | The point is to promote a levelCount of 0 to 1 before subtracting 1. This needs MAX, not MIN. | ||||
* | nir/spirv: Use instr_rewrite_src for updating phi sources | Jason Ekstrand | 2015-12-29 | 1 | -1/+3 |
| | | | | | | You can't just add a new source to a phi because use/def information won't get updated properly. Instead, you have to use one of the core helpers. Some day, we may want to add a nir_phi_instr_add_src helper. | ||||
* | nir/validate: Don't validate the return deref for void function calls | Jason Ekstrand | 2015-12-29 | 1 | -4/+4 |
| | |||||
* | nir/dominance: Handle unreachable blocks | Jason Ekstrand | 2015-12-29 | 1 | -1/+5 |
| | | | | | | | | | | | | | | | | | | Previously, nir_dominance.c didn't properly handle unreachable blocks. This can happen if, for instance, you have something like this: loop { if (...) { break; } else { break; } } In this case, the block right after the if statement will be unreachable. This commit makes two changes to handle this. First, it removes an assert and allows block->imm_dom to be null if the block is unreachable. Second, it properly skips unreachable blocks in calc_dom_frontier_cb. | ||||
* | nir/spirv/glsl450: Implement inverse hyperbolic trig built-ins. | Kenneth Graunke | 2015-12-29 | 1 | -3/+19 |
| | |||||
* | nir/spirv/glsl450: Implement Refract built-in. | Kenneth Graunke | 2015-12-29 | 1 | -1/+20 |
| | |||||
* | nir/spirv/glsl450: Implement hyperbolic trig built-ins. | Kenneth Graunke | 2015-12-29 | 1 | -4/+25 |
| | |||||
* | nir/spirv/glsl450: implement Reflect built-in. | Kenneth Graunke | 2015-12-29 | 1 | -1/+8 |
| | |||||
* | nir/spirv/glsl450: Implement FaceForward built-in. | Kenneth Graunke | 2015-12-29 | 1 | -1/+7 |
| | |||||
* | nir/spirv/glsl450: Implement SmoothStep. | Kenneth Graunke | 2015-12-29 | 1 | -1/+14 |
| | |||||
* | nir/spirv/glsl450: Implement Cross built-in. | Kenneth Graunke | 2015-12-29 | 1 | -1/+11 |
| | |||||
* | nir/spirv/glsl450: Implement Clamp/SClamp/UClamp. | Kenneth Graunke | 2015-12-29 | 1 | -0/+7 |
| | |||||
* | nir/spirv/glsl450: Implement the Log built-in. | Kenneth Graunke | 2015-12-29 | 1 | -0/+3 |
| | |||||
* | nir/spirv/glsl450: Implement Exp built-in. | Kenneth Graunke | 2015-12-29 | 1 | -0/+3 |
| | |||||
* | nir/spirv/glsl450: Add a helper for doing fclamp(). | Kenneth Graunke | 2015-12-29 | 1 | -0/+7 |
| | |||||
* | nir/spirv/glsl450: Add helpers for calculating exp() and log(). | Kenneth Graunke | 2015-12-29 | 1 | -0/+19 |
| |