| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
This is probably better than hand-rolling the list of buffers.
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
They aren't used, and the backend was barfing on them. Also, remove a
hack in in compiler.cpp now that they're gone.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This matches what we do for surface state and makes the dynamic state pool
more opaque to things that need to get dynamic state.
|
| |
|
|
|
|
| |
Everything else in anv_cmd_buffer is the actual guts of the datastructure.
|
| |
|
| |
|
|
|
|
| |
Needed for upcoming type-safety changes.
|
|
|
|
| |
Needed for upcoming type-safety changes.
|
|
|
|
|
| |
The raw casts in the WSI functions will break the build when the
type-safety changes arrive.
|
|
|
|
| |
Because VkObject is going away.
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Replace each anv_DestroyObject() with anv_DestroyFoo().
Let vkDestroyObject() live for a while longer for Crucible's sake.
|
|
|
|
| |
It called anv_device_free() instead of anv_DestroyRenderPass().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Define two new functions:
anv_descriptor_set_create
anv_descriptor_set_destroy
|
|
|
|
|
|
|
| |
That is, replace some instances of
(VkFoo) foo
with
anv_foo_to_handle(foo)
|
|
|
|
|
|
| |
s/VkShader/VkShaderModule/
:sigh: I look forward to type-safety.
|
|
|
|
|
| |
Follow the pattern of anv_attachment_view. We need these structs to
implement the type-safety that arrived in the 0.132 header.
|
|
|
|
|
|
| |
s/VkShader/VkShaderModule/
I'm looking forward to a type-safe vulkan.h ;)
|
|
|
|
| |
Trivial removal because vkDestroyObject() no longer uses it.
|
| |
|
|
|
|
|
| |
Jason found this from experimenting, but the docs give a reasonable
explanation of why it's necessary.
|
| |
|
|
|
|
|
| |
VkDescriptorPool is a stub object. As a consequence, it's impossible to
free descriptor set memory.
|