Marek Olšák [Wed, 16 Feb 2011 19:37:28 +0000 (20:37 +0100)]
mesa: fix texture3D mipmap generation for UNSIGNED_BYTE_3_3_2 and 4_4
Oops, I copy-pasted a typo from 3_3_2.
The 3_3_2 part is a candidate for 7.9 and 7.10.
The 4_4 part isn't, because AL44 is in neither branches.
Marek Olšák [Wed, 16 Feb 2011 09:07:05 +0000 (10:07 +0100)]
mesa: fix mipmap generation for MESA_FORMAT_AL44
This was missed when implementing AL44.
José Fonseca [Tue, 15 Feb 2011 17:31:31 +0000 (17:31 +0000)]
scons: Recognize 'AMD64' processor as well.
José Fonseca [Tue, 15 Feb 2011 17:01:20 +0000 (17:01 +0000)]
scons: Don't get fooled by 32bit python on a 64bit windows.
José Fonseca [Tue, 15 Feb 2011 15:31:19 +0000 (15:31 +0000)]
scons: Avoid depending on scons 2.0 in general.
José Fonseca [Tue, 21 Sep 2010 10:47:19 +0000 (11:47 +0100)]
mesa: Remove the DXT compression via blit path.
No longer used.
José Fonseca [Tue, 21 Sep 2010 10:46:20 +0000 (11:46 +0100)]
svga: Don't fake DXT compression ability.
Christoph Bumiller [Wed, 16 Feb 2011 14:41:32 +0000 (15:41 +0100)]
nvc0: fix blend factor mapping
Christoph Bumiller [Wed, 16 Feb 2011 10:57:00 +0000 (11:57 +0100)]
nvc0: fix emit_dfdx,dfdy
Christoph Bumiller [Wed, 16 Feb 2011 10:42:28 +0000 (11:42 +0100)]
nvc0: don't swap sources if either value is not in a GPR
The memory / immediate source should already be in the only valid
position.
Christoph Bumiller [Tue, 15 Feb 2011 20:36:57 +0000 (21:36 +0100)]
nvc0: add missing break statements in constant_operand
Christoph Bumiller [Tue, 15 Feb 2011 13:41:20 +0000 (14:41 +0100)]
nvc0: fix clipping and use VIEWPORT instead of SCISSOR
Christoph Bumiller [Mon, 14 Feb 2011 13:10:41 +0000 (14:10 +0100)]
nvc0: demagic the clear flags and fix region clears
The CLIP_RECTs always affect dedicated clears, and it's nicer than
having to mark the viewport or scissor state dirty after it.
Christoph Bumiller [Mon, 14 Feb 2011 01:04:58 +0000 (02:04 +0100)]
nvc0: front stencil mask and func mask methods are swapped
Christoph Bumiller [Sat, 12 Feb 2011 23:17:43 +0000 (00:17 +0100)]
nvc0: clone memory values with multiple refs before modifying them
Christoph Bumiller [Sat, 12 Feb 2011 21:02:26 +0000 (22:02 +0100)]
nvc0: disable early fragment tests if KIL is used
Early-Z pass raises the occlusion counter.
Christoph Bumiller [Sat, 12 Feb 2011 18:18:19 +0000 (19:18 +0100)]
nvc0: force vertex data through FIFO if we need to convert it
We may want to put the converted vertex buffer in persistent
storage instead, but these are rare corner cases.
Christoph Bumiller [Sat, 12 Feb 2011 17:50:03 +0000 (18:50 +0100)]
nvc0: use format from the template on surface creation
Fixes piglit/fbo-srgb.
Christoph Bumiller [Sat, 12 Feb 2011 17:27:47 +0000 (18:27 +0100)]
nvc0: update the set of formats supported by the 2D engine
Christoph Bumiller [Tue, 15 Feb 2011 18:12:41 +0000 (19:12 +0100)]
nvc0: fix user vertex buffer updates
Brian Paul [Wed, 16 Feb 2011 14:08:47 +0000 (07:08 -0700)]
mesa: use gl_format type instead of GLuint
Dave Airlie [Wed, 16 Feb 2011 06:51:41 +0000 (16:51 +1000)]
r600g: fix typo in previous s3tc commit
pointed out by Marek on irc.
Marek Olšák [Wed, 16 Feb 2011 04:28:40 +0000 (05:28 +0100)]
r300g: fix texture border color for float formats
Dave Airlie [Wed, 16 Feb 2011 06:13:58 +0000 (16:13 +1000)]
Revert "util: fix DXT1 RGBA texture compression if the source color is (0, 0, 0, 0)"
This reverts commit
6e7d782da506da233b2ac695b022ac393e1c719e.
Oops, I just had this locally for testing and forgot to remove it before pushing.
Dave Airlie [Wed, 16 Feb 2011 06:09:43 +0000 (16:09 +1000)]
r600g: add L8A8 SRGB formats.
this fixes the piglit mipmap generation sRGB on my rv730.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Marek Olšák [Wed, 16 Feb 2011 03:18:42 +0000 (04:18 +0100)]
util: fix DXT1 RGBA texture compression if the source color is (0, 0, 0, 0)
This is a workaround for a bug in libtxc_dxtn.
Fixes:
- piglit/GL_EXT_texture_compression_s3tc/fbo-generatemipmap-formats
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Wed, 16 Feb 2011 06:01:36 +0000 (16:01 +1000)]
r600g: add L4A4 support.
this fixes piglit fbo-generatemipmap-formats on my rv730.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Wed, 16 Feb 2011 05:56:11 +0000 (15:56 +1000)]
r600g: fix s3tc-texsubimage
we need to translate the destination box as well.
fixes piglit's s3tc-texsubimage test.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Ian Romanick [Wed, 16 Feb 2011 02:17:53 +0000 (18:17 -0800)]
linker: Fix off-by-one error implicit array sizing
Arrays are zero based. If the highest element accessed is 6, the
array needs to have 7 elements.
Fixes piglit test glsl-fs-implicit-array-size-03 and bugzilla #34198.
NOTE: This is a candidate for the 7.9 and 7.10 branches.
Vinson Lee [Wed, 16 Feb 2011 01:29:43 +0000 (17:29 -0800)]
st/python: add usage parameter to pipe_buffer_create
This is a follow-up to commit
eafb7f234d11a290b00dcaf5492b9bdad1cf5148.
Fixes Linux SCons build.
Marek Olšák [Tue, 15 Feb 2011 23:51:01 +0000 (00:51 +0100)]
r300g: disable linear filtering for float textures
Chad Versace [Mon, 14 Feb 2011 21:22:39 +0000 (13:22 -0800)]
glsl: Reinstate constant-folding for division by zero
Fixes regression: https://bugs.freedesktop.org/show_bug.cgi?id=34160
Commit
e7c1f058d18f62aa4871aec623f994d7b68cb8c1 disabled constant-folding
when division-by-zero occured. This was a mistake, because the spec does
allow division by zero. (From section 5.9 of the GLSL 1.20 spec: Dividing
by zero does not cause an exception but does result in an unspecified
value.)
For floating-point division, the original pre-e7c1f05 behavior is
reinstated.
For integer division, constant-fold 1/0 to 0.
Chad Versace [Mon, 14 Feb 2011 19:16:42 +0000 (11:16 -0800)]
Revert "glsl: Fix constant-folding for reciprocal expressions"
This reverts commit
b3cf92aa916ee0537ee37723c23a9897ac9cd3e0.
The reverted commit prevented constant-folding of reciprocal expressions
when the reciprocated expression was 0. However, since the spec allows
division by zero, constant-folding *is* permissible in this case.
From Section 5.9 of the GLSL 1.20 spec:
Dividing by zero does not cause an exception but does result in an
unspecified value.
Chad Versace [Tue, 15 Feb 2011 23:30:05 +0000 (15:30 -0800)]
tnl: Add support for datatype GL_FIXED in vertex arrays
Before populating the vertex buffer attribute pointer (VB->AttribPtr[]),
convert vertex data in GL_FIXED format to GL_FLOAT.
Fixes bug: http://bugs.freedesktop.org/show_bug.cgi?id=34047
NOTE: This is a candidate for the 7.9 and 7.10 branches.
Dave Airlie [Tue, 15 Feb 2011 22:50:30 +0000 (08:50 +1000)]
r600g: add srgb compressed formats to the list.
Marek Olšák [Sun, 13 Feb 2011 08:13:14 +0000 (09:13 +0100)]
gallium: add usage parameter to pipe_buffer_create
And set a reasonable buffer usage flag everywhere instead of
just PIPE_USAGE_DEFAULT.
Fabian Bieler [Thu, 10 Feb 2011 15:57:34 +0000 (16:57 +0100)]
r600g: Fix RGB10_A2 format handling
Dave Airlie [Tue, 15 Feb 2011 08:42:48 +0000 (18:42 +1000)]
r600g: fix regression in r6/7xx since mipmap rework
I typod this when copy-pasting.
Vinson Lee [Tue, 15 Feb 2011 08:25:08 +0000 (00:25 -0800)]
nvc0: Fix uninitialized variable warning.
Fixes this GCC warning.
nvc0_tgsi_to_nc.c: In function 'bld_tex':
nvc0_tgsi_to_nc.c:1392: warning: 'dim' may be used uninitialized in this function
Marek Olšák [Tue, 15 Feb 2011 04:43:44 +0000 (05:43 +0100)]
r300g: offload the CS ioctl to another thread
This is a multi-threading optimization which hides the kernel overhead
behind a thread. It improves performance in CPU-limited apps by 2-15%.
Of course you must have at least 2 cores for it to make any difference.
It can be disabled with:
export RADEON_THREAD=0
Dave Airlie [Fri, 11 Feb 2011 03:42:52 +0000 (13:42 +1000)]
r600g: add support for s3tc formats.
On r600, s3tc formats require a 1D tiled texture format,
so we have to do uploads using a blit, via the 64-bit and 128-bit formats
Based on the r600c code we use a 64 and 128-bit type to do the
blits.
Still requires R600_ENABLE_S3TC until the kernel fixes are in,
this has only been tested on evergreen where the kernel doesn't
yet get in the way.
Dave Airlie [Tue, 15 Feb 2011 03:21:50 +0000 (13:21 +1000)]
r600g: fix miptree calculations
the miptree setup and pitch storing didn't work so well for block
based things like compressed textures. The CB takes blocks, where
the texture sampler takes pixels, and transfers need bytes,
So now we store blocks/bytes and translate to pixels in the sampler.
This is necessary for s3tc to work properly.
Dave Airlie [Mon, 14 Feb 2011 03:34:11 +0000 (13:34 +1000)]
r600g: drop tiled flag
we can work this out from the array_mode and it makes more sense
to do that.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Tue, 15 Feb 2011 02:50:37 +0000 (12:50 +1000)]
st/mesa: fix compressed mipmap generation.
If the underlying transfer had a stride wider for hw alignment reasons,
the mipmap generation would generate badly strided images.
this fixes a few problems I found while testing r600g with s3tc
Signed-off-by: Dave Airlie <airlied@redhat.com>
Marek Olšák [Tue, 15 Feb 2011 03:41:57 +0000 (04:41 +0100)]
st/mesa: fix GLES build
Broken since
d5062fb3a315c46d77d5c954a3e3c14be1907d33.
I wonder why this code is hidden behind #if by default.
Marek Olšák [Tue, 15 Feb 2011 02:54:24 +0000 (03:54 +0100)]
r300g: actually implement the is_buffer_busy hook the right way
Ooops.
Marek Olšák [Tue, 15 Feb 2011 02:43:57 +0000 (03:43 +0100)]
r300g: handle interaction between UNSYNCHRONIZED and DONTBLOCK flags in bo_map
The VBO module uses both, but they are somewhat opposite to each other.
In this case, we pick UNSYNCHRONIZED and ignore DONTBLOCK.
Marek Olšák [Tue, 15 Feb 2011 01:34:05 +0000 (02:34 +0100)]
r300g: fix a possible race condition when mapping a buffer
This is the last one I think.
Marek Olšák [Tue, 15 Feb 2011 00:41:16 +0000 (01:41 +0100)]
r300g: implement fences using dummy relocations
So finally we have them.
Marek Olšák [Tue, 15 Feb 2011 00:19:01 +0000 (01:19 +0100)]
r300g: fix SIGFPE on debug builds
Marek Olšák [Tue, 15 Feb 2011 00:17:29 +0000 (01:17 +0100)]
r300g: inline some of the pipe_buffer_map/unmap calls
Marek Olšák [Mon, 14 Feb 2011 22:33:06 +0000 (23:33 +0100)]
r300g: do not track whether occlusion queries have been flushed
The winsys takes care of flushing automatically.
Marek Olšák [Mon, 14 Feb 2011 22:15:55 +0000 (23:15 +0100)]
r300g: flush CS in bo_map even if we get USAGE_DONTBLOCK
Because an app may do something like this:
while (!(ptr = bo_map(..., DONT_BLOCK))) {
/* Do some other work. */
}
And it would be looping endlessly if we didn't flush.
Vinson Lee [Mon, 14 Feb 2011 22:10:05 +0000 (14:10 -0800)]
st/python: remove pipe_vertex_buffer::max_index
This is a follow-up to commit
cdca3c58aa2d9549f5188910e2a77b438516714f.
Vinson Lee [Mon, 14 Feb 2011 21:53:09 +0000 (13:53 -0800)]
graw: remove pipe_vertex_buffer::max_index
This is a follow-up to commit
cdca3c58aa2d9549f5188910e2a77b438516714f.
Fabian Bieler [Thu, 10 Feb 2011 15:45:41 +0000 (16:45 +0100)]
st/mesa: Use blend equation and function of first render target for all render targets if ARB_draw_buffers_blend is not supported
If EXT_draw_buffers2 is supported but ARB_draw_buffers_blend isn't
_mesa_BlendFuncSeparateEXT only sets up the blend equation and function for the
first render target. This patch makes sure that update_blend doesn't try to use
the data from other rendertargets in such cases.
Signed-off-by: Brian Paul <brianp@vmware.com>
Marek Olšák [Sun, 13 Feb 2011 08:39:52 +0000 (09:39 +0100)]
r300g: implement pb_manager::is_buffer_busy
Marek Olšák [Sun, 13 Feb 2011 08:26:07 +0000 (09:26 +0100)]
pb_bufmgr_cache: add is_buffer_busy hook and use it instead of non-blocking map
This is cleaner and implementing the hook is optional.
Marek Olšák [Wed, 9 Feb 2011 00:10:11 +0000 (01:10 +0100)]
gallium: notify drivers about possible changes in user buffer contents
Also implement the redefine_user_buffer hook in the drivers.
Marek Olšák [Sun, 26 Dec 2010 03:30:51 +0000 (04:30 +0100)]
st/mesa: set vertex arrays state only when necessary
The vertex arrays state should be set only when (_NEW_ARRAY | _NEW_PROGRAM)
is dirty. This assumes user buffer content is mutable, which will be
sorted out in the next commit. The following usage case should be much faster
now:
for (i = 0; i < 1000; i++) {
glDrawElements(...);
}
Or even:
for (i = 0; i < 1000; i++) {
glSomeStateChangeOtherThanArraysOrProgram(...);
glDrawElements(...);
}
The performance increase from this may be significant in some apps and
negligible in others. It is especially noticable in the Torcs game (r300g):
Before: 15.4 fps
After: 20 fps
Also less looping over attribs in st_draw_vbo yields slight speed-up
in apps with lots of glDraw* calls.
Marek Olšák [Mon, 10 Jan 2011 04:41:47 +0000 (05:41 +0100)]
gallium: remove pipe_vertex_buffer::max_index
This is redundant to pipe_draw_info::max_index and doesn't really fit
in the optimizations I plan.
Marek Olšák [Sun, 9 Jan 2011 08:25:56 +0000 (09:25 +0100)]
gallium: always save and restore vertex buffers using cso_cache
Marek Olšák [Sat, 12 Feb 2011 02:57:19 +0000 (03:57 +0100)]
vbo: bind arrays only when necessary
We don't need to call bind_arrays in the vbo module if the states
which the function depends on are not dirty.
Marek Olšák [Mon, 27 Dec 2010 16:01:25 +0000 (17:01 +0100)]
vbo: notify a driver that we change buffer offsets, strides, etc.
Vinson Lee [Mon, 14 Feb 2011 18:47:58 +0000 (10:47 -0800)]
r300g: Remove redundant initialization.
Remove redundant initialization from commit
3b01b52bd78e3d2fc857feacebd815a5fae00c94 noticed by tstellar.
Alex Deucher [Mon, 14 Feb 2011 18:07:29 +0000 (13:07 -0500)]
r600g: add alignment cases for linear aligned
Matches the drm and ddx.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
José Fonseca [Mon, 14 Feb 2011 10:36:07 +0000 (10:36 +0000)]
draw: Don't define the last two mipmap levels in aa lines.
Some hardware needs to make a seperate copy of all levels to obey
max_lod, so simply do not define the last two levels instead of
clamping.
José Fonseca [Fri, 11 Feb 2011 21:55:29 +0000 (21:55 +0000)]
svga: Set the appropriate flags when creating sampler/surface views.
Marek Olšák [Mon, 14 Feb 2011 09:58:24 +0000 (10:58 +0100)]
r300g: put indices in CS if there's just a few of them and are in user memory
Marek Olšák [Mon, 14 Feb 2011 09:11:50 +0000 (10:11 +0100)]
r300g: cleanup the draw functions
Marek Olšák [Mon, 14 Feb 2011 09:08:59 +0000 (10:08 +0100)]
r300g: do not create a user buffer struct for misaligned ushort indices fallback
Marek Olšák [Mon, 14 Feb 2011 09:05:52 +0000 (10:05 +0100)]
r300g: fix fallback for misaligned ushort indices with num vertices >= 65535
Marek Olšák [Mon, 14 Feb 2011 08:52:15 +0000 (09:52 +0100)]
r300g: consolidate emission of common draw regs
Sedat Dilek [Mon, 14 Feb 2011 08:45:44 +0000 (00:45 -0800)]
docs: Fix typo in GL3.txt
Vinson Lee [Mon, 14 Feb 2011 08:07:07 +0000 (00:07 -0800)]
r300g: Move declaration before code.
Fixes SCons build.
Marek Olšák [Mon, 14 Feb 2011 05:59:00 +0000 (06:59 +0100)]
r600g: do not destroy the original index buffer when translating indices
Because we only translate a subrange of the buffer.
Marek Olšák [Mon, 14 Feb 2011 05:45:55 +0000 (06:45 +0100)]
r300g: emit 3D_LOAD_VBPNTR only when necessary
I thought I couldn't skip emitting this packet in some cases.
Well it looks like I can.
Marek Olšák [Mon, 14 Feb 2011 05:26:56 +0000 (06:26 +0100)]
r300g: fix reference counting when translating indices
Marek Olšák [Mon, 14 Feb 2011 05:03:18 +0000 (06:03 +0100)]
u_index_modify: map buffers with PIPE_TRANSFER_UNSYNCHRONIZED
Marek Olšák [Sun, 13 Feb 2011 23:55:18 +0000 (00:55 +0100)]
r300g: remove the relocation after AARESOLVE_PITCH
Dave Airlie [Sun, 13 Feb 2011 21:52:26 +0000 (07:52 +1000)]
egl_dri2: add nouveau support.
but really wtf? all these PCI IDs need to be ripped out of here, its totally
unscalable and the drivers already have this info so could export it some better way.
tested by Darxus on #wayland.
Marcin Slusarz [Sun, 13 Feb 2011 21:05:28 +0000 (22:05 +0100)]
nv50: fix query assertion
Marek Olšák [Sun, 13 Feb 2011 06:06:22 +0000 (07:06 +0100)]
r300g: correctly determine if a texture is blittable in texture_get_transfer
Marek Olšák [Sat, 12 Feb 2011 23:31:04 +0000 (00:31 +0100)]
r300g: fixup the handle_compare function
Accidentally negated in
685c3262b945a7f0e9f1f3a9409a12fdda08c828.
Marek Olšák [Sat, 12 Feb 2011 22:38:00 +0000 (23:38 +0100)]
r300g: when printing shader linker errors to stderr, report it's not a bug
Marek Olšák [Sat, 12 Feb 2011 22:37:14 +0000 (23:37 +0100)]
r300g: add debug options nozmask and nohiz which disable some hyper-z features
Marek Olšák [Sat, 12 Feb 2011 22:36:48 +0000 (23:36 +0100)]
r300g: typecast void* to unsigned correctly
Eric Anholt [Sat, 12 Feb 2011 20:24:41 +0000 (12:24 -0800)]
dri: Remove the old metaops code which has been superceded by ../common/
Eric Anholt [Sat, 12 Feb 2011 20:23:43 +0000 (12:23 -0800)]
radeon: Remove setup of the old dri/ meta code, which is now unused.
Eric Anholt [Sat, 12 Feb 2011 19:52:06 +0000 (11:52 -0800)]
intel: Remove setup of the old dri/ meta code, which is now unused.
Dave Airlie [Sat, 12 Feb 2011 08:08:04 +0000 (18:08 +1000)]
update GL3.txt for GL_EXT_framebuffer_sRGB status
Tom Stellard [Wed, 9 Feb 2011 09:43:29 +0000 (01:43 -0800)]
r300/compiler: Don't erase sources when converting RGB->Alpha
https://bugs.freedesktop.org/show_bug.cgi?id=34030
NOTE: This is a candidate for the 7.10 branch.
Christopher James Halse Rogers [Thu, 3 Feb 2011 00:19:32 +0000 (11:19 +1100)]
mesa: Optionally build a dricore support library (v3)
This an adds --enable-shared-dricore option to configure. When enabled,
DRI modules will link against a shared copy of the common mesa routines
rather than statically linking these.
This saves about 30MB on disc with a full complement of classic DRI
drivers.
v2: Only enable with a gcc-compatible compiler that handles rpath
Handle DRI_CFLAGS without filter-out magic
Build shared libraries with the full mklib voodoo
Fix typos
v3: Resolve conflicts with talloc removal patches
Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
nobled [Thu, 19 Aug 2010 18:06:21 +0000 (14:06 -0400)]
glx: Put null check before use
'dpy' was being checked for null *after* it was already used once.
Also add a null check for psc, and drop gc's redundant initialization.
Marek Olšák [Fri, 11 Feb 2011 06:52:10 +0000 (07:52 +0100)]
r300g: improve function radeon_bo_is_referenced_by_cs
This should prevent calling into radeon_get_reloc when there's
only one context.
Marek Olšák [Sat, 12 Feb 2011 02:04:21 +0000 (03:04 +0100)]
u_vbuf_mgr: fix segfault
max_index could have been less than min_index, which later caused integer
underflow followed by a segfault in memcpy.
Ian Romanick [Fri, 11 Feb 2011 23:19:05 +0000 (15:19 -0800)]
ir_to_mesa: Don't dereference a NULL pointer during copy propagation
The ACP may already be NULL, so don't try to make it NULL again.
This should fix bugzilla #34119.
Ian Romanick [Fri, 11 Feb 2011 23:42:09 +0000 (15:42 -0800)]
glcpp: regerated files
These should have been committed right after
fd1252ab, but they were
missed. Soon, we'll never have to do this again...
Ian Romanick [Fri, 28 Jan 2011 02:19:54 +0000 (18:19 -0800)]
glsl: Regenerate files modified by previous commits
Ian Romanick [Fri, 28 Jan 2011 01:52:19 +0000 (17:52 -0800)]
glsl: Finish out the reduce/reduce error fixes
Track variables, functions, and types during parsing. Use this
information in the lexer to return the currect "type" for identifiers.
Change the handling of structure constructors. They will now show up
in the AST as constructors (instead of plain function calls).
Fixes piglit tests constructor-18.vert, constructor-19.vert, and
constructor-20.vert. Also fixes bugzilla #29926.
NOTE: This is a candidate for the 7.9 and 7.10 branches.