From 6552cd2a646c6856de62670de46831d3d8a4262a Mon Sep 17 00:00:00 2001 From: Artem Kharytoniuk Date: Sun, 24 Dec 2017 18:52:49 +0100 Subject: [PATCH] DX12: index buffer alignment check. fixed invalid use of resources during restart. --- src/engine/renderer/dx.cpp | 5 +++-- src/engine/renderer/tr_init.c | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/engine/renderer/dx.cpp b/src/engine/renderer/dx.cpp index 6ce42a3..fbaf506 100644 --- a/src/engine/renderer/dx.cpp +++ b/src/engine/renderer/dx.cpp @@ -402,10 +402,9 @@ void dx_initialize() { DX_CHECK(dx.geometry_buffer->Map(0, &read_range, &p_data)); dx.vertex_buffer_ptr = static_cast(p_data); - assert(((size_t)dx.vertex_buffer_ptr & 0xffff) == 0); + assert((VERTEX_BUFFER_SIZE & 0xffff) == 0); // index buffer offset should be 64K aligned. dx.index_buffer_ptr = static_cast(p_data) + VERTEX_BUFFER_SIZE; - assert(((size_t)dx.index_buffer_ptr & 0xffff) == 0); } // @@ -613,6 +612,8 @@ void dx_shutdown() { } void dx_release_resources() { + dx_wait_device_idle(); + dx_world.pipeline_create_time = 0.0f; for (int i = 0; i < dx_world.num_pipeline_states; i++) { dx_world.pipeline_states[i]->Release(); diff --git a/src/engine/renderer/tr_init.c b/src/engine/renderer/tr_init.c index 57b20f3..d37e2ee 100644 --- a/src/engine/renderer/tr_init.c +++ b/src/engine/renderer/tr_init.c @@ -31,7 +31,7 @@ glstate_t glState; Vk_Instance vk; Vk_World vk_world; -// D3D +// DX12 Dx_Instance dx; Dx_World dx_world;