mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08:00
tests: Add tests for ID3D12CommandQueue_GetClockCalibration().
Based on a vkd3d-proton patch by Hans-Kristian Arntzen. Signed-off-by: Conor McCarthy <cmccarthy@codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
2047bfa664
commit
3d044c4453
@ -36013,6 +36013,35 @@ done:
|
|||||||
destroy_test_context(&context);
|
destroy_test_context(&context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_clock_calibration(void)
|
||||||
|
{
|
||||||
|
uint64_t cpu_times[2] = {0}, gpu_times[2] = {0};
|
||||||
|
struct test_context context;
|
||||||
|
HRESULT hr;
|
||||||
|
|
||||||
|
if (!init_test_context(&context, NULL))
|
||||||
|
return;
|
||||||
|
|
||||||
|
hr = ID3D12CommandQueue_GetClockCalibration(context.queue, &gpu_times[0], &cpu_times[0]);
|
||||||
|
todo
|
||||||
|
ok(hr == S_OK, "Failed to retrieve calibrated timestamps, hr %#x.\n", hr);
|
||||||
|
|
||||||
|
vkd3d_sleep(100);
|
||||||
|
|
||||||
|
hr = ID3D12CommandQueue_GetClockCalibration(context.queue, &gpu_times[1], &cpu_times[1]);
|
||||||
|
todo
|
||||||
|
ok(hr == S_OK, "Failed to retrieve calibrated timestamps, hr %#x.\n", hr);
|
||||||
|
|
||||||
|
todo
|
||||||
|
ok(gpu_times[1] > gpu_times[0], "Inconsistent GPU timestamps %"PRIu64" and %"PRIu64".\n",
|
||||||
|
gpu_times[0], gpu_times[1]);
|
||||||
|
todo
|
||||||
|
ok(cpu_times[1] > cpu_times[0], "Inconsistent CPU timestamps %"PRIu64" and %"PRIu64".\n",
|
||||||
|
cpu_times[0], cpu_times[1]);
|
||||||
|
|
||||||
|
destroy_test_context(&context);
|
||||||
|
}
|
||||||
|
|
||||||
START_TEST(d3d12)
|
START_TEST(d3d12)
|
||||||
{
|
{
|
||||||
parse_args(argc, argv);
|
parse_args(argc, argv);
|
||||||
@ -36190,4 +36219,5 @@ START_TEST(d3d12)
|
|||||||
run_test(test_resource_arrays);
|
run_test(test_resource_arrays);
|
||||||
run_test(test_unbounded_resource_arrays);
|
run_test(test_unbounded_resource_arrays);
|
||||||
run_test(test_unbounded_samplers);
|
run_test(test_unbounded_samplers);
|
||||||
|
run_test(test_clock_calibration);
|
||||||
}
|
}
|
||||||
|
@ -60,6 +60,7 @@ typedef int HRESULT;
|
|||||||
#else
|
#else
|
||||||
# define VKD3D_UTILS_API_VERSION VKD3D_API_VERSION_1_2
|
# define VKD3D_UTILS_API_VERSION VKD3D_API_VERSION_1_2
|
||||||
# include <pthread.h>
|
# include <pthread.h>
|
||||||
|
# include <unistd.h>
|
||||||
# include "vkd3d.h"
|
# include "vkd3d.h"
|
||||||
# include "vkd3d_utils.h"
|
# include "vkd3d_utils.h"
|
||||||
#endif
|
#endif
|
||||||
@ -203,6 +204,19 @@ static inline bool join_thread(HANDLE untyped_thread)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
static inline void vkd3d_sleep(unsigned int ms)
|
||||||
|
{
|
||||||
|
Sleep(ms);
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
static inline void vkd3d_sleep(unsigned int ms)
|
||||||
|
{
|
||||||
|
usleep(1000 * ms);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static HRESULT wait_for_fence(ID3D12Fence *fence, uint64_t value)
|
static HRESULT wait_for_fence(ID3D12Fence *fence, uint64_t value)
|
||||||
{
|
{
|
||||||
unsigned int ret;
|
unsigned int ret;
|
||||||
|
Loading…
Reference in New Issue
Block a user