Signed-off-by: Matteo Bruni mbruni@codeweavers.com --- v2: Add a couple of small comments. v3: Split the test out to a separate patch, remove comment again since it doesn't apply anymore. v4: Compute stream map at declaration creation time.
dlls/d3d9/d3d9_private.h | 1 + dlls/d3d9/device.c | 8 +++++++- dlls/d3d9/vertexdeclaration.c | 8 ++++++-- 3 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/dlls/d3d9/d3d9_private.h b/dlls/d3d9/d3d9_private.h index 3fe0376e5c1..b07d72a0662 100644 --- a/dlls/d3d9/d3d9_private.h +++ b/dlls/d3d9/d3d9_private.h @@ -251,6 +251,7 @@ struct d3d9_vertex_declaration LONG refcount; D3DVERTEXELEMENT9 *elements; UINT element_count; + DWORD stream_map; struct wined3d_vertex_declaration *wined3d_declaration; DWORD fvf; IDirect3DDevice9Ex *parent_device; diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c index 6cc3f180b09..5d59fd570ce 100644 --- a/dlls/d3d9/device.c +++ b/dlls/d3d9/device.c @@ -2730,9 +2730,11 @@ static void d3d9_generate_auto_mipmaps(struct d3d9_device *device) static void d3d9_device_upload_sysmem_vertex_buffers(struct d3d9_device *device, int base_vertex, unsigned int start_vertex, unsigned int vertex_count) { + struct wined3d_vertex_declaration *wined3d_decl; struct wined3d_box box = {0, 0, 0, 1, 0, 1}; struct d3d9_vertexbuffer *d3d9_buffer; struct wined3d_resource *dst_resource; + struct d3d9_vertex_declaration *decl; unsigned int i, offset, stride, map; struct wined3d_buffer *dst_buffer; struct wined3d_resource_desc desc; @@ -2740,13 +2742,17 @@ static void d3d9_device_upload_sysmem_vertex_buffers(struct d3d9_device *device,
if (!device->sysmem_vb) return; + wined3d_decl = wined3d_device_get_vertex_declaration(device->wined3d_device); + if (!wined3d_decl) + return;
if (base_vertex >= 0 || start_vertex >= -base_vertex) start_vertex += base_vertex; else FIXME("System memory vertex data offset is negative.\n");
- map = device->sysmem_vb; + decl = wined3d_vertex_declaration_get_parent(wined3d_decl); + map = decl->stream_map & device->sysmem_vb; while (map) { i = wined3d_bit_scan(&map); diff --git a/dlls/d3d9/vertexdeclaration.c b/dlls/d3d9/vertexdeclaration.c index b6445255238..130383e5d1e 100644 --- a/dlls/d3d9/vertexdeclaration.c +++ b/dlls/d3d9/vertexdeclaration.c @@ -321,7 +321,7 @@ static const struct wined3d_parent_ops d3d9_vertexdeclaration_wined3d_parent_ops };
static HRESULT convert_to_wined3d_declaration(const D3DVERTEXELEMENT9 *d3d9_elements, - struct wined3d_vertex_element **wined3d_elements, UINT *element_count) + struct wined3d_vertex_element **wined3d_elements, UINT *element_count, DWORD *stream_map) { const D3DVERTEXELEMENT9* element; UINT count = 1; @@ -329,6 +329,8 @@ static HRESULT convert_to_wined3d_declaration(const D3DVERTEXELEMENT9 *d3d9_elem
TRACE("d3d9_elements %p, wined3d_elements %p, element_count %p\n", d3d9_elements, wined3d_elements, element_count);
+ *stream_map = 0; + element = d3d9_elements; while (element++->Stream != 0xff && count++ < 128);
@@ -360,6 +362,7 @@ static HRESULT convert_to_wined3d_declaration(const D3DVERTEXELEMENT9 *d3d9_elem (*wined3d_elements)[i].method = d3d9_elements[i].Method; (*wined3d_elements)[i].usage = d3d9_elements[i].Usage; (*wined3d_elements)[i].usage_idx = d3d9_elements[i].UsageIndex; + *stream_map |= 1u << d3d9_elements[i].Stream; }
*element_count = count; @@ -375,7 +378,8 @@ static HRESULT vertexdeclaration_init(struct d3d9_vertex_declaration *declaratio UINT element_count; HRESULT hr;
- hr = convert_to_wined3d_declaration(elements, &wined3d_elements, &wined3d_element_count); + hr = convert_to_wined3d_declaration(elements, &wined3d_elements, &wined3d_element_count, + &declaration->stream_map); if (FAILED(hr)) { WARN("Failed to create wined3d vertex declaration elements, hr %#x.\n", hr);
Signed-off-by: Matteo Bruni mbruni@codeweavers.com --- v2: Add a couple of small comments. v3: Split the test out to a separate patch, remove comment again since it doesn't apply anymore. v4: Compute stream map at declaration creation time.
dlls/d3d8/d3d8_private.h | 1 + dlls/d3d8/device.c | 12 +++++++++++- dlls/d3d8/vertexdeclaration.c | 9 +++++++-- 3 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/dlls/d3d8/d3d8_private.h b/dlls/d3d8/d3d8_private.h index 7c44f07c5ea..0f861658cf4 100644 --- a/dlls/d3d8/d3d8_private.h +++ b/dlls/d3d8/d3d8_private.h @@ -251,6 +251,7 @@ struct d3d8_vertex_declaration { DWORD *elements; DWORD elements_size; /* Size of elements, in bytes */ + DWORD stream_map; struct wined3d_vertex_declaration *wined3d_vertex_declaration; DWORD shader_handle; }; diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c index d367f4200cc..56c363cfd12 100644 --- a/dlls/d3d8/device.c +++ b/dlls/d3d8/device.c @@ -2269,15 +2269,25 @@ static HRESULT WINAPI d3d8_device_GetCurrentTexturePalette(IDirect3DDevice8 *ifa static void d3d8_device_upload_sysmem_vertex_buffers(struct d3d8_device *device, unsigned int start_vertex, unsigned int vertex_count) { + struct wined3d_vertex_declaration *wined3d_decl; struct wined3d_box box = {0, 0, 0, 1, 0, 1}; struct d3d8_vertexbuffer *d3d8_buffer; struct wined3d_resource *dst_resource; + struct d3d8_vertex_declaration *decl; unsigned int i, offset, stride, map; struct wined3d_buffer *dst_buffer; struct wined3d_resource_desc desc; HRESULT hr;
- map = device->sysmem_vb; + if (!device->sysmem_vb) + return; + + wined3d_decl = wined3d_device_get_vertex_declaration(device->wined3d_device); + if (!wined3d_decl) + return; + + decl = wined3d_vertex_declaration_get_parent(wined3d_decl); + map = decl->stream_map & device->sysmem_vb; while (map) { i = wined3d_bit_scan(&map); diff --git a/dlls/d3d8/vertexdeclaration.c b/dlls/d3d8/vertexdeclaration.c index 709e04bace4..c2d0b9f7535 100644 --- a/dlls/d3d8/vertexdeclaration.c +++ b/dlls/d3d8/vertexdeclaration.c @@ -250,7 +250,7 @@ wined3d_usage_lookup[] =
/* TODO: find out where rhw (or positionT) is for declaration8 */ static UINT convert_to_wined3d_declaration(const DWORD *d3d8_elements, DWORD *d3d8_elements_size, - struct wined3d_vertex_element **wined3d_elements) + struct wined3d_vertex_element **wined3d_elements, DWORD *stream_map) { struct wined3d_vertex_element *element; const DWORD *token = d3d8_elements; @@ -261,6 +261,7 @@ static UINT convert_to_wined3d_declaration(const DWORD *d3d8_elements, DWORD *d3
TRACE("d3d8_elements %p, d3d8_elements_size %p, wined3d_elements %p\n", d3d8_elements, d3d8_elements_size, wined3d_elements);
+ *stream_map = 0; /* 128 should be enough for anyone... */ *wined3d_elements = heap_alloc_zero(128 * sizeof(**wined3d_elements)); while (D3DVSD_END() != *token) @@ -288,6 +289,8 @@ static UINT convert_to_wined3d_declaration(const DWORD *d3d8_elements, DWORD *d3 element->usage = wined3d_usage_lookup[reg].usage; element->usage_idx = wined3d_usage_lookup[reg].usage_idx;
+ *stream_map |= 1u << stream; + offset += wined3d_type_sizes[type]; } else if (token_type == D3DVSD_TOKEN_STREAMDATA && (*token & D3DVSD_DATALOADTYPEMASK)) { TRACE(" 0x%08x SKIP(%u)\n", token_type, ((token_type & D3DVSD_SKIPCOUNTMASK) >> D3DVSD_SKIPCOUNTSHIFT)); @@ -337,7 +340,8 @@ HRESULT d3d8_vertex_declaration_init(struct d3d8_vertex_declaration *declaration
declaration->shader_handle = shader_handle;
- wined3d_element_count = convert_to_wined3d_declaration(elements, &declaration->elements_size, &wined3d_elements); + wined3d_element_count = convert_to_wined3d_declaration(elements, &declaration->elements_size, + &wined3d_elements, &declaration->stream_map); if (!(declaration->elements = heap_alloc(declaration->elements_size))) { ERR("Failed to allocate vertex declaration elements memory.\n"); @@ -369,6 +373,7 @@ HRESULT d3d8_vertex_declaration_init_fvf(struct d3d8_vertex_declaration *declara
declaration->elements = NULL; declaration->elements_size = 0; + declaration->stream_map = 1; declaration->shader_handle = fvf;
hr = wined3d_vertex_declaration_create_from_fvf(device->wined3d_device, fvf, declaration,
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=48772
Your paranoid android.
=== debian9 (build log) ===
X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig)
=== debian9 (build log) ===
X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig)
Signed-off-by: Henri Verbeet hverbeet@codeweavers.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46579 Signed-off-by: Matteo Bruni mbruni@codeweavers.com --- dlls/d3d9/directx.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/d3d9/directx.c b/dlls/d3d9/directx.c index eab114d19c6..c507991aaa4 100644 --- a/dlls/d3d9/directx.c +++ b/dlls/d3d9/directx.c @@ -255,10 +255,11 @@ static HRESULT WINAPI d3d9_CheckDeviceFormat(IDirect3D9Ex *iface, UINT adapter, TRACE("iface %p, adapter %u, device_type %#x, adapter_format %#x, usage %#x, resource_type %#x, format %#x.\n", iface, adapter, device_type, adapter_format, usage, resource_type, format);
- if (!adapter_format) + if (adapter_format != D3DFMT_X8R8G8B8 && adapter_format != D3DFMT_R5G6B5 + && adapter_format != D3DFMT_X1R5G5B5) { WARN("Invalid adapter format.\n"); - return D3DERR_INVALIDCALL; + return adapter_format ? D3DERR_NOTAVAILABLE : D3DERR_INVALIDCALL; }
bind_flags = wined3d_bind_flags_from_d3d9_usage(usage);
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=48773
Your paranoid android.
=== debian9 (build log) ===
X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig)
=== debian9 (build log) ===
X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig)
Signed-off-by: Henri Verbeet hverbeet@codeweavers.com
Signed-off-by: Matteo Bruni mbruni@codeweavers.com --- dlls/d3d9/tests/device.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c index 7d8b4fdfcd4..b7e34b07df6 100644 --- a/dlls/d3d9/tests/device.c +++ b/dlls/d3d9/tests/device.c @@ -7319,12 +7319,20 @@ static void test_mipmap_gen(void)
for (i = 0; i < ARRAY_SIZE(formats); ++i) { + hr = IDirect3D9_CheckDeviceFormat(d3d, 0, D3DDEVTYPE_HAL, D3DFMT_A8R8G8B8, + D3DUSAGE_DYNAMIC | D3DUSAGE_AUTOGENMIPMAP, D3DRTYPE_TEXTURE, formats[i]); + ok(hr == D3DERR_NOTAVAILABLE, "Got unexpected hr %#x.\n", hr); + hr = IDirect3D9_CheckDeviceFormat(d3d, 0, D3DDEVTYPE_HAL, D3DFMT_X8R8G8B8, D3DUSAGE_AUTOGENMIPMAP, D3DRTYPE_TEXTURE, formats[i]); if (SUCCEEDED(hr)) { /* i.e. there is no difference between the D3D_OK and the * D3DOK_NOAUTOGEN cases. */ + hr = IDirect3DDevice9_CreateTexture(device, 64, 64, 0, D3DUSAGE_AUTOGENMIPMAP, + formats[i], D3DPOOL_SYSTEMMEM, &texture, 0); + ok(hr == D3DERR_INVALIDCALL, "Unexpected hr %#x.\n", hr); + hr = IDirect3DDevice9_CreateTexture(device, 64, 64, 0, D3DUSAGE_AUTOGENMIPMAP, formats[i], D3DPOOL_DEFAULT, &texture, 0); ok(hr == D3D_OK, "Unexpected hr %#x.\n", hr);
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=48774
Your paranoid android.
=== debian9 (build log) ===
X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig)
=== debian9 (build log) ===
X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig)
Signed-off-by: Henri Verbeet hverbeet@codeweavers.com
Signed-off-by: Matteo Bruni mbruni@codeweavers.com --- dlls/d3d9/tests/device.c | 51 +++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 27 deletions(-)
diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c index b7e34b07df6..301e4f4c9eb 100644 --- a/dlls/d3d9/tests/device.c +++ b/dlls/d3d9/tests/device.c @@ -11671,11 +11671,6 @@ static void test_swapchain_parameters(void)
static void test_check_device_format(void) { - static const D3DFORMAT adapter_formats[] = - { - D3DFMT_A8R8G8B8, - D3DFMT_X8R8G8B8, - }; static const D3DFORMAT mipmap_autogen_formats[] = { D3DFMT_R8G8B8, @@ -11689,11 +11684,11 @@ static void test_check_device_format(void) D3DFMT_A4R4G4B4, };
- D3DFORMAT adapter_format, format; BOOL render_target_supported; D3DDEVTYPE device_type; - unsigned int i, j; + D3DFORMAT format; IDirect3D9 *d3d; + unsigned int i; HRESULT hr;
d3d = Direct3DCreate9(D3D_SDK_VERSION); @@ -11750,29 +11745,31 @@ static void test_check_device_format(void) D3DUSAGE_SOFTWAREPROCESSING, D3DRTYPE_INDEXBUFFER, D3DFMT_INDEX16); todo_wine ok(hr == D3DERR_INVALIDCALL, "Got unexpected hr %#x.\n", hr);
- for (i = 0; i < ARRAY_SIZE(adapter_formats); ++i) - { - adapter_format = adapter_formats[i]; + hr = IDirect3D9_CheckDeviceFormat(d3d, 0, D3DDEVTYPE_HAL, D3DFMT_A8R8G8B8, + 0, D3DRTYPE_TEXTURE, D3DFMT_X8R8G8B8); + ok(hr == D3DERR_NOTAVAILABLE, "Got unexpected hr %#x.\n", hr); + hr = IDirect3D9_CheckDeviceFormat(d3d, 0, D3DDEVTYPE_HAL, D3DFMT_X8R8G8B8, + 0, D3DRTYPE_TEXTURE, D3DFMT_X8R8G8B8); + ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
- for (j = 0; j < ARRAY_SIZE(mipmap_autogen_formats); ++j) - { - format = mipmap_autogen_formats[j]; + for (i = 0; i < ARRAY_SIZE(mipmap_autogen_formats); ++i) + { + format = mipmap_autogen_formats[i];
- hr = IDirect3D9_CheckDeviceFormat(d3d, 0, D3DDEVTYPE_HAL, adapter_format, - D3DUSAGE_RENDERTARGET, D3DRTYPE_TEXTURE, format); - ok(hr == D3D_OK || hr == D3DERR_NOTAVAILABLE, "Got unexpected hr %#x.\n", hr); - render_target_supported = hr == D3D_OK; + hr = IDirect3D9_CheckDeviceFormat(d3d, 0, D3DDEVTYPE_HAL, D3DFMT_X8R8G8B8, + D3DUSAGE_RENDERTARGET, D3DRTYPE_TEXTURE, format); + ok(hr == D3D_OK || hr == D3DERR_NOTAVAILABLE, "Got unexpected hr %#x.\n", hr); + render_target_supported = hr == D3D_OK;
- hr = IDirect3D9_CheckDeviceFormat(d3d, 0, D3DDEVTYPE_HAL, adapter_format, - D3DUSAGE_RENDERTARGET | D3DUSAGE_AUTOGENMIPMAP, D3DRTYPE_TEXTURE, format); - if (render_target_supported) - { - ok(hr == D3D_OK || hr == D3DOK_NOAUTOGEN, "Got unexpected hr %#x.\n", hr); - } - else - { - ok(hr == D3DERR_NOTAVAILABLE, "Got unexpected hr %#x.\n", hr); - } + hr = IDirect3D9_CheckDeviceFormat(d3d, 0, D3DDEVTYPE_HAL, D3DFMT_X8R8G8B8, + D3DUSAGE_RENDERTARGET | D3DUSAGE_AUTOGENMIPMAP, D3DRTYPE_TEXTURE, format); + if (render_target_supported) + { + ok(hr == D3D_OK || hr == D3DOK_NOAUTOGEN, "Got unexpected hr %#x.\n", hr); + } + else + { + ok(hr == D3DERR_NOTAVAILABLE, "Got unexpected hr %#x.\n", hr); } }
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=48775
Your paranoid android.
=== wxppro (32 bit report) ===
d3d9: device.c:11753: Test failed: Got unexpected hr 0x8876086a.
=== w2003std (32 bit report) ===
d3d9: device.c:11753: Test failed: Got unexpected hr 0x8876086a.
=== wvistau64 (32 bit report) ===
d3d9: device.c:11753: Test failed: Got unexpected hr 0x8876086a.
=== wvistau64_zh_CN (32 bit report) ===
d3d9: device.c:11753: Test failed: Got unexpected hr 0x8876086a.
=== wvistau64_fr (32 bit report) ===
d3d9: device.c:11753: Test failed: Got unexpected hr 0x8876086a.
=== wvistau64_he (32 bit report) ===
d3d9: device.c:11753: Test failed: Got unexpected hr 0x8876086a.
=== w2008s64 (32 bit report) ===
d3d9: device.c:11753: Test failed: Got unexpected hr 0x8876086a.
=== w7u (32 bit report) ===
d3d9: device.c:11753: Test failed: Got unexpected hr 0x8876086a.
=== w7pro64 (32 bit report) ===
d3d9: device.c:11753: Test failed: Got unexpected hr 0x8876086a.
=== wvistau64 (64 bit report) ===
d3d9: device.c:11753: Test failed: Got unexpected hr 0x8876086a.
=== w2008s64 (64 bit report) ===
d3d9: device.c:11753: Test failed: Got unexpected hr 0x8876086a.
=== w7pro64 (64 bit report) ===
d3d9: device.c:11753: Test failed: Got unexpected hr 0x8876086a.
=== debian9 (build log) ===
X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig)
=== debian9 (build log) ===
X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig)
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=48771
Your paranoid android.
=== debian9 (build log) ===
X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig)
=== debian9 (build log) ===
X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 21 (RRSetCrtcConfig)