Module: wine Branch: master Commit: ce63bd29457e42edb501df8104aff9435e1e1cb5 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ce63bd29457e42edb501df8104...
Author: Józef Kucia jkucia@codeweavers.com Date: Sun Aug 21 23:17:58 2016 +0200
d3d11: Compare semantic names ignoring case.
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/inputlayout.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/dlls/d3d11/inputlayout.c b/dlls/d3d11/inputlayout.c index 69ef985..7604f05 100644 --- a/dlls/d3d11/inputlayout.c +++ b/dlls/d3d11/inputlayout.c @@ -44,11 +44,10 @@ static HRESULT d3d11_input_layout_to_wined3d_declaration(const D3D11_INPUT_ELEME struct wined3d_vertex_element **wined3d_elements) { struct wined3d_shader_signature is; + unsigned int i; HRESULT hr; - UINT i;
- hr = parse_dxbc(shader_byte_code, shader_byte_code_length, isgn_handler, &is); - if (FAILED(hr)) + if (FAILED(hr = parse_dxbc(shader_byte_code, shader_byte_code_length, isgn_handler, &is))) { ERR("Failed to parse input signature.\n"); return E_FAIL; @@ -65,7 +64,7 @@ static HRESULT d3d11_input_layout_to_wined3d_declaration(const D3D11_INPUT_ELEME { struct wined3d_vertex_element *e = &(*wined3d_elements)[i]; const D3D11_INPUT_ELEMENT_DESC *f = &element_descs[i]; - UINT j; + unsigned int j;
e->format = wined3dformat_from_dxgi_format(f->Format); e->input_slot = f->InputSlot; @@ -79,13 +78,16 @@ static HRESULT d3d11_input_layout_to_wined3d_declaration(const D3D11_INPUT_ELEME
for (j = 0; j < is.element_count; ++j) { - if (!strcmp(element_descs[i].SemanticName, is.elements[j].semantic_name) + if (!strcasecmp(element_descs[i].SemanticName, is.elements[j].semantic_name) && element_descs[i].SemanticIndex == is.elements[j].semantic_idx) { e->output_slot = is.elements[j].register_idx; break; } } + + if (e->output_slot == WINED3D_OUTPUT_SLOT_UNUSED) + WARN("Unused input element %u.\n", i); }
shader_free_signature(&is);