On Sun, Mar 27, 2016 at 4:38 AM, Edward O'Callaghan <eocallag...@alterapraxis.com> wrote: > Set default values for the constants required in > ARB_framebuffer_no_attachments and obtained the number > of layers from ``PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS``. > > We also obtain the MaxFramebufferSamples value using > a query back to the driver for PIPE_FORMAT_NONE. > > Signed-off-by: Edward O'Callaghan <eocallag...@alterapraxis.com> > --- > src/mesa/state_tracker/st_extensions.c | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/src/mesa/state_tracker/st_extensions.c > b/src/mesa/state_tracker/st_extensions.c > index 59777ee..658dfec 100644 > --- a/src/mesa/state_tracker/st_extensions.c > +++ b/src/mesa/state_tracker/st_extensions.c > @@ -1050,6 +1050,33 @@ void st_init_extensions(struct pipe_screen *screen, > extensions->AMD_vertex_shader_viewport_index = GL_TRUE; > } > > + /* ARB_framebuffer_no_attachments */ > + consts->MaxFramebufferWidth = consts->MaxViewportWidth; > + consts->MaxFramebufferHeight = consts->MaxViewportHeight; > + enum pipe_format void_formats[] = { > + PIPE_FORMAT_NONE > + };
In general, we don't allow declarations after code. You can insert a new code block to work around it or you can move this to the block that calls get_max_samples_for_formats several times. > + /* Assumes maximum number of samples of 32 */ > + consts->MaxFramebufferSamples = > + get_max_samples_for_formats(screen, ARRAY_SIZE(void_formats), > + void_formats, 32, > + PIPE_BIND_RENDER_TARGET); > + > + /* N.B., we cheat here a little by assuming that > + * PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS has the same > + * number of layers as we need, although we technically > + * could have more the generality is not really useful > + * in practicality. > + */ > + consts->MaxFramebufferLayers > + = screen->get_param(screen, PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS); Please initialize constants in st_init_limits if possible. There are some exceptions, but they don't apply in this case. Also, "=" should be on the previous line. > + > + if ((consts->MaxSamples >= 4 && consts->MaxFramebufferLayers >= 2048) > + || (consts->MaxFramebufferSamples >= consts->MaxSamples && > + consts->MaxFramebufferLayers >= consts->MaxArrayTextureLayers)) > + if (screen->get_param(screen, PIPE_CAP_FRAMEBUFFER_NO_ATTACHMENT)) > + extensions->ARB_framebuffer_no_attachments = GL_TRUE; Please merge this into one if statement. Also, "||" and all other operators should not begin a new line, instead they should be at the end of the previous line. Marek _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev