Compare commits
1 Commits
1016_part3
...
vulkan-buf
| Author | SHA1 | Date |
|---|---|---|
|
|
2888f601ff |
|
|
@ -10179,7 +10179,12 @@ internal static unsafe class VulkanVideoPresenter
|
||||||
}
|
}
|
||||||
|
|
||||||
var size = (ulong)Math.Max(guestBuffer.Length, sizeof(uint));
|
var size = (ulong)Math.Max(guestBuffer.Length, sizeof(uint));
|
||||||
var endAddress = checked(guestBuffer.BaseAddress + size);
|
if (guestBuffer.BaseAddress > ulong.MaxValue - size)
|
||||||
|
{
|
||||||
|
return CreateTransientGlobalBufferResource(guestBuffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
var endAddress = guestBuffer.BaseAddress + size;
|
||||||
GuestBufferAllocation? allocation = null;
|
GuestBufferAllocation? allocation = null;
|
||||||
foreach (var candidate in _guestBufferAllocations)
|
foreach (var candidate in _guestBufferAllocations)
|
||||||
{
|
{
|
||||||
|
|
@ -10414,9 +10419,14 @@ internal static unsafe class VulkanVideoPresenter
|
||||||
}
|
}
|
||||||
|
|
||||||
var size = (ulong)Math.Max(buffer.Length, sizeof(uint));
|
var size = (ulong)Math.Max(buffer.Length, sizeof(uint));
|
||||||
|
if (buffer.BaseAddress > ulong.MaxValue - size - 3)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
var alignedStart = buffer.BaseAddress &
|
var alignedStart = buffer.BaseAddress &
|
||||||
~(GuestStorageBufferOffsetAlignment - 1);
|
~(GuestStorageBufferOffsetAlignment - 1);
|
||||||
var paddedEnd = checked(buffer.BaseAddress + size + 3) & ~3UL;
|
var paddedEnd = (buffer.BaseAddress + size + 3) & ~3UL;
|
||||||
ranges.Add((
|
ranges.Add((
|
||||||
alignedStart,
|
alignedStart,
|
||||||
paddedEnd));
|
paddedEnd));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue