(D3D10/D3D11/D3D12) Get rid of save_hlsl codepath when loading

shaders (and they fail), or debug mode
This commit is contained in:
twinaphex 2022-04-24 12:01:36 +02:00
parent 3c6098dff7
commit 6a537a656d
3 changed files with 7 additions and 62 deletions

View File

@ -458,11 +458,6 @@ static bool d3d10_gfx_set_shader(void* data, enum rarch_shader_type type, const
{ "TEXCOORD", 1, DXGI_FORMAT_R32G32_FLOAT, 0, offsetof(d3d10_vertex_t, texcoord),
D3D10_INPUT_PER_VERTEX_DATA, 0 },
};
#ifdef DEBUG
bool save_hlsl = true;
#else
bool save_hlsl = false;
#endif
static const char vs_ext[] = ".vs.hlsl";
static const char ps_ext[] = ".ps.hlsl";
char vs_path[PATH_MAX_LENGTH] = {0};
@ -478,24 +473,11 @@ static bool d3d10_gfx_set_shader(void* data, enum rarch_shader_type type, const
if (!d3d10_init_shader(
d3d10->device, vs_src, 0, vs_path, "main", NULL, NULL, desc, countof(desc),
&d3d10->pass[i].shader))
save_hlsl = true;
&d3d10->pass[i].shader)) { }
if (!d3d10_init_shader(
d3d10->device, ps_src, 0, ps_path, NULL, "main", NULL, NULL, 0,
&d3d10->pass[i].shader))
save_hlsl = true;
if (save_hlsl)
{
FILE* fp = fopen(vs_path, "w");
fwrite(vs_src, 1, strlen(vs_src), fp);
fclose(fp);
fp = fopen(ps_path, "w");
fwrite(ps_src, 1, strlen(ps_src), fp);
fclose(fp);
}
&d3d10->pass[i].shader)) { }
free(d3d10->shader_preset->pass[i].source.string.vertex);
free(d3d10->shader_preset->pass[i].source.string.fragment);

View File

@ -626,11 +626,6 @@ static bool d3d11_gfx_set_shader(void* data, enum rarch_shader_type type, const
{ "TEXCOORD", 1, DXGI_FORMAT_R32G32_FLOAT, 0, offsetof(d3d11_vertex_t, texcoord),
D3D11_INPUT_PER_VERTEX_DATA, 0 },
};
#ifdef DEBUG
bool save_hlsl = true;
#else
bool save_hlsl = false;
#endif
static const char vs_ext[] = ".vs.hlsl";
static const char ps_ext[] = ".ps.hlsl";
char vs_path[PATH_MAX_LENGTH] = {0};
@ -648,26 +643,13 @@ static bool d3d11_gfx_set_shader(void* data, enum rarch_shader_type type, const
d3d11->device, vs_src, 0, vs_path, "main", NULL, NULL, desc, countof(desc),
&d3d11->pass[i].shader,
feat_level_hint
))
save_hlsl = true;
)) { }
if (!d3d11_init_shader(
d3d11->device, ps_src, 0, ps_path, NULL, "main", NULL, NULL, 0,
&d3d11->pass[i].shader,
feat_level_hint
))
save_hlsl = true;
if (save_hlsl)
{
FILE* fp = fopen(vs_path, "w");
fwrite(vs_src, 1, strlen(vs_src), fp);
fclose(fp);
fp = fopen(ps_path, "w");
fwrite(ps_src, 1, strlen(ps_src), fp);
fclose(fp);
}
)) { }
free(d3d11->shader_preset->pass[i].source.string.vertex);
free(d3d11->shader_preset->pass[i].source.string.fragment);

View File

@ -579,11 +579,6 @@ static bool d3d12_gfx_set_shader(void* data, enum rarch_shader_type type, const
{ "TEXCOORD", 1, DXGI_FORMAT_R32G32_FLOAT, 0, offsetof(d3d12_vertex_t, texcoord),
D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 },
};
#ifdef DEBUG
bool save_hlsl = true;
#else
bool save_hlsl = false;
#endif
static const char vs_ext[] = ".vs.hlsl";
static const char ps_ext[] = ".ps.hlsl";
char vs_path[PATH_MAX_LENGTH] = {0};
@ -597,10 +592,8 @@ static bool d3d12_gfx_set_shader(void* data, enum rarch_shader_type type, const
strlcat(vs_path, vs_ext, sizeof(vs_path));
strlcat(ps_path, ps_ext, sizeof(ps_path));
if (!d3d_compile(vs_src, 0, vs_path, "main", "vs_5_0", &vs_code))
save_hlsl = true;
if (!d3d_compile(ps_src, 0, ps_path, "main", "ps_5_0", &ps_code))
save_hlsl = true;
if (!d3d_compile(vs_src, 0, vs_path,"main","vs_5_0", &vs_code)){ }
if (!d3d_compile(ps_src, 0, ps_path,"main","ps_5_0", &ps_code)){ }
desc.BlendState.RenderTarget[0].RenderTargetWriteMask = D3D12_COLOR_WRITE_ENABLE_ALL;
if (i == d3d12->shader_preset->passes - 1)
@ -613,19 +606,7 @@ static bool d3d12_gfx_set_shader(void* data, enum rarch_shader_type type, const
desc.InputLayout.NumElements = countof(inputElementDesc);
if (!d3d12_init_pipeline(
d3d12->device, vs_code, ps_code, NULL, &desc, &d3d12->pass[i].pipe))
save_hlsl = true;
if (save_hlsl)
{
FILE* fp = fopen(vs_path, "w");
fwrite(vs_src, 1, strlen(vs_src), fp);
fclose(fp);
fp = fopen(ps_path, "w");
fwrite(ps_src, 1, strlen(ps_src), fp);
fclose(fp);
}
d3d12->device, vs_code, ps_code, NULL, &desc, &d3d12->pass[i].pipe)) { }
free(d3d12->shader_preset->pass[i].source.string.vertex);
free(d3d12->shader_preset->pass[i].source.string.fragment);