Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion obs-shaderfilter.c
Original file line number Diff line number Diff line change
Expand Up @@ -2869,7 +2869,14 @@ static void shader_filter_tick(void *data, float seconds)
gs_texrender_t *create_or_reset_texrender(gs_texrender_t *render)
{
if (!render) {
render = gs_texrender_create(GS_RGBA, GS_ZS_NONE);
// Use a 16-bit float format rather than 8-bit RGBA so that shaders
// which feed a texrender's output back into itself as
// previous_image/previous_output (e.g. accumulating or decaying a
// value by a small fraction each frame) don't get stuck at an 8-bit
// UNORM rounding fixed point. This matches the format libobs
// already prefers for HDR/extended color spaces elsewhere in this
// file (see gs_get_format_from_space() below).
render = gs_texrender_create(GS_RGBA16F, GS_ZS_NONE);
} else {
gs_texrender_reset(render);
}
Expand Down