mesa: provide default implementation of QuerySamplesForFormat

Previously at least i915 failed to provide an implementation, but
exposed ARB_internalformat_query anyway, leading to crashes when
QueryInternalformativ was called.

Default implementation just returns 1 for everything, so is suitable for
any driver which does not support multisampling.

V2: - Move from intel to core mesa.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Chris Forbes
2013-03-29 16:22:09 +13:00
parent ee624ced36
commit 4412f3bc13
3 changed files with 21 additions and 1 deletions
+2 -1
View File
@@ -28,6 +28,7 @@
#include "main/accum.h"
#include "main/arrayobj.h"
#include "main/context.h"
#include "main/formatquery.h"
#include "main/framebuffer.h"
#include "main/mipmap.h"
#include "main/queryobj.h"
@@ -90,7 +91,7 @@ _mesa_init_driver_functions(struct dd_function_table *driver)
/* Texture functions */
driver->ChooseTextureFormat = _mesa_choose_tex_format;
driver->QuerySamplesForFormat = NULL;
driver->QuerySamplesForFormat = _mesa_query_samples_for_format;
driver->TexImage = _mesa_store_teximage;
driver->TexSubImage = _mesa_store_texsubimage;
driver->GetTexImage = _mesa_meta_GetTexImage;
+15
View File
@@ -30,6 +30,21 @@
#include "fbobject.h"
#include "formatquery.h"
/* default implementation of QuerySamplesForFormat driverfunc, for
* non-multisample-capable drivers. */
size_t
_mesa_query_samples_for_format(struct gl_context *ctx, GLenum target,
GLenum internalFormat, int samples[16])
{
(void) target;
(void) internalFormat;
(void) ctx;
samples[0] = 1;
return 1;
}
void GLAPIENTRY
_mesa_GetInternalformativ(GLenum target, GLenum internalformat, GLenum pname,
GLsizei bufSize, GLint *params)
+4
View File
@@ -28,6 +28,10 @@
#include "compiler.h"
#include "glheader.h"
size_t
_mesa_query_samples_for_format(struct gl_context *ctx, GLenum target,
GLenum internalFormat, int samples[16]);
extern void GLAPIENTRY
_mesa_GetInternalformativ(GLenum target, GLenum internalformat,
GLenum pname, GLsizei bufSize, GLint *params);