summaryrefslogtreecommitdiffstats
path: root/src/intel/vulkan
Commit message (Collapse)AuthorAgeFilesLines
* intel: Share URB configuration code between GL and Vulkan.Kenneth Graunke2016-11-194-156/+44
| | | | | | | | | This code is far too complicated to cut and paste. v2: Update the newly added genX_gpu_memcpy.c; const a few things. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Topi Pohjolainen <[email protected]>
* intel: Convert devinfo->urb.min_*_entries into an array.Kenneth Graunke2016-11-191-3/+3
| | | | | Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Topi Pohjolainen <[email protected]>
* intel: Convert devinfo->urb.max_*_entries into an array.Kenneth Graunke2016-11-191-4/+8
| | | | | Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Topi Pohjolainen <[email protected]>
* anv/cmd_buffer: Enable stencil-only HZ clearsNanley Chery2016-11-181-13/+33
| | | | | | | | The HZ sequence modifies less state than the blorp path and requires less CPU time to generate the necessary packets. Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* anv/cmd_buffer: Manage Anv state around HZ op emissionNanley Chery2016-11-181-7/+9
| | | | | | | Move the assignment to a less surprising location. Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* anv/cmd_buffer: Clarify HZ rectangle behaviorNanley Chery2016-11-181-1/+2
| | | | | | | | This behavior differs from what's described in the PRMs and was observed by analyzing CTS test results. Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* anv/TODO: Check off render buffer compressionJason Ekstrand2016-11-171-1/+0
| | | | | There's still a tiny bit of work to do for storage images but it's otherwise pretty much done at this point.
* anv: Enable "permanent" compression for immutable format imagesJason Ekstrand2016-11-172-1/+26
| | | | | | | | | | | This commit extends our support of color compression to surfaces without the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT set. These images will never have an image view created with a different format then the one set at image creation time so it's safe to always use compression. We still bail if the image is used as a storage image because that sometimes ends up using a different format. Reviewed-by: Topi Pohjolainen <[email protected]>
* anv/image: Add an aux_usage field for "default" auxJason Ekstrand2016-11-174-19/+45
| | | | | | | Initially, the field is set to ISL_AUX_USAGE_NONE so this commit shouldn't bring any functional changes. Setting this field to something else will cause all sampled and storage image views to be created with AUX and blorp will start trying to respect it so set with care.
* anv: Add initial support for Sky Lake color compressionJason Ekstrand2016-11-174-34/+169
| | | | | | | This commit adds basic support for color compression. For the moment, color compression is only enabled within a render pass and a full resolve is done before the render pass finishes. All texturing operations still happen with CCS disabled.
* anv/pass: Precompute some subpass usage informationJason Ekstrand2016-11-172-7/+43
|
* anv/image: Memset all aux surfaces (not just HiZ) to 0Jason Ekstrand2016-11-171-4/+6
| | | | Reviewed-by: Topi Pohjolainen <[email protected]>
* anv/image: Rename hiz_surface to aux_surfaceJason Ekstrand2016-11-173-17/+18
|
* anv/blorp: Ignore clears for attachments first used as resolve destinationsJason Ekstrand2016-11-171-9/+11
| | | | | | | | Otherwise, we'll try to clear it the first time it's used as a draw so if you do some multisampled rendering, resolve to an attachment, and then draw on top of the single-sampled attachment, we might accidentally clear it. Cc: "13.0" <[email protected]>
* anv/cmd_buffer: Refactor surface state relocation handlingJason Ekstrand2016-11-171-13/+22
| | | | Reviewed-by: Topi Pohjolainen <[email protected]>
* anv/cmd_buffer: Pull add_surface_state_reloc into genX_cmd_buffer.cJason Ekstrand2016-11-172-16/+14
| | | | Reviewed-by: Topi Pohjolainen <[email protected]>
* anv/image: Stop force-disabling AUXJason Ekstrand2016-11-171-4/+0
| | | | | | | Auxiliary surfaces have to be created manually anyway so force-disabling it does nothing whatsoever at the moment. Reviewed-by: Topi Pohjolainen <[email protected]>
* anv/fence: Handle ANV_FENCE_CREATE_SIGNALED_BITJason Ekstrand2016-11-161-1/+5
| | | | | Cc: "13.0" <[email protected]> Reviewed-by: Dave Airlie <[email protected]>
* anv: Handle null in all destructorsJason Ekstrand2016-11-169-1/+65
| | | | | | | | | | This fixes a bunch of new CTS tests which look for exactly this. Even in the cases where we just call vk_free to free a CPU data structure, we still handle NULL explicitly. This way we're less likely to forget to handle NULL later should we actually do something less trivial. Cc: "13.0" <[email protected]> Reviewed-by: Dave Airlie <[email protected]>
* anv/device: Silence a 32-bit warningJason Ekstrand2016-11-161-1/+2
|
* anv/descriptor_set: Put the whole state in the state free listJason Ekstrand2016-11-161-5/+4
| | | | | | We're not really saving much by just putting the offset in there. Reviewed-by: Iago Toral Quiroga <[email protected]>
* anv/descriptor_set: Write the state offset in the surface state free list.Jason Ekstrand2016-11-161-0/+1
| | | | | | | | | | When Kristian reworked descriptor set allocation, somehow he forgot to actually store the offset in the free list. Somehow, this completely missed CTS testing until now... This fixes all 2744 of the new 'dEQP-VK.texture.filtering.* tests in the latest CTS. Cc: "12.0 13.0" <[email protected]> Reviewed-by: Iago Toral Quiroga <[email protected]>
* anv/blorp: Handle VK_ATTACHMENT_UNUSED in CmdClearAttachmentsJason Ekstrand2016-11-161-0/+8
| | | | | | | | | | | | | | | | | | From the Vulkan 1.0.29 spec for vkCmdClearAttachments: "If the subpass’s depth/stencil attachment is VK_ATTACHMENT_UNUSED, then the clear has no effect." and "If colorAttachment is VK_ATTACHMENT_UNUSED then the clear has no effect." I have no idea why it's spec'd this way; it seems very anti-Vulkan to me, but that's what it says and it's really not much work to support. Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Nanley Chery <[email protected]>
* Allocate a null state whenever there is depth/stencilJason Ekstrand2016-11-161-9/+10
| | | | | Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Topi Pohjolainen <[email protected]>
* anv: Set framebuffer to NULL in secondary command buffersJason Ekstrand2016-11-161-2/+1
| | | | | | | | Nothing that is allowed to be called within a secondary now relies on the framebuffer. Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Nanley Chery <[email protected]>
* anv/blorp: Use the new clear_attachments entrypoint for attachment clearsJason Ekstrand2016-11-161-41/+50
| | | | | | | | This allows us to re-use the surface states emitted from the Vulkan driver instead of blorp creating its own. Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Topi Pohjolainen <[email protected]>
* anv/blorp: Break the guts of alloc_binding_table into a shared helperJason Ekstrand2016-11-163-16/+33
| | | | | Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Topi Pohjolainen <[email protected]>
* anv: Bring back anv_cmd_buffer_emit_state_base_addressJason Ekstrand2016-11-162-0/+20
| | | | | | | This reverts most of commit 52904ba85c7e1e3092601e3497bfbc246b00b84a. Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Topi Pohjolainen <[email protected]>
* anv/cmd_buffer: Stop relying on the framebuffer for 3DSTATE_SF on gen7Jason Ekstrand2016-11-161-11/+32
| | | | | Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Topi Pohjolainen <[email protected]>
* anv: Rework the way render target surfaces are allocatedJason Ekstrand2016-11-164-126/+180
| | | | | | | | | | | | | | | This commit moves the allocation and filling out of surface state from CreateImageView time to BeginRenderPass time. Instead of allocating the render target surface state as part of the image view, we allocate it in the command buffer state at the same time that we set up clears. For secondary command buffers, we allocate memory for the surface states in BeginCommandBuffer but don't fill them out; instead, we use our new SOL-based memcpy function to copy the surface states from the primary command buffer. This allows us to handle secondary command buffers without the user specifying the framebuffer ahead-of-time. Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Topi Pohjolainen <[email protected]>
* anv/cmd_buffer: Expose add_surface_state_reloc as an inline helperJason Ekstrand2016-11-162-15/+17
| | | | | Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Topi Pohjolainen <[email protected]>
* anv/cmd_buffer: Use the surface state alloc helper in null_surface_stateJason Ekstrand2016-11-161-1/+1
| | | | | Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Topi Pohjolainen <[email protected]>
* anv: Add a helper for doing buffer copies with nothing but VF and SOL.Jason Ekstrand2016-11-163-0/+239
| | | | | | | | | | | | This method of doing copies has the advantage of touching very little of the GPU state. While it does disable all the shader stages, it doesn't have to blow away binding tables, viewports, scissors, or any other bits of dynamic state other than VBO 32 which is already reserved. All of the state that it does touch is contained within a pipeline anyway so that's the only thing that has to be dirtied. Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Topi Pohjolainen <[email protected]>
* intel/isl: Add some basic info about RENDER_SURFACE_STATE to isl_deviceJason Ekstrand2016-11-162-7/+5
| | | | | Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Topi Pohjolainen <[email protected]>
* anv/pipeline: Use get_scratch_space/address for compute shadersJason Ekstrand2016-11-161-9/+7
| | | | | Reviewed-by: Kristian H. Kristensen <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* anv: Move INTERFACE_DESCRIPTOR_DATA setup to the pipelineJason Ekstrand2016-11-163-27/+38
| | | | | | | | | | There are a few dynamic bits, namely binding table and sampler addresses, but most of it is static and really belongs in the pipeline. It certainly doesn't belong in flush_compute_descriptor_set. We'll use the same state merging trick we use for gen7 DEPTH_STENCIL. Reviewed-by: Kristian H. Kristensen <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* anv/pipeline: Roll genX_pipeline_util.h into genX_pipeline.cJason Ekstrand2016-11-163-1296/+1266
| | | | | Reviewed-by: Kristian H. Kristensen <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* anv/pipeline: Unify graphics_pipeline_createJason Ekstrand2016-11-165-213/+80
| | | | | Reviewed-by: Kristian H. Kristensen <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* anv/pipline: Re-order state emission and make it consistentJason Ekstrand2016-11-162-8/+5
| | | | | | | | This commit makes both gen7 and gen8 pipeline setup emit state packets in exactly the same order. Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Kristian H. Kristensen <[email protected]>
* anv/pipeline: Rework the 3DSTATE_VF_TOPOLOGY helperJason Ekstrand2016-11-162-11/+9
| | | | | | | It gets a new name and moved to genX_pipeline_util.h. Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Kristian H. Kristensen <[email protected]>
* anv/pipeline: Move 3DSTATE_PS_EXTRA setup into a helperJason Ekstrand2016-11-162-27/+33
| | | | | Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Kristian H. Kristensen <[email protected]>
* anv/pipeline: Unify 3DSTATE_WM emissionJason Ekstrand2016-11-163-70/+55
| | | | | Reviewed-by: Kristian H. Kristensen <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* intel/genxml: Make 3DSTATE_WM more consistent across gensJason Ekstrand2016-11-162-5/+5
| | | | | Reviewed-by: Kristian H. Kristensen <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* anv/pipeline: Unify 3DSTATE_PS emissionJason Ekstrand2016-11-163-102/+72
| | | | | Reviewed-by: Kristian H. Kristensen <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* anv/pipeline/gen7: Properly set 3DSTATE_PS::DualSourceBlendEnableJason Ekstrand2016-11-161-1/+1
| | | | | Reviewed-by: Kristian H. Kristensen <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* intel/genxml: Make some 3DSTATE_PS fields more consistentJason Ekstrand2016-11-161-3/+3
| | | | | Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Kristian H. Kristensen <[email protected]>
* anv/pipeline: Make emit_3dstate_sbe safe to call without a FSJason Ekstrand2016-11-163-6/+10
| | | | | Reviewed-by: Kristian H. Kristensen <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* anv/pipeline: Unify 3DSTATE_GS emissionJason Ekstrand2016-11-163-109/+75
| | | | | Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Kristian H. Kristensen <[email protected]>
* anv/pipeline/gen8: Set 3DSTATE_GS::InstanceControlJason Ekstrand2016-11-161-0/+1
| | | | | Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Kristian H. Kristensen <[email protected]>
* intel/genxml: Make some 3DSTATE_GS fields more consistentJason Ekstrand2016-11-162-4/+4
| | | | | Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Kristian H. Kristensen <[email protected]>