From: Giovanni Mascellani <gmascellani(a)codeweavers.com>
---
demos/triangle.c | 20 +++++++---
demos/triangle.hlsl | 20 ----------
demos/triangle_hlsl.h | 21 ++++++++++
demos/triangle_ps.h | 73 -----------------------------------
demos/triangle_vs.h | 89 -------------------------------------------
5 files changed, 35 insertions(+), 188 deletions(-)
delete mode 100644 demos/triangle.hlsl
create mode 100644 demos/triangle_hlsl.h
delete mode 100644 demos/triangle_ps.h
delete mode 100644 demos/triangle_vs.h
diff --git a/demos/triangle.c b/demos/triangle.c
index bac1cdc5..b331da0c 100644
--- a/demos/triangle.c
+++ b/demos/triangle.c
@@ -45,8 +45,7 @@
#include <assert.h>
#include "demo.h"
-#include "triangle_vs.h"
-#include "triangle_ps.h"
+#include "triangle_hlsl.h"
struct cxt_fence
{
@@ -277,6 +276,7 @@ static void cxt_load_assets(struct cx_triangle *cxt)
D3D12_RESOURCE_DESC resource_desc;
D3D12_HEAP_PROPERTIES heap_desc;
D3D12_RANGE read_range = {0, 0};
+ ID3DBlob *vs, *ps;
HRESULT hr;
void *data;
@@ -285,14 +285,19 @@ static void cxt_load_assets(struct cx_triangle *cxt)
hr = demo_create_root_signature(cxt->device, &root_signature_desc,
&cxt->root_signature);
assert(SUCCEEDED(hr));
+ hr = D3DCompile(triangle_hlsl, strlen(triangle_hlsl), NULL, NULL, NULL,
"vs_main", "vs_5_0", 0, 0, &vs, NULL);
+ assert(SUCCEEDED(hr));
+ hr = D3DCompile(triangle_hlsl, strlen(triangle_hlsl), NULL, NULL, NULL,
"ps_main", "ps_5_0", 0, 0, &ps, NULL);
+ assert(SUCCEEDED(hr));
+
memset(&pso_desc, 0, sizeof(pso_desc));
pso_desc.InputLayout.pInputElementDescs = il_desc;
pso_desc.InputLayout.NumElements = ARRAY_SIZE(il_desc);
pso_desc.pRootSignature = cxt->root_signature;
- pso_desc.VS.pShaderBytecode = g_vs_main;
- pso_desc.VS.BytecodeLength = sizeof(g_vs_main);
- pso_desc.PS.pShaderBytecode = g_ps_main;
- pso_desc.PS.BytecodeLength = sizeof(g_ps_main);
+ pso_desc.VS.pShaderBytecode = ID3D10Blob_GetBufferPointer(vs);
+ pso_desc.VS.BytecodeLength = ID3D10Blob_GetBufferSize(vs);
+ pso_desc.PS.pShaderBytecode = ID3D10Blob_GetBufferPointer(ps);
+ pso_desc.PS.BytecodeLength = ID3D10Blob_GetBufferSize(ps);
demo_rasterizer_desc_init_default(&pso_desc.RasterizerState);
demo_blend_desc_init_default(&pso_desc.BlendState);
pso_desc.DepthStencilState.DepthEnable = FALSE;
@@ -306,6 +311,9 @@ static void cxt_load_assets(struct cx_triangle *cxt)
&IID_ID3D12PipelineState, (void **)&cxt->pipeline_state);
assert(SUCCEEDED(hr));
+ ID3D10Blob_Release(vs);
+ ID3D10Blob_Release(ps);
+
hr = ID3D12Device_CreateCommandList(cxt->device, 0,
D3D12_COMMAND_LIST_TYPE_DIRECT, cxt->command_allocator,
cxt->pipeline_state, &IID_ID3D12GraphicsCommandList, (void
**)&cxt->command_list);
assert(SUCCEEDED(hr));
diff --git a/demos/triangle.hlsl b/demos/triangle.hlsl
deleted file mode 100644
index 90dd5ffe..00000000
--- a/demos/triangle.hlsl
+++ /dev/null
@@ -1,20 +0,0 @@
-struct ps_in
-{
- float4 position : SV_POSITION;
- float4 colour : COLOR;
-};
-
-struct ps_in vs_main(float4 position : POSITION, float4 colour : COLOR)
-{
- struct ps_in o;
-
- o.position = position;
- o.colour = colour;
-
- return o;
-}
-
-float4 ps_main(struct ps_in i) : SV_TARGET
-{
- return i.colour;
-}
diff --git a/demos/triangle_hlsl.h b/demos/triangle_hlsl.h
new file mode 100644
index 00000000..de41bd5a
--- /dev/null
+++ b/demos/triangle_hlsl.h
@@ -0,0 +1,21 @@
+static const char triangle_hlsl[] =
+"struct ps_in\n"
+"{\n"
+" float4 position : SV_POSITION;\n"
+" float4 colour : COLOR;\n"
+"};\n"
+"\n"
+"struct ps_in vs_main(float4 position : POSITION, float4 colour : COLOR)\n"
+"{\n"
+" struct ps_in o;\n"
+"\n"
+" o.position = position;\n"
+" o.colour = colour;\n"
+"\n"
+" return o;\n"
+"}\n"
+"\n"
+"float4 ps_main(struct ps_in i) : SV_TARGET\n"
+"{\n"
+" return i.colour;\n"
+"}\n";
diff --git a/demos/triangle_ps.h b/demos/triangle_ps.h
deleted file mode 100644
index 82bcd3cb..00000000
--- a/demos/triangle_ps.h
+++ /dev/null
@@ -1,73 +0,0 @@
-#if 0
-//
-// Generated by Microsoft (R) D3D Shader Disassembler
-//
-//
-// Input signature:
-//
-// Name Index Mask Register SysValue Format Used
-// -------------------- ----- ------ -------- -------- ------- ------
-// SV_POSITION 0 xyzw 0 POS float
-// COLOR 0 xyzw 1 NONE float xyzw
-//
-//
-// Output signature:
-//
-// Name Index Mask Register SysValue Format Used
-// -------------------- ----- ------ -------- -------- ------- ------
-// SV_TARGET 0 xyzw 0 TARGET float xyzw
-//
-ps_5_0
-dcl_globalFlags refactoringAllowed
-dcl_input_ps linear v1.xyzw
-dcl_output o0.xyzw
-mov o0.xyzw, v1.xyzw
-ret
-// Approximately 0 instruction slots used
-#endif
-
-const BYTE g_ps_main[] =
-{
- 68, 88, 66, 67, 80, 239,
- 109, 26, 0, 147, 6, 156,
- 240, 104, 206, 124, 185, 57,
- 18, 98, 1, 0, 0, 0,
- 248, 0, 0, 0, 3, 0,
- 0, 0, 44, 0, 0, 0,
- 128, 0, 0, 0, 180, 0,
- 0, 0, 73, 83, 71, 78,
- 76, 0, 0, 0, 2, 0,
- 0, 0, 8, 0, 0, 0,
- 56, 0, 0, 0, 0, 0,
- 0, 0, 1, 0, 0, 0,
- 3, 0, 0, 0, 0, 0,
- 0, 0, 15, 0, 0, 0,
- 68, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 1, 0,
- 0, 0, 15, 15, 0, 0,
- 83, 86, 95, 80, 79, 83,
- 73, 84, 73, 79, 78, 0,
- 67, 79, 76, 79, 82, 0,
- 171, 171, 79, 83, 71, 78,
- 44, 0, 0, 0, 1, 0,
- 0, 0, 8, 0, 0, 0,
- 32, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0,
- 0, 0, 15, 0, 0, 0,
- 83, 86, 95, 84, 65, 82,
- 71, 69, 84, 0, 171, 171,
- 83, 72, 69, 88, 60, 0,
- 0, 0, 80, 0, 0, 0,
- 15, 0, 0, 0, 106, 8,
- 0, 1, 98, 16, 0, 3,
- 242, 16, 16, 0, 1, 0,
- 0, 0, 101, 0, 0, 3,
- 242, 32, 16, 0, 0, 0,
- 0, 0, 54, 0, 0, 5,
- 242, 32, 16, 0, 0, 0,
- 0, 0, 70, 30, 16, 0,
- 1, 0, 0, 0, 62, 0,
- 0, 1
-};
diff --git a/demos/triangle_vs.h b/demos/triangle_vs.h
deleted file mode 100644
index 655b72bf..00000000
--- a/demos/triangle_vs.h
+++ /dev/null
@@ -1,89 +0,0 @@
-#if 0
-//
-// Generated by Microsoft (R) D3D Shader Disassembler
-//
-//
-// Input signature:
-//
-// Name Index Mask Register SysValue Format Used
-// -------------------- ----- ------ -------- -------- ------- ------
-// POSITION 0 xyzw 0 NONE float xyzw
-// COLOR 0 xyzw 1 NONE float xyzw
-//
-//
-// Output signature:
-//
-// Name Index Mask Register SysValue Format Used
-// -------------------- ----- ------ -------- -------- ------- ------
-// SV_POSITION 0 xyzw 0 POS float xyzw
-// COLOR 0 xyzw 1 NONE float xyzw
-//
-vs_5_0
-dcl_globalFlags refactoringAllowed
-dcl_input v0.xyzw
-dcl_input v1.xyzw
-dcl_output_siv o0.xyzw, position
-dcl_output o1.xyzw
-mov o0.xyzw, v0.xyzw
-mov o1.xyzw, v1.xyzw
-ret
-// Approximately 0 instruction slots used
-#endif
-
-const BYTE g_vs_main[] =
-{
- 68, 88, 66, 67, 17, 201,
- 143, 165, 233, 56, 0, 40,
- 84, 255, 207, 20, 40, 195,
- 63, 228, 1, 0, 0, 0,
- 68, 1, 0, 0, 3, 0,
- 0, 0, 44, 0, 0, 0,
- 124, 0, 0, 0, 208, 0,
- 0, 0, 73, 83, 71, 78,
- 72, 0, 0, 0, 2, 0,
- 0, 0, 8, 0, 0, 0,
- 56, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0,
- 0, 0, 15, 15, 0, 0,
- 65, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 1, 0,
- 0, 0, 15, 15, 0, 0,
- 80, 79, 83, 73, 84, 73,
- 79, 78, 0, 67, 79, 76,
- 79, 82, 0, 171, 79, 83,
- 71, 78, 76, 0, 0, 0,
- 2, 0, 0, 0, 8, 0,
- 0, 0, 56, 0, 0, 0,
- 0, 0, 0, 0, 1, 0,
- 0, 0, 3, 0, 0, 0,
- 0, 0, 0, 0, 15, 0,
- 0, 0, 68, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,
- 0, 0, 3, 0, 0, 0,
- 1, 0, 0, 0, 15, 0,
- 0, 0, 83, 86, 95, 80,
- 79, 83, 73, 84, 73, 79,
- 78, 0, 67, 79, 76, 79,
- 82, 0, 171, 171, 83, 72,
- 69, 88, 108, 0, 0, 0,
- 80, 0, 1, 0, 27, 0,
- 0, 0, 106, 8, 0, 1,
- 95, 0, 0, 3, 242, 16,
- 16, 0, 0, 0, 0, 0,
- 95, 0, 0, 3, 242, 16,
- 16, 0, 1, 0, 0, 0,
- 103, 0, 0, 4, 242, 32,
- 16, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 101, 0,
- 0, 3, 242, 32, 16, 0,
- 1, 0, 0, 0, 54, 0,
- 0, 5, 242, 32, 16, 0,
- 0, 0, 0, 0, 70, 30,
- 16, 0, 0, 0, 0, 0,
- 54, 0, 0, 5, 242, 32,
- 16, 0, 1, 0, 0, 0,
- 70, 30, 16, 0, 1, 0,
- 0, 0, 62, 0, 0, 1
-};
--
GitLab
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/23