Re: [Mesa-dev] [RFC 18/21] mesa/extensions: Remove extra memsets on gl_extensions

2015-10-26 Thread Emil Velikov
On 23 October 2015 at 19:46, Jordan Justen  wrote:
> 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

2015-10-23 Thread Nanley Chery
On Thu, Oct 22, 2015 at 3:32 AM, 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.
>
>
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

2015-10-23 Thread Jordan Justen
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)

-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

2015-10-22 Thread Emil Velikov
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.

-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

2015-10-20 Thread Nanley Chery
On Tue, Oct 20, 2015 at 8:49 AM, Marek Olšák  wrote:

> 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

2015-10-20 Thread Marek Olšák
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.

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

2015-10-19 Thread Nanley Chery
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};
 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