base: d3d12 fixes

This commit is contained in:
luboslenco
2026-05-16 12:14:21 +02:00
parent d947492390
commit 7cd8fbf063
+9 -2
View File
@@ -414,6 +414,9 @@ void gpu_init_internal(int depth_buffer_bits, bool vsync) {
device->lpVtbl->CreateCommandAllocator(device, D3D12_COMMAND_LIST_TYPE_DIRECT, &IID_ID3D12CommandAllocator, &command_allocator);
device->lpVtbl->CreateCommandList(device, 0, D3D12_COMMAND_LIST_TYPE_DIRECT, command_allocator, NULL, &IID_ID3D12CommandList, &command_list);
ID3D12DescriptorHeap *_heaps[] = {gpu_srv_heap, gpu_sampler_heap};
command_list->lpVtbl->SetDescriptorHeaps(command_list, 2, _heaps);
}
void gpu_begin_internal(gpu_clear_t flags, unsigned color, float depth) {
@@ -463,6 +466,9 @@ void gpu_execute_and_wait() {
command_allocator->lpVtbl->Reset(command_allocator);
command_list->lpVtbl->Reset(command_list, command_allocator, NULL);
ID3D12DescriptorHeap *_heaps[] = {gpu_srv_heap, gpu_sampler_heap};
command_list->lpVtbl->SetDescriptorHeaps(command_list, 2, _heaps);
if (gpu_in_use) {
command_list->lpVtbl->OMSetRenderTargets(command_list, current_render_targets_count, &target_descriptors[0], false, current_depth_handle);
command_list->lpVtbl->SetPipelineState(command_list, current_pipeline->impl.pipeline);
@@ -553,8 +559,6 @@ void gpu_internal_set_textures() {
}
}
ID3D12DescriptorHeap *heaps[] = {gpu_srv_heap, gpu_sampler_heap};
command_list->lpVtbl->SetDescriptorHeaps(command_list, 2, heaps);
command_list->lpVtbl->SetGraphicsRootDescriptorTable(command_list, 0, gpu_base);
D3D12_GPU_DESCRIPTOR_HANDLE sampler_gpu_base;
@@ -1829,4 +1833,7 @@ void gpu_raytrace_dispatch_rays() {
command_list->lpVtbl->Dispatch(command_list, (dxr_output->width + 15) / 16, (dxr_output->height + 15) / 16, 1);
_gpu_barrier(dxr_output->impl.image, D3D12_RESOURCE_STATE_UNORDERED_ACCESS, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE);
ID3D12DescriptorHeap *_heaps[] = {gpu_srv_heap, gpu_sampler_heap};
command_list->lpVtbl->SetDescriptorHeaps(command_list, 2, _heaps);
}