mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-07 04:20:18 +01:00
radv: fix optional pSizes parameter when binding streamout buffers
The Vulkan spec 1.2.135 says: "pSizes is an optional array of buffer sizes, specifying the maximum number of bytes to capture to the corresponding transform feedback buffer. If pSizes is NULL, or the value of the pSizes array element is VK_WHOLE_SIZE, then the maximum bytes captured will be the size of the corresponding buffer minus the buffer offset." Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2650 Fixes:b4eb029062("radv: implement VK_EXT_transform_feedback") Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4232> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4232> (cherry picked from commit2d3223ca90)
This commit is contained in:
parent
3ab95d1846
commit
f3766dada2
2 changed files with 7 additions and 2 deletions
|
|
@ -121,7 +121,7 @@
|
|||
"description": "radv: fix optional pSizes parameter when binding streamout buffers",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"master_sha": null,
|
||||
"because_sha": "b4eb029062a944c428d6214447a852318e36016e"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -5905,7 +5905,12 @@ void radv_CmdBindTransformFeedbackBuffersEXT(
|
|||
|
||||
sb[idx].buffer = radv_buffer_from_handle(pBuffers[i]);
|
||||
sb[idx].offset = pOffsets[i];
|
||||
sb[idx].size = pSizes[i];
|
||||
|
||||
if (!pSizes || pSizes[i] == VK_WHOLE_SIZE) {
|
||||
sb[idx].size = sb[idx].buffer->size - sb[idx].offset;
|
||||
} else {
|
||||
sb[idx].size = pSizes[i];
|
||||
}
|
||||
|
||||
radv_cs_add_buffer(cmd_buffer->device->ws, cmd_buffer->cs,
|
||||
sb[idx].buffer->bo);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue