Re: [Mesa-dev] [RFC 18/21] mesa/extensions: Remove extra memsets on gl_extensions
On 23 October 2015 at 19:46, Jordan Justenwrote: > On 2015-10-22 03:32:58, Emil Velikov wrote: >> On 19 October 2015 at 23:44, Nanley Chery wrote: >> > From: Nanley Chery >> > >> > Aside from those modified in this commit, all gl_extensions structs are >> > zero-initialized by default. There is therefore no need to memset the >> > structs to 0. Also, remove the open-coded memset in >> > _mesa_init_extensions(). >> > >> > Signed-off-by: Nanley Chery >> > --- >> > src/mesa/main/extensions.c | 18 -- >> > 1 file changed, 4 insertions(+), 14 deletions(-) >> > >> > diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c >> > index 365e7ed..6cd2b27 100644 >> > --- a/src/mesa/main/extensions.c >> > +++ b/src/mesa/main/extensions.c >> > @@ -37,8 +37,8 @@ >> > #include "macros.h" >> > #include "mtypes.h" >> > >> > -struct gl_extensions _mesa_extension_override_enables; >> > -struct gl_extensions _mesa_extension_override_disables; >> > +struct gl_extensions _mesa_extension_override_enables = {0}; >> > +struct gl_extensions _mesa_extension_override_disables = {0}; >> Side note: once ARB_compute_shader lands in for i965 we can even make >> these local/static. > > I added these variables specifically so a driver could check to see > what extensions were overridden early in context creation. Making them > static would undo that feature... > > The alternative before was to add a custom environment variable. (See > 10e03b44) > What I meant was that this feature feels like a (layering?) violation. Although I do realise why you've added it, esp. since arb_compute_shader is a large and complex beast. One can only imagine what will happen if for every interaction between implemented extension FOO and non-implemented (wip) extension BAR we had a similar code around. I'm not sure it'll be pretty :) That said I'm not suggesting that we touch it. Not at least arb_compute_shader is complete. Emil ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [RFC 18/21] mesa/extensions: Remove extra memsets on gl_extensions
On Thu, Oct 22, 2015 at 3:32 AM, Emil Velikovwrote: > On 19 October 2015 at 23:44, Nanley Chery wrote: > > From: Nanley Chery > > > > Aside from those modified in this commit, all gl_extensions structs are > > zero-initialized by default. There is therefore no need to memset the > > structs to 0. Also, remove the open-coded memset in > > _mesa_init_extensions(). > > > > Signed-off-by: Nanley Chery > > --- > > src/mesa/main/extensions.c | 18 -- > > 1 file changed, 4 insertions(+), 14 deletions(-) > > > > diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c > > index 365e7ed..6cd2b27 100644 > > --- a/src/mesa/main/extensions.c > > +++ b/src/mesa/main/extensions.c > > @@ -37,8 +37,8 @@ > > #include "macros.h" > > #include "mtypes.h" > > > > -struct gl_extensions _mesa_extension_override_enables; > > -struct gl_extensions _mesa_extension_override_disables; > > +struct gl_extensions _mesa_extension_override_enables = {0}; > > +struct gl_extensions _mesa_extension_override_disables = {0}; > Side note: once ARB_compute_shader lands in for i965 we can even make > these local/static. > > That's interesting. How so? -Emil > ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [RFC 18/21] mesa/extensions: Remove extra memsets on gl_extensions
On 2015-10-22 03:32:58, Emil Velikov wrote: > On 19 October 2015 at 23:44, Nanley Cherywrote: > > From: Nanley Chery > > > > Aside from those modified in this commit, all gl_extensions structs are > > zero-initialized by default. There is therefore no need to memset the > > structs to 0. Also, remove the open-coded memset in > > _mesa_init_extensions(). > > > > Signed-off-by: Nanley Chery > > --- > > src/mesa/main/extensions.c | 18 -- > > 1 file changed, 4 insertions(+), 14 deletions(-) > > > > diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c > > index 365e7ed..6cd2b27 100644 > > --- a/src/mesa/main/extensions.c > > +++ b/src/mesa/main/extensions.c > > @@ -37,8 +37,8 @@ > > #include "macros.h" > > #include "mtypes.h" > > > > -struct gl_extensions _mesa_extension_override_enables; > > -struct gl_extensions _mesa_extension_override_disables; > > +struct gl_extensions _mesa_extension_override_enables = {0}; > > +struct gl_extensions _mesa_extension_override_disables = {0}; > Side note: once ARB_compute_shader lands in for i965 we can even make > these local/static. I added these variables specifically so a driver could check to see what extensions were overridden early in context creation. Making them static would undo that feature... The alternative before was to add a custom environment variable. (See 10e03b44) -Jordan ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [RFC 18/21] mesa/extensions: Remove extra memsets on gl_extensions
On 19 October 2015 at 23:44, Nanley Cherywrote: > From: Nanley Chery > > Aside from those modified in this commit, all gl_extensions structs are > zero-initialized by default. There is therefore no need to memset the > structs to 0. Also, remove the open-coded memset in > _mesa_init_extensions(). > > Signed-off-by: Nanley Chery > --- > src/mesa/main/extensions.c | 18 -- > 1 file changed, 4 insertions(+), 14 deletions(-) > > diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c > index 365e7ed..6cd2b27 100644 > --- a/src/mesa/main/extensions.c > +++ b/src/mesa/main/extensions.c > @@ -37,8 +37,8 @@ > #include "macros.h" > #include "mtypes.h" > > -struct gl_extensions _mesa_extension_override_enables; > -struct gl_extensions _mesa_extension_override_disables; > +struct gl_extensions _mesa_extension_override_enables = {0}; > +struct gl_extensions _mesa_extension_override_disables = {0}; Side note: once ARB_compute_shader lands in for i965 we can even make these local/static. -Emil ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [RFC 18/21] mesa/extensions: Remove extra memsets on gl_extensions
On Tue, Oct 20, 2015 at 8:49 AM, Marek Olšákwrote: > On Tue, Oct 20, 2015 at 12:44 AM, Nanley Chery > wrote: > > From: Nanley Chery > > > > Aside from those modified in this commit, all gl_extensions structs are > > zero-initialized by default. There is therefore no need to memset the > > structs to 0. Also, remove the open-coded memset in > > _mesa_init_extensions(). > > > > Signed-off-by: Nanley Chery > > --- > > src/mesa/main/extensions.c | 18 -- > > 1 file changed, 4 insertions(+), 14 deletions(-) > > > > diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c > > index 365e7ed..6cd2b27 100644 > > --- a/src/mesa/main/extensions.c > > +++ b/src/mesa/main/extensions.c > > @@ -37,8 +37,8 @@ > > #include "macros.h" > > #include "mtypes.h" > > > > -struct gl_extensions _mesa_extension_override_enables; > > -struct gl_extensions _mesa_extension_override_disables; > > +struct gl_extensions _mesa_extension_override_enables = {0}; > > +struct gl_extensions _mesa_extension_override_disables = {0}; > > This looks good. Note that global variables are always > zero-initialized, thus the initializer is useless there. This hunk > could be dropped, but it's not a big deal. > > Thanks for the feedback. My git comment incorrectly says that those two variables are not zero-initialized. So I'll have to drop this hunk and update the comment. Nanley > Marek > ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [RFC 18/21] mesa/extensions: Remove extra memsets on gl_extensions
On Tue, Oct 20, 2015 at 12:44 AM, Nanley Cherywrote: > From: Nanley Chery > > Aside from those modified in this commit, all gl_extensions structs are > zero-initialized by default. There is therefore no need to memset the > structs to 0. Also, remove the open-coded memset in > _mesa_init_extensions(). > > Signed-off-by: Nanley Chery > --- > src/mesa/main/extensions.c | 18 -- > 1 file changed, 4 insertions(+), 14 deletions(-) > > diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c > index 365e7ed..6cd2b27 100644 > --- a/src/mesa/main/extensions.c > +++ b/src/mesa/main/extensions.c > @@ -37,8 +37,8 @@ > #include "macros.h" > #include "mtypes.h" > > -struct gl_extensions _mesa_extension_override_enables; > -struct gl_extensions _mesa_extension_override_disables; > +struct gl_extensions _mesa_extension_override_enables = {0}; > +struct gl_extensions _mesa_extension_override_disables = {0}; This looks good. Note that global variables are always zero-initialized, thus the initializer is useless there. This hunk could be dropped, but it's not a big deal. Marek ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [RFC 18/21] mesa/extensions: Remove extra memsets on gl_extensions
From: Nanley CheryAside from those modified in this commit, all gl_extensions structs are zero-initialized by default. There is therefore no need to memset the structs to 0. Also, remove the open-coded memset in _mesa_init_extensions(). Signed-off-by: Nanley Chery --- src/mesa/main/extensions.c | 18 -- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c index 365e7ed..6cd2b27 100644 --- a/src/mesa/main/extensions.c +++ b/src/mesa/main/extensions.c @@ -37,8 +37,8 @@ #include "macros.h" #include "mtypes.h" -struct gl_extensions _mesa_extension_override_enables; -struct gl_extensions _mesa_extension_override_disables; +struct gl_extensions _mesa_extension_override_enables = {0}; +struct gl_extensions _mesa_extension_override_disables = {0}; static char *extra_extensions = NULL; static char *cant_disable_extensions = NULL; @@ -284,9 +284,6 @@ _mesa_one_time_init_extension_overrides(void) atexit(free_unknown_extensions_strings); - memset(&_mesa_extension_override_enables, 0, sizeof(struct gl_extensions)); - memset(&_mesa_extension_override_disables, 0, sizeof(struct gl_extensions)); - if (env_const == NULL) { return; } @@ -366,20 +363,13 @@ _mesa_one_time_init_extension_overrides(void) * \brief Initialize extension tables and enable default extensions. * * This should be called during context initialization. + * This function expects a zeroed gl_extensions struct. * Note: Sets gl_extensions.dummy_true to true. */ void _mesa_init_extensions(struct gl_extensions *extensions) { - GLboolean *base = (GLboolean *) extensions; - GLboolean *sentinel = base + o(extension_sentinel); - GLboolean *i; - - /* First, turn all extensions off. */ - for (i = base; i != sentinel; ++i) - *i = GL_FALSE; - - /* Then, selectively turn default extensions on. */ + /* Selectively turn default extensions on. */ extensions->dummy_true = GL_TRUE; extensions->EXT_texture3D = GL_TRUE; } -- 2.6.1 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev