Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
7dfd32d5
Commit
7dfd32d5
authored
Apr 04, 2023
by
Henri Verbeet
Committed by
Alexandre Julliard
Apr 18, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
d3dcompiler: Use vkd3d_shader_parse_dxbc() in d3dcompiler_get_blob_part().
parent
8455b47b
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
13 additions
and
11 deletions
+13
-11
blob.c
dlls/d3dcompiler_43/blob.c
+10
-10
blob.c
dlls/d3dcompiler_43/tests/blob.c
+1
-1
wined3d.spec
dlls/wined3d/wined3d.spec
+2
-0
No files found.
dlls/d3dcompiler_43/blob.c
View file @
7dfd32d5
...
...
@@ -216,10 +216,11 @@ static BOOL check_blob_part(DWORD tag, D3D_BLOB_PART part)
static
HRESULT
d3dcompiler_get_blob_part
(
const
void
*
data
,
SIZE_T
data_size
,
D3D_BLOB_PART
part
,
UINT
flags
,
ID3DBlob
**
blob
)
{
const
struct
vkd3d_shader_code
src_dxbc
=
{.
code
=
data
,
.
size
=
data_size
};
struct
vkd3d_shader_dxbc_section_desc
*
sections
;
struct
vkd3d_shader_dxbc_desc
src_dxbc_desc
;
struct
vkd3d_shader_code
dst_dxbc
;
unsigned
int
section_count
,
i
;
struct
dxbc
src_dxbc
;
HRESULT
hr
;
int
ret
;
...
...
@@ -236,23 +237,22 @@ static HRESULT d3dcompiler_get_blob_part(const void *data, SIZE_T data_size, D3D
return
D3DERR_INVALIDCALL
;
}
hr
=
dxbc_parse
(
data
,
data_size
,
&
src_dxbc
);
if
(
FAILED
(
hr
))
if
((
ret
=
vkd3d_shader_parse_dxbc
(
&
src_dxbc
,
0
,
&
src_dxbc_desc
,
NULL
))
<
0
)
{
WARN
(
"Failed to parse
blob part
\n
"
);
return
hr
;
WARN
(
"Failed to parse
source data, ret %d.
\n
"
,
ret
);
return
E_FAIL
;
}
if
(
!
(
sections
=
calloc
(
src_dxbc
.
count
,
sizeof
(
*
sections
))))
if
(
!
(
sections
=
calloc
(
src_dxbc
_desc
.
section_
count
,
sizeof
(
*
sections
))))
{
ERR
(
"Failed to allocate sections memory.
\n
"
);
dxbc_destroy
(
&
src_dxb
c
);
vkd3d_shader_free_dxbc
(
&
src_dxbc_des
c
);
return
E_OUTOFMEMORY
;
}
for
(
i
=
0
,
section_count
=
0
;
i
<
src_dxbc
.
count
;
++
i
)
for
(
i
=
0
,
section_count
=
0
;
i
<
src_dxbc
_desc
.
section_
count
;
++
i
)
{
const
struct
vkd3d_shader_dxbc_section_desc
*
src_section
=
&
src_dxbc
.
sections
[
i
];
const
struct
vkd3d_shader_dxbc_section_desc
*
src_section
=
&
src_dxbc
_desc
.
sections
[
i
];
if
(
check_blob_part
(
src_section
->
tag
,
part
))
sections
[
section_count
++
]
=
*
src_section
;
...
...
@@ -315,7 +315,7 @@ static HRESULT d3dcompiler_get_blob_part(const void *data, SIZE_T data_size, D3D
done:
free
(
sections
);
dxbc_destroy
(
&
src_dxb
c
);
vkd3d_shader_free_dxbc
(
&
src_dxbc_des
c
);
return
hr
;
}
...
...
dlls/d3dcompiler_43/tests/blob.c
View file @
7dfd32d5
...
...
@@ -155,7 +155,7 @@ static void test_get_blob_part(void)
ok
(
blob2
==
blob
,
"D3DGetBlobPart failed got %p, expected %p
\n
"
,
blob
,
blob2
);
hr
=
D3DGetBlobPart
(
test_blob_part
,
8
*
sizeof
(
DWORD
),
D3D_BLOB_INPUT_SIGNATURE_BLOB
,
0
,
&
blob
);
#if D3D_COMPILER_VERSION
<
46
#if D3D_COMPILER_VERSION
>=
46
todo_wine
#endif
ok
(
hr
==
expected
,
"Got unexpected hr %#lx.
\n
"
,
hr
);
...
...
dlls/wined3d/wined3d.spec
View file @
7dfd32d5
...
...
@@ -347,6 +347,7 @@
@ cdecl vkd3d_shader_compile(ptr ptr ptr)
@ cdecl vkd3d_shader_convert_root_signature(ptr long ptr)
@ cdecl vkd3d_shader_find_signature_element(ptr ptr long long)
@ cdecl vkd3d_shader_free_dxbc(ptr)
@ cdecl vkd3d_shader_free_messages(ptr)
@ cdecl vkd3d_shader_free_root_signature(ptr)
@ cdecl vkd3d_shader_free_scan_descriptor_info(ptr)
...
...
@@ -355,6 +356,7 @@
@ cdecl vkd3d_shader_get_supported_source_types(ptr)
@ cdecl vkd3d_shader_get_supported_target_types(long ptr)
@ cdecl vkd3d_shader_get_version(ptr ptr)
@ cdecl vkd3d_shader_parse_dxbc(ptr long ptr ptr)
@ cdecl vkd3d_shader_parse_input_signature(ptr ptr ptr)
@ cdecl vkd3d_shader_parse_root_signature(ptr ptr ptr)
@ cdecl vkd3d_shader_preprocess(ptr ptr ptr)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment