summaryrefslogtreecommitdiffstats
path: root/src/vulkan
Commit message (Collapse)AuthorAgeFilesLines
* vk/batch: Make relocs a pointer to a relocation listJason Ekstrand2015-07-293-17/+22
| | | | | | Previously anv_batch.relocs was an actual relocation list. However, this is limiting if the implementation of the batch wants to change the relocation list as the batch progresses.
* vk/headers: Update to new generated gen headersKristian Høgsberg Kristensen2015-07-294-139/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This update fixes cases where a 48-bit address field was split into two parts: __gen_address_type MemoryAddress; uint32_t MemoryAddressHigh; which cases this pack code to be generated: dw[1] = __gen_combine_address(data, &dw[1], values->MemoryAddress, dw1); dw[2] = __gen_field(values->MemoryAddressHigh, 0, 15) | 0; which breaks for addresses above 4G. This update also fixes arrays of structs in commands and structs, for example, we now have: struct GEN8_BLEND_STATE_ENTRY Entry[8]; and the pack functions now write all dwords in the packet, making valgrind happy. Finally, we would try to pack 64 bits of blend state into a uint32_t - that's also fixed now.
* vk/cmd_buffer: Update a commentJason Ekstrand2015-07-291-2/+3
|
* vk/cmd_buffer: Use a doubly-linked list for batch and surface buffersJason Ekstrand2015-07-283-60/+98
| | | | This is probably better than hand-rolling the list of buffers.
* vk/aub: Use the data directly from the execbuf2Jason Ekstrand2015-07-281-36/+19
| | | | | | | | Previously, we were crawling through the anv_cmd_buffer datastructure to pull out batch buffers and things. This meant that every time something in anv_cmd_buffer changed, we broke aub dumping. However, aub dumping should just dump the stuff the kernel knows about so we really don't need to be crawling driver internals.
* vk/cmd_buffer: Pull the execbuf stuff into a substructJason Ekstrand2015-07-275-59/+68
|
* vk/cmd_buffer: Move the remaining entrypoints into cmd_emit.cJason Ekstrand2015-07-273-96/+82
|
* vk/cmd_buffer: Move the re-emission of STATE_BASE_ADDRESS to the flushing codeJason Ekstrand2015-07-272-45/+45
| | | | | | This used to happen magically in cmd_buffer_new_surface_state_bo. However, according to Ken, STATE_BASE_ADDRESS is very gen-specific so we really shouldn't have it in the generic data-structure code.
* vk/cmd_buffer: Factor the guts of CmdBufferEnd into two helpersJason Ekstrand2015-07-272-11/+27
|
* vk/cmd_buffer: Factor the guts of (Create|Reset|Destroy)CmdBuffer into helpersJason Ekstrand2015-07-272-59/+98
|
* vk/private.h: Re-arrange and better comment anv_cmd_bufferJason Ekstrand2015-07-271-5/+11
|
* vk: Actually advertise 0.138.1 at runtimeJason Ekstrand2015-07-231-1/+1
|
* vk: Add two more valgrind checksJason Ekstrand2015-07-232-0/+2
|
* vk/meta: Destroy shader modulesJason Ekstrand2015-07-221-0/+3
|
* vk/device: Finish the scratch block pool on device destructionJason Ekstrand2015-07-221-0/+1
|
* vk: Add a FreeDescriptorSets functionJason Ekstrand2015-07-221-0/+17
|
* vk/pipeline: Be more sloppy about shader entrypoint namesJason Ekstrand2015-07-221-3/+4
| | | | | | The CTS passes in NULL names right now. It's not too hard to support that as just "main". With this, and a patch to vulkancts, we now pass all 6 tests.
* vk: Prefix most filenames with anvChad Versace2015-07-1720-51/+51
| | | | | | Jason started the task by creating anv_cmd_buffer.c and anv_cmd_emit.c. This patch finishes the task by renaming all other files except gen*_pack.h and glsl_scraper.py.
* vk/image: Remove unneeded data from anv_buffer_viewChad Versace2015-07-173-17/+16
| | | | | | | | This completes the FINISHME to trim unneeded data from anv_buffer_view. A VkExtent3D doesn't make sense for a VkBufferView. So remove the member anv_surface_view::extent, and push it up to the two objects that actually need it, anv_image_view and anv_attachment_view.
* vk: Document members of anv_surface_viewChad Versace2015-07-171-6/+6
|
* vk: Remove more raw castsChad Versace2015-07-175-15/+31
| | | | | | | | | | This removes nearly all the remaining raw Anvil<->Vulkan casts from the C source files. (File compiler.cpp still contains many raw casts, and I plan on ignoring that). As far as I can tell, the only remaining raw casts are: anv_attachment_view -> anv_depth_stencil_view anv_attachment_view -> anv_color_attachment_view
* vk/image: Add braces around multi-line ifsChad Versace2015-07-171-4/+6
|
* nir/spirv: don't declare builtin blocksConnor Abbott2015-07-161-4/+0
| | | | | They aren't used, and the backend was barfing on them. Also, remove a hack in in compiler.cpp now that they're gone.
* vk/0.132: Do type-safetyChad Versace2015-07-154-153/+59
|
* vk/cmd_buffer: Move batch buffer padding to anv_batch_bo_finish()Jason Ekstrand2015-07-151-10/+4
|
* vk/cmd_buffer: Rename bo_count to exec2_bo_countJason Ekstrand2015-07-154-15/+15
|
* vk/cmd_buffer: Add a helper for allocating dynamic stateJason Ekstrand2015-07-153-5/+16
| | | | | This matches what we do for surface state and makes the dynamic state pool more opaque to things that need to get dynamic state.
* vk/private.h: Move cmd_buffer functions to near the cmd_buffer structJason Ekstrand2015-07-151-15/+15
|
* vk: Split command buffer state into its own structureJason Ekstrand2015-07-154-143/+172
| | | | Everything else in anv_cmd_buffer is the actual guts of the datastructure.
* vk: Move most of the anv_Cmd related stuff to its own fileJason Ekstrand2015-07-154-1156/+1197
|
* vk: Pull the guts of anv_cmd_buffer into its own fileJason Ekstrand2015-07-154-677/+738
|
* vk/glsl: Replace raw castsChad Versace2015-07-151-1/+1
| | | | Needed for upcoming type-safety changes.
* vk/meta: Remove raw castsChad Versace2015-07-151-21/+24
| | | | Needed for upcoming type-safety changes.
* vk/x11: Remove raw castsChad Versace2015-07-151-12/+18
| | | | | The raw casts in the WSI functions will break the build when the type-safety changes arrive.
* vk: Delete vkDbgSetObjectTag()Chad Versace2015-07-151-17/+0
| | | | Because VkObject is going away.
* vk/device: Remove unneeded checks for NULLJason Ekstrand2015-07-151-6/+3
|
* vk/device: Provide proper NULL handling in anv_device_freeJason Ekstrand2015-07-151-0/+3
| | | | | | The Vulkan spec does not specify that the free function provided to CreateInstance must handle NULL properly so we do it in the wrapper. If this ever changes in the spec, we can delete the extra 2 lines.
* vk: Stop internally calling anv_DestroyObject()Chad Versace2015-07-151-32/+24
| | | | | | Replace each anv_DestroyObject() with anv_DestroyFoo(). Let vkDestroyObject() live for a while longer for Crucible's sake.
* vk: Fix vkDestroyObject dispatch for VkRenderPassChad Versace2015-07-151-3/+1
| | | | It called anv_device_free() instead of anv_DestroyRenderPass().
* vk: Fix vkCreate/DestroyRenderPassChad Versace2015-07-152-18/+48
| | | | | | | | | | | | | | | | While updating vkDestroyObject, I discovered that vkDestroyPass reliably crashes. That hasn't been an issue yet, though, because it is never called. In vkCreateRenderPass: - Don't allocate empty attachment arrays. - Ensure that pointers to empty attachment arrays are NULL. - Store VkRenderPassCreateInfo::subpassCount as anv_render_pass::subpass_count. In vkDestroyRenderPass: - Fix loop bounds: s/attachment_count/subpass_count/ - Don't call anv_device_free on null pointers.
* vk: Refactor create/destroy code for anv_descriptor_setChad Versace2015-07-152-11/+47
| | | | | | Define two new functions: anv_descriptor_set_create anv_descriptor_set_destroy
* vk: Replace some raw casts with safe castsChad Versace2015-07-151-2/+2
| | | | | | | That is, replace some instances of (VkFoo) foo with anv_foo_to_handle(foo)
* vk: Correct anv_CreateShaderModule's prototypeChad Versace2015-07-151-1/+1
| | | | | | s/VkShader/VkShaderModule/ :sigh: I look forward to type-safety.
* vk: Define struct anv_image_view, anv_buffer_viewChad Versace2015-07-154-30/+47
| | | | | Follow the pattern of anv_attachment_view. We need these structs to implement the type-safety that arrived in the 0.132 header.
* vk/meta: Fix declared type of a shader moduleChad Versace2015-07-151-1/+1
| | | | | | s/VkShader/VkShaderModule/ I'm looking forward to a type-safe vulkan.h ;)
* vk: Remove struct anv_objectChad Versace2015-07-154-115/+2
| | | | Trivial removal because vkDestroyObject() no longer uses it.
* vk/device: More documentation on surface state flushingJason Ekstrand2015-07-151-8/+34
|
* vk/device: explain why a flush is necessaryConnor Abbott2015-07-141-3/+10
| | | | | Jason found this from experimenting, but the docs give a reasonable explanation of why it's necessary.
* vk: Fix indentation of anv_dynamic_cb_stateChad Versace2015-07-141-1/+1
|
* vk: Add finishmes for VkDescriptorPoolChad Versace2015-07-141-2/+3
| | | | | VkDescriptorPool is a stub object. As a consequence, it's impossible to free descriptor set memory.