Module: wine Branch: master Commit: 9b6430927a8a8a508973bf97d23d7d3c57eb2132 URL: http://source.winehq.org/git/wine.git/?a=commit;h=9b6430927a8a8a508973bf97d2...
Author: Józef Kucia jkucia@codeweavers.com Date: Fri Apr 8 13:26:37 2016 +0200
d3d11/tests: Add more tests for texture data initialization.
Signed-off-by: Józef Kucia jkucia@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/d3d11/tests/d3d11.c | 72 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 58 insertions(+), 14 deletions(-)
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c index f758583..30bda07 100644 --- a/dlls/d3d11/tests/d3d11.c +++ b/dlls/d3d11/tests/d3d11.c @@ -5262,13 +5262,13 @@ done: ok(!refcount, "Device has %u references left.\n", refcount); }
-static void test_multisample_init(void) +static void test_texture_data_init(void) { static const float white[] = {1.0f, 1.0f, 1.0f, 1.0f}; struct d3d11_test_context test_context; ID3D11DeviceContext *context; D3D11_TEXTURE2D_DESC desc; - ID3D11Texture2D *multi; + ID3D11Texture2D *texture; ID3D11Device *device; UINT count = 0; HRESULT hr; @@ -5279,37 +5279,81 @@ static void test_multisample_init(void) device = test_context.device; context = test_context.immediate_context;
+ desc.Width = 640; + desc.Height = 480; + desc.MipLevels = 1; + desc.ArraySize = 1; + desc.SampleDesc.Count = 1; + desc.SampleDesc.Quality = 0; + desc.Usage = D3D11_USAGE_DEFAULT; + desc.BindFlags = 0; + desc.CPUAccessFlags = 0; + desc.MiscFlags = 0; + + desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; + hr = ID3D11Device_CreateTexture2D(device, &desc, NULL, &texture); + ok(SUCCEEDED(hr), "Failed to create texture, hr %#x.\n", hr); + check_texture_color(texture, 0x00000000, 0); + ID3D11Texture2D_Release(texture); + + desc.Format = DXGI_FORMAT_D24_UNORM_S8_UINT; + hr = ID3D11Device_CreateTexture2D(device, &desc, NULL, &texture); + ok(SUCCEEDED(hr), "Failed to create texture, hr %#x.\n", hr); + check_texture_color(texture, 0x00000000, 0); + ID3D11Texture2D_Release(texture); + + desc.Format = DXGI_FORMAT_D32_FLOAT; + hr = ID3D11Device_CreateTexture2D(device, &desc, NULL, &texture); + ok(SUCCEEDED(hr), "Failed to create texture, hr %#x.\n", hr); + check_texture_float(texture, 0.0f, 0); + ID3D11Texture2D_Release(texture); + + desc.ArraySize = 4; + + desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; + hr = ID3D11Device_CreateTexture2D(device, &desc, NULL, &texture); + ok(SUCCEEDED(hr), "Failed to create texture, hr %#x.\n", hr); + check_texture_float(texture, 0.0f, 0); + ID3D11Texture2D_Release(texture); + + desc.Format = DXGI_FORMAT_D24_UNORM_S8_UINT; + hr = ID3D11Device_CreateTexture2D(device, &desc, NULL, &texture); + ok(SUCCEEDED(hr), "Failed to create texture, hr %#x.\n", hr); + check_texture_color(texture, 0x00000000, 0); + ID3D11Texture2D_Release(texture); + + desc.Format = DXGI_FORMAT_D32_FLOAT; + hr = ID3D11Device_CreateTexture2D(device, &desc, NULL, &texture); + ok(SUCCEEDED(hr), "Failed to create texture, hr %#x.\n", hr); + check_texture_float(texture, 0.0f, 0); + ID3D11Texture2D_Release(texture); + hr = ID3D11Device_CheckMultisampleQualityLevels(device, DXGI_FORMAT_R8G8B8A8_UNORM, 2, &count); ok(SUCCEEDED(hr), "Failed to get quality levels, hr %#x.\n", hr); if (!count) { skip("Multisampling not supported for DXGI_FORMAT_R8G8B8A8_UNORM, skipping tests.\n"); - goto done; + release_test_context(&test_context); + return; }
ID3D11DeviceContext_ClearRenderTargetView(context, test_context.backbuffer_rtv, white);
- desc.Width = 640; - desc.Height = 480; - desc.MipLevels = 1; desc.ArraySize = 1; desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; desc.SampleDesc.Count = 2; desc.SampleDesc.Quality = 0; - desc.Usage = D3D11_USAGE_DEFAULT; desc.BindFlags = D3D11_BIND_RENDER_TARGET; - desc.CPUAccessFlags = 0; - desc.MiscFlags = 0; - hr = ID3D11Device_CreateTexture2D(device, &desc, NULL, &multi); + hr = ID3D11Device_CreateTexture2D(device, &desc, NULL, &texture); ok(SUCCEEDED(hr), "Failed to create texture, hr %#x.\n", hr);
ID3D11DeviceContext_ResolveSubresource(context, (ID3D11Resource *)test_context.backbuffer, 0, - (ID3D11Resource *)multi, 0, DXGI_FORMAT_R8G8B8A8_UNORM); + (ID3D11Resource *)texture, 0, DXGI_FORMAT_R8G8B8A8_UNORM);
todo_wine check_texture_color(test_context.backbuffer, 0x00000000, 0);
- ID3D11Texture2D_Release(multi); -done: + ID3D11Texture2D_Release(texture); + release_test_context(&test_context); }
@@ -6232,7 +6276,7 @@ START_TEST(d3d11) test_update_subresource(); test_copy_subresource_region(); test_resource_map(); - test_multisample_init(); + test_texture_data_init(); test_check_multisample_quality_levels(); test_swapchain_flip(); test_clear_render_target_view();