Emil Velikov [Sun, 22 Sep 2013 15:14:06 +0000 (16:14 +0100)]
st/glx: consolidate C sources list into Makefile.sources
Move glx/{,xlib/}Makefile.am to preserve file list
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Emil Velikov [Sun, 22 Sep 2013 19:33:45 +0000 (20:33 +0100)]
st/gbm: consolidate C sources list into Makefile.sources
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Emil Velikov [Sun, 22 Sep 2013 16:22:15 +0000 (17:22 +0100)]
st/egl: consolidate C sources lists into Makefile.sources
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Emil Velikov [Wed, 5 Jun 2013 23:02:35 +0000 (00:02 +0100)]
st/dri/sw: consolidate C sources list into Makefile.sources
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Emil Velikov [Wed, 5 Jun 2013 22:57:23 +0000 (23:57 +0100)]
st/dri: consolidate C sources list into Makefile.sources
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Emil Velikov [Sun, 22 Sep 2013 19:30:25 +0000 (20:30 +0100)]
st/clover: consolidate CPP sources list into Makefile.sources
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Emil Velikov [Wed, 5 Jun 2013 22:42:16 +0000 (23:42 +0100)]
galahad: consolidate C sources list into Makefile.sources
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Emil Velikov [Wed, 5 Jun 2013 22:33:38 +0000 (23:33 +0100)]
noop: consolidate C sources list into Makefile.sources
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Emil Velikov [Wed, 5 Jun 2013 22:28:11 +0000 (23:28 +0100)]
identity: consolidate C sources list into Makefile.sources
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Emil Velikov [Wed, 8 May 2013 22:46:38 +0000 (23:46 +0100)]
freedreno: consolidate C sources list into Makefile.sources
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Emil Velikov [Wed, 8 May 2013 22:44:15 +0000 (23:44 +0100)]
trace: consolidate C sources list into Makefile.sources
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Emil Velikov [Wed, 8 May 2013 22:42:23 +0000 (23:42 +0100)]
llvmpipe: consolidate C sources list into Makefile.sources
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Emil Velikov [Wed, 8 May 2013 22:34:36 +0000 (23:34 +0100)]
rbug: consolidate C sources list into Makefile.sources
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Emil Velikov [Wed, 8 May 2013 22:28:04 +0000 (23:28 +0100)]
softpipe: consolidate C sources list into Makefile.sources
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Emil Velikov [Tue, 17 Sep 2013 17:29:19 +0000 (18:29 +0100)]
r600: use NEED_RADEON_LLVM over R600_NEED_RADEON_GALLIUM
libllvmradeon.la is available whenever NEED_RADEON_LLVM is set, using
R600_NEED_RADEON_GALLIUM is rather ambiguous and unnecessary. Drop it
in favour of NEED_RADEON_LLVM.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Emil Velikov [Tue, 17 Sep 2013 17:46:24 +0000 (18:46 +0100)]
gallium/radeon: drop unused variable LIBGALLIUM_LIBS
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Emil Velikov [Tue, 17 Sep 2013 14:58:29 +0000 (15:58 +0100)]
mesa/drivers: drop HAVE_*_DRI from individual makefiles
The mesa/drivers/dri/Makefile.am already guards the individual
targets/subdirs with HAVE_*_DRI before including them. Thus making
the additional check within each Makefile.am unnecessary.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Johannes Obermayr [Tue, 17 Sep 2013 17:09:02 +0000 (18:09 +0100)]
gallium/targets: Make use of prebuilt libdricommon.la.
libdricommon.la is available whenever a non swrast driver is built.
All the classic dri drivers make use of the prebuild library but all
of the gallium ones rebuild it explicitly.
While we're here gallium/{llvm,soft}pipe does not require HAVE_COMMON_DRI
thus do not set in during configure.
v2: [Emil] Add commit message and drop HAVE_COMMON_DRI from configure.ac
v3: [Emil] Rebase and resolve targets/r*/dri conflicts
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Vinson Lee [Sat, 28 Sep 2013 05:11:17 +0000 (22:11 -0700)]
i915: Fix memory leak in do_blit_readpixels.
Fixes "Resource leak" defect reported by Coverity.
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Vinson Lee [Sat, 28 Sep 2013 04:27:19 +0000 (21:27 -0700)]
llvmpipe: Remove unnecessary null check of shader.
shader has already been dereferenced earlier so cannot be null here.
Fixes "Dereference before null check" defect reported by Coverity.
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
Vinson Lee [Sat, 28 Sep 2013 05:42:58 +0000 (22:42 -0700)]
util/u_format: Assert that format block size is at least 1 byte.
The block size for all formats is currently at least 1 byte. Add an
assertion for this.
This should silence several Coverity "Division or modulo by zero"
defects.
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
Vinson Lee [Sat, 28 Sep 2013 04:46:33 +0000 (21:46 -0700)]
draw: Add a null check for draw.
There is an earlier null check for draw so draw could be null here as
well.
Fixes "Dereference after null check" defect reported by Coverity.
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
Vinson Lee [Tue, 1 Oct 2013 03:48:14 +0000 (20:48 -0700)]
st/vdpau: Include u_surface.h for u_copy_rect.
Fix build errors.
CC surface.lo
surface.c: In function 'vlVdpVideoSurfaceGetBitsYCbCr':
surface.c:247:10: error: implicit declaration of function 'util_copy_rect' [-Werror=implicit-function-declaration]
CC output.lo
output.c: In function 'vlVdpOutputSurfaceGetBitsNative':
output.c:216:4: error: implicit declaration of function 'util_copy_rect' [-Werror=implicit-function-declaration]
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Vinson Lee [Tue, 1 Oct 2013 03:36:14 +0000 (20:36 -0700)]
st/vdpau: Include u_format.h for util_format_description.
Fix build error.
CC device.lo
device.c: In function 'vlVdpDefaultSamplerViewTemplate':
device.c:251:4: error: implicit declaration of function 'util_format_description' [-Werror=implicit-function-declaration]
device.c:251:9: warning: assignment makes pointer from integer without a cast [enabled by default]
device.c:252:12: error: dereferencing pointer to incomplete type
device.c:252:28: error: 'UTIL_FORMAT_SWIZZLE_0' undeclared (first use in this function)
device.c:252:28: note: each undeclared identifier is reported only once for each function it appears in
device.c:254:12: error: dereferencing pointer to incomplete type
device.c:256:12: error: dereferencing pointer to incomplete type
device.c:258:12: error: dereferencing pointer to incomplete type
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Vinson Lee [Tue, 1 Oct 2013 03:11:24 +0000 (20:11 -0700)]
st/xvmc: Include u_surface.h for u_copy_rect.
This patch fixes the build error introduced with commit
81bb98e928861260170c16f5c3e0d80492251d6b.
CC subpicture.lo
subpicture.c: In function 'upload_sampler':
subpicture.c:181:4: error: implicit declaration of function 'util_copy_rect' [-Werror=implicit-function-declaration]
subpicture.c: In function 'XvMCClearSubpicture':
subpicture.c:304:21: error: storage size of 'uc' isn't known
subpicture.c:328:4: error: implicit declaration of function 'util_fill_rect' [-Werror=implicit-function-declaration]
subpicture.c:304:21: warning: unused variable 'uc' [-Wunused-variable]
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Brian Paul [Tue, 1 Oct 2013 01:02:27 +0000 (19:02 -0600)]
st/egl: include u_format.h for util_format_get_blocksize()
Brian Paul [Mon, 30 Sep 2013 15:47:31 +0000 (09:47 -0600)]
svga: fix pixel center integer
The svga/d3d9 convention is that pixel centers are at integer coordinates.
Fixes piglit glsl-arb-fragment-coord-conventions test.
Reviewed-by: José Fonseca <jfonseca@vmware.com>
Brian Paul [Mon, 30 Sep 2013 15:47:31 +0000 (09:47 -0600)]
svga: return 0 for PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER
Using the map/unmap path for glTexImage is a little bit faster
than blitting. Also, this fixes about 50 assorted piglit failures
that seem to be related to the blit version of glReadPixels.
Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
Brian Paul [Mon, 30 Sep 2013 15:47:31 +0000 (09:47 -0600)]
svga: we don't support TGSI_OPCODE_CONT
So return PIPE_SHADER_CAP_TGSI_CONT_SUPPORTED = 0.
Brian Paul [Mon, 30 Sep 2013 15:07:33 +0000 (09:07 -0600)]
gallium: include u_surface.h instead of u_rect.h
u_rect.h was including u_surface.h just to avoid touching a bunch
of other source files after some functions were moved from u_rect.h
to u_surface.h. This patch cleans up that hack.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Eric Anholt [Thu, 19 Sep 2013 15:45:07 +0000 (08:45 -0700)]
i965: Reenable glBitmap() after the sRGB winsys enabling.
The format of the window system framebuffer changed from ARGB8888 to
SARGB8, but we're still supposed to render to it the same as ARGB8888
unless the user flipped the GL_FRAMEBUFFER_SRGB switch.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
NOTE: This is a candidate for stable branches.
Ian Romanick [Fri, 13 Sep 2013 16:31:00 +0000 (11:31 -0500)]
mesa: Remove all traces of GL_OES_matrix_get
I believe this extension was enabled by accident. As far as I can tell,
there has never been any code in Mesa to actually support it. Not only
that, this extension is only useful in the common-lite profile, and Mesa
does the common profile.
This "fixes" the piglit test oes_matrix_get-api.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Cc: "9.1 9.2" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Carl Worth [Fri, 27 Sep 2013 21:01:48 +0000 (14:01 -0700)]
Use -Bsymbolic when linking libEGL.so
For some reason that I don't yet fully understand, Glaze does not work with
libEGL unless libEGL is linked with -Bsymbolic.[*]
Beyond that specific reason, all of the reasons for which libGL.so is linked
with -Bsymbolic, (see the commit history), should also apply here.
[*] The specific behavior I am seeing is that when Glaze calls dlopen for
libEGL.so, ifunc resolvers within Glaze for EGL functions are called before
the dlopen returns. These resolvers cannot succeed, as they need the return
value from dlopen in order to find the functions to resolve to. I don't know
what's causing these resolvers to be called, but I have verified that linking
libEGL with -Bsymbolic causes this problematic behavior to stop.
CC: "9.1 and 9.2" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Paul Berry [Tue, 24 Sep 2013 22:18:52 +0000 (15:18 -0700)]
i965/blorp: retype destination register for texture SEND instruction to UW.
From the bspec documentation of the SEND instruction:
"destination region cannot cross the 256-bit register boundary."
To avoid violating this restriction when executing SIMD16 texturing
operations (such as those used by blorp), we need to ensure that the
destination of the SEND instruction doesn't exceed 256 bits in size.
An easy way to do this is to set the type of the destination register
to UW (unsigned word), since 16 unsigned words can fit inside a
256-bit register. Fortunately, this has no effect on the sampling
operation, since the sampler always infers the destination data type
from the sampler message rather than from the type of the instruction
operand.
Previously, we did this for texturing operations issued by the vec4
and fs back-ends, but not for blorp. This patch makes blorp use the
same trick.
I haven't observed any behavioural difference on actual hardware due
to this patch, but it avoids a warning from the simulator so it seems
like the right thing to do.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Acked-by: Chad Versace <chad.versace@linux.intel.com>
Eric Anholt [Fri, 30 Aug 2013 21:39:25 +0000 (14:39 -0700)]
i965: Add a real native TexStorage path.
We originally had a path just did the loop and called
ctx->Driver.AllocTextureImageBuffer(), which I moved into Mesa core. But
we can do better, avoiding incorrect miptree size guesses and later
texture validations by just directly allocating the miptree and setting it
to all the images.
v2: drop debug printf.
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Eric Anholt [Fri, 30 Aug 2013 20:41:44 +0000 (13:41 -0700)]
i965: Add missing license to intel_tex_validate.c.
I've rewritten a lot of this file.
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Eric Anholt [Fri, 30 Aug 2013 20:03:52 +0000 (13:03 -0700)]
i965: Always allocate validated miptrees from level 0.
No change in copies during a piglit run, but it's one less first_level !=
0 in our codebase.
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Eric Anholt [Fri, 30 Aug 2013 20:03:52 +0000 (13:03 -0700)]
i965: Don't relayout a texture just for baselevel changes.
As long as the baselevel, maxlevel still sit inside the range we had
previously validated, there's no need to reallocate the texture.
I also hope this makes our texture validation logic much more obvious.
It's taken me enough tries to write this change, that's for sure. Reduces
miptree copy count on a piglit run by 1.3%, though the change in amount of
data moved is much smaller.
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Eric Anholt [Fri, 30 Aug 2013 19:47:02 +0000 (12:47 -0700)]
i965: Don't allocate a 1-level texture when GL_GENERATE_MIPMAP is set.
Given that a teximage that calls us with this flag set will immediately
proceed to allocate the other levels, we can probably just go ahead and
allocate those levels now.
Reduces miptree copies in piglit by about .05%.
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Eric Anholt [Fri, 30 Aug 2013 19:37:15 +0000 (12:37 -0700)]
i965: Stop allocating miptrees with first_level != 0.
If the caller shows up with GL_BASE_LEVEL != 0, it doesn't mean that the
texture will over the course of its lifetime have that nonzero baselevel,
it means that the caller is filling the texture from the bottom up for
some reason (one could imagine demand-loading detailed texture layers at
runtime, for example). If we allocate from just the current baselevel, it
means when they come along with the next level up, we'll have to allocate
a new miptree and copy all of our bits out of the first miptree.
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Eric Anholt [Fri, 30 Aug 2013 19:21:38 +0000 (12:21 -0700)]
i965: Drop a special case for guessing small miptree levels.
Let's say you started allocating your 2D texture with level 2 of a tree as
a 1x1 image. The driver doesn't know if this means that level 0 is 4x4 or
4x1 or 1x4, so we would just allocate a single 1x1 and let it get copied
in to the real location at texture validate time later.
Since this is just a temporary allocation that *will* get copied, the
extra space allocation of just taking the normal path which will happen to
producing a 4x1 level 0, 2x1 level 1, and 1x1 level 2 is the right way to
go, to reduce complexity in the normal case.
No change in miptree copies over the course of a piglit run.
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Eric Anholt [Tue, 17 Sep 2013 23:47:30 +0000 (16:47 -0700)]
i965: Totally switch around how we handle nonzero baselevel-first_level.
This has no effect currently, because intel_finalize_mipmap_tree() always
makes mt->first_level == tObj->BaseLevel.
The change I made before to handle it
(
b1080cfbdb0a084122fcd662cd27b4748c5598fd) got very close to working, but
after fixing some unrelated bugs in the series, it still left
tex-miplevel-selection producing errors when testing textureLod(). The
problem is that for explicit LODs, the sampler's LOD clamping is ignored,
and only the surface's MIP clamping is respected. So we need to use
surface mip clamping, which applies on top of the sampler's mip clamping,
so the sampler change gets backed out.
Now actually tested with a non-regressing series producing a non-zero
computed baselevel.
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Eric Anholt [Tue, 17 Sep 2013 23:16:20 +0000 (16:16 -0700)]
i965: Always look up from the object's mt when setting up texturing state.
We know that the object's mt is equal to the firstimage's mt because it's
gone through intel_finalize_mipmap_tree(). Saves a lookup of firstimage
on pre-gen7.
v2: Merge in the warning fix that appeared later in the series (noted by
Chad)
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Vinson Lee [Sat, 28 Sep 2013 06:05:54 +0000 (23:05 -0700)]
r600g/sb: Move variable dereference after null check.
Fixes "Deference before null check" defect reported by Coverity.
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Vadim Girlin <vadimgirlin@gmail.com>
Brian Paul [Mon, 30 Sep 2013 15:06:52 +0000 (09:06 -0600)]
st/mesa: fix comment typo
Marek Olšák [Mon, 30 Sep 2013 10:57:51 +0000 (12:57 +0200)]
r600g,radeonsi: workaround for late shared screen initialization
Accidentally broken by the consolidation.
Laurent Carlier [Sun, 29 Sep 2013 19:45:09 +0000 (21:45 +0200)]
r600g: Fix build failure introduced with r600_texture.c consolidation
It seems that case with opencl enabled was forgotten
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
Marek Olšák [Tue, 24 Sep 2013 11:56:27 +0000 (13:56 +0200)]
radeon: make texture logging more useful
This has been very useful for tracking down bugs in libdrm.
The *_PRINT_TEXDEPTH environment variables were probably never used,
so I removed them.
Marek Olšák [Sun, 22 Sep 2013 11:06:27 +0000 (13:06 +0200)]
r600g,radeonsi: share r600_texture.c
The function r600_choose_tiling is new and needs a review.
The only change in functionality is that it enables 2D tiling for compressed
textures on SI. It was probably accidentally turned off.
v2: don't make scanout buffers linear
Marek Olšák [Wed, 25 Sep 2013 18:57:22 +0000 (20:57 +0200)]
r600g: remove compute_global_transfer_* calls from texture_transfer_map/unmap
Textures can never have target==PIPE_BUFFER.
Marek Olšák [Mon, 23 Sep 2013 00:37:05 +0000 (02:37 +0200)]
r600g: move the low-level buffer functions for multiple rings to drivers/radeon
Also slightly optimize r600_buffer_map_sync_with_rings.
Marek Olšák [Sun, 22 Sep 2013 20:12:18 +0000 (22:12 +0200)]
r600g,radeonsi: consolidate tiling_info initialization
and the util_format_s3tc_init calls too.
Marek Olšák [Sun, 22 Sep 2013 19:47:35 +0000 (21:47 +0200)]
radeonsi: implement clear_buffer using CP DMA, initialize CMASK with it
More work needs to be done for this to be entirely shared with r600g.
I'm just trying to share r600_texture.c now.
The reason I put the implementation to si_descriptors.c is that the emit
function had already been there.
Marek Olšák [Sun, 22 Sep 2013 19:45:23 +0000 (21:45 +0200)]
r600g: move aux_context and r600_screen_clear_buffer to drivers/radeon
This will be used in the next commit.
Marek Olšák [Sun, 22 Sep 2013 13:34:12 +0000 (15:34 +0200)]
radeonsi: move debug options to R600_DEBUG
Marek Olšák [Sun, 22 Sep 2013 13:18:11 +0000 (15:18 +0200)]
r600g: move some debug options to drivers/radeon
Marek Olšák [Sun, 22 Sep 2013 00:55:47 +0000 (02:55 +0200)]
r600g,radeonsi: share the async dma interface
r600_texture.c is one step closer to r600g.
Marek Olšák [Sat, 21 Sep 2013 21:33:30 +0000 (23:33 +0200)]
radeonsi: move radeonsi-specific functions out of r600_texture.c
Marek Olšák [Sat, 21 Sep 2013 21:05:08 +0000 (23:05 +0200)]
r600g,radeonsi: remove unused code
Marek Olšák [Sat, 21 Sep 2013 18:50:33 +0000 (20:50 +0200)]
r600g: move r600g-specific functions out of r600_texture.c
Marek Olšák [Sat, 21 Sep 2013 18:14:52 +0000 (20:14 +0200)]
r600g,radeonsi: consolidate r600_texture structures
Marek Olšák [Sat, 21 Sep 2013 18:07:18 +0000 (20:07 +0200)]
r600g: get rid of r600_texture::is_rat
It's always 0.
Marek Olšák [Sat, 21 Sep 2013 18:02:55 +0000 (20:02 +0200)]
r600g: get rid of r600_texture::array_mode
Marek Olšák [Sat, 21 Sep 2013 17:56:24 +0000 (19:56 +0200)]
r600g,radeonsi: consolidate transfer, cmask, and fmask structures
Marek Olšák [Sat, 21 Sep 2013 17:45:08 +0000 (19:45 +0200)]
radeon drivers: handle PIPE_CAP_MAX_VIEWPORTS
Marek Olšák [Wed, 25 Sep 2013 18:07:16 +0000 (20:07 +0200)]
radeon/llvm: fix TGSI_OPCODE_UCMP
This doesn't fix any known issue (I haven't run piglit with this yet),
but the code was obviously completely wrong. It looks like copy-pasted from CMP.
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Marek Olšák [Mon, 23 Sep 2013 20:43:23 +0000 (22:43 +0200)]
st/mesa: fix GLSL mix(.., .., bvecN)
v2: use CMP on drivers without native integer support
Tom Stellard [Thu, 5 Sep 2013 23:26:17 +0000 (16:26 -0700)]
configure.ac: Add a more informative warning when libclc.pc is not found v2
v2:
- Don't display an error message when the user doesn't ask for libclc.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Vinson Lee [Fri, 27 Sep 2013 03:40:39 +0000 (20:40 -0700)]
mesa: Include stdint.h in mtypes.h for uint32_t symbol.
This patch fixes the MSVC build error introduced with commit
b2e327e08f8519da131dd382adcc99240d433404.
api_arrayelt.c
src\mesa\main/mtypes.h(1809) : error C2061: syntax error : identifier 'uint32_t'
src\mesa\main/mtypes.h(1810) : error C2059: syntax error : '}'
src\mesa\main/mtypes.h(1825) : error C2079: 'Minimum' uses undefined union 'gl_perf_monitor_counter_value'
src\mesa\main/mtypes.h(1828) : error C2079: 'Maximum' uses undefined union 'gl_perf_monitor_counter_value'
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Kenneth Graunke [Mon, 23 Sep 2013 20:37:00 +0000 (13:37 -0700)]
i965/fs: Don't double-accept operands of logical and/or/xor operations.
If the argument to emit_bool_to_cond_code() is an ir_expression, we
loop over the operands, calling accept() on each of them, which
generates assembly code to compute that subexpression. We then emit
one or two final instruction that perform the top-level operation on
those operands.
If it's not an expression (say, a boolean-valued variable), we simply
call accept() on the whole value.
In commit
80ecb8f1 (i965/fs: Avoid generating extra AND instructions on
bool logic ops), Eric made logic operations jump out of the expression
path to the non-expression path.
Unfortunately, this meant that we would first accept() the two operands,
skip generating any code that used them, then accept() the whole
expression, generating code for the operands a second time.
Dead code elimination would always remove the first set of redundant
operand assembly, since nothing actually used them. But we shouldn't
generate it in the first place.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Kenneth Graunke [Tue, 26 Mar 2013 22:22:22 +0000 (15:22 -0700)]
i965: Add #define for MI_REPORT_PERF_COUNT on Gen6+.
This appears in Volume 1 Part 1 of the Sandybridge PRM on page 48.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Kenneth Graunke [Thu, 11 Apr 2013 20:22:29 +0000 (13:22 -0700)]
i965: Add support for GL_AMD_performance_monitor on Ironlake.
Ironlake's counters are always enabled; userspace can simply send a
MI_REPORT_PERF_COUNT packet to take a snapshot of them. This makes it
easy to implement.
The counters are documented in the source code for the intel-gpu-tools
intel_perf_counters utility.
v2: Adjust for core data structure changes. Add a table mapping buffer
object offsets to exposed counters (which changes each generation).
Finally, add report ID assertions to sanity check the BO layout
(thanks to Carl Worth).
v3: Update for core BeginPerfMonitor hook changes (requested by Brian).
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Kenneth Graunke [Thu, 11 Apr 2013 20:22:00 +0000 (13:22 -0700)]
mesa: Add core support for the GL_AMD_performance_monitor extension.
This provides an interface for applications (and OpenGL-based tools) to
access GPU performance counters. Since the exact performance counters
available vary between vendors and hardware generations, the extension
provides an API the application can use to get the names, types, and
minimum/maximum values of all available counters. Counters are also
organized into groups.
Applications create "performance monitor" objects, select the counters
they want to track, and Begin/End monitoring, much like OpenGL's query
API. Multiple monitors can be in flight simultaneously.
v2: Pass ctx to all driver hooks (suggested by Christoph), and attempt
to fix overallocation of bitsets (caught by Christoph). Incomplete.
v3: Significantly rework core data structures. Store counters in groups
rather than in a global list. Use their array index in the group's
counter list as the ID rather than trying to store a globally unique
counter ID. Use bitsets for active counters within a group, and
also track which groups are active so that's easy to query.
v4: Remove _mesa_ prefix on static functions; detect out of memory
conditions in new_performance_monitor(); make BeginPerfMonitor hook
return a boolean rather than setting m->Active or raising an error.
Switch to GLuint/unsigned for NumGroups, NumCounters, and
MaxActiveCounters (which also means switching a bunch of temporary
variable types). All suggested by Brian Paul. Also, remove
commented out code at the bottom of the block. Finally, fix the
dispatch sanity test (noticed by Ian Romanick).
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com> [v3]
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Kenneth Graunke [Tue, 24 Sep 2013 01:18:14 +0000 (18:18 -0700)]
glsl: Create and use a has_uniform_buffer_objects() helper.
This is better than overriding the extension enable based on the
language version; it's robust against shaders that do:
#version 140
#extension GL_ARB_uniform_buffer_object : disable
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Kenneth Graunke [Tue, 24 Sep 2013 01:13:52 +0000 (18:13 -0700)]
glsl: Create and use a has_explicit_attrib_location() helper.
Explicit attribute locations are supported with GLSL 3.30, GLSL ES 3.00,
or "#extension GL_ARB_explicit_attrib_location: enable". Using a helper
function makes it easy to check for this.
This enables support in GLSL 3.30, which was previously missing.
Previously, we overrode the extension enable flag for ES 3.00. This is
not robust against a shader such as:
#version 330
#extension GL_ARB_explicit_attrib_location : disable
Disabling extensions should not remove core language functionality.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Kenneth Graunke [Wed, 18 Sep 2013 04:50:26 +0000 (21:50 -0700)]
mesa: Remove 'invalidate_state' parameter to _mesa_dirty_texobj().
Every caller passed true.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Eric Anholt [Wed, 25 Sep 2013 22:41:46 +0000 (15:41 -0700)]
mesa: Remove some remaining FEATURE_* detritus.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sun, 15 Sep 2013 10:25:45 +0000 (22:25 +1200)]
i965: Fix cube array coordinate normalization
Hardware requires the magnitude of the largest component to not exceed
1; brw_cubemap_normalize ensures that this is the case.
Unfortunately, we would previously multiply the array index for cube
arrays by the normalization factor. The incorrect array index would then
cause the sampler to attempt to access either the wrong cube, or memory
outside the cube surface entirely, resulting in garbage rendering or in
the worst case, hangs.
Alter the normalization pass to only multiply the .xyz components.
Fixes broken rendering in the arb_texture_cube_map_array-cubemap piglit,
which was recently adjusted to provoke this behavior.
V2: Fix indent.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Cc: "9.2" mesa-stable@lists.freedesktop.org
Reviewed-by: Eric Anholt <eric@anholt.net>
Zack Rusin [Thu, 19 Sep 2013 17:38:12 +0000 (13:38 -0400)]
draw/clip: don't emit so many empty triangles
Compress empty triangles (don't emit more than one in a row) and
never emit empty triangles if we already generated a triangle
covering a non-null area. We can't skip all null-triangles
because c_primitives expects ones that were generated from vertices
exactly at the clipping-plane, to be emitted.
Signed-off-by: Zack Rusin <zackr@vmware.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Zack Rusin [Thu, 19 Sep 2013 17:37:03 +0000 (13:37 -0400)]
llvmpipe: count c_primitives before discarding null prims
We need to count the clipper primitives before the rasterizer
discards one it considers to be null.
Signed-off-by: Zack Rusin <zackr@vmware.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Zack Rusin [Tue, 24 Sep 2013 20:25:24 +0000 (16:25 -0400)]
llvmpipe: we need to subdivide if fb is bigger in either direction
We need to subdivide triangles if either of the dimensions is
larger than the max edge length, not when both of them are larger.
Signed-off-by: Zack Rusin <zackr@vmware.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Marek Olšák [Tue, 24 Sep 2013 17:28:27 +0000 (19:28 +0200)]
radeon/llvm: fix shadow cube texturing for GL3.0
The fix is at the end (TGSI_TEXTURE_SHADOWCUBE handling), but I also
restructured the code for it to be more readable.
Fixes spec/!OpenGL 3.0/sampler-cube-shadow.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Tue, 24 Sep 2013 12:15:00 +0000 (14:15 +0200)]
radeonsi: fix blitting the last 2 mipmap levels of compressed textures
This fixes compressedteximage piglit tests.
+10 piglits
Evergreen and Cayman have the same issue. R600 and R700 don't.
Cc: "9.2" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Mon, 23 Sep 2013 13:40:50 +0000 (15:40 +0200)]
radeonsi: add missing colorbuffer formats (rework format translation)
This fixes some piglits, e.g:
spec/!OpenGL 3.0/required-renderbuffer-attachment-formats.
This can be ported to r600g.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Mon, 23 Sep 2013 19:41:34 +0000 (21:41 +0200)]
radeonsi: bypass alpha-test for integer colorbuffers
Fixes spec/EXT_texture_integer/fbo-blending.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Thu, 19 Sep 2013 13:07:41 +0000 (15:07 +0200)]
r600g: fix texture buffer object cache flushing
Cc: "9.2" <mesa-stable@lists.freedesktop.org>
Marek Olšák [Wed, 18 Sep 2013 20:46:25 +0000 (22:46 +0200)]
r600g: fix constant buffer cache flushing
Cc: "9.2" <mesa-stable@lists.freedesktop.org>
Christian König [Wed, 25 Sep 2013 11:59:56 +0000 (13:59 +0200)]
radeon/winsys: keep screen pointer in winsys v2
Only create one screen for each winsys instance.
This helps with buffer sharing and interop handling.
v2: rebased and some minor cleanup
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Christian König [Wed, 25 Sep 2013 10:28:09 +0000 (12:28 +0200)]
build/radeonsi: group all targets in common subdir
Allows us to share more code between different targets.
Signed-off-by: Christian König <christian.koenig@amd.com>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Christian König [Wed, 25 Sep 2013 09:34:39 +0000 (11:34 +0200)]
build/r600: group all targets in common subdir
Allows us to share more code between different targets.
Signed-off-by: Christian König <christian.koenig@amd.com>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Christian König [Wed, 25 Sep 2013 09:49:49 +0000 (11:49 +0200)]
build/r300: group build target in common subdir
Allows us to share more code between different targets.
Signed-off-by: Christian König <christian.koenig@amd.com>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Christian König [Sun, 22 Sep 2013 13:59:17 +0000 (15:59 +0200)]
radeon/uvd: try to place msg/fb buffer into GART
This is only supported on NI+, but the kernel takes care of those limitations.
Signed-off-by: Christian König <christian.koenig@amd.com>
Christian König [Sun, 22 Sep 2013 08:41:27 +0000 (10:41 +0200)]
radeon/uvd: move alignment to winsys
Similar to GFX and DMA.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Christian König [Sun, 22 Sep 2013 10:16:20 +0000 (12:16 +0200)]
st/vdpau: use a separate lock per decoder
Signed-off-by: Christian König <christian.koenig@amd.com>
Christian König [Mon, 9 Sep 2013 09:58:53 +0000 (03:58 -0600)]
st/vdpau: use new vlc function to serach for VC-1 start codes
Signed-off-by: Christian König <christian.koenig@amd.com>
Christian König [Mon, 9 Sep 2013 09:57:58 +0000 (03:57 -0600)]
vl/mpeg12: use new vlc function to search for start codes
Signed-off-by: Christian König <christian.koenig@amd.com>
Christian König [Mon, 9 Sep 2013 09:47:10 +0000 (03:47 -0600)]
vl/vlc: add fast forward search for byte value
Commonly used to find start codes and has far less overhead
to searching manually.
Signed-off-by: Christian König <christian.koenig@amd.com>
Vinson Lee [Tue, 24 Sep 2013 05:13:37 +0000 (22:13 -0700)]
glsl: Initialize ir_lower_jumps_visitor member variables.
Fixes "Unintialized scalar field" defect reported by Coverity.
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Vinson Lee [Tue, 24 Sep 2013 04:47:48 +0000 (21:47 -0700)]
glsl: Initialize lower_vector_visitor::dont_lower_swz.
Fixes "Uninitialized scalar field" defect reported by Coverity.
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Vinson Lee [Tue, 24 Sep 2013 05:02:27 +0000 (22:02 -0700)]
glsl: Initialize assignment_generator member variables.
Fixes "Uninitialized pointer field" defect reported by Coverity.
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>