vkd3d-shader/ir: Implement exponential fog.

This commit is contained in:
Elizabeth Figura
2024-11-13 19:39:35 -06:00
committed by Henri Verbeet
parent 1fbbc82f3a
commit d56601c8d0
Notes: Henri Verbeet 2024-12-02 17:19:05 +01:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1265
7 changed files with 142 additions and 11 deletions

View File

@@ -1450,6 +1450,11 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
if (sscanf(line, "%f %f", &runner->fog_start, &runner->fog_end) < 2)
fatal_error("Malformed fog constants '%s'.\n", line);
}
else if (runner->fog_mode == FOG_MODE_EXP || runner->fog_mode == FOG_MODE_EXP2)
{
if (sscanf(line, "%f", &runner->fog_density) < 1)
fatal_error("Malformed fog constants '%s'.\n", line);
}
}
else if (match_string(line, "fog-colour", &line))
{
@@ -1909,6 +1914,7 @@ void run_shader_tests(struct shader_runner *runner, const struct shader_runner_c
runner->fog_mode = FOG_MODE_DISABLE;
runner->fog_start = 0.0f;
runner->fog_end = 1.0f;
runner->fog_density = 1.0f;
runner->sample_mask = ~0u;
runner->depth_bounds = false;