From: Conor McCarthy cmccarthy@codeweavers.com
--- libs/vkd3d/state.c | 10 +++++++++- tests/hlsl/bitwise.shader_test | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/libs/vkd3d/state.c b/libs/vkd3d/state.c index a51024f4d..470584579 100644 --- a/libs/vkd3d/state.c +++ b/libs/vkd3d/state.c @@ -2944,10 +2944,11 @@ static HRESULT d3d12_pipeline_state_init_graphics(struct d3d12_pipeline_state *s struct vkd3d_shader_spirv_target_info *stage_target_info; uint32_t aligned_offsets[D3D12_VS_INPUT_REGISTER_COUNT]; struct vkd3d_shader_descriptor_offset_info offset_info; - struct vkd3d_shader_parameter ps_shader_parameters[1]; + struct vkd3d_shader_parameter ps_shader_parameters[2]; struct vkd3d_shader_transform_feedback_info xfb_info; struct vkd3d_shader_spirv_target_info ps_target_info; struct vkd3d_shader_interface_info shader_interface; + struct vkd3d_shader_parameter shader_parameters[1]; struct vkd3d_shader_spirv_target_info target_info; const struct d3d12_root_signature *root_signature; struct vkd3d_shader_signature input_signature; @@ -3128,6 +3129,11 @@ static HRESULT d3d12_pipeline_state_init_graphics(struct d3d12_pipeline_state *s ps_shader_parameters[0].type = VKD3D_SHADER_PARAMETER_TYPE_IMMEDIATE_CONSTANT; ps_shader_parameters[0].data_type = VKD3D_SHADER_PARAMETER_DATA_TYPE_UINT32; ps_shader_parameters[0].u.immediate_constant.u.u32 = sample_count; + ps_shader_parameters[1].name = VKD3D_SHADER_PARAMETER_NAME_CAPABILITY_INT64; + ps_shader_parameters[1].type = VKD3D_SHADER_PARAMETER_TYPE_IMMEDIATE_CONSTANT; + ps_shader_parameters[1].data_type = VKD3D_SHADER_PARAMETER_DATA_TYPE_BOOL; + ps_shader_parameters[1].u.immediate_constant.u.b = device->feature_options1.Int64ShaderOps; + shader_parameters[0] = ps_shader_parameters[1];
ps_target_info.type = VKD3D_SHADER_STRUCTURE_TYPE_SPIRV_TARGET_INFO; ps_target_info.next = NULL; @@ -3165,6 +3171,8 @@ static HRESULT d3d12_pipeline_state_init_graphics(struct d3d12_pipeline_state *s target_info.environment = VKD3D_SHADER_SPIRV_ENVIRONMENT_VULKAN_1_0; target_info.extensions = vk_info->shader_extensions; target_info.extension_count = vk_info->shader_extension_count; + target_info.parameters = shader_parameters; + target_info.parameter_count = ARRAY_SIZE(shader_parameters);
graphics->xfb_enabled = false; if (so_desc->NumEntries) diff --git a/tests/hlsl/bitwise.shader_test b/tests/hlsl/bitwise.shader_test index 095c9f77d..6dd89eebe 100644 --- a/tests/hlsl/bitwise.shader_test +++ b/tests/hlsl/bitwise.shader_test @@ -243,5 +243,5 @@ float4 main() : sv_target
[test] uniform 0 uint64_t2 0x300000000 0x500000000 -todo draw quad -probe all rgba (25769803776.0, 4294967296.0, 30064771072.0, 1.844674404e19) 1 +draw quad +todo probe all rgba (25769803776.0, 4294967296.0, 30064771072.0, 1.844674404e19) 1