History log of /external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
b7d3c71d649348e0454c9a1a180cfeefcbea6452 30-Mar-2017 Alex Smith <asmith@feralinteractive.com> radv: Invalidate L2 for TRANSFER_WRITE barriers

CP DMA and PKT3_WRITE_DATA (in CmdUpdateBuffer) don't (currently) write
through L2. Therefore, to make these writes visible to later accesses
we must invalidate L2 rather than just writing it back, to avoid the
possibility that stale data is read through L2.

Signed-off-by: Alex Smith <asmith@feralinteractive.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Cc: "17.0" <mesa-stable@lists.freedesktop.org>
[Bas: patch is a backport for 17.0 of the cherry-pick below]
(cherry picked from commit bc5d587a80b64fb3e0a5ea8067e6317fbca2bbc5)
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
45e133ab3bc0d182e5a2a8ebd4db725499c8ab09 28-Mar-2017 Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> radv: flush DB cache before and after HTILE decompress.

It reads @ writes the DB cache, and we haven't flushed dst caches yet,
so DB cache may be stale. Also the user might be shader read (and probably is),
so also flush after.

Signed-off-by: Bas Nieuwenhuizen <basni@google.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
CC: <mesa-stable@lists.freedesktop.org>
Fixes: f4e499ec791 ("radv: add initial non-conformant radv vulkan driver")
(cherry picked from commit a8c51b1cd9168b621e27cf5308d0dd8fc08f8a4a)
[Andres Gomez: resolve trivial conflicts]
Signed-off-by: Andres Gomez <agomez@igalia.com>

Conflicts:
src/amd/vulkan/radv_cmd_buffer.c
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
348c8c34c35d8fce8184f137fb8ce85479ec9a63 19-Mar-2017 Dave Airlie <airlied@redhat.com> radv: fix primitive reset index emission

This was meant to be checking the index type to get the correct
index not the last emitted one. This fixes:
dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint32.triangle_strip_with_adjacency

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Cc: "13.0 17.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit d06e168b878be45029bf66c2ac627d16144a7823)
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
09646cce2f1850fcb3dc8790bc76466ac3087c8c 07-Mar-2017 Fredrik Höglund <fredrik@kde.org> radv: fix the dynamic buffer index in vkCmdBindDescriptorSets

This fixes the wrong dynamic buffer descriptors being updated when
firstSet > 0.

Cc: 17.0 <mesa-stable@lists.freedesktop.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
(cherry picked from commit 0941d1a574f46c558b0037be81d9a57004f4290b)
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
f21cc864ba3135d7b8e6eff054b80d5f86543c61 06-Mar-2017 Alex Smith <asmith@feralinteractive.com> radv: Emit pending flushes before executing a secondary command buffer

If we have any pending flushes on the primary command buffer, these
must be performed before executing the secondary buffer.

This fixes potential corruption when the contents of a subpass which
clears any of its render targets are given in a secondary buffer: the
flushes after a fast clear would not have been performed until the
vkCmdEndRenderPass call.

Signed-off-by: Alex Smith <asmith@feralinteractive.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Cc: 13.0 17.0 <mesa-stable@lists.freedesktop.org>
(cherry picked from commit 290d7e892dfa6d04767142f4f6d7ec689933a105)
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
3169c9818bcaeb9e38fad8eaf5ec6772816d7f91 26-Feb-2017 Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> radv: Reset emitted compute pipeline when calling secondary cmd buffer.

Otherwise if the new compute pipeline is the same as the last used
pipeline before the call, we don't emit it again.

Signed-off-by: Bas Nieuwenhuizen <basni@google.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Cc: 13.0 17.0 <mesa-stable@lists.freedesktop.org>
(cherry picked from commit bb878db7eb94e48476a920d66174a45da2585e19)
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
8917af11f7e5eda9437fc255f916c70238c0c337 30-Jan-2017 Dave Airlie <airlied@redhat.com> radv: handle transfer_write as a dst flag.

It appears we can get image barriers like:
srcStageMask: VkPipelineStageFlags = 4096 (VK_PIPELINE_STAGE_TRANSFER_BIT)
dstStageMask: VkPipelineStageFlags = 4096 (VK_PIPELINE_STAGE_TRANSFER_BIT)
dependencyFlags: VkDependencyFlags = 0
memoryBarrierCount: uint32_t = 0
pMemoryBarriers: const VkMemoryBarrier* = NULL
bufferMemoryBarrierCount: uint32_t = 0
pBufferMemoryBarriers: const VkBufferMemoryBarrier* = NULL
imageMemoryBarrierCount: uint32_t = 1
pImageMemoryBarriers: const VkImageMemoryBarrier* = 0x7ffc882367b0
pImageMemoryBarriers[0]: const VkImageMemoryBarrier = 0x7ffc882367b0:
sType: VkStructureType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER (45)
pNext: const void* = NULL
srcAccessMask: VkAccessFlags = 4096 (VK_ACCESS_TRANSFER_WRITE_BIT)
dstAccessMask: VkAccessFlags = 4096 (VK_ACCESS_TRANSFER_WRITE_BIT)
oldLayout: VkImageLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL (7)
newLayout: VkImageLayout = VK_IMAGE_LAYOUT_GENERAL (1)
srcQueueFamilyIndex: uint32_t = 4294967295
dstQueueFamilyIndex: uint32_t = 4294967295
image: VkImage = 0x2df55e0
subresourceRange: VkImageSubresourceRange = 0x7ffc882367e0:
aspectMask: VkImageAspectFlags = 1 (VK_IMAGE_ASPECT_COLOR_BIT)
baseMipLevel: uint32_t = 0
levelCount: uint32_t = 1
baseArrayLayer: uint32_t = 0
layerCount: uint32_t = 1

This fixes all the CTS dEQP-VK.memory.pipeline_barrier.transfer_dst tests here,
not sure if this is a too large hammer.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Cc: "17.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit a1c1ba7d5649cca450ca81bf87be36c035a01db0)
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
c63652b8acb74e8b0a0db2a90c34178bb0d1216e 18-Jan-2017 Dave Airlie <airlied@redhat.com> radv: program a default point size.

Along the lines of what
3b804819 anv: Default PointSize to 1.0 if not written by the shader
does for anv, program a default point size in the hw of 1.0.

This preempt fixes a bunch of geom shader tests.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Cc: "17.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 2ab2be092d15ddb449b4a215609705bae68089a0)
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
aac562f112ea9194b416c97336dcbbd3c1da812b 17-Jan-2017 Dave Airlie <airlied@redhat.com> radv: disable vertex reuse when writing viewport index

This fixes some issues we'd hit later if using viewport
indexes.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
6b635bbe16c93ad13afa3390d20c2f0f033e065d 16-Jan-2017 Dave Airlie <airlied@redhat.com> radv: add support for writing layer/viewport index (v2)

This just adds the infrastructure to allow writing layer
and viewport index. It's just a first patch out of the geom
shader tree, and doesn't do much on its own.

v2: add missing if statement change (Bas)

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
8406f79d6a3511dc6bf4d9c2ab3a80828c363d3a 16-Jan-2017 Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> radv: Get physical device from radv_device instead of the instance.

Signed-off-by: Bas Nieuwenhuizen <basni@google.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
97dfff54105ac10b6e2daace020687eefdcc28c0 23-Dec-2016 Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> radv: Dump command buffer on hang.

v2:
- Now use the filename specified by RADV_TRACE_FILE env var.
- Use the same var to enable tracing.

I thought we could as well always set the filename explicitly
instead of having some arbitrary defaults, and at that point
we don't need a separate feature enable.

Signed-off-by: Bas Nieuwenhuizen <basni@google.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
059af2515ad778f569e999547cb44a195f66c198 27-Dec-2016 Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> radv: Also skip DCC clear flushes for compute.

(airlied: fixes DOOM hang with compute queue enabled)
Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Bas Nieuwenhuizen <basni@google.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
9d23b8a18e3e83c629f575f94b66c347ec81d704 21-Dec-2016 Dave Airlie <airlied@redhat.com> radv: flush smem for uniform buffer bit.

(cc'ing stable as I'd like to backport the ubo speedup as well)

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Cc: "13.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
accc5fc026ec45171c458334bdee16747fbe7824 17-Dec-2016 Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> radv: Don't enable CMASK on compute queues.

We can't fast clear on compute queues.

Signed-off-by: Bas Nieuwenhuizen <basni@google.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
9b0efc98ba00467681a72107f1f2eb9025536540 12-Dec-2016 Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> radv: Implement indirect dispatch for the MEC.

Signed-off-by: Bas Nieuwenhuizen <basni@google.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
d0e6fb057444df3b165ea02fe5b063a7b24f2010 01-Dec-2016 Dave Airlie <airlied@redhat.com> radv: init compute queue and avoid initing transfer queues

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
94a7434bbc26590943fed5879d49bbc3395da6e5 01-Dec-2016 Dave Airlie <airlied@redhat.com> radv: Store queue family in command buffers.

v2: Added helper (Bas)

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
9bff2c98847e6ea3958411c2be70c3f5e1d70032 10-Dec-2016 Grazvydas Ignotas <notasas@gmail.com> radv: fix release build unused variable warnings

Just mark with MAYBE_UNUSED.

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
ae61ddabe8cfa1e2c8c55c478a7ea70563f64b63 28-Nov-2016 Dave Airlie <airlied@redhat.com> radv: move userdata sgpr ownership to compiler side.

This isn't fully what we want yet, but is a good step on the way.

This allows the compiler to create the information structures
for the state setting side, however the state setting still expects
things to be pretty much in 2 sgpr wide register sets, and can't
handle the indirect setting yet.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
221ab77956d20a999da34c8bd2ace4bc06f4ee42 28-Nov-2016 Dave Airlie <airlied@redhat.com> radv: refactor out the constant setting user sgpr code.

This just refactors out some common code to make future changes
easier to understand.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
11208f0049431a08328692874988503cd7742ede 28-Nov-2016 Dave Airlie <airlied@redhat.com> radv: refactor out the descriptor user sgpr setting.

This just splits some common code into a utility function.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
a74a4edc90a6a6fddfcf5e5d72c301bcf13ad125 28-Nov-2016 Dave Airlie <airlied@redhat.com> radv: only bind descriptor sets to stages that need them

This copies the push constant code and only binds descriptor
sets to the stages that need them. It also now has to dirty
descriptors on pipeline binds.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
85118a1e4d27cdb7a3c5b958f325954c7166a647 28-Nov-2016 Dave Airlie <airlied@redhat.com> radv: move descriptor set userdata emission to draw flush time.

This is another step towards having the compiler decide the
user sgpr layout.

This still emits the descriptors sets for all shader types, but
we will fix this later.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
a5d10844eef71095cea3c1a921108c3bccc8ba01 28-Nov-2016 Dave Airlie <airlied@redhat.com> radv: refactor descriptor set userdata emission out.

This just moves this into a separate function.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
f8476769902b6c39eafb517d4412e3e52d46147b 28-Nov-2016 Dave Airlie <airlied@redhat.com> radv: pass pipeline to constant flush function

I'll need this later rather than just the layout.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
eb2ba5c8df2149f92298e090508f1193026811a9 28-Nov-2016 Dave Airlie <airlied@redhat.com> radv: consolidate compute pipeline flushing (v1.1)

This just moves some common code into a utility function
to avoid having to change multiple places later.

v1.1: rename function to better reflect what it does. (Bas)

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
048143b9d9113785d2e455e5270f762348d08761 24-Nov-2016 Dave Airlie <airlied@redhat.com> radv: set spi_baryc_cntl.pos_float_location to 0

This fixes:
dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.*

This should probably be 2 when sample shading is enabled, but I'm
not sure.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
f3a3fea973a145fe16f70866dcfc22c3c5322a91 24-Nov-2016 Dave Airlie <airlied@redhat.com> radv: force persample shading when required.

We need to force persample shading when
a) shader uses sample_id
b) shader uses sample_position
c) shader uses sample qualifier.

Also since ps_iter_samples can now change independently of the
rasterizer samples we need to move setting the regs more often.

This fixes:
dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.*
dEQP-VK.pipeline.multisample_interpolation.centroid_qualifier_inside_primitive.137_191_1.*
dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_distinct_values.*
dEQP-VK.pipeline.multisample_interpolation.sample_qualifier_distinct_values.128_128_1.*

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
28c781b574605edd713526581daec1c464d1aff3 23-Nov-2016 Fredrik Höglund <fredrik@kde.org> radv: add support for VK_AMD_draw_indirect_count

Reviewed-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
ea417f53354b5ea65c7c4863a4f336dda23bf019 25-Oct-2016 Dave Airlie <airlied@redhat.com> radv: move pipeline barrier image transitions after src flushing

This seems like it would conform better with the spec.

noticed while digging into fast clears.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
51a44c0021398177d56f86b7fb8d63673186a380 17-Nov-2016 Dave Airlie <airlied@redhat.com> radv: make sure to flush input attachments correctly.

This fixes 9 of the
dEQP-VK.renderpass.attachment_allocation.input_output.*
tests.

Cc: "13.0" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
a969548f59342330badf78ec7721a1ead7599a29 19-Oct-2016 Dave Airlie <airlied@redhat.com> radv: allow cmask transitions without fast clear

This fixes
dEQP-VK.pipeline.multisample.sampled_image*

These all render to multisampled image, and then
sample from it, so we must transition it correctly,
since we have a cmask and fmask this will cause
the correct transition.

Cc: "13.0" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
86c4575a813bb57d1af3e3a0bb0c3eb44f27aedf 19-Oct-2016 Dave Airlie <airlied@redhat.com> radv: decompress fmask before reading using texture unit

Before we can read the fmask using the compute shader, we need
to decompress the fmask in place.

This fixes a bunch of remaining failure and hopefully multisampling
in Talos.
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
b0e11a153c4b8cd9bf29bdb8e26a776de241a5b4 10-Oct-2016 Dave Airlie <airlied@redhat.com> radv: start using defines for the user sgpr offsets

This adds some comments and adds defines for the user sgprs,
so that we can move them around easier later and not have
to change/revalidate every one of these.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
4450f405195d77f8bcc3fbd3e590405c8f540fab 14-Oct-2016 Dave Airlie <airlied@redhat.com> radv: move to using shared vk_alloc inlines.

This moves to the shared vk_alloc inlines for vulkan
memory allocations.

Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c
f4e499ec79147f4172f3669ae9dafd941aaeeb65 07-Oct-2016 Dave Airlie <airlied@redhat.com> radv: add initial non-conformant radv vulkan driver

This squashes all the radv development up until now into
one for merging.

History can be found:
https://github.com/airlied/mesa/tree/semi-interesting

This requires llvm 3.9 and is in no way considered
a conformant vulkan implementation. It can run a number
of vulkan applications, and supports all GPUs using
the amdgpu kernel driver.

Thanks to Intel for providing anv and spirv->nir,
and Emil Velikov for reviewing build integration.

Parts of this are:
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Acked-by: Edward O'Callaghan <funfunctor@folklore1984.net>

Authors: Bas Nieuwenhuizen and Dave Airlie
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/vulkan/radv_cmd_buffer.c