Skip to content

Commit edfbcdf

Browse files
Changes to support native execution
1 parent 2afea19 commit edfbcdf

File tree

4 files changed

+34
-9
lines changed

4 files changed

+34
-9
lines changed

libs/vkd3d/command.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10158,7 +10158,7 @@ static void STDMETHODCALLTYPE d3d12_command_list_IASetVertexBuffers(d3d12_comman
1015810158
bufferViewCreateInfo.offset = offset;
1015910159
bufferViewCreateInfo.size = size;
1016010160

10161-
VK_CALL(vkCreateBufferViewJUICE(resource->allocation->device_allocation.vk_memory, &bufferViewCreateInfo));
10161+
// UNDO: VK_CALL(vkCreateBufferViewJUICE(resource->allocation->device_allocation.vk_memory, &bufferViewCreateInfo));
1016210162
}
1016310163
else
1016410164
{

libs/vkd3d/resource.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5243,7 +5243,7 @@ static void vkd3d_create_buffer_srv(vkd3d_cpu_descriptor_va_t desc_va,
52435243
bufferViewCreateInfo.offset = descriptor_info[vk_write_count].buffer.offset;
52445244
bufferViewCreateInfo.size = descriptor_info[vk_write_count].buffer.range;
52455245

5246-
VK_CALL(vkCreateBufferViewJUICE(resource->mem.device_allocation.vk_memory, &bufferViewCreateInfo));
5246+
// UNDO: VK_CALL(vkCreateBufferViewJUICE(resource->mem.device_allocation.vk_memory, &bufferViewCreateInfo));
52475247

52485248
vk_write_count++;
52495249
}
@@ -5305,7 +5305,7 @@ static void vkd3d_create_buffer_srv(vkd3d_cpu_descriptor_va_t desc_va,
53055305
bindViewInfo.d3d12Type = VK_D3D12_DESC_VIEW_TYPE_SHADER_RESOURCE_JUICE;
53065306
bindViewInfo.bufferView = descriptor_info[vk_write_count].buffer_view;
53075307

5308-
VK_CALL(vkBindBufferViewJUICE(resource->mem.device_allocation.vk_memory, &bindViewInfo));
5308+
// UNDO: VK_CALL(vkBindBufferViewJUICE(resource->mem.device_allocation.vk_memory, &bindViewInfo));
53095309
}
53105310

53115311
vk_write_count++;
@@ -5982,7 +5982,7 @@ static void vkd3d_create_buffer_uav(vkd3d_cpu_descriptor_va_t desc_va, struct d3
59825982
bufferViewCreateInfo.offset = descriptor_info[vk_write_count].buffer.offset;
59835983
bufferViewCreateInfo.size = descriptor_info[vk_write_count].buffer.range;
59845984

5985-
VK_CALL(vkCreateBufferViewJUICE(resource->mem.device_allocation.vk_memory, &bufferViewCreateInfo));
5985+
// UNDO: VK_CALL(vkCreateBufferViewJUICE(resource->mem.device_allocation.vk_memory, &bufferViewCreateInfo));
59865986

59875987
vk_write_count++;
59885988
}
@@ -6046,7 +6046,7 @@ static void vkd3d_create_buffer_uav(vkd3d_cpu_descriptor_va_t desc_va, struct d3
60466046
bindViewInfo.d3d12Type = VK_D3D12_DESC_VIEW_TYPE_UNORDERED_ACCESS_JUICE;
60476047
bindViewInfo.bufferView = descriptor_info[vk_write_count].buffer_view;
60486048

6049-
VK_CALL(vkBindBufferViewJUICE(resource->mem.device_allocation.vk_memory, &bindViewInfo));
6049+
// UNDO: VK_CALL(vkBindBufferViewJUICE(resource->mem.device_allocation.vk_memory, &bindViewInfo));
60506050
}
60516051

60526052
vk_write_count++;

libs/vkd3d/swapchain.c

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1807,7 +1807,32 @@ static void dxgi_vk_swap_chain_present_iteration(struct dxgi_vk_swap_chain *chai
18071807

18081808
vk_queue = vkd3d_queue_acquire(chain->queue->vkd3d_queue);
18091809
VKD3D_REGION_BEGIN(queue_present);
1810-
vr = VK_CALL(vkQueuePresentKHR(vk_queue, &present_info));
1810+
{
1811+
static HMODULE JuiceHandle = NULL;
1812+
1813+
typedef void (*PFN_VOID)();
1814+
static PFN_VOID disableHooks = NULL;
1815+
static PFN_VOID enableHooks = NULL;
1816+
1817+
static bool juiceChecked = false;
1818+
if (!juiceChecked)
1819+
{
1820+
juiceChecked = true;
1821+
1822+
JuiceHandle = GetModuleHandleW(L"JuiceShim64.dll");
1823+
if (JuiceHandle != NULL)
1824+
{
1825+
disableHooks = (PFN_VOID)GetProcAddress(JuiceHandle, "DisableHooks");
1826+
enableHooks = (PFN_VOID)GetProcAddress(JuiceHandle, "EnableHooks");
1827+
}
1828+
}
1829+
1830+
if (disableHooks != NULL)
1831+
disableHooks();
1832+
vr = VK_CALL(vkQueuePresentKHR(vk_queue, &present_info));
1833+
if (enableHooks != NULL)
1834+
enableHooks();
1835+
}
18111836
VKD3D_REGION_END(queue_present);
18121837
vkd3d_queue_release(chain->queue->vkd3d_queue);
18131838
VKD3D_DEVICE_REPORT_BREADCRUMB_IF(chain->queue->device, vr == VK_ERROR_DEVICE_LOST);

libs/vkd3d/vulkan_procs.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -195,9 +195,9 @@ VK_DEVICE_PFN(vkWaitForFences)
195195
VK_DEVICE_PFN(vkWaitSemaphores)
196196
VK_DEVICE_PFN(vkCmdSetDepthWriteEnable)
197197

198-
VK_DEVICE_PFN(vkCreateBufferViewJUICE)
199-
VK_DEVICE_PFN(vkBindBufferViewJUICE)
200-
VK_DEVICE_PFN(vkBindImageViewJUICE)
198+
// UNDO: VK_DEVICE_PFN(vkCreateBufferViewJUICE)
199+
// UNDO: VK_DEVICE_PFN(vkBindBufferViewJUICE)
200+
// UNDO: VK_DEVICE_PFN(vkBindImageViewJUICE)
201201

202202
///* VK_KHR_buffer_device_address */
203203
//VK_DEVICE_EXT_PFN(vkGetBufferDeviceAddressKHR)

0 commit comments

Comments
 (0)