mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-03 13:40:11 +01:00
radv: Output requested encode query results only
Video encode feedback queries have a configurable set of feedback bits,
specified in VkQueryPoolVideoEncodeFeedbackCreateInfoKHR::encodeFeedbackFlags.
Only the bits specified should be output when retrieving results.
Fixes: 1d74661dfd ("radv: add encoder queue support pieces and encoder queries.")
Reviewed-by: David Rosca <david.rosca@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37774>
This commit is contained in:
parent
c17dfcd745
commit
c8093e6cb1
1 changed files with 15 additions and 9 deletions
|
|
@ -2408,23 +2408,29 @@ radv_GetQueryPoolResults(VkDevice _device, VkQueryPool queryPool, uint32_t first
|
|||
if (flags & VK_QUERY_RESULT_64_BIT) {
|
||||
uint64_t *dest64 = (uint64_t *)dest;
|
||||
if (available || (flags & VK_QUERY_RESULT_PARTIAL_BIT)) {
|
||||
dest64[0] = src32[5];
|
||||
dest64[1] = src32[6] - src32[8];
|
||||
if (pool->vk.encode_feedback_flags & VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR)
|
||||
*dest64++ = src32[5];
|
||||
if (pool->vk.encode_feedback_flags & VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR)
|
||||
*dest64++ = src32[6] - src32[8];
|
||||
}
|
||||
dest += 16;
|
||||
dest += util_bitcount(pool->vk.encode_feedback_flags) * sizeof(uint64_t);
|
||||
|
||||
if (flags & VK_QUERY_RESULT_WITH_STATUS_BIT_KHR) {
|
||||
dest64[2] = 1;
|
||||
dest += 8;
|
||||
*dest64++ = 1;
|
||||
dest += 4;
|
||||
}
|
||||
} else {
|
||||
uint32_t *dest32 = (uint32_t *)dest;
|
||||
if (available || (flags & VK_QUERY_RESULT_PARTIAL_BIT)) {
|
||||
dest32[0] = src32[5];
|
||||
dest32[1] = src32[6] - src32[8];
|
||||
if (pool->vk.encode_feedback_flags & VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR)
|
||||
*dest32++ = src32[5];
|
||||
if (pool->vk.encode_feedback_flags & VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR)
|
||||
*dest32++ = src32[6] - src32[8];
|
||||
}
|
||||
dest += 8;
|
||||
dest += util_bitcount(pool->vk.encode_feedback_flags) * sizeof(uint32_t);
|
||||
|
||||
if (flags & VK_QUERY_RESULT_WITH_STATUS_BIT_KHR) {
|
||||
dest32[2] = 1;
|
||||
*dest32++ = 1;
|
||||
dest += 4;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue