summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* vk: Add an ICD declaration filevulkan-protex-2015.09.24.r01Jason Ekstrand2015-09-242-0/+9
|
* anv: Add support for the ICD loaderJason Ekstrand2015-09-243-0/+22
|
* anv: Add a global dispatch table for use in meta operationsJason Ekstrand2015-09-244-15/+29
|
* anv/entrypoints: Expose the anv_resolve_entrypoint functionJason Ekstrand2015-09-242-4/+8
|
* anv/entrypoints: Rename anv_layer to anv_dispatch_tableJason Ekstrand2015-09-241-2/+2
|
* anv/batch_chain: Remove the current_surface_bo helperJason Ekstrand2015-09-242-10/+2
| | | | | | It's no longer used outside anv_batch_chain so we certainly don't need to be exporting. Inside anv_batch_chain, it's only used twice and it can be replaced by a single line so there's really no point.
* anv/cmd_buffer: Add a helper for getting the surface state base addressJason Ekstrand2015-09-244-2/+13
|
* anv/allocator: Don't ever call mremapJason Ekstrand2015-09-241-17/+12
| | | | | This has always been a bit sketchy and neither Kristian nor I have ever really liked it.
* anv/allocator: Delete the unused center_fd_offset from anv_block_poolJason Ekstrand2015-09-241-3/+0
|
* anv/allocator: Do a better job of centering bi-directional block poolsJason Ekstrand2015-09-241-1/+12
|
* anv/batch_chain: Clean up the reloc list swapping codeJason Ekstrand2015-09-241-8/+6
|
* anv/meta: Add location specifiers to meta shadersJason Ekstrand2015-09-211-12/+12
|
* Merge branch 'nir-spirv' into vulkanJason Ekstrand2015-09-171-15/+20
|\
| * nir/spirv: Add better location handlingJason Ekstrand2015-09-171-15/+20
| | | | | | | | | | | | | | | | | | | | Previously, our location handling was focussed on either no location (usually implicit 0) or a builting. Unfortunately, if you gave it a location, it would blow it away and just not care. This worked fine with crucible and our meta shaders but didn't work with the CTS. The new code uses the "data.explicit_location" field to denote that it has a "final" location (usually from a builtin) and, otherwise, the location is considered to be relative to the base for that shader stage.
* | anv/device: Move mutex initialization to befor block poolsJason Ekstrand2015-09-171-2/+2
| |
* | meta: Initial support for packing parametersJason Ekstrand2015-09-171-9/+7
| | | | | | | | Probably incomplete but it should do for now
* | anv/meta: Pass the depth through the clear vertex shaderJason Ekstrand2015-09-171-2/+2
| | | | | | | | It shouldn't matter since we shut off the VS but it's at least clearer.
* | anv/formats: Properly report depth-stencil formatsJason Ekstrand2015-09-171-18/+23
| |
* | vk/device: Don't allow device or instance creation with invalid extensionsJason Ekstrand2015-09-171-14/+41
| |
* | anv/tests: Add some asserts for data integrity in block_pool_no_freeJason Ekstrand2015-09-171-2/+22
| |
* | anv/allocator: Make the block pool double-endedJason Ekstrand2015-09-173-19/+197
| | | | | | | | | | | | | | | | This allows us to allocate from either side of the block pool in a consistent way. If you use the previous block_pool_alloc function, you will get offsets from the start of the pool as normal. If you use the new block_pool_alloc_back function, you will get a negative index that corresponds to something in the "back" of the pool.
* | anv/tests: Refactor the block_pool_no_free testJason Ekstrand2015-09-171-20/+29
| | | | | | | | This simply breaks the monotonicity check out into its own function
* | vk/allocator: Split block_pool_alloc into two functionsJason Ekstrand2015-09-171-22/+31
| |
* | anv/allocator: Use a signed 32-bit offset for the free listJason Ekstrand2015-09-172-8/+17
| | | | | | | | | | | | This has the unfortunate side-effect of making it so that we can't have a block pool bigger than 1GB. However, that's unlikely to happen and, for the sake of bi-directional block pools, we need to negative offsets.
* | anv/allocator: Create 2GB memfd up-front for the block poolJason Ekstrand2015-09-172-9/+15
| |
* | anv/allocator: Take the device mutex when growing a block poolJason Ekstrand2015-09-175-5/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't have any locking issues yet because we use the pool size itself as a mutex in block_pool_alloc to guarantee that only one thread is resizing at a time. However, we are about to add support for growing the block pool at both ends. This introduces two potential races: 1) You could have two block_pool_alloc() calls that both try to grow the block pool, one from each end. 2) The relocation handling code will now have to think about not only the bo that we use for the block pool but also the offset from the start of that bo to the center of the block pool. It's possible that the block pool growing code could race with the relocation handling code and get a bo and offset out of sync. Grabbing the device mutex solves both of these problems. Thanks to (2), we can't really do anything more granular.
* | anv: Document the index and offset parameters of anv_boJason Ekstrand2015-09-171-0/+11
| |
* | vk/image: Remove stale FINISHME for non-2D image viewsChad Versace2015-09-141-3/+0
| | | | | | | | gen8_image_view_init() now supports 1D, 2D, and 3D image views.
* | vk/image: Teach vkCreateImage about layout of 1D surfacesChad Versace2015-09-141-6/+8
| | | | | | | | | | Calling vkCreateImage() with VK_IMAGE_TYPE_1D now succeeds and computes the surface layout correctly.
* | vk/meta: Partially implement vkCmdCopy*, vkCmdBlit* for 3D imagesChad Versace2015-09-143-78/+235
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Partially implement the below functions for 3D images: vkCmdCopyBufferToImage vkCmdCopyImageToBuffer vkCmdCopyImage vkCmdBlitImage Not all features work, and there is much for performance improvement. Beware that vkCmdCopyImage and vkCmdBlitImage are untested. Crucible proves that vkCmdCopyBufferToImage and vkCmdCopyImageToBuffer works, though. Supported: - copy regions with z offset Unsupported: - copy regions with extent.depth > 1 Crucible test results on master@d452d2b are: pass: func.miptree.r8g8b8a8-unorm.*.view-3d.* pass: func.miptree.d32-sfloat.*.view-3d.* fail: func.miptree.s8-uint.*.view-3d.*
* | vk/meta: Rename meta_emit_blit() paramsChad Versace2015-09-141-13/+13
| | | | | | | | | | Rename src -> src_view and dest -> dest_view. This reduces noise in the next patch's diff, which adds new params to the function.
* | vk/gen8: Set RENDER_SURFACE_STATE::RenderTargetViewExtentChad Versace2015-09-141-0/+34
| |
* | vk/gen8: Refactor setting of SURFACE_STATE::DepthChad Versace2015-09-141-6/+44
| | | | | | | | | | | | The field's meaning depends on SURFACE_STATE::SurfaceType. Make that correlation explicit by switching on VkImageType. For good measure, add some PRM quotes too.
* | vk: Teach vkCreateImage about layout of 3D surfacesChad Versace2015-09-141-2/+17
| | | | | | | | | | | | Calling vkCreateImage() with VK_IMAGE_TYPE_3D now succeeds and computes the surface layout correctly. However, 3D images do not yet work for many other Vulkan entrypoints.
* | vk: Refactor anv_image_make_surface()Chad Versace2015-09-141-21/+35
| | | | | | | | Move the code that calculates the layout of 2D surfaces into a switch case.
* | vk: Use push constants for dynamic buffersJason Ekstrand2015-09-112-23/+29
| |
* | vk/compiler: Rework create_params_arrayJason Ekstrand2015-09-111-19/+12
| |
* | vk/compiler: Add a NIR pass for pushing dynamic buffer offsetJason Ekstrand2015-09-113-0/+197
| | | | | | | | This commit just adds the NIR pass but does none of the uniform setup
* | vk/pipeline_layout: Add dynamic_offset_start and has_dynamic_offsets fieldsJason Ekstrand2015-09-112-0/+9
| |
* | vk/pipeline_layout: Move surface/sampler start from SoA to AoSJason Ekstrand2015-09-113-6/+8
| | | | | | | | | | This makes more sense to me and it's more consistent with anv_descriptor_set_layout.
* | vk: Rework the push constants data structureJason Ekstrand2015-09-113-22/+62
| | | | | | | | | | | | Previously, we simply had a big blob of stuff for "driver constants". Now, we have a very specific data structure that contains the driver constants that we care about.
* | Add the wayland protocol files to .gitignireJason Ekstrand2015-09-111-0/+2
| |
* | vk/error: Handle ERROR_OUT_OF_DATE_WSIJason Ekstrand2015-09-082-40/+46
| |
* | vk/wsi/x11: Actually block on X so we don't re-use busy buffersJason Ekstrand2015-09-081-18/+62
| |
* | vk: Add the WSI header filesJason Ekstrand2015-09-082-0/+382
| |
* | Merge branch 'nir-spirv' into vulkanJason Ekstrand2015-09-051-7/+67
|\|
| * nir/spirv: Add support for most of the rest of texturingJason Ekstrand2015-09-051-7/+67
| | | | | | | | | | Assuming this all works, about the only thing left should be some corner-cases for tg4
* | nir/spirv.h: Remove some cruft missed while mergingJason Ekstrand2015-09-051-23/+0
| | | | | | | | | | | | There were merge conflicts in spirv.h that got missed because they were in a comment and so it still compiled. This gets rid of them and we should be on-par with upstream spirv->nir.
* | Merge branch 'nir-spirv' into vulkanJason Ekstrand2015-09-051-2/+6
|\|
| * nir/spirv: Handle decorations after assigning variable locationsJason Ekstrand2015-09-051-2/+6
| |