mesa.git
9 years agoglapi: Remove static dispatch for functions that didn't exist in fglrx
Ian Romanick [Tue, 12 May 2015 23:56:37 +0000 (16:56 -0700)]
glapi: Remove static dispatch for functions that didn't exist in fglrx

Comparing the output of

    nm -D arch/x86_64/usr/X11R6/lib64/fglrx/fglrx-libGL.so.1.2 |\
        grep ' T gl[^X]' | sed 's/.* T //'

between Catalyst 14.6 Beta and this commit, the only change is a bunch
of functions that AMD exports that Mesa does not and some OpenGL ES
1.1 functions that Mesa exported but AMD does not.

The OpenGL ES 1.1 functions (e.g., glAlphaFuncx) are added by extensions
in desktop.  Our infrastructure doesn't allow us to statically export a
function in one lib and not in another.  The GLES1 conformance tests
expect to be able to link with these functions, so we have to export
them.

If a function is not statically exported by either of the major binary
drivers on Linux, there is almost zero chance that any application
statically links with it.

As a side note... I find it odd that AMD exports glTextureBarrierNV but
not glTextureBarrier.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoglapi: Remove static dispatch for functions that didn't exist in 10.3
Ian Romanick [Tue, 12 May 2015 23:01:17 +0000 (16:01 -0700)]
glapi: Remove static dispatch for functions that didn't exist in 10.3

Comparing the output of

    nm libGL.so | grep ' T gl[^X]' | sed 's/.* T //'

between 10.3.7 and this commit, the only change is the removal of
glFramebufferTextureFaceARB.  This function was removed a couple commits
previously.

glClipControl was, at the time 10.3 shipped, a very new function.  It
was added by GL_ARB_clip_control.  That extension was ratified by the
Khronos Board of Promoters on August 7, 2014.  It's less than a year
old, and I don't think it's is likely that there are many applications
using that extension... much less statically linking with the function.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoglapi: Remove static dispatch for functions that didn't exist in 10.4
Ian Romanick [Tue, 12 May 2015 22:47:41 +0000 (15:47 -0700)]
glapi: Remove static dispatch for functions that didn't exist in 10.4

Comparing the output of

    nm libGL.so | grep ' T gl[^X]' | sed 's/.* T //'

between 10.4.7 and this commit, the only change is the removal of
glFramebufferTextureFaceARB.  This function was removed a couple commits
previously.

None of these functions are particuarly new.  If applications were not
statically linking them with 10.4.7, there's approximately zero chance
they will for 10.6.

Almost all of these functions are for GL_ARB_direct_state_access.
Since the whole DSA API wasn't statically exported (and the extension
wasn't enabled!), I think there's exactly zero chance anyone linked
against these symbols.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoglapi: Remove static dispatch for functions that didn't exist in 10.5
Ian Romanick [Tue, 12 May 2015 22:24:03 +0000 (15:24 -0700)]
glapi: Remove static dispatch for functions that didn't exist in 10.5

Comparing the output of

    nm libGL.so | grep ' T gl[^X]' | sed 's/.* T //'

between 10.5.5 and this commit, the only change is the removal of
glFramebufferTextureFaceARB.  This function was removed a couple commits
previously.

None of these functions are particuarly new.  If applications were not
statically linking them with 10.5.5, there's approximately zero chance
they will for 10.6.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoglapi: Remove static_dispatch from the DTD
Ian Romanick [Wed, 13 May 2015 00:17:11 +0000 (17:17 -0700)]
glapi: Remove static_dispatch from the DTD

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoglapi: Whitespace clean up after the previous commit
Ian Romanick [Tue, 12 May 2015 23:43:15 +0000 (16:43 -0700)]
glapi: Whitespace clean up after the previous commit

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Dylan Baker <baker.dylan.c@gmail.com>
9 years agoglapi: Remove all static_dispatch tags from the XML
Ian Romanick [Tue, 12 May 2015 23:27:12 +0000 (16:27 -0700)]
glapi: Remove all static_dispatch tags from the XML

Changes generated by:

    cd src/mapi/glapi/gen
    for i in *.xml; do
        cat $i |\
        sed 's/[[:space:]]*static_dispatch="[^"]*">/>/' |\
        sed 's/[[:space:]]*static_dispatch="[^"]*"[[:space:]]*$//' |\
        sed 's/[[:space:]]*static_dispatch="[^"]*"[[:space:]]*/ /' > x
        mv x $i
    done

Comparing the output of

        nm libGL.so | grep ' T gl[^X]' | sed 's/.* T //'

before and after this commit showed no differences.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Dylan Baker <baker.dylan.c@gmail.com>
9 years agoglapi: Store list of functions with static dispatch in a separate table
Ian Romanick [Tue, 12 May 2015 22:11:09 +0000 (15:11 -0700)]
glapi: Store list of functions with static dispatch in a separate table

The set of functions with static dispatch is (supposed to be) defined by
the Linux OpenGL ABI.  We export quite a few more functions than that
for historical reasons.  However, this list should never grow.

This table is used instead of the static_dispatch tag in the XML to
generate the static dispatch functions.  I used

    nm libGL.so | grep ' T gl[^X]' | sed 's/.* T //'

before and after the change.  diff showed no differences.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Dylan Baker <baker.dylan.c@gmail.com>
9 years agoglapi: Store static dispatch offsets in a separate table
Ian Romanick [Sat, 9 May 2015 01:50:11 +0000 (18:50 -0700)]
glapi: Store static dispatch offsets in a separate table

Since the set of functions with static will never change, there is no
reason to store it in the XML.  It's just one of those fields that
confuses people adding new functions.

This is split out from the rest of the series so that in-code assertions
can be used to verify that the data in the Python code matches the XML.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Dylan Baker <baker.dylan.c@gmail.com>
9 years agomesa: Remove all vestiges of glFramebufferTextureFaceARB
Ian Romanick [Tue, 12 May 2015 19:24:04 +0000 (12:24 -0700)]
mesa: Remove all vestiges of glFramebufferTextureFaceARB

Mesa does not (and probably never will) support GL_ARB_geometry_shader4,
so this function will never exist.  Having a function that is
exec="skip" and offset="assign" is just weird.

There are still a couple 'exec="skip" offset="assign"' functions
remaining.  These remain because we either support GLX protocol for them
(glSampleMaskSGIS and glSamplePatternSGIS) or older DRI drivers still
need them in the dispatch table (glResizeBuffersMESA).  The SGIS
functions can be removed later.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoglapi: Mark a couple functions "ignore" for GLX
Ian Romanick [Tue, 12 May 2015 18:37:42 +0000 (11:37 -0700)]
glapi: Mark a couple functions "ignore" for GLX

Without this the next patch will try to put these functions in the
dispatch table in indirect_init.c.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agost/mesa: Flush the bitmap cache in st_BlitFramebuffer
Fredrik Höglund [Fri, 15 May 2015 17:30:38 +0000 (19:30 +0200)]
st/mesa: Flush the bitmap cache in st_BlitFramebuffer

With DSA we can no longer rely on this being done in st_validate_state
in response to the framebuffer bindings having changed.

This fixes the ext_framebuffer_multisample-bitmap piglit test.

Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agoi965: Fix FS unit tests
Ian Romanick [Fri, 15 May 2015 18:55:46 +0000 (11:55 -0700)]
i965: Fix FS unit tests

Commit 3687d75 changed the fs_visitor constructors, but it didn't update
all the users.  As a result, 'make check' fails.

I added the explicit cast to the gl_program* parameter to make it more
clear which NULL was which.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@Whitecape.org>
9 years agotarget/haiku-softpipe: Move api init into st code
Alexander von Gluck IV [Thu, 14 May 2015 22:30:35 +0000 (17:30 -0500)]
target/haiku-softpipe: Move api init into st code

We also reduce the amount of need-to-know information about st_api
to require one less extern "C" in st_manager.h

Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agost/hgl: Move st_api creation to st and extern "C" it
Alexander von Gluck IV [Thu, 14 May 2015 22:29:00 +0000 (17:29 -0500)]
st/hgl: Move st_api creation to st and extern "C" it

Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agowinsys/hgl: Add needed extern "C" to hgl winsys
Alexander von Gluck IV [Thu, 14 May 2015 22:27:14 +0000 (17:27 -0500)]
winsys/hgl: Add needed extern "C" to hgl winsys

Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agogallium/drivers: Add extern "C" wrappers to public entry
Alexander von Gluck IV [Thu, 14 May 2015 22:20:17 +0000 (17:20 -0500)]
gallium/drivers: Add extern "C" wrappers to public entry

Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agogallium/aux: Add needed extern "C" wrappers
Alexander von Gluck IV [Thu, 14 May 2015 22:19:44 +0000 (17:19 -0500)]
gallium/aux: Add needed extern "C" wrappers

Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agoi965/fs: Combine the fs_visitor constructors.
Kenneth Graunke [Thu, 12 Mar 2015 05:41:49 +0000 (22:41 -0700)]
i965/fs: Combine the fs_visitor constructors.

For scalar GS support, we either need to add a fourth constructor which
takes the GS structures, or combine the existing two and pass the shader
stage.

Given that they're not significantly different, I opted for the latter.

v2: Remove more stuff from the .h file (Jason and Jordan).

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
9 years agoegl: remove remaining EGL_MESA_copy_context skeleton
Emil Velikov [Thu, 14 May 2015 18:50:22 +0000 (18:50 +0000)]
egl: remove remaining EGL_MESA_copy_context skeleton

With earlier commit (7a58262e58d egl: Remove skeleton implementation of
EGL_MESA_screen_surface) we've removed the skeleton implementation of
eglCopyContextMESA(). Just like EGL_MESA_screen_surface this extension
was never implemented in mesa.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
9 years agoegl/main: fix EGL_KHR_get_all_proc_addresses
Emil Velikov [Mon, 11 May 2015 23:30:16 +0000 (00:30 +0100)]
egl/main: fix EGL_KHR_get_all_proc_addresses

The extension requires that the address of the core functions should be
available via eglGetProcAddress. Currently the list is guarded by
_EGL_GET_CORE_ADDRESSES, which was only set for the scons (windows)
build.

Unconditionally enable it for all the builds (automake, android and
haiku) considering that the extension is not platform specific and is
always enabled.

v2: Drop the _EGL_GET_CORE_ADDRESSES macro altogether.

Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoegl: more define fixes for EGL_MESA_image_dma_buf_export
Marc-André Lureau [Mon, 11 May 2015 22:43:49 +0000 (23:43 +0100)]
egl: more define fixes for EGL_MESA_image_dma_buf_export

s/EGL_MESA_dma_buf_image_export/EGL_MESA_image_dma_buf_export as defined by the spec
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Chad Versace <chad.versace@intel.com>
9 years agoegl/main: expose only core EGL functions statically
Emil Velikov [Mon, 11 May 2015 22:43:48 +0000 (23:43 +0100)]
egl/main: expose only core EGL functions statically

The EGL 1.3, 1.4 and 1.5 spec (as quoted below) explicitly mentions that
providing static symbols for functions provided by EGL extensions is not
portable. Considering that relatively recently we've seen a non-mesa
desktop EGL implementation, the fact that we opt for such behaviour has
gone unnoticed.

From the EGL 1.5 specification:
    For functions that are queryable with eglGetProcAddress,
    implementations may choose to also export those functions
    statically from the object libraries implementing those
    functions. However, portable clients cannot rely on this
    behavior.

To encourage devs against writing such non-portable code, let's hide the
symbols similar to the official binary driver from NVIDIA.

v2: Quote the EGL 1.5 spec, as suggested by Chad.

Cc: Brian Paul <brianp@vmware.com>
Cc: Chad Versace <chad.versace@intel.com>
Cc: Daniel Kurtz <djkurtz@chromium.org>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Chad Versace <chad.versace@intel.com>
9 years agoegl: fix the EGL_MESA_image_dma_buf_export header declarations
Emil Velikov [Mon, 11 May 2015 22:43:47 +0000 (23:43 +0100)]
egl: fix the EGL_MESA_image_dma_buf_export header declarations

Similar to other EGL extensions - guard the function prototypes by
EGL_EGLEXT_PROTOTYPES as the libEGL library does (should) not provide
the symbols statically.

Instead users should call eglGetProcAddress, which returns the function
pointer. The latter of which was missing the type declaration (typedef).

Cc: Dave Airlie <airlied@redhat.com>
Cc: Marc-André Lureau <marcandre.lureau@gmail.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Chad Versace <chad.versace@intel.com>
9 years agoegl/main: Update README.txt
Emil Velikov [Mon, 11 May 2015 22:43:46 +0000 (23:43 +0100)]
egl/main: Update README.txt

The driver search/load is not done at eglGetDisplay (or eglOpenDisplay
as the readme called it) time, but during eglInitialize().

Drop _eglMain (available only for external drivers) reference. Mention
we use function(s), specific to the built-in driver(s).

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Chad Versace <chad.versace@intel.com>
9 years agoegl/main: cleanup function prototypes
Emil Velikov [Mon, 11 May 2015 22:43:45 +0000 (23:43 +0100)]
egl/main: cleanup function prototypes

Cleanup the function propotypes which were part of the previous EGL
drivers.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Chad Versace <chad.versace@intel.com>
9 years agoegl/main: drop support for external egl drivers
Emil Velikov [Mon, 11 May 2015 22:43:44 +0000 (23:43 +0100)]
egl/main: drop support for external egl drivers

The only user (egl_gallium) is not longer around.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Chad Versace <chad.versace@intel.com>
9 years agofreedreno: fix bug in tile/slot calculation
Rob Clark [Wed, 13 May 2015 18:36:03 +0000 (14:36 -0400)]
freedreno: fix bug in tile/slot calculation

This was causing corruption with hw binning on a306.  Unlikely that it
is a306 specific, but rather the smaller gmem size resulted in different
tile configuration which was triggering the bug at certain resolutions.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
Cc: "10.4" and "10.5" and "10.6" <mesa-stable@lists.freedesktop.org>
9 years agofreedreno: enable a306
Rob Clark [Tue, 12 May 2015 18:46:50 +0000 (14:46 -0400)]
freedreno: enable a306

Whitelist adreno 306 (as found in msm8916/apq8016).  Works pretty much
out of the box, although the smaller GMEM size requires more tiles to
fit 1920x1080, so bump up the max # of tiles as well.

Since it is just whitelist + trivial change, it makes sense to land on
all the active release branches.

Note that a305c ends up with gpu-id "306", hence a306 ends up with
gpu-id of "307".  Apparently that is what happens when you let the
marketing dept name things.

Cc: "10.4" and "10.5" and "10.6" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Rob Clark <robclark@freedesktop.org>
9 years agoegl/haiku: Drop extern "C". No longer needed
Alexander von Gluck IV [Wed, 13 May 2015 22:14:10 +0000 (17:14 -0500)]
egl/haiku: Drop extern "C". No longer needed

Reviewed-⁠by: Brian Paul <brianp@vmware.com>

9 years agoegl: Add needed extern "C" for C++ access
Alexander von Gluck IV [Wed, 13 May 2015 22:13:37 +0000 (17:13 -0500)]
egl: Add needed extern "C" for C++ access

* Haiku's egl driver is C++ due to the interface natively being C++

Reviewed-⁠by: Brian Paul <brianp@vmware.com>

9 years agonvc0: remove unused nv50_tsc_wrap_mode() function
Samuel Pitoiset [Tue, 12 May 2015 15:13:15 +0000 (17:13 +0200)]
nvc0: remove unused nv50_tsc_wrap_mode() function

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agonv50/ir: silence compiler warnings about mismatched tags
Samuel Pitoiset [Tue, 12 May 2015 15:13:14 +0000 (17:13 +0200)]
nv50/ir: silence compiler warnings about mismatched tags

These warnings have been detected by Clang 3.6.

codegen/nv50_ir_from_tgsi.cpp:1319:10: warning: struct 'Source' was
previously declared as a class [-Wmismatched-tags] const struct tgsi::Source *code;

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agonv50/ir: remove unused private field cycle to SchedDataCalculator
Samuel Pitoiset [Tue, 12 May 2015 15:13:13 +0000 (17:13 +0200)]
nv50/ir: remove unused private field cycle to SchedDataCalculator

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agonv30: remove unused nvfx_fp_memcpy() function and comment nv40_fp_bra()
Samuel Pitoiset [Tue, 12 May 2015 15:35:17 +0000 (17:35 +0200)]
nv30: remove unused nvfx_fp_memcpy() function and comment nv40_fp_bra()

The nv40_fp_bra() function in the same file is also unused but this is
the only place where the nv30/nv40 isa is documented.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agonvc0: do not expose MP counters for nvf0 (GK110+)
Samuel Pitoiset [Mon, 11 May 2015 19:36:16 +0000 (21:36 +0200)]
nvc0: do not expose MP counters for nvf0 (GK110+)

This fixes a crash when trying to monitor MP counters because compute
support is not implemented for nvf0.

Reported-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agodocs/relnotes: Mark off ARB_direct_state_access for 10.6
Fredrik Höglund [Thu, 7 May 2015 18:29:46 +0000 (20:29 +0200)]
docs/relnotes: Mark off ARB_direct_state_access for 10.6

v2: Make it clear that ARB_direct_state_access is only available on
    drivers that support GL 2.0+

Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
9 years agodocs: Update the ARB_direct_state_access status
Fredrik Höglund [Thu, 7 May 2015 18:29:21 +0000 (20:29 +0200)]
docs: Update the ARB_direct_state_access status

Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
9 years agost/mesa: Enable ARB_direct_state_access
Fredrik Höglund [Sun, 10 May 2015 19:06:52 +0000 (21:06 +0200)]
st/mesa: Enable ARB_direct_state_access

Assume that all drivers that advertise support for NPOT textures
are able to support GL 2.0.

v2: Add a comment.

Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
9 years agoi965: Enable ARB_direct_state_access
Fredrik Höglund [Sun, 10 May 2015 19:05:11 +0000 (21:05 +0200)]
i965: Enable ARB_direct_state_access

Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
9 years agoi915: Enable ARB_direct_state_access
Fredrik Höglund [Sun, 10 May 2015 19:04:22 +0000 (21:04 +0200)]
i915: Enable ARB_direct_state_access

This extension requires OpenGL 2.0, so enable it on gen3 and later.

Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
9 years agomesa: Add ARB_direct_state_access checks in query object functions
Fredrik Höglund [Sun, 10 May 2015 18:57:29 +0000 (20:57 +0200)]
mesa: Add ARB_direct_state_access checks in query object functions

Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
9 years agomesa: Add ARB_direct_state_access checks in program pipeline functions
Fredrik Höglund [Sun, 10 May 2015 18:56:18 +0000 (20:56 +0200)]
mesa: Add ARB_direct_state_access checks in program pipeline functions

Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
9 years agomesa: Add ARB_direct_state_access checks in sampler object functions
Fredrik Höglund [Sun, 10 May 2015 18:55:31 +0000 (20:55 +0200)]
mesa: Add ARB_direct_state_access checks in sampler object functions

Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
9 years agomesa: Add ARB_direct_state_access checks in VAO functions
Fredrik Höglund [Sun, 10 May 2015 18:54:18 +0000 (20:54 +0200)]
mesa: Add ARB_direct_state_access checks in VAO functions

Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
9 years agomesa: Add ARB_direct_state_access checks in texture functions
Fredrik Höglund [Sun, 10 May 2015 18:52:49 +0000 (20:52 +0200)]
mesa: Add ARB_direct_state_access checks in texture functions

Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
9 years agomesa: Add ARB_direct_state_access checks in renderbuffer functions
Fredrik Höglund [Sun, 10 May 2015 18:49:15 +0000 (20:49 +0200)]
mesa: Add ARB_direct_state_access checks in renderbuffer functions

Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
9 years agomesa: Add ARB_direct_state_access checks in FBO functions
Fredrik Höglund [Sun, 10 May 2015 18:48:11 +0000 (20:48 +0200)]
mesa: Add ARB_direct_state_access checks in FBO functions

Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
9 years agomesa: Add ARB_direct_state_access checks in buffer object functions
Fredrik Höglund [Sun, 10 May 2015 18:46:36 +0000 (20:46 +0200)]
mesa: Add ARB_direct_state_access checks in buffer object functions

Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
9 years agomesa: Add ARB_direct_state_access checks in XFB functions
Fredrik Höglund [Sun, 10 May 2015 18:44:07 +0000 (20:44 +0200)]
mesa: Add ARB_direct_state_access checks in XFB functions

Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
9 years agomesa: Make GL_TEXTURE_CUBE_MAP valid in FramebufferTextureLayer
Fredrik Höglund [Wed, 29 Apr 2015 17:44:06 +0000 (19:44 +0200)]
mesa: Make GL_TEXTURE_CUBE_MAP valid in FramebufferTextureLayer

Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
9 years agomesa: Add an extension flag for ARB_direct_state_access
Fredrik Höglund [Sun, 10 May 2015 18:34:03 +0000 (20:34 +0200)]
mesa: Add an extension flag for ARB_direct_state_access

Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
9 years agomain: Add entry point for NamedFramebufferDrawBuffers.
Laura Ekstrand [Mon, 9 Feb 2015 22:08:00 +0000 (14:08 -0800)]
main: Add entry point for NamedFramebufferDrawBuffers.

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Refactor DrawBuffers.
Laura Ekstrand [Mon, 9 Feb 2015 21:33:13 +0000 (13:33 -0800)]
main: Refactor DrawBuffers.

This could have added a new DD table entry for DrawBuffers that takes an
arbitrary draw buffer, but, after looking at the existing DD functions,
Kenneth Graunke recommended that we just skip calling the DD functions in the
case of ARB_direct_state_access.  The DD implementations for DrawBuffer(s)
have limited functionality, especially with respect to
ARB_direct_state_access.

[Fredrik: Call the driver function when fb is the bound draw buffer]

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Add entry point for NamedFramebufferReadBuffer.
Laura Ekstrand [Fri, 6 Feb 2015 23:36:52 +0000 (15:36 -0800)]
main: Add entry point for NamedFramebufferReadBuffer.

[Fredrik: Fix the name of the buf parameter in the XML file]

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Refactor _mesa_ReadBuffer.
Laura Ekstrand [Fri, 6 Feb 2015 23:23:05 +0000 (15:23 -0800)]
main: Refactor _mesa_ReadBuffer.

This could have added a new DD table entry for ReadBuffer that takes an
arbitrary read buffer, but, after looking at the existing DD functions,
Kenneth Graunke recommended that we just skip calling the DD functions in the
case of ARB_direct_state_access.  The DD implementations for ReadBuffer
have limited functionality, especially with respect to
ARB_direct_state_access.

[Fredrik: Call the driver function when fb is the bound read buffer]

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Add entry point for NamedFramebufferDrawBuffer.
Laura Ekstrand [Fri, 6 Feb 2015 22:44:43 +0000 (14:44 -0800)]
main: Add entry point for NamedFramebufferDrawBuffer.

[Fredrik: Fix the name of the buf parameter in the XML file]

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Refactor _mesa_DrawBuffer.
Laura Ekstrand [Fri, 6 Feb 2015 18:57:57 +0000 (10:57 -0800)]
main: Refactor _mesa_DrawBuffer.

This could have added a new DD table entry for DrawBuffer that takes an
arbitrary draw buffer, but, after looking at the existing DD functions,
Kenneth Graunke recommended that we just skip calling the DD functions in the
case of ARB_direct_state_access.  The DD implementations for DrawBuffer(s)
have limited functionality, especially with respect to
ARB_direct_state_access.

[Fredrik: Call the driver function when fb is the bound draw buffer]

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Refactor _mesa_drawbuffers.
Laura Ekstrand [Fri, 6 Feb 2015 18:34:24 +0000 (10:34 -0800)]
main: Refactor _mesa_drawbuffers.

[Fredrik: Whitespace fix]

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Add stubs for [Get]NamedFramebufferParameteri[v].
Laura Ekstrand [Fri, 6 Feb 2015 00:38:11 +0000 (16:38 -0800)]
main: Add stubs for [Get]NamedFramebufferParameteri[v].

The ARB_direct_state_access specification says (as of 2015.02.05):
   "Interactions with OpenGL 4.3 or ARB_framebuffer_no_attachments

       If neither OpenGL 4.3 nor ARB_framebuffer_no_attachments are supported,
       ignore the support for NamedFramebufferParameteri and
       GetNamedFramebufferParameteriv."

This commit adds stubs for these entry points.

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Fake entry point for glClearNamedFramebufferfi.
Laura Ekstrand [Thu, 5 Feb 2015 21:43:12 +0000 (13:43 -0800)]
main: Fake entry point for glClearNamedFramebufferfi.

Mesa's ClearBuffer framework is very complicated and thoroughly married to the
object binding model.  Moreover, the OpenGL spec for ClearBuffer is also very
complicated.  At some point, we should implement buffer clearing for arbitrary
framebuffer objects, but for now, we will just wrap ClearBuffer.

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Fake entry point for glClearNamedFramebufferfv.
Laura Ekstrand [Thu, 5 Feb 2015 21:38:39 +0000 (13:38 -0800)]
main: Fake entry point for glClearNamedFramebufferfv.

Mesa's ClearBuffer framework is very complicated and thoroughly married to the
object binding model.  Moreover, the OpenGL spec for ClearBuffer is also very
complicated.  At some point, we should implement buffer clearing for arbitrary
framebuffer objects, but for now, we will just wrap ClearBuffer.

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Fake entry point for glClearNamedFramebufferuiv.
Laura Ekstrand [Thu, 5 Feb 2015 21:30:50 +0000 (13:30 -0800)]
main: Fake entry point for glClearNamedFramebufferuiv.

Mesa's ClearBuffer framework is very complicated and thoroughly married to the
object binding model.  Moreover, the OpenGL spec for ClearBuffer is also very
complicated.  At some point, we should implement buffer clearing for arbitrary
framebuffer objects, but for now, we will just wrap ClearBuffer.

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Fake entry point for glClearNamedFramebufferiv.
Laura Ekstrand [Thu, 5 Feb 2015 21:24:43 +0000 (13:24 -0800)]
main: Fake entry point for glClearNamedFramebufferiv.

Mesa's ClearBuffer framework is very complicated and thoroughly married to the
object binding model.  Moreover, the OpenGL spec for ClearBuffer is also very
complicated.  At some point, we should implement buffer clearing for arbitrary
framebuffer objects, but for now, we will just wrap ClearBuffer.

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Add entry points for InvalidateNamedFramebuffer[Sub]Data.
Laura Ekstrand [Wed, 4 Feb 2015 22:21:48 +0000 (14:21 -0800)]
main: Add entry points for InvalidateNamedFramebuffer[Sub]Data.

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Refactor invalidate_framebuffer_storage.
Laura Ekstrand [Wed, 4 Feb 2015 17:49:58 +0000 (09:49 -0800)]
main: Refactor invalidate_framebuffer_storage.

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Complete error conditions for glInvalidate*Framebuffer.
Laura Ekstrand [Wed, 4 Feb 2015 22:21:17 +0000 (14:21 -0800)]
main: Complete error conditions for glInvalidate*Framebuffer.

Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
9 years agomain: _mesa_blit_framebuffer updates its arbitrary framebuffers.
Laura Ekstrand [Tue, 3 Feb 2015 22:47:00 +0000 (14:47 -0800)]
main: _mesa_blit_framebuffer updates its arbitrary framebuffers.

Previously, we used _mesa_update_state to update the currently bound
framebuffers prior to performing a blit.  Now that _mesa_blit_framebuffer
uses arbitrary framebuffers, _mesa_update_state is not specific enough.

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Add entry point for BlitNamedFramebuffer.
Laura Ekstrand [Tue, 3 Feb 2015 00:27:46 +0000 (16:27 -0800)]
main: Add entry point for BlitNamedFramebuffer.

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Refactor _mesa_update_draw_buffer_bounds.
Laura Ekstrand [Tue, 3 Feb 2015 22:41:26 +0000 (14:41 -0800)]
main: Refactor _mesa_update_draw_buffer_bounds.

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Refactor _mesa_get_clamp_read_color.
Laura Ekstrand [Tue, 3 Mar 2015 23:05:16 +0000 (15:05 -0800)]
main: Refactor _mesa_get_clamp_read_color.

This wasn't neccessary for ARB_direct_state_access, but felt like a good idea
for the sake of completeness.

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Refactor _mesa_[update|get]_clamp_fragment_color.
Laura Ekstrand [Tue, 3 Mar 2015 22:03:33 +0000 (14:03 -0800)]
main: Refactor _mesa_[update|get]_clamp_fragment_color.

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Refactor _mesa_[update|get]_clamp_vertex_color.
Laura Ekstrand [Tue, 3 Feb 2015 19:42:17 +0000 (11:42 -0800)]
main: Refactor _mesa_[update|get]_clamp_vertex_color.

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Refactor _mesa_update_framebuffer.
Laura Ekstrand [Tue, 3 Feb 2015 19:03:01 +0000 (11:03 -0800)]
main: Refactor _mesa_update_framebuffer.

_mesa_update_framebuffer now operates on arbitrary read and draw framebuffers.
This allows BlitNamedFramebuffer to update the state of its arbitrary read and
draw framebuffers.

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Refactor glBlitFramebuffer.
Laura Ekstrand [Tue, 3 Feb 2015 00:17:47 +0000 (16:17 -0800)]
main: Refactor glBlitFramebuffer.

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Fix whitespace in blit.c
Laura Ekstrand [Tue, 3 Feb 2015 00:18:11 +0000 (16:18 -0800)]
main: Fix whitespace in blit.c

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Add entry point GetNamedFramebufferAttachmentParameteriv.
Laura Ekstrand [Fri, 30 Jan 2015 01:11:37 +0000 (17:11 -0800)]
main: Add entry point GetNamedFramebufferAttachmentParameteriv.

[Fredrik: - Update one of the error messages to reflect that the
            framebuffer might not be the bound framebuffer.
          - Whitespace fixes.]

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Add entry point for CheckNamedFramebufferStatus.
Laura Ekstrand [Thu, 29 Jan 2015 21:15:37 +0000 (13:15 -0800)]
main: Add entry point for CheckNamedFramebufferStatus.

[Fredrik: - Retain the debugging code in CheckFramebufferStatus.
          - Whitespace fixes.]

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Fix indents in former get_texture_for_framebuffer functions.
Laura Ekstrand [Tue, 3 Mar 2015 00:52:55 +0000 (16:52 -0800)]
main: Fix indents in former get_texture_for_framebuffer functions.

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Major refactor of get_texture_for_framebuffer.
Laura Ekstrand [Tue, 3 Mar 2015 00:48:59 +0000 (16:48 -0800)]
main: Major refactor of get_texture_for_framebuffer.

This splits off the (still) rather large chunk that is
get_texture_for_framebuffer into lots of smaller functions specialized to
service the wide variety of unique needs of *FramebufferTexture* entry points.
The result is much cleaner because, rather than having a pile of branches and
confusing conditions (like the boolean layered), the uniqueness is baked into
the entry points. The entry points know whether or not they are layered or use
a textarget.

[Fredrik: - Mention the value of <textarget> in the error message.
          - Rename check_zoffset to check_layer, and zoffset to layer.
            The zoffset parameter was renamed to layer in
            ARB_framebuffer_object.
          - Make layered a GLboolean since the value is visible to the API.
          - Remove EXT suffixes in refactored code.
          - Whitespace fixes.]

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Add entry points for glNamedFramebufferTexture[Layer].
Laura Ekstrand [Wed, 28 Jan 2015 21:19:57 +0000 (13:19 -0800)]
main: Add entry points for glNamedFramebufferTexture[Layer].

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Fix indentation in get_texture_for_framebuffer.
Laura Ekstrand [Mon, 2 Mar 2015 21:43:09 +0000 (13:43 -0800)]
main: Fix indentation in get_texture_for_framebuffer.

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Refactor get_texture_for_framebuffer.
Laura Ekstrand [Mon, 2 Mar 2015 21:41:13 +0000 (13:41 -0800)]
main: Refactor get_texture_for_framebuffer.

This moves a few blocks around so that the control flow is more obvious.  If
the texture is 0, just return true at the beginning of the function.
Likewise, if the texObj is NULL, return true at the beginning of the function
as well.

[Fredrik: Fix the texObj NULL check]

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Split framebuffer_texture.
Laura Ekstrand [Wed, 28 Jan 2015 00:11:52 +0000 (16:11 -0800)]
main: Split framebuffer_texture.

Split apart utility function framebuffer_texture to better prepare for
implementing NamedFramebufferTexture and NamedFramebufferTextureLayer.  This
should also pave the way for some future cleanup work.

[Fredrik: - Mention which limit was exceeded when <layer> is out of range.
          - Update a comment to reflect that <fb> might not be the bound
            framebuffer.
          - Make it clear that the error message in glFramebufferTexture*D
            refers to the <textarget> parameter.
          - Remove EXT suffixes.]

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Fix an error generated by FramebufferTexture
Laura Ekstrand [Mon, 20 Apr 2015 15:21:20 +0000 (17:21 +0200)]
main: Fix an error generated by FramebufferTexture

gl*FramebufferTexture should generate GL_INVALID_VALUE when the
texture doesn't exist.

[Fredrik: Split this change out from the next commit]

Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
9 years agomesa: Generate GL_INVALID_VALUE in framebuffer_texture when layer < 0
Fredrik Höglund [Sat, 9 May 2015 13:31:45 +0000 (15:31 +0200)]
mesa: Generate GL_INVALID_VALUE in framebuffer_texture when layer < 0

Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
9 years agomain: Require that the texture exists in framebuffer_texture
Fredrik Höglund [Thu, 7 May 2015 18:28:23 +0000 (20:28 +0200)]
main: Require that the texture exists in framebuffer_texture

Generate GL_INVALID_OPERATION if the texture hasn't been created.

Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
9 years agomain: Fix the indentation in framebuffer_texture
Laura Ekstrand [Tue, 27 Jan 2015 22:11:13 +0000 (14:11 -0800)]
main: Fix the indentation in framebuffer_texture

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Add entry point for NamedFramebufferRenderbuffer.
Laura Ekstrand [Sat, 28 Feb 2015 01:27:30 +0000 (17:27 -0800)]
main: Add entry point for NamedFramebufferRenderbuffer.

[Fredrik: - Remove the DummyRenderbuffer checks now that they are
            done in _mesa_lookup_renderbuffer_err.
          - Fix the <renderbuffertarget> name in error messages.
          - Make the error message in _mesa_framebuffer_renderbuffer
            reflect that <fb> might not be the bound framebuffer.
          - Remove EXT suffixes from GL tokens.]

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Rename framebuffer renderbuffer software fallback.
Laura Ekstrand [Sat, 28 Feb 2015 01:23:59 +0000 (17:23 -0800)]
main: Rename framebuffer renderbuffer software fallback.

Rename _mesa_framebuffer_renderbuffer to _mesa_FramebufferRenderbuffer_sw in
preparation for adding the ARB_direct_state_access backend function for
FramebufferRenderbuffer and NamedFramebufferRenderbuffer to share.

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Add utility function _mesa_lookup_renderbuffer_err.
Laura Ekstrand [Sat, 24 Jan 2015 00:38:36 +0000 (16:38 -0800)]
main: Add utility function _mesa_lookup_renderbuffer_err.

[Fredrik: Generate an error for non-existent renderbuffers]

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Add glCreateFramebuffers.
Laura Ekstrand [Fri, 23 Jan 2015 22:54:48 +0000 (14:54 -0800)]
main: Add glCreateFramebuffers.

[Fredrik: Whitespace fixes]

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agomain: Add utility function _mesa_lookup_framebuffer_err.
Laura Ekstrand [Thu, 22 Jan 2015 18:23:35 +0000 (10:23 -0800)]
main: Add utility function _mesa_lookup_framebuffer_err.

[Fredrik: Generate an error for non-existent framebuffers]

Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
9 years agosoftpipe: enable ARB_texture_view
Roland Scheidegger [Wed, 13 May 2015 20:56:07 +0000 (22:56 +0200)]
softpipe: enable ARB_texture_view

Some bits were already there for texture views but some were missing.
In particular for cube map views things needed to change a bit.
For simplicity I ended up removing the separate face addr bit (just use
the z bit) - cube arrays didn't use it already, so just follow the same
logic there. (In theory using separate bits could allow for better hash
function but I don't think anyone ever did some measurements of that so
probably not worth the trouble, if we'd reintroduce it we'd certainly
wanted to use the same logic for cube arrays and cube maps.)
Also extend the seamless cube sampling to cube arrays - as there were no
piglit failures before this is apparently untested, but things now generally
work quite the same for cube textures and cube array textures so there
hopefully shouldn't be any trouble...

49 new piglits, 47 pass, 2 fail (both due to fake multisampling).

v2: incorporate Brian's feedback, add sampler view validation,
function rename, formatting fixes.

Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agollvmpipe: enable ARB_texture_view
Roland Scheidegger [Wed, 13 May 2015 20:16:44 +0000 (22:16 +0200)]
llvmpipe: enable ARB_texture_view

All the functionality was pretty much there, just not tested.
Trivially fix up the missing pieces (take target info from view not
resource), and add some missing bits for cubes.
Also add some minimal debug validation to detect uninitialized target values
in the view...

49 new piglits, 47 pass, 2 fail (both related to fake multisampling,
not texture_view itself). No other piglit changes.

v2: move sampler view validation to sampler view creation, update docs.

Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agogallium/util: fix blitter sampler view target initialization
Roland Scheidegger [Tue, 12 May 2015 15:27:59 +0000 (17:27 +0200)]
gallium/util: fix blitter sampler view target initialization

This was missing, and drivers relying on the target in the view could get
into quite some trouble.

Signed-off-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
9 years agoglapi/hgl: Drop extern "C" as it was added to glapi
Alexander von Gluck IV [Wed, 13 May 2015 18:22:57 +0000 (14:22 -0400)]
glapi/hgl: Drop extern "C" as it was added to glapi

Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agoglapi: Add extern "C" to glapi_priv.h
Alexander von Gluck IV [Wed, 13 May 2015 18:22:00 +0000 (14:22 -0400)]
glapi: Add extern "C" to glapi_priv.h

* The Haiku glapi has a C++ wrapper around the dispatch code.

Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agogallium/st + hgl: Build fixes for Haiku
Alexander von Gluck IV [Wed, 13 May 2015 14:40:01 +0000 (09:40 -0500)]
gallium/st + hgl: Build fixes for Haiku

* No impact risk to any other platforms
* Tracing printf needs stdio.h now due to child header change
* Add missing #/src include directory for util/macros.h

9 years agoi965: Fix PBO cache coherency issue after _mesa_meta_pbo_GetTexSubImage().
Francisco Jerez [Sat, 31 Jan 2015 18:04:55 +0000 (20:04 +0200)]
i965: Fix PBO cache coherency issue after _mesa_meta_pbo_GetTexSubImage().

This problem can easily be reproduced with a number of
ARB_shader_image_load_store piglit tests, which use a buffer object as
PBO for a pixel transfer operation and later on bind the same buffer
to the pipeline as shader image -- The problem is not exclusive to
images though, and is likely to affect other kinds of buffer objects
that can be bound to the 3D pipeline, including vertex, index,
uniform, atomic counter buffers, etc.

CC: 10.5 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>