10 HANDLE mutex = ::CreateMutexW(
nullptr, FALSE, acmxvk::ipc::SHADER_SELECTION_MUTEX_NAME_WINDOWS);
11 if (mutex ==
nullptr) {
12 std::cerr <<
"CreateMutexW failed: " << ::GetLastError() <<
'\n';
16 HANDLE mapping = ::CreateFileMappingW(INVALID_HANDLE_VALUE,
nullptr, PAGE_READWRITE, 0,
static_cast<DWORD
>(
sizeof(
acmxvk::ipc::ShaderSelectionData)), acmxvk::ipc::SHADER_SELECTION_MAPPING_NAME_WINDOWS);
17 if (mapping ==
nullptr) {
18 std::cerr <<
"CreateFileMappingW failed: " << ::GetLastError() <<
'\n';
24 if (view ==
nullptr) {
25 std::cerr <<
"MapViewOfFile failed: " << ::GetLastError() <<
'\n';
26 ::CloseHandle(mapping);
33 acmxvk::ipc::InterfaceLock lock(mutex);
35 std::cerr <<
"Could not lock test mapping\n";
36 ::UnmapViewOfFile(view);
37 ::CloseHandle(mapping);
43 selection->shader_pass_enabled = 1;
44 selection->shader_pass_count = 2;
45 std::strcpy(selection->selected_shader_name,
"selected.frag.spv");
46 std::strcpy(selection->shader_pass_names[0],
"first.comp.spv");
47 std::strcpy(selection->shader_pass_names[1],
"second.frag.spv");
48 selection->custom_uniform_count = 1;
49 std::strcpy(selection->custom_uniform_names[0],
"slider1");
50 selection->custom_uniform_values[0] = 0.75F;
51 selection->audio_file_sequence = 7;
52 std::strcpy(selection->audio_file_path,
"C:/audio/test.wav");
53 selection->audio_pass_through = 1;
54 selection->dream_enabled = 1;
55 selection->dream_fp16 = 1;
56 selection->dream_gpu_filter_first = 1;
57 selection->dream_iterations = 3;
58 selection->dream_maximum_dimension = 768;
59 selection->dream_channel = 12;
60 selection->dream_octaves = 2;
61 selection->dream_jitter = 4;
62 selection->dream_smoothing = 2;
63 selection->dream_strength = 0.125F;
64 selection->dream_feedback = 0.8F;
65 selection->dream_zoom = 1.02F;
66 selection->dream_rotation = -0.25F;
67 selection->dream_octave_scale = 1.6F;
68 std::strcpy(selection->dream_model_path,
"C:/models/dream.pt");
69 std::strcpy(selection->dream_layer,
"relu4_2");
74 const bool opened = client.
open();
75 const bool read = opened && client.
read(state);
80 ::UnmapViewOfFile(view);
81 ::CloseHandle(mapping);
84 std::cerr <<
"Windows interface-control round trip failed\n";
87 std::cout <<
"ACMXVK Windows interface-control test passed\n";