summaryrefslogtreecommitdiff
path: root/src/mapi
AgeCommit message (Collapse)AuthorFilesLines
2017-04-05mesa: add GL_ARB_shader_ballot boilerplateNicolai Hähnle1-1/+1
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2017-04-05mesa: Add GL_ARB_sparse_buffer boilerplateNicolai Hähnle3-0/+34
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2017-04-03mesa: disable glthread when DEBUG_OUTPUT_SYNCHRONOUS is enabledTimothy Arceri1-1/+1
We could re-enable it also but I haven't tested that yet, and I'm not sure we care much anyway. V2: don't disable it from with the call itself. We need a custom marshalling function or we get stuck waiting for thread to finish. V3: tidy up redundant code copied from generated version. Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-31glapi: Add GL_NV_fill_rectangleLyude1-0/+4
Signed-off-by: Lyude <lyude@redhat.com> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
2017-03-31mesa/glthread: add async support to ARB_gpu_shader_int64 uniform functionsTimothy Arceri1-16/+16
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-31mesa/glthread: add async support to ARB_gpu_shader_fp64 uniform functionsTimothy Arceri1-13/+13
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-30mesa/glthread: fallback to sync if count validation failsTimothy Arceri1-8/+14
The old code would sync and then throw a cryptic error message. There is no need for a custom error, we can just fallback to the real function and have it do proper validation. Fixes piglit test: glsl-uniform-out-of-bounds Which was returning the wrong error code. Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-30mesa/glthread: add async support to glProgramUniform*() functionsTimothy Arceri1-34/+34
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-30mesa/glthread: print out syncs when MARSHAL_MAX_CMD_SIZE is exceededTimothy Arceri1-0/+1
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-25mesa/glthread: add custom marshalling for ClearBufferfv()Timothy Arceri1-1/+1
This is one of the main causes of syncs in Civ6. Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-24mesa/marshal: add custom BufferData/BufferSubData marshallingTimothy Arceri1-2/+2
GL_AMD_pinned_memory requires memory to be aligned correctly, so we skip marshalling in this case. Also copying the data defeats the purpose of EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD. Fixes GL_AMD_pinned_memory piglit tests when glthread is enabled. Acked-by: Edward O'Callaghan <funfunctor@folklore1984.net>
2017-03-20mesa: disable glthread when glNewList() is calledTimothy Arceri1-1/+1
glNewList() swaps dispatch tables, and we don't have anything in place to handle that in glthread. Tested-by: Michel Dänzer <michel.daenzer@amd.com>
2017-03-17mapi: automake: add all python scripts to EXTRA_DISTEmil Velikov1-0/+3
Otherwise it'll be missing in the tarball and make distcheck will fail. Fixes: 05dd4a1104e ("glapi: Generate GL API marshalling code from the XML.") Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2017-03-17glapi: avoid using $< in non-suffix make rulesJonathan Gray1-2/+2
Using $< in non-suffix make rules is a GNU extension. Explicitly use the name of the python script to fix the build on OpenBSD. Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Reviewed-by: Emil Velikov <emil.velikov@collabore.com>
2017-03-16mapi: remove Xlib/xcb include in gl_marshal.pyEmil Velikov1-3/+1
The only use of the header is to provide the _X_INLINE macro. We already require (and provide where needed) 'inline', plus it's used in the file already. So replace the macro and drop the include. This fixes the build on platforms which lack the header - from X-less Linuxes to Androids. Fixes: 05dd4a1104e ("glapi: Generate GL API marshalling code from the XML.") Reported-by: Vinson Lee <vlee@freedesktop.org> Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> Reviewed-by: Tapani Pälli <tapani.palli@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100223 Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2017-03-16mapi: don't include X11/Xlib-xcb.h on non PTHREAD platformsTimothy Arceri1-2/+2
Should fix the last of the glthread build issues on windows.
2017-03-16mesa: fix glthread marshal build issues on platforms without PTHREADTimothy Arceri1-1/+4
2017-03-16mesa/glthread: restore the dispatch table when incompatible gl calls are ↵Gregory Hainaut2-4/+5
detected While a context only has a single glthread, the context itself can be attached to several threads. Therefore the dispatch table must be updated in all threads before the destruction of glthread. In others words, glthread can only be destroyed safely when the context is deleted. Fixes remaining crashes in the glx-multithread-makecurrent* tests. V2: (Timothy Arceri) updated gl_API.dtd marshal_fail description. Signed-off-by: Gregory Hainaut <gregory.hainaut@gmail.com> Acked-by: Timothy Arceri <tarceri@itsqueeze.com> Acked-by: Marek Olšák <maraeo@gmail.com> Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de> Tested-by: Mike Lothian <mike@fireburn.co.uk>
2017-03-16mesa: Track the current vertex/element array buffers for glthread.Eric Anholt7-34/+59
We want to support glthread on GLES contexts with reasonable apps, and on desktop for apps that use VBOs but haven't completely moved to core GL. To do so, we have to deal with the "the user may or may not pass user pointers to draw calls" problem. Acked-by: Timothy Arceri <tarceri@itsqueeze.com> Acked-by: Marek Olšák <maraeo@gmail.com> Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de> Tested-by: Mike Lothian <mike@fireburn.co.uk>
2017-03-16mesa: Disable glthread when glBegin() is called.Eric Anholt1-1/+1
glBegin() swaps dispatch tables, and we don't have any code in place for handling that in glthread (which also messes with dispatch tables), and I don't particularly care to at this point. Acked-by: Timothy Arceri <tarceri@itsqueeze.com> Acked-by: Marek Olšák <maraeo@gmail.com> Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de> Tested-by: Mike Lothian <mike@fireburn.co.uk>
2017-03-16mesa: Add an attribute for conditions to turn off threading.Eric Anholt3-1/+15
The threading for GL core is in place, but there are so few applications actually using a core GL context that it would be nice to extend support back. However, some of the features of compat GL (particularly user vertex arrays) would be so expensive to track state for that we want to be able to disable threading when we discover that the app is using them. Acked-by: Timothy Arceri <tarceri@itsqueeze.com> Acked-by: Marek Olšák <maraeo@gmail.com> Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de> Tested-by: Mike Lothian <mike@fireburn.co.uk>
2017-03-16mesa: Add support for asynchronous glDraw* on GL core.Eric Anholt2-7/+6
Acked-by: Timothy Arceri <tarceri@itsqueeze.com> Acked-by: Marek Olšák <maraeo@gmail.com> Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de> Tested-by: Mike Lothian <mike@fireburn.co.uk>
2017-03-16mesa: Add support for NULL arguments like in glBufferData() in marshalling.Eric Anholt2-9/+34
This will let us support things like glBufferData() that should be asynchronous. Acked-by: Timothy Arceri <tarceri@itsqueeze.com> Acked-by: Marek Olšák <maraeo@gmail.com> Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de> Tested-by: Mike Lothian <mike@fireburn.co.uk>
2017-03-16glapi: Mark vertex attrib pointer functions as async.Eric Anholt2-17/+17
These don't actually read data out of the pointers, they set the pointers (or offsets in a VBO) to be used in a later draw call. v2: Don't forget glVertexAttribIPointer, and don't bother with annotations on aliases. v3: Mark CompressedTexSubImage1D as sync also. Acked-by: Timothy Arceri <tarceri@itsqueeze.com> Acked-by: Marek Olšák <maraeo@gmail.com> Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de> Tested-by: Mike Lothian <mike@fireburn.co.uk>
2017-03-16mesa: Custom thread marshalling for Flush.Paul Berry1-2/+1
Acked-by: Timothy Arceri <tarceri@itsqueeze.com> Acked-by: Marek Olšák <maraeo@gmail.com> Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de> Tested-by: Mike Lothian <mike@fireburn.co.uk>
2017-03-16mesa: Custom thread marshalling for ShaderSource.Paul Berry1-1/+1
Acked-by: Timothy Arceri <tarceri@itsqueeze.com> Acked-by: Marek Olšák <maraeo@gmail.com> Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de> Tested-by: Mike Lothian <mike@fireburn.co.uk>
2017-03-16mesa: Create pointers for multithread marshalling dispatch table.Paul Berry1-4/+4
This patch splits the context's CurrentDispatch pointer into two pointers, CurrentClientDispatch, and CurrentServerDispatch, so that when doing multithread marshalling, we can distinguish between the dispatch table that's being used by the client (to serialize GL calls into the marshal buffer) and the dispatch table that's being used by the server (to execute the GL calls). Acked-by: Timothy Arceri <tarceri@itsqueeze.com> Acked-by: Marek Olšák <maraeo@gmail.com> Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de> Tested-by: Mike Lothian <mike@fireburn.co.uk>
2017-03-16mesa: Validate count parameters when marshalling.Eric Anholt1-0/+15
Otherwise, for example, glDeleteBuffers(-1, &bo) gets you a segfault instead of GL_INVALID_VALUE. Acked-by: Timothy Arceri <tarceri@itsqueeze.com> Acked-by: Marek Olšák <maraeo@gmail.com> Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de> Tested-by: Mike Lothian <mike@fireburn.co.uk>
2017-03-16glapi: Generate GL API marshalling code from the XML.Paul Berry4-0/+488
This is not yet used in the build, just generated. v2: Add missing build dependencies. v3: Avoid mixing declarations and code, remove logic for avoiding emitting code that the compiler's optimizer can deal with anyway. v4: (Timothy Arceri) move safe_mul() genereation here from a later patch. Acked-by: Timothy Arceri <tarceri@itsqueeze.com> Acked-by: Marek Olšák <maraeo@gmail.com> Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de> Tested-by: Mike Lothian <mike@fireburn.co.uk>
2017-03-16glapi: Mark compressed teximage functions as sync.Eric Anholt1-5/+5
Without doing some additional tracking, we won't know whether the data will be immediate user data, or will be loaded from a PBO. The normal teximage functions will be sync by default because they don't know up front what the size of their image data is. But for compressed teximage, we have the count information, so they would end up async by default. Acked-by: Timothy Arceri <tarceri@itsqueeze.com> Acked-by: Marek Olšák <maraeo@gmail.com> Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de> Tested-by: Mike Lothian <mike@fireburn.co.uk>
2017-03-16glapi: Annotate functions with "marshal" attribute.Paul Berry6-27/+44
Several API functions require special treatment in order to be marshalled to a background thread. Others can't be safely executed in a background thread and need to be executed synchronously (e.g. since they return data through a pointer argument). This annotation will be used when code generating thread marshalling code, to ensure that each function is marshalled in the correct way. Note that PixelMap functions are marked as synchronous for now since their pointer may be relative to buffer on the GPU, so we'll need special logic to marshal them properly. v2: Move description of attribute types to a comment in the dtd file. Acked-by: Timothy Arceri <tarceri@itsqueeze.com> Acked-by: Marek Olšák <maraeo@gmail.com> Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de> Tested-by: Mike Lothian <mike@fireburn.co.uk>
2017-03-10nir: remove shebang from python scriptsEmil Velikov1-1/+0
Analogous to earlier commit(s). Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-10mapi/gen: remove shebang from python scriptsEmil Velikov19-19/+0
All of those should be executed $PYTHON2/python2 [or equivalent] hence why they are missing the execute bit. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-10mapi: do not mandate bash for es*api/ABI-checkEmil Velikov2-2/+2
Seemingly there is nothing bash specific in these. The Debian checkbashisms does not spot neither run in zsh. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-10mesa: drop the execute bit from gl.xmlEmil Velikov1-0/+0
This is a spec file which is parsed by scripts. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Andreas Boll <andreas.boll.dev@gmail.com> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-10mapi/glapi: remove unused next_available_offset.shEmil Velikov1-39/+0
Afaict there was no [documented] users since it was introduced. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-07glapi: fix typo in count_scaleGregory Hainaut1-1/+1
2*4=8 Signed-off-by: Gregory Hainaut <gregory.hainaut@gmail.com> Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
2017-03-03glapi: Fix a comment typoEric Anholt1-1/+1
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com> Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
2017-02-24mapi: remove unused mapi.[ch]Emil Velikov3-254/+0
The final user of it was st/vega. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Andreas Boll <andreas.boll.dev@gmail.com>
2017-02-22mesa: Separate INTEL_performance_query frontendRobert Bragg1-0/+1
To allow the backend interfaces for AMD_performance_monitor and INTEL_performance_query to evolve independently based on the more specific requirements of each extension this starts by separating the frontends of these extensions. Even though there wasn't much tying these frontends together, this separation intentionally copies what few helpers/utilities that were shared between the two extensions, avoiding any re-factoring specific to INTEL_performance_query so that the evolution will be easier to follow later. Signed-off-by: Robert Bragg <robert@sixbynine.org> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2017-01-27mapi: automake: include builddir prior to srcdirEmil Velikov1-2/+2
Analogous to previous commit. Cc: "12.0 13.0" <mesa-dev@lists.freedesktop.org> Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2017-01-20mapi: Add support for ARB_gpu_shader_int64.Dave Airlie4-0/+304
Just add the boilerplate xml code. v2 (idr): Update dispatch_sanity. Only add extension functions in core profile. v3 (idr): Remove comment line from gl_API.xml. Suggested by Matt. Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> [v1] Reviewed-by: Matt Turner <mattst88@gmail.com>
2017-01-18mesa: make use of HAVE_FUNC_ATTRIBUTE_ALIAS macroEmil Velikov2-9/+3
We must make sure that xserver has an equivalent one-line change to its configure.ac as the glx/glapi headers get copied over. Then again, xserver does _not_ seem to set HAVE_ALIAS to begin with so one might want to look into that first. Cc: Adam Jackson <ajax@redhat.com> Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2017-01-13glX_proto_send.py: Unify the style of function pointer calls in structsBoyan Ding1-1/+1
Signed-off-by: Boyan Ding <boyan.j.ding@gmail.com>
2017-01-13mapi: update the asm code to support x32Grazvydas Ignotas1-3/+28
Fixes crashes when both glx-tls and asm are enabled on x32. Cc: mesa-stable@lists.freedesktop.org Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94512 Bugzilla: https://bugs.gentoo.org/show_bug.cgi?id=575458 Signed-off-by: Grazvydas Ignotas <notasas@gmail.com> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
2016-12-13glapi: add missing INTEL_conservative_rasterizationLionel Landwerlin1-0/+4
v2: put enum directly in gl_API.xml (Ilia) Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
2016-10-27mesa: add missing CONTEXT_ROBUST_ACCESS enumTapani Pälli1-0/+3
commit 85008db1d51f923113832394d7f8d6b1868be882 missed this enum for GL_KHR_robustness implementation Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2016-10-24mapi: automake: set VISIBILITY_CFLAGS for shared glapiJonathan Gray1-0/+3
shared glapi was previously built without setting CFLAGS for AM_CFLAGS and VISIBILITY_CFLAGS. This resulted in symbols being exported that shouldn't be. The x86 and sparc assembly versions of the dispatch table partially mitigated this by using .hidden. Otherwise shared_dispatch_stub_* were being exported. Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Cc: "11.2 12.0 13.0" <mesa-stable@lists.freedesktop.org> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2016-10-20Revert "Revert "mapi: export all GLES 3.2 functions in libGLESv2.so""Francisco Jerez1-0/+12
This reverts commit 85e9bbc14d93fa7166c9ae075ee7ae29a8313e3f. The previous commit should help with the scons build failure caused by the original commit. Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
2016-10-20glapi: Move PrimitiveBoundingBox and BlendBarrier definitions into ES3.2 ↵Francisco Jerez1-13/+17
category. These two GLES 3.2 entry points were being defined in the category of the ARB_ES3_2_compatibility and KHR_blend_equation_advanced extensions respectively instead of in the ES3.2 category. Defining them in the ES3.2 category makes sure that the gl_procs.py generator emits declarations in the glprocs.h header file for the unsuffixed GLES-only entry points that PrimitiveBoundingBoxARB and BlendBarrierKHR respectively alias. This should avoid a compilation failure during scons builds in combination with "mapi: export all GLES 3.2 functions in libGLESv2.so". Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Dylan Baker <dylan@pnwbakers.com>