Nikolay Sivov : d3d10/effect: Set IsInline in GetShaderDesc().

Alexandre Julliard julliard at winehq.org
Thu Sep 2 15:45:31 CDT 2021


Module: wine
Branch: master
Commit: ff32b78e780494172acbe4df27a0cfe787278432
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=ff32b78e780494172acbe4df27a0cfe787278432

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Wed Sep  1 16:04:30 2021 +0300

d3d10/effect: Set IsInline in GetShaderDesc().

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/d3d10/d3d10_private.h | 1 +
 dlls/d3d10/effect.c        | 4 +++-
 dlls/d3d10/tests/effect.c  | 2 +-
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/dlls/d3d10/d3d10_private.h b/dlls/d3d10/d3d10_private.h
index 64c445ec07a..4d73121d6ca 100644
--- a/dlls/d3d10/d3d10_private.h
+++ b/dlls/d3d10/d3d10_private.h
@@ -118,6 +118,7 @@ struct d3d10_effect_shader_variable
     unsigned int resource_count;
     struct d3d10_effect_shader_resource *resources;
     char *stream_output_declaration;
+    unsigned int isinline : 1;
 };
 
 struct d3d10_effect_state_object_variable
diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c
index 81745f7f239..d521684f788 100644
--- a/dlls/d3d10/effect.c
+++ b/dlls/d3d10/effect.c
@@ -1409,6 +1409,7 @@ static HRESULT parse_fx10_anonymous_shader(struct d3d10_effect *e, struct d3d10_
 
     v->type = t;
     v->effect = e;
+    v->u.shader.isinline = 1;
     set_variable_vtbl(v);
 
     if (!copy_name("$Anonymous", &v->name))
@@ -7008,7 +7009,7 @@ static HRESULT STDMETHODCALLTYPE d3d10_effect_shader_variable_GetShaderDesc(
     D3D10_SHADER_DESC shader_desc;
     HRESULT hr;
 
-    FIXME("iface %p, index %u, desc %p semi-stub.\n", iface, index, desc);
+    TRACE("iface %p, index %u, desc %p.\n", iface, index, desc);
 
     if (FAILED(hr = d3d10_get_shader_variable(v, index, &s)))
         return hr;
@@ -7017,6 +7018,7 @@ static HRESULT STDMETHODCALLTYPE d3d10_effect_shader_variable_GetShaderDesc(
     if (s->input_signature)
         desc->pInputSignature = ID3D10Blob_GetBufferPointer(s->input_signature);
     desc->SODecl = s->stream_output_declaration;
+    desc->IsInline = s->isinline;
     if (s->bytecode)
     {
         desc->pBytecode = ID3D10Blob_GetBufferPointer(s->bytecode);
diff --git a/dlls/d3d10/tests/effect.c b/dlls/d3d10/tests/effect.c
index 70bcf1ea72b..f59686c26a3 100644
--- a/dlls/d3d10/tests/effect.c
+++ b/dlls/d3d10/tests/effect.c
@@ -3671,8 +3671,8 @@ if (0)
     ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
     hr = pdesc.pShaderVariable->lpVtbl->GetShaderDesc(pdesc.pShaderVariable, 0, &shaderdesc);
     ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
-todo_wine {
     ok(shaderdesc.IsInline, "Unexpected inline flag.\n");
+todo_wine {
     ok(shaderdesc.SODecl && !strcmp(shaderdesc.SODecl, "SV_POSITION.y"), "Unexpected stream output declaration %s.\n",
                 shaderdesc.SODecl);
 }




More information about the wine-cvs mailing list