Adjust renderbuffer samples to real number of samples obtained

This commit is contained in:
baldurk
2021-04-16 13:26:53 +01:00
parent 202dc9f14a
commit eaee8a6878
@@ -2754,7 +2754,6 @@ bool WrappedOpenGL::Serialise_glNamedRenderbufferStorageMultisampleEXT(Serialise
texDetails.width = width;
texDetails.height = height;
texDetails.depth = 1;
texDetails.samples = RDCMAX(1, samples);
texDetails.curType = eGL_RENDERBUFFER;
texDetails.internalFormat = internalformat;
texDetails.mipsValid = 1;
@@ -2762,6 +2761,21 @@ bool WrappedOpenGL::Serialise_glNamedRenderbufferStorageMultisampleEXT(Serialise
GL.glNamedRenderbufferStorageMultisampleEXT(renderbuffer.name, samples, internalformat, width,
height);
if(samples >= 1)
{
GLint realSamples = 0;
GL.glGetNamedRenderbufferParameterivEXT(renderbuffer.name, eGL_RENDERBUFFER_SAMPLES,
&realSamples);
if(realSamples > samples)
{
RDCDEBUG("Renderbuffer requested %d samples, but got %d samples", samples, realSamples);
samples = realSamples;
}
}
texDetails.samples = RDCMAX(1, samples);
if(internalformat == eGL_DEPTH_COMPONENT || internalformat == eGL_DEPTH_STENCIL ||
internalformat == eGL_STENCIL || internalformat == eGL_STENCIL_INDEX)
{
@@ -2977,7 +2991,6 @@ bool WrappedOpenGL::Serialise_glRenderbufferStorageMultisampleEXT(SerialiserType
texDetails.width = width;
texDetails.height = height;
texDetails.depth = 1;
texDetails.samples = RDCMAX(1, samples);
texDetails.curType = eGL_RENDERBUFFER;
texDetails.internalFormat = internalformat;
texDetails.mipsValid = 1;
@@ -2989,6 +3002,21 @@ bool WrappedOpenGL::Serialise_glRenderbufferStorageMultisampleEXT(SerialiserType
GL.glRenderbufferStorageMultisampleEXT(eGL_RENDERBUFFER, samples, internalformat, width, height);
if(samples >= 1)
{
GLint realSamples = 0;
GL.glGetNamedRenderbufferParameterivEXT(renderbuffer.name, eGL_RENDERBUFFER_SAMPLES,
&realSamples);
if(realSamples > samples)
{
RDCDEBUG("Renderbuffer requested %d samples, but got %d samples", samples, realSamples);
samples = realSamples;
}
}
texDetails.samples = RDCMAX(1, samples);
if(internalformat == eGL_DEPTH_COMPONENT || internalformat == eGL_DEPTH_STENCIL ||
internalformat == eGL_STENCIL || internalformat == eGL_STENCIL_INDEX)
{