From: Dave Airlie Date: Thu, 9 Dec 2021 06:55:18 +0000 (+1000) Subject: mesa/st: move msaa functionality into multisample.c X-Git-Tag: upstream/22.3.5~14647 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=294dc8fa04650b17b95930c9b1023e981f0b8217;p=platform%2Fupstream%2Fmesa.git mesa/st: move msaa functionality into multisample.c This moves some state track code into main Reviewed-by: Emma Anholt Part-of: --- diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c index 8df36f8..bbe6e28 100644 --- a/src/mesa/main/get.c +++ b/src/mesa/main/get.c @@ -33,6 +33,7 @@ #include "extensions.h" #include "get.h" #include "macros.h" +#include "multisample.h" #include "mtypes.h" #include "spirv_extensions.h" #include "state.h" @@ -44,7 +45,6 @@ #include "version.h" #include "state_tracker/st_cb_queryobj.h" -#include "state_tracker/st_cb_msaa.h" #include "state_tracker/st_context.h" #include "api_exec_decl.h" @@ -1321,8 +1321,8 @@ find_custom_value(struct gl_context *ctx, const struct value_desc *d, union valu break; } - st_GetProgrammableSampleCaps(ctx, ctx->DrawBuffer, - &bits, &width, &height); + _mesa_GetProgrammableSampleCaps(ctx, ctx->DrawBuffer, + &bits, &width, &height); if (d->pname == GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB) v->value_uint = width; diff --git a/src/mesa/main/multisample.c b/src/mesa/main/multisample.c index 68763e3..bfc1b8d 100644 --- a/src/mesa/main/multisample.c +++ b/src/mesa/main/multisample.c @@ -407,3 +407,29 @@ _mesa_AlphaToCoverageDitherControlNV(GLenum mode) _mesa_error(ctx, GL_INVALID_ENUM, "glAlphaToCoverageDitherControlNV(invalid parameter)"); } } + +void +_mesa_GetProgrammableSampleCaps(struct gl_context *ctx, const struct gl_framebuffer *fb, + GLuint *outBits, GLuint *outWidth, GLuint *outHeight) +{ + struct st_context *st = st_context(ctx); + struct pipe_screen *screen = ctx->pipe->screen; + + st_validate_state(st, ST_PIPELINE_UPDATE_FRAMEBUFFER); + + *outBits = 4; + *outWidth = 1; + *outHeight = 1; + + if (ctx->Extensions.ARB_sample_locations) + screen->get_sample_pixel_grid(screen, st->state.fb_num_samples, + outWidth, outHeight); + + /* We could handle this better in some circumstances, + * but it's not really an issue */ + if (*outWidth > MAX_SAMPLE_LOCATION_GRID_SIZE || + *outHeight > MAX_SAMPLE_LOCATION_GRID_SIZE) { + *outWidth = 1; + *outHeight = 1; + } +} diff --git a/src/mesa/main/multisample.h b/src/mesa/main/multisample.h index c370307..1b78dae 100644 --- a/src/mesa/main/multisample.h +++ b/src/mesa/main/multisample.h @@ -30,6 +30,10 @@ struct gl_context; +void +_mesa_GetProgrammableSampleCaps(struct gl_context *ctx, const struct gl_framebuffer *fb, + GLuint *outBits, GLuint *outWidth, GLuint *outHeight); + extern void _mesa_init_multisample(struct gl_context *ctx); diff --git a/src/mesa/meson.build b/src/mesa/meson.build index db3c41e..be9e0af 100644 --- a/src/mesa/meson.build +++ b/src/mesa/meson.build @@ -351,8 +351,6 @@ files_libmesa = files( 'state_tracker/st_cb_flush.h', 'state_tracker/st_cb_memoryobjects.c', 'state_tracker/st_cb_memoryobjects.h', - 'state_tracker/st_cb_msaa.c', - 'state_tracker/st_cb_msaa.h', 'state_tracker/st_cb_perfmon.c', 'state_tracker/st_cb_perfmon.h', 'state_tracker/st_cb_perfquery.c', diff --git a/src/mesa/state_tracker/st_cb_msaa.c b/src/mesa/state_tracker/st_cb_msaa.c deleted file mode 100644 index bf6ebbe6..0000000 --- a/src/mesa/state_tracker/st_cb_msaa.c +++ /dev/null @@ -1,63 +0,0 @@ -/************************************************************************** - * - * Copyright 2013 Red Hat - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR - * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - **************************************************************************/ - -#include "main/bufferobj.h" - -#include "main/framebuffer.h" - -#include "state_tracker/st_cb_msaa.h" -#include "state_tracker/st_context.h" -#include "state_tracker/st_atom.h" -#include "state_tracker/st_cb_fbo.h" - -#include "pipe/p_context.h" - -void -st_GetProgrammableSampleCaps(struct gl_context *ctx, const struct gl_framebuffer *fb, - GLuint *outBits, GLuint *outWidth, GLuint *outHeight) -{ - struct st_context *st = st_context(ctx); - struct pipe_screen *screen = st->screen; - - st_validate_state(st, ST_PIPELINE_UPDATE_FRAMEBUFFER); - - *outBits = 4; - *outWidth = 1; - *outHeight = 1; - - if (ctx->Extensions.ARB_sample_locations) - screen->get_sample_pixel_grid(screen, st->state.fb_num_samples, - outWidth, outHeight); - - /* We could handle this better in some circumstances, - * but it's not really an issue */ - if (*outWidth > MAX_SAMPLE_LOCATION_GRID_SIZE || - *outHeight > MAX_SAMPLE_LOCATION_GRID_SIZE) { - *outWidth = 1; - *outHeight = 1; - } -} diff --git a/src/mesa/state_tracker/st_cb_msaa.h b/src/mesa/state_tracker/st_cb_msaa.h deleted file mode 100644 index af38aba..0000000 --- a/src/mesa/state_tracker/st_cb_msaa.h +++ /dev/null @@ -1,36 +0,0 @@ -/************************************************************************** - * - * Copyright 2013 Red Hat - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR - * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - **************************************************************************/ - - -#ifndef ST_CB_MSAA_H -#define ST_CB_MSAA_H - -#include "main/glheader.h" - -void st_GetProgrammableSampleCaps(struct gl_context *ctx, const struct gl_framebuffer *fb, - GLuint *outBits, GLuint *outWidth, GLuint *outHeight); -#endif