This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Commit 27c89d2
Vulkan: fix BufferVk::map() synchronization
4398b2b made finishToSerial() in
BufferVk::map() conditional to whether the serial is in use to work
around a performance regression. Notes:
- Prior to 087f138, finishToSerial
already did that, but that check was inadvertently removed.
- finishToSerial waits for the smallest serial that's bigger than or
equal to the requested serial.
- The flush() call in BufferVk::map() was conditional to whether the
serial is in use, but it really meant to check whether the buffer has
pending commands in the graph.
The end result is that there was an unnecessary flush in BufferVk::map()
if we had to wait for a previous serial to finish.
This change makes the flush conditional to whether the buffer has
pending commands in the graph, and the finishToSerial call to whether
the serial is not yet finished.
Bug: angleproject:3994
Change-Id: Idca436ef2439bcc8c59396a07b2591c1dfadd669
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1932341
Reviewed-by: Brandon Schade <[email protected]>
Reviewed-by: Shahbaz Youssefi <[email protected]>
Commit-Queue: Shahbaz Youssefi <[email protected]>1 parent 36ab960 commit 27c89d2
2 files changed
+14
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
222 | 222 | | |
223 | 223 | | |
224 | 224 | | |
225 | | - | |
| 225 | + | |
226 | 226 | | |
227 | 227 | | |
| 228 | + | |
228 | 229 | | |
229 | | - | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
230 | 233 | | |
231 | 234 | | |
232 | 235 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
416 | 416 | | |
417 | 417 | | |
418 | 418 | | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
419 | 428 | | |
420 | 429 | | |
421 | 430 | | |
| |||
0 commit comments