mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-12-15 08:03:30 -08:00
tests/hlsl: Skip a d3d11 minimum precision array indexing test on NVIDIA.
This commit is contained in:
committed by
Henri Verbeet
parent
9fab94c58e
commit
87435aca8a
Notes:
Henri Verbeet
2025-09-29 13:05:17 +02:00
Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1751
@@ -332,13 +332,14 @@ if(sm>=6) uniform 4 uint 0x4200
|
||||
uniform 5 uint 2
|
||||
uniform 8 uint 2
|
||||
todo(sm>=6) draw quad
|
||||
probe (0, 0) rgba(10.25, 3.5, 0.0, 0.0)
|
||||
% With the NVIDIA d3d11 driver `arr[x]' seems to evaluate to `arr[0]' independently of x.
|
||||
if(!d3d11 | !nvidia) probe (0, 0) f32(10.25, 3.5, 0.0, 0.0)
|
||||
uniform 0 uint 0
|
||||
uniform 4 uint 0
|
||||
uniform 5 uint 0
|
||||
uniform 8 uint 0
|
||||
todo(sm>=6) draw quad
|
||||
probe (0, 0) rgba(1.0, 2.0, 0, 0)
|
||||
if(!d3d11 | !nvidia) probe (0, 0) f32(1.0, 2.0, 0, 0)
|
||||
|
||||
[pixel shader]
|
||||
uniform min16float u[4];
|
||||
|
||||
@@ -151,6 +151,7 @@ static bool check_qualifier_args_conjunction(struct shader_runner *runner,
|
||||
* prefix of X. */
|
||||
static const char *const valid_tags[] =
|
||||
{
|
||||
"d3d11",
|
||||
"d3d12",
|
||||
"glsl",
|
||||
"llvmpipe",
|
||||
@@ -158,6 +159,7 @@ static bool check_qualifier_args_conjunction(struct shader_runner *runner,
|
||||
"msl",
|
||||
"mvk<1.2.11",
|
||||
"mvk",
|
||||
"nvidia",
|
||||
"opengl",
|
||||
"vulkan",
|
||||
"warp",
|
||||
|
||||
@@ -258,6 +258,39 @@ static bool get_format_support(ID3D11Device *device, enum DXGI_FORMAT format)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static bool get_adapter_desc(ID3D11Device *device, DXGI_ADAPTER_DESC *desc)
|
||||
{
|
||||
IDXGIDevice *dxgi_device;
|
||||
IDXGIAdapter *adapter;
|
||||
HRESULT hr;
|
||||
|
||||
memset(desc, 0, sizeof(*desc));
|
||||
|
||||
if (!vkd3d_test_platform_is_windows())
|
||||
return false;
|
||||
|
||||
hr = ID3D11Device_QueryInterface(device, &IID_IDXGIDevice, (void **)&dxgi_device);
|
||||
ok(hr == S_OK, "Failed to get DXGI device, hr %#lx.\n", hr);
|
||||
|
||||
hr = IDXGIDevice_GetAdapter(dxgi_device, &adapter);
|
||||
ok(hr == S_OK, "Failed to get DXGI adapter, hr %#lx.\n", hr);
|
||||
|
||||
hr = IDXGIAdapter_GetDesc(adapter, desc);
|
||||
ok(hr == S_OK, "Failed to get adapter desc, hr %#lx.\n", hr);
|
||||
|
||||
IDXGIAdapter_Release(adapter);
|
||||
IDXGIDevice_Release(dxgi_device);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool is_nvidia_windows_device(ID3D11Device *device)
|
||||
{
|
||||
DXGI_ADAPTER_DESC desc;
|
||||
|
||||
return get_adapter_desc(device, &desc) && desc.VendorId == 0x10de;
|
||||
}
|
||||
|
||||
static BOOL init_test_context(struct d3d11_shader_runner *runner)
|
||||
{
|
||||
D3D11_FEATURE_DATA_D3D11_OPTIONS2 options2 = {0};
|
||||
@@ -326,8 +359,11 @@ static BOOL init_test_context(struct d3d11_shader_runner *runner)
|
||||
}
|
||||
|
||||
runner->caps.tag_count = 0;
|
||||
runner->caps.tags[runner->caps.tag_count++] = "d3d11";
|
||||
if (test_options.use_warp_device)
|
||||
runner->caps.tags[runner->caps.tag_count++] = "warp";
|
||||
if (is_nvidia_windows_device(runner->device))
|
||||
runner->caps.tags[runner->caps.tag_count++] = "nvidia";
|
||||
|
||||
rt_width = RENDER_TARGET_WIDTH;
|
||||
rt_height = RENDER_TARGET_HEIGHT;
|
||||
|
||||
Reference in New Issue
Block a user