demos/gears: Recompile shaders with our compiler.

This commit is contained in:
Giovanni Mascellani
2022-09-28 13:29:19 +02:00
committed by Alexandre Julliard
parent 763f7dfa61
commit 3d85d77ced
Notes: Alexandre Julliard 2022-10-18 00:13:00 +02:00
Approved-by: Zebediah Figura (@zfigura)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/23
6 changed files with 75 additions and 482 deletions

View File

@@ -48,9 +48,7 @@
#include <math.h>
#include "demo.h"
#include "gears_vs.h"
#include "gears_ps_flat.h"
#include "gears_ps_smooth.h"
#include "gears_hlsl.h"
struct cxg_fence
{
@@ -659,6 +657,7 @@ static void cxg_load_assets(struct cx_gears *cxg)
D3D12_GRAPHICS_PIPELINE_STATE_DESC pso_desc;
D3D12_CPU_DESCRIPTOR_HANDLE dsv_handle;
D3D12_ROOT_PARAMETER root_parameter;
ID3DBlob *vs, *ps_flat, *ps_smooth;
D3D12_RESOURCE_DESC resource_desc;
D3D12_HEAP_PROPERTIES heap_desc;
D3D12_RANGE read_range = {0, 0};
@@ -682,14 +681,21 @@ static void cxg_load_assets(struct cx_gears *cxg)
hr = demo_create_root_signature(cxg->device, &root_signature_desc, &cxg->root_signature);
assert(SUCCEEDED(hr));
hr = D3DCompile(gears_hlsl, strlen(gears_hlsl), NULL, NULL, NULL, "vs_main", "vs_5_0", 0, 0, &vs, NULL);
assert(SUCCEEDED(hr));
hr = D3DCompile(gears_hlsl, strlen(gears_hlsl), NULL, NULL, NULL, "ps_main_flat", "ps_5_0", 0, 0, &ps_flat, NULL);
assert(SUCCEEDED(hr));
hr = D3DCompile(gears_hlsl, strlen(gears_hlsl), NULL, NULL, NULL, "ps_main_smooth", "ps_5_0", 0, 0, &ps_smooth, 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 = cxg->root_signature;
pso_desc.VS.pShaderBytecode = g_vs_main;
pso_desc.VS.BytecodeLength = sizeof(g_vs_main);
pso_desc.PS.pShaderBytecode = g_ps_main_flat;
pso_desc.PS.BytecodeLength = sizeof(g_ps_main_flat);
pso_desc.VS.pShaderBytecode = ID3D10Blob_GetBufferPointer(vs);
pso_desc.VS.BytecodeLength = ID3D10Blob_GetBufferSize(vs);
pso_desc.PS.pShaderBytecode = ID3D10Blob_GetBufferPointer(ps_flat);
pso_desc.PS.BytecodeLength = ID3D10Blob_GetBufferSize(ps_flat);
demo_rasterizer_desc_init_default(&pso_desc.RasterizerState);
pso_desc.RasterizerState.FrontCounterClockwise = TRUE;
@@ -708,12 +714,16 @@ static void cxg_load_assets(struct cx_gears *cxg)
&IID_ID3D12PipelineState, (void **)&cxg->pipeline_state_flat);
assert(SUCCEEDED(hr));
pso_desc.PS.pShaderBytecode = g_ps_main_smooth;
pso_desc.PS.BytecodeLength = sizeof(g_ps_main_smooth);
pso_desc.PS.pShaderBytecode = ID3D10Blob_GetBufferPointer(ps_smooth);
pso_desc.PS.BytecodeLength = ID3D10Blob_GetBufferSize(ps_smooth);
hr = ID3D12Device_CreateGraphicsPipelineState(cxg->device, &pso_desc,
&IID_ID3D12PipelineState, (void **)&cxg->pipeline_state_smooth);
assert(SUCCEEDED(hr));
ID3D10Blob_Release(vs);
ID3D10Blob_Release(ps_flat);
ID3D10Blob_Release(ps_smooth);
for (i = 0; i < ARRAY_SIZE(cxg->command_list); ++i)
{
hr = ID3D12Device_CreateCommandList(cxg->device, 0, D3D12_COMMAND_LIST_TYPE_DIRECT,