mirror of
https://github.com/gnif/LookingGlass.git
synced 2024-11-14 21:17:54 +00:00
[client] egl: make FSR detect an input size change and activate if valid
This commit is contained in:
parent
9bded74543
commit
73f125dcc7
1 changed files with 15 additions and 5 deletions
|
@ -40,6 +40,7 @@ typedef struct EGL_FilterFFXFSR1
|
||||||
|
|
||||||
enum EGL_PixelFormat pixFmt;
|
enum EGL_PixelFormat pixFmt;
|
||||||
unsigned int width, height;
|
unsigned int width, height;
|
||||||
|
unsigned int inWidth, inHeight;
|
||||||
bool sizeChanged;
|
bool sizeChanged;
|
||||||
bool prepared;
|
bool prepared;
|
||||||
|
|
||||||
|
@ -231,19 +232,28 @@ static bool egl_filterFFXFSR1Setup(EGL_Filter * filter,
|
||||||
{
|
{
|
||||||
EGL_FilterFFXFSR1 * this = UPCAST(EGL_FilterFFXFSR1, filter);
|
EGL_FilterFFXFSR1 * this = UPCAST(EGL_FilterFFXFSR1, filter);
|
||||||
|
|
||||||
if (pixFmt == this->pixFmt && !this->sizeChanged)
|
const bool inSizeChanged = this->width != width || this->height != height;
|
||||||
|
|
||||||
|
if (pixFmt == this->pixFmt && !this->sizeChanged && !inSizeChanged)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (!egl_framebufferSetup(this->easuFb, pixFmt, this->width, this->height))
|
if (this->sizeChanged)
|
||||||
return false;
|
{
|
||||||
|
if (!egl_framebufferSetup(this->easuFb, pixFmt, this->width, this->height))
|
||||||
|
return false;
|
||||||
|
|
||||||
if (!egl_framebufferSetup(this->rcasFb, pixFmt, this->width, this->height))
|
if (!egl_framebufferSetup(this->rcasFb, pixFmt, this->width, this->height))
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
this->inWidth = width;
|
||||||
|
this->inHeight = height;
|
||||||
this->active = this->width > width && this->height > height;
|
this->active = this->width > width && this->height > height;
|
||||||
this->sizeChanged = false;
|
this->sizeChanged = false;
|
||||||
this->pixFmt = pixFmt;
|
this->pixFmt = pixFmt;
|
||||||
this->prepared = false;
|
this->prepared = false;
|
||||||
|
|
||||||
|
DEBUG_INFO("%d %d %d", width, height, this->active);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue