History log of /external/mesa3d/src/glx/indirect_glx.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d57c85c1bf77f194720ab8d8dfa4b4885e44157d 23-Jun-2016 Colin McDonald <cjmmail10-bz@yahoo.co.uk> glx: Call __glXInitVertexArrayState() with a usable gc.

For each indirect context the indirect vertex array state must be initialised
by __glXInitVertexArrayState in indirect_vertex_array.c. As noted in the
routine header it requires that the glx context has been setup prior to the
call, in order to test the server version and extensions.

Currently __glXInitVertexArrayState is called from indirect_bind_context in
indirect_glx.c, as follows:

state = gc->client_state_private;
if (state->array_state == NULL) {
glGetString(GL_EXTENSIONS);
glGetString(GL_VERSION);
__glXInitVertexArrayState(gc);
}

But, the gc context is not yet usable at this stage, so the server queries
fail, and __glXInitVertexArrayState is called without the server version and
extension information it needs. This breaks multi-texturing as
glXInitVertexArrayState doesn't get GL_MAX_TEXTURE_UNITS. It probably also
breaks setup of other arrays: fog, secondary colour, vertex attributes.

To fix this I have moved the call to __glXInitVertexArrayState to the end of
MakeContextCurrent in glxcurrent.c, where the glx context is usable.

Fixes a regression caused by commit 4fbdde889c. Fixes ARB_vertex_program
usage in the arbvparray Mesa demo when run with indirect GLX and also
the tex-skipped-unit piglit test when run with indirect GLX.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Acked-by: Ian Romanick <ian.d.romanick@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=61907
/external/mesa3d/src/glx/indirect_glx.c
60a27ad122128145d28be37e9c0b0bc86a8e5181 23-Jun-2016 Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Remove wrongly repeated words in comments

Clean up misrepetitions ('if if', 'the the' etc) found throughout the
comments. This has been done manually, after grepping
case-insensitively for duplicate if, is, the, then, do, for, an,
plus a few other typos corrected in fly-by

v2:
* proper commit message and non-joke title;
* replace two 'as is' followed by 'is' to 'as-is'.
v3:
* 'a integer' => 'an integer' and similar (originally spotted by
Jason Ekstrand, I fixed a few other similar ones while at it)

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Reviewed-by: Chad Versace <chad.versace@intel.com>
/external/mesa3d/src/glx/indirect_glx.c
5a459a036e33683410bab4df431ed553bd0eeb66 12-May-2014 Jon TURNEY <jon.turney@dronecode.org.uk> Fix build of appleglx

Define GLX_USE_APPLEGL, as config/darwin used to, to turn on specific code to
use the applegl direct renderer

Convert src/glx/apple/Makefile to automake

Since the applegl libGL is now built by linking libappleglx into libGL, rather
than by linking selected files into a special libGL:

- Remove duplicate code in apple/glxreply.c and apple/apple_glx.c. This makes
apple/glxreply.c empty, so remove it

- Some indirect rendering code is already guarded by !GLX_USE_APPLEGL, but we
need to add those guards to indirect_glx.c, indirect_init.c (via it's
generator), render2.c and vertarr.c so they don't generate anything

Fix and update various includes

glapi_gentable.c (which is only used on darwin), should be included in shared
glapi as well, to provide _glapi_create_table_from_handle()

Note that neither swrast nor indirect is supported in the APPLEGL path at the
moment, which makes things more complex than they need to be. More untangling
is needed to allow that

v2: Correct apple/Makefile.am for srcdir != builddir

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/mesa3d/src/glx/indirect_glx.c
2f519e463512ee6cad92a7c6bc0ae26077c4cdc9 18-Feb-2014 Emil Velikov <emil.l.velikov@gmail.com> glx/indirect: explicitly assign struct components for glx_*_vtable

... to improve readability of code. Set indirect_screen_vtable as a static const.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
/external/mesa3d/src/glx/indirect_glx.c
1090eb57552aed1f4e36ac97b5859ff4b2cc80a5 25-Oct-2013 Adam Jackson <ajax@redhat.com> glx: Fix return value from indirect_bind_context

_XReply returns 1 on success, but indirect_bind_context returns 0 on
success.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70486
Reviewed-and-tested-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
/external/mesa3d/src/glx/indirect_glx.c
d101204c23ba2f593881edeffff357309f3924cd 04-Oct-2013 Adam Jackson <ajax@redhat.com> glx: Propagate failures from SendMakeCurrentRequest where possible

Reviewed-by: Brian Paul <brianp@vmware.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
/external/mesa3d/src/glx/indirect_glx.c
68412d5006586f8b5814d85f76985b9d632f36df 04-Oct-2013 Adam Jackson <ajax@redhat.com> glx: Hide xGLXMakeCurrentReply inside SendMakeCurrentRequest

Reviewed-by: Brian Paul <brianp@vmware.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
/external/mesa3d/src/glx/indirect_glx.c
2eed9ff2fb5b218b7b274d2989b0dbbe5fcfedef 18-Jul-2013 Tomasz Lis <tomasz.lis@intel.com> glx: Validate the GLX_RENDER_TYPE value

Correctly handle the value of renderType in GLX context. In case of the
value being incorrect, context creation fails.

v2 (idr): indirect_create_context is just a memory allocator, so don't
validate the GLX_RENDER_TYPE there. Fixes regressions in several
GLX_ARB_create_context piglit tests.

Signed-off-by: Tomasz Lis <tomasz.lis@intel.com>
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glx/indirect_glx.c
27c8aa5cfbcf6f2ad21564dfcdabbe747c277cab 17-Jul-2013 Tomasz Lis <tomasz.lis@intel.com> glx: Store the RENDER_TYPE in indirect rendering

v2 (idr): Open-code the check for GLX_RENDER_TYPE.
dri2_convert_glx_attribs can't be called from here because that function
only exists in direct-rendering builds. Also add a stub version of
indirect_create_context_attribs to tests/fake_glx_screen.cpp to prevent
'make check' regressions.

Signed-off-by: Tomasz Lis <tomasz.lis@intel.com>
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glx/indirect_glx.c
da3282b6e2f374b88daf09f7f3ba5b05af45f51a 05-Sep-2012 Matt Turner <mattst88@gmail.com> Replace another malloc/memset-0 combination with calloc

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/glx/indirect_glx.c
6bda027e01c15df24d36de5bf3838ea8ed7e9e56 05-Sep-2012 Matt Turner <mattst88@gmail.com> Use calloc instead of malloc/memset-0

This patch has been generated by the following Coccinelle semantic
patch:

@@
expression E;
identifier I;
@@
- I = malloc(E);
+ I = calloc(1, E);
...
- memset(I, 0, sizeof *I);

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/glx/indirect_glx.c
5067506ea6ada5eeae33b1acf1c916e00121c12a 04-Sep-2012 Matt Turner <mattst88@gmail.com> Remove useless checks for NULL before freeing

This patch has been generated by the following Coccinelle semantic
patch:

// Remove useless checks for NULL before freeing
//
// free (NULL) is a no-op, so there is no need to avoid it

@@
expression E;
@@
+ free (E);
+ E = NULL;
- if (unlikely (E != NULL)) {
- free(E);
(
- E = NULL;
|
- E = 0;
)
...
- }

@@
expression E;
type T;
@@
+ free ((T) E);
+ E = NULL;
- if (unlikely (E != NULL)) {
- free((T) E);
(
- E = NULL;
|
- E = 0;
)
...
- }

@@
expression E;
@@
+ free (E);
- if (unlikely (E != NULL)) {
- free (E);
- }

@@
expression E;
type T;
@@
+ free ((T) E);
- if (unlikely (E != NULL)) {
- free ((T) E);
- }

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/glx/indirect_glx.c
2b7a972e3f36bfcdc6fbe2b59d7ffdcde49c9405 04-Sep-2012 Matt Turner <mattst88@gmail.com> Don't cast the return value of malloc/realloc

This patch has been generated by the following Coccinelle semantic
patch:

// Don't cast the return value of malloc/realloc.
//
// Casting the return value of malloc/realloc only stands to hide
// errors.

@@
type T;
expression E1, E2;
@@
- (T)
(
_mesa_align_calloc(E1, E2)
|
_mesa_align_malloc(E1, E2)
|
calloc(E1, E2)
|
malloc(E1)
|
realloc(E1, E2)
)
/external/mesa3d/src/glx/indirect_glx.c
7c7b7b068b1d0dc8e14b87dab5dbd4108f874f74 05-Sep-2012 Matt Turner <mattst88@gmail.com> Remove Xcalloc/Xmalloc/Xfree calls

These calls allowed Xlib to use a custom memory allocator, but Xlib has
used the standard C library functions since at least its initial import
into git in 2003. It seems unlikely that it will grow a custom memory
allocator. The functions now just add extra overhead. Replacing them
will make future Coccinelle patches simpler.

This patch has been generated by the following Coccinelle semantic
patch:

// Remove Xcalloc/Xmalloc/Xfree calls

@@ expression E1, E2; @@
- Xcalloc (E1, E2)
+ calloc (E1, E2)

@@ expression E; @@
- Xmalloc (E)
+ malloc (E)

@@ expression E; @@
- Xfree (E)
+ free (E)

@@ expression E; @@
- XFree (E)
+ free (E)

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/glx/indirect_glx.c
6a0640971f5e12d329e91f92996382a7227d7b08 30-Nov-2011 Ian Romanick <ian.d.romanick@intel.com> glx: Implement glx_screen_vtable::create_context_attribs for indirect contexts

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glx/indirect_glx.c
43409fa7b0e64f6d73c3d33bc9a39ba26dd4caeb 30-Nov-2011 Ian Romanick <ian.d.romanick@intel.com> glx: Add glx_screen_vtable::create_context_attribs

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glx/indirect_glx.c
4dbd13cb3f5aeff6ddc85fd091b4677369c19778 07-Dec-2011 Ian Romanick <ian.d.romanick@intel.com> glx: Send DestroyContext protocol at the correct times

Send the DestroyContext protocol immediately when glXDestroyContext is
called, and never call it when glXFreeContextEXT is called. In both
cases, either destroy the client-side structures or, if the context is
current, set xid to None so that the client-side structures will be
destroyed later.

I believe this restores the behavior of the original SGI code. See
src/glx/x11 around commit 5df82c8. The spec doesn't say anything
about glXDestroyContext not really destroying imported contexts (it
acts like glXFreeContextEXT instead), but that's what the original
code did. Note that glXFreeContextEXT on a non-imported context does
not destroy it either.

Fixes the piglit test glx-free-context.

NOTE: This is a candidate for the 7.11 branch.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/glx/indirect_glx.c
559e4f8ebcb186b491d7d687ac43f22a62448fc1 15-Jun-2011 Jeremy Huddleston <jeremyhu@apple.com> glx: Allow a context-specific fallback for glXGetProcAddress

In applegl, GLX advertises the same extensions provided by OpenGL.framework
even if such extensions are not provided by glapi. This allows a client
to get access to such API.

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
/external/mesa3d/src/glx/indirect_glx.c
e09e5cb7d8b2d7a9d0ec61476e654528010b2b91 01-Jun-2011 Adam Jackson <ajax@redhat.com> glx: Remove (unused, broken) fastImageUnpack fast path

Reviewed-by: Brian Paul <brianp@vmware.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
/external/mesa3d/src/glx/indirect_glx.c
16887d042a917fa4773e4d853f50051b54e9948c 27-Aug-2010 Kristian Høgsberg <krh@bitplanet.net> glx: Drop broken drawable garbage collection

Doesn't work for pixmaps, was looking up the GLX XID and was never thread
safe. Instead, just destroy the client side structures when the
drawable is no long current for a context.
/external/mesa3d/src/glx/indirect_glx.c
23e2dec1a1cae26430a988e0c74b1f2b13eb0f6f 07-Sep-2010 Jon TURNEY <jon.turney@dronecode.org.uk> glx: Only clear the stored context tag when the context has been unbound

The calling order of ->bind and ->unbind changed and then ->unbind would
clear the currentContextTag of the old context before ->bind could reuse
it in the make current request, in the indirect case.

Instead, clear the old currentContextTag if and only if we send a request
to the server to actually unbind it or reassign it to another context.

https://bugs.freedesktop.org/show_bug.cgi?id=29977

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
/external/mesa3d/src/glx/indirect_glx.c
f485ee724d1f1bb57a5c8931f28e7a45ceb5b5d5 30-Jul-2010 Kristian Høgsberg <krh@bitplanet.net> glx: Compare old ctx against dummyCtx, not NULL

https://bugs.freedesktop.org/show_bug.cgi?id=29302
/external/mesa3d/src/glx/indirect_glx.c
6849916170c0275c13510251a7b217c20f2b993e 28-Jul-2010 Kristian Høgsberg <krh@bitplanet.net> glx: Split indirect and applegl implementations into different files
/external/mesa3d/src/glx/indirect_glx.c