summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* anv/gen7: Add push constant supportJason Ekstrand2015-11-101-0/+37
|
* anv/device: Use an actual int64_t in WaitForFencesJason Ekstrand2015-11-101-1/+3
|
* anv/meta: Create a sampler in meta_emit_blitJason Ekstrand2015-11-101-9/+25
|
* anv/gen7: Properly handle VS with VertexID but no verticesJason Ekstrand2015-11-101-4/+5
|
* anv/device: Work around the i915 kernel driver timeout bugJason Ekstrand2015-11-101-3/+11
| | | | | | | | | | | There is a bug in some versions of the i915 kernel driver where it will return immediately if the timeout is negative (it's supposed to wait indefinitely). We've worked around this in mesa for a few months but never implemented the work-around in the Vulkan driver. I rediscovered this bug again while working on Ivy Bridge becasuse the drive in my Ivy Bridge currently has Fedora 21 installed which has one of the offending kernels.
* anv/nir: Fix codegen in lower_push_constantsJason Ekstrand2015-11-091-1/+2
|
* anv/gen7: Fix the length of 3DSTATE_SFJason Ekstrand2015-11-091-1/+1
|
* anv/gen7: Properly handle missing color-blend stateJason Ekstrand2015-11-091-42/+54
|
* anv/device: Add a newline to the end of a commentJason Ekstrand2015-11-091-1/+1
|
* anv/formats: Define ETC2 formatsNanley Chery2015-11-091-10/+10
| | | | Reviewed-by: Chad Versace <[email protected]>
* anv/image: Determine the alignment units for compressed formatsNanley Chery2015-11-091-2/+4
| | | | | | | | | Alignment units, i and j, match the compressed format block width and height respectively. v2: Don't assert against HALIGN* and VALIGN* enums (Chad) Reviewed-by: Chad Versace <[email protected]>
* anv/image: Handle compressed format qpitch and paddingNanley Chery2015-11-091-3/+8
| | | | Reviewed-by: Chad Versace <[email protected]>
* anv/image: Handle compressed format stride and sizeNanley Chery2015-11-091-2/+4
| | | | | | These formulas did not take compressed formats into account. Reviewed-by: Chad Versace <[email protected]>
* anv/formats: Add fields for block dimensionsNanley Chery2015-11-092-1/+4
| | | | | | | | A non-compressed texture is a 1x1x1 block. Compressed textures could have values which vary in different dimensions WxHxD. Reviewed-by: Chad Versace <[email protected]>
* anv/formats: Add surface_format initializerNanley Chery2015-11-091-2/+2
| | | | | | | v2: Rename __brw_fmt to __hw_fmt (Chad) Suggested-by: Jason Ekstrand <[email protected]> Reviewed-by: Chad Versace [email protected]
* anv: Rename cpp variable to "bs"Nanley Chery2015-11-095-117/+117
| | | | | | | | | | | cpp (chars-per-pixel) is an integer that fails to give useful data about most compressed formats. Instead, rename it to "bs" which stands for block size (in bytes). v2: Rename vk_format_for_bs to vk_format_for_size (Chad) Use "block size" instead of "bs" in error message (Chad) Reviewed-by: Chad Versace <[email protected]>
* nir/spirv: Give both block and buffer_block types an interface typeJason Ekstrand2015-11-071-1/+1
|
* nir/spirv: Increment num_ubos/ssbos when creating variablesJason Ekstrand2015-11-061-0/+3
|
* anv/apply_dynamic_offsets: Use the right sized immediate zeroJason Ekstrand2015-11-061-1/+4
|
* anv/pipeline: Set the right SSBO binding table start index for FSJason Ekstrand2015-11-061-0/+1
|
* anv/cmd_buffer: Rework the way we emit UBO surface stateJason Ekstrand2015-11-065-19/+51
| | | | | | The new mechanism should be able to handle SSBOs as well as properly handle emitting surface state on gen7 where we need different strides depending on shader stage.
* anv/pipeline: Expose is_scalar_shader_stageJason Ekstrand2015-11-062-5/+9
|
* nir/spirv: Add a helper for determining if a block is externally visableJason Ekstrand2015-11-061-2/+11
|
* anv: Use VkDescriptorType instead of anv_descriptor_typeJason Ekstrand2015-11-063-21/+26
|
* anv: Do range-checking in the shader for dynamic buffersJason Ekstrand2015-11-065-73/+118
|
* anv/device: Increase the block size for instructionsJason Ekstrand2015-11-061-1/+1
|
* anv: Remove all support for BufferViewsJason Ekstrand2015-11-065-99/+6
| | | | | | We never *actually* supported them, we just used them for binding UBOs. Now that we have BufferInfo and we aren't supporting texture buffers yet, we should get rid of them until we can do them properly.
* anv/device: Only support binding UBOs through BufferInfoJason Ekstrand2015-11-061-20/+11
|
* anv: Rework UpdateDescriptorSetsJason Ekstrand2015-11-061-18/+18
| | | | | Previously, UpdateDescriptorSets was wrong because it assumed that the binding was the offset into the descriptor set.
* anv: Add a descriptor_index to anv_descriptor_set_binding_layoutJason Ekstrand2015-11-063-3/+5
|
* anv: Add a layout to anv_descriptor_setJason Ekstrand2015-11-062-0/+3
|
* anv/meta: Finish load clears for stencil attachmentsChad Versace2015-11-052-30/+88
| | | | | | | | | Tested by Crucible "func.depthstencil.stencil_triangles.*" in commit c194292d5eadb84e9d7489fc01ce0b653cdd4ca5 (HEAD -> master) Author: Chad Versace <[email protected]> Date: Wed Nov 4 16:19:24 2015 -0800 Subject: func.depthstencil: Remove stencil clear workaround for Mesa
* anv/cmd_buffer: Fix SURFACE_STATE for non-view buffer bindingsJason Ekstrand2015-11-041-3/+4
| | | | | We were treating it as if it's a BufferView and weren't taking the offset into account properly.
* anv/cmd_buffer: Don't use an anv_state pointer in emit_binding_tableJason Ekstrand2015-11-041-8/+7
| | | | | | The anv_state is supposed to be a flyweight so we're not really saving anything by using a pointer. Also, we were creating one, setting a pointer to it, and then having it go out-of-scope which is bad.
* anv: Remove unused anv_render_pass membersChad Versace2015-11-042-21/+0
| | | | | | | | | Remove members num_color_clear_attachments has_depth_clear_attachment has_stencil_clear_attachment The new clear code in anv_meta_clear.c does not use them.
* anv/meta: Rewrite clear codeChad Versace2015-11-044-292/+486
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes Crucible test "func.clear.load-clear.attachments-8". The old clear code, when clearing attachments for VK_ATTACHMENT_LOAD_OP_CLEAR, suffered from some fundamental bugs. The bugs were not fixable with the old code's approach. - It assumed that a VkRenderPass contained at most one depthstencil attachment. - It tried to clear all attachments (color and the sole depthstencil) with a single instanced draw call, using the VUE header's RenderTargetArrayIndex to specify the instance's target color attachment. But the RenderTargetArrayIndex does not select entries in the binding table; it only selects an array index of a singled layered surface. - If at least one attachment of VkRenderPass had VK_ATTACHMENT_LOAD_OP_CLEAR, then the old code cleared *all* attachments. This was a consequence of using a single draw call and single pipeline for the clear. The new clear code fixes those bugs by making a separate draw call for each attachment, and using one pipeline when clearing color attachments and a different pipeline for depth attachments. The new code, like the old code, does not clear stencil attachments. It is left as a FINISHME.
* anv/meta: Clear color attribute is always flatChad Versace2015-11-041-4/+3
| | | | | No behavioral change. This patch just removes an unneeded function parameter.
* anv/meta: Use consistent naming for dynamic state maskChad Versace2015-11-042-7/+13
| | | | | | | Consistently rename bitmasks of Vulkan dynamic state to 'dynamic_mask'. anv_meta_saved_state::dynamic_flags -> dynamic_mask anv_meta_save(dynamic_state) -> dynamic_mask
* anv/meta: Rename anv_cmd_buffer_save/restoreChad Versace2015-11-043-21/+19
| | | | | | | | As the functions are now exposed in anv_meta.h, let's rename them to clarify that they are meta functions. anv_cmd_buffer_save -> anv_meta_save anv_cmd_buffer_restore -> anv_meta_restore
* anv: Move meta clear code to new file anv_meta_clear.cChad Versace2015-11-045-512/+656
| | | | | | anv_meta.c currently handles blits, copies, clears, and resolves. The clear code is about to grow, and anv_meta.c is already busting at the seams.
* anv: Move struct anv_vue_header to anv_private.hChad Versace2015-11-042-12/+15
| | | | | Move it from anv_meta.c to the common header anv_private.h. This allows us to split the meta blit and meta clear code into separate files.
* Merge remote-tracking branch 'mesa-public/master' into vulkanJason Ekstrand2015-11-03331-3705/+16385
|\
| * i965/gen8+: Extract color clear surface stateBen Widawsky2015-11-031-6/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | On future generation platforms the color clear value is stored elsewhere in the surface state. By extracting this logic, we can cleanly implement the difference in an upcoming patch. Should have no functional impact. v2: Move hunk from the next patch into this patch (Matt) Whitespace fix (Ben) Signed-off-by: Ben Widawsky <[email protected]> Reviewed-by: Neil Roberts <[email protected]>
| * i965/gen8+: Remove redundant zeroing of surface stateBen Widawsky2015-11-031-12/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The allocate_surface_state already zeroes out the surface state, and doing it later in the function is destructive for what we want to accomplish when we split out support for gen9 fast clears (next patch). NOTE: Only dword 12 actually needed to be fixed, but it seemed more consistent to remove the other instances as well. I can make an argument both ways (open coding it, vs. not). I can rework the next patch if requires. Signed-off-by: Ben Widawsky <[email protected]> Reviewed-by: Chad Versace <[email protected]> Reviewed-by: Neil Roberts <[email protected]>
| * nvc0: add missing compute parameters required by cloverSamuel Pitoiset2015-11-031-1/+10
| | | | | | | | | | | | | | This fixes crashes with some piglit OpenCL tests. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]>
| * nvc0: handle NULL pointer in nvc0_get_compute_param()Samuel Pitoiset2015-11-031-24/+21
| | | | | | | | | | | | | | | | | | To get the size (in bytes) of a compute parameter, clover first calls get_compute_param() with a NULL data pointer. The RET() macro is based on nv50. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]>
| * i965/skl: Add GT4 PCI IDsBen Widawsky2015-11-031-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Like other gen8+ hardware, the hardware automatically scales up thread counts. We must be careful about the URB sizes since GT4 adds another slice. One of the existing PCI IDs is actually mislabeled as GT3. Arguably this is a real bug since the URB size will be wrong. Because this patch is simply meant to add the missing IDs, that will be fixed in a later patch. v2: No longer relevant. v3: Update the wm thread count to support GT4. The WM thread count is used to determine the maximum scratch space required. Currently the code always allocates the maximum amount even though lower GT SKUs require less. The formula is threads_per_psd * subslices_per_slice * slices Cc: [email protected] Reviewed-by: Jordan Justen <[email protected]> Signed-off-by: Ben Widawsky <[email protected]>
| * mesa: Add spec citations for DispatchCompute*Jordan Justen2015-11-021-5/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Note: The OpenGL 4.3 - 4.5 specification language for DispatchCompute appears to have an error regarding the max allowed values. When adding the specification citation, we note why the code does not match the specification language. v2: * Updates based on review from Iago Signed-off-by: Jordan Justen <[email protected]> Cc: Iago Toral Quiroga <[email protected]> Cc: Marta Lofstedt <[email protected]> Reviewed-by: Marta Lofstedt <[email protected]>
| * mesa: Update DispatchComputeIndirect errors for indirect parameterJordan Justen2015-11-021-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is some discrepancy between the return values for some error cases for the DispatchComputeIndirect call in the ARB_compute_shader specification. Regarding the indirect parameter, in one place the extension spec lists that the error returned for invalid values should be INVALID_OPERATION, while later it specifies INVALID_VALUE. The OpenGL 4.3 and OpenGLES 3.1 specifications appear to be consistent in requiring the INVALID_VALUE error return in this case. Here we update the code to match the main specifications, and update the citations use the main specification rather than the extension specification. v2: * Updates based on review from Iago Signed-off-by: Jordan Justen <[email protected]> Cc: Iago Toral Quiroga <[email protected]> Cc: Marta Lofstedt <[email protected]> Reviewed-by: Marta Lofstedt <[email protected]>
| * i965/fs: Clean up FBH code.Matt Turner2015-11-021-4/+3
| | | | | | | | Reviewed-by: Ian Romanick <[email protected]>