Ben Skeggs [Mon, 8 Mar 2010 03:27:46 +0000 (13:27 +1000)]
nv50: when doing inline indices, split elt lists so they fit into pushbuf
Ben Skeggs [Fri, 5 Mar 2010 03:25:01 +0000 (13:25 +1000)]
nv50: reimplement draw_elements_instance(), use for draw_elements() too
This makes draw_elements()/draw_elements_instanced() do the right thing
for the non-inline elements cases, and not require flush_notify().
Ben Skeggs [Fri, 5 Mar 2010 00:08:12 +0000 (10:08 +1000)]
nv50: reimplement draw_arrays_instanced(), do draw_arrays() in terms of it
This makes draw_arrays()/draw_arrays_instanced() do the right thing and
not require the (probably broken anyway) flush_notify() usage.
It also fixes a potential bug in the behaviour of reading InstanceID from
shaders, where 0 should be read for non-instanced drawing, previously it
was possible to read non-0 ids if mixing instanced/non-instanced.
Ben Skeggs [Thu, 4 Mar 2010 03:47:41 +0000 (13:47 +1000)]
nv50: rip out inline push draw paths temporarily
Ben Skeggs [Thu, 4 Mar 2010 01:13:51 +0000 (11:13 +1000)]
nv50: make use of scissor enable/disable method
Ben Skeggs [Thu, 4 Mar 2010 00:55:50 +0000 (10:55 +1000)]
nv50: move magic 0x142c stuff to after state emission
Ben Skeggs [Wed, 3 Mar 2010 23:52:47 +0000 (09:52 +1000)]
nv50: avoid unnecessary vp/gp/fp state changes
Ben Skeggs [Wed, 3 Mar 2010 05:02:53 +0000 (15:02 +1000)]
nv50: remove pre_pipebuffer_map hack....
Ben Skeggs [Wed, 3 Mar 2010 04:59:28 +0000 (14:59 +1000)]
nv50: remove horrific abuse of nouveau_channel.flush_notify
Really though, using this at all is just not a good idea in the 3D driver.
I'm almost certain the hardware will not like a reloc appearing between
begin()/end().. Anyways, this is still better than before, more fixes
to come..
Ben Skeggs [Wed, 3 Mar 2010 04:55:54 +0000 (14:55 +1000)]
nv50: always emit dummy relocs for all still-referenced buffers
Ben Skeggs [Wed, 3 Mar 2010 04:43:21 +0000 (14:43 +1000)]
nv50: ensure enough room for state changes in current pushbuf
Also allows the nv50_state_validate() caller to request a minimum amount
of space that itself requires, not all callers accurately use this yet
but the simple cases are now accounted for.
Rendering will also be dropped on the floor if validate fails now.
Ben Skeggs [Wed, 3 Mar 2010 04:26:25 +0000 (14:26 +1000)]
nv50: rework state emission
Ben Skeggs [Wed, 3 Mar 2010 01:45:08 +0000 (11:45 +1000)]
nv50: use relocs rather than re-uploading TIC all the time
Corbin Simpson [Wed, 10 Mar 2010 04:03:35 +0000 (20:03 -0800)]
r300g: Reorder regs, save one dword.
Or, put another way, save 10% on rendering calls.
Eric Anholt [Tue, 9 Mar 2010 22:22:51 +0000 (14:22 -0800)]
i965: Fix ENDLOOP to only patch up this loop's BREAK and CONT.
Corresponds to
d225a25e21a24508aea3b877c78beb35502e942d and fixes
piglit glsl-fs-loop-nested. Bug #25173.
Eric Anholt [Tue, 9 Mar 2010 19:56:14 +0000 (11:56 -0800)]
i965: Unalias all GLSL source regs from the destination regs used.
We were doing it ad-hoc before, as instructions with potential
aliasing problems were identified. But thanks to swizzling basically
anything can have aliasing, so just do it generally at source reg
setup time. This is somewhat inefficient, because sometimes an
operation doesn't need unaliasing protection if the swizzling is safe,
but the unaliasing before didn't cover those cases either.
Fixes piglit glsl-fs-loop.
Eric Anholt [Tue, 9 Mar 2010 19:31:28 +0000 (11:31 -0800)]
i965: Print the offsets for WHILE and BREAK in disasm.
Eric Anholt [Tue, 9 Mar 2010 17:56:42 +0000 (09:56 -0800)]
i965: Fix nested loops in the VS.
We were patching up all the break and continues between the start of
our loop and the end of our loop, even if they were breaks/continues
for an inner loop. Avoiding patching already patched breaks/continues
fixes piglit glsl-vs-loop-nested.
Eric Anholt [Tue, 9 Mar 2010 00:08:33 +0000 (16:08 -0800)]
i965: Fix up VP constbuf leak on program delete.
Maciej Cencora [Tue, 9 Mar 2010 22:13:19 +0000 (23:13 +0100)]
r300: don't crash if there's no colorbuffer
Maciej Cencora [Sun, 7 Mar 2010 21:01:56 +0000 (22:01 +0100)]
radeon: mark framebuffer as incomplete if renderbuffer format isn't supported by hw
Maciej Cencora [Sun, 7 Mar 2010 13:26:21 +0000 (14:26 +0100)]
r300: add support for more rendering formats
Maciej Cencora [Sun, 7 Mar 2010 13:34:21 +0000 (14:34 +0100)]
radeon/r200/r300/r600: add is_format_renderable function
Maciej Cencora [Tue, 9 Mar 2010 20:42:41 +0000 (21:42 +0100)]
progs/tests: use first color attachement
Allows the tests to be run on drivers that supports only one color attachement.
Maciej Cencora [Tue, 9 Mar 2010 20:42:00 +0000 (21:42 +0100)]
r300: enable HW accelerated gl(Read/Copy/Draw)Pixels
Maciej Cencora [Tue, 9 Mar 2010 20:41:00 +0000 (21:41 +0100)]
radeon: add hw accelerated glReadPixel support (not enabled yet)
José Fonseca [Tue, 9 Mar 2010 20:43:13 +0000 (20:43 +0000)]
glapi: Fix scons build -- list new file.
George Sapountzis [Tue, 9 Mar 2010 20:03:24 +0000 (22:03 +0200)]
glapi: allow for any mangle prefix
George Sapountzis [Tue, 9 Mar 2010 20:03:24 +0000 (22:03 +0200)]
glapi: split out arch-specific code for entrypoints
George Sapountzis [Tue, 9 Mar 2010 20:03:24 +0000 (22:03 +0200)]
glapi: mv table functions to glapi_getproc.c and add local header
George Sapountzis [Tue, 9 Mar 2010 20:03:24 +0000 (22:03 +0200)]
drop stray XFree86Server, XGLServer
Keith Whitwell [Tue, 9 Mar 2010 18:14:34 +0000 (19:14 +0100)]
svga: Don't do culling while the software pipeline is active.
It does it for us, and additionally introduces potentially
back-facing triangles.
Roland Scheidegger [Tue, 9 Mar 2010 19:31:40 +0000 (20:31 +0100)]
mesa/st: initialize velements state properly
one variable is a bitfield where the rest is never written to, which caused
valgrind to complain. Might have caused cso to not recognize an already stored
state. Reported by Christoph Bumiller.
Roland Scheidegger [Tue, 9 Mar 2010 18:05:32 +0000 (19:05 +0100)]
cso: don't forget to release vertex elements state
Marek Olšák [Tue, 9 Mar 2010 19:12:52 +0000 (20:12 +0100)]
r300g: kill pf_component_count
Brian Paul [Tue, 9 Mar 2010 16:37:50 +0000 (09:37 -0700)]
gallivm: checkpoint: nearest mipmap filtering
The LOD is computed from texcoord partial derivatives and used to
select a mipmap level. Still some bugs in texel fetching. Lots of
rough edges and unfinished parts but the basics are in place.
Lots of changes to the lp_bld_arit.c code to support non-vector/scalar
datatypes.
Roland Scheidegger [Tue, 9 Mar 2010 16:27:45 +0000 (17:27 +0100)]
util: simplify util_format_get_nr_components helper
since the number of components is now stored in the pipe format description,
we obviously no longer need to figure this out ourselves.
José Fonseca [Sun, 7 Mar 2010 01:24:57 +0000 (01:24 +0000)]
util: Use bitshift arithmetic for pack too.
Corbin Simpson [Tue, 9 Mar 2010 15:30:27 +0000 (07:30 -0800)]
cso: Fix typo in assert.
Corbin Simpson [Tue, 9 Mar 2010 07:36:04 +0000 (23:36 -0800)]
r300g: Precalculate and CSO-bind PSC state.
Corbin Simpson [Tue, 9 Mar 2010 05:35:43 +0000 (21:35 -0800)]
r300g: Cleanup old PSC code a bit.
Roland Scheidegger [Tue, 9 Mar 2010 15:28:59 +0000 (16:28 +0100)]
identity: fix copy & paste error
Roland Scheidegger [Tue, 9 Mar 2010 15:24:47 +0000 (16:24 +0100)]
r300g: fix gallium-vertexlementcso merge damage
Roland Scheidegger [Tue, 9 Mar 2010 14:59:40 +0000 (15:59 +0100)]
Merge branch 'gallium-vertexelementcso'
Conflicts:
src/gallium/auxiliary/cso_cache/cso_context.c
src/gallium/auxiliary/util/u_blit.c
src/gallium/auxiliary/util/u_gen_mipmap.c
src/gallium/drivers/i915/i915_context.h
src/gallium/drivers/i965/brw_draw_upload.c
src/gallium/drivers/r300/r300_blit.c
src/gallium/drivers/r300/r300_context.h
src/gallium/drivers/r300/r300_render.c
src/gallium/drivers/r300/r300_state_derived.c
src/mesa/state_tracker/st_cb_bitmap.c
src/mesa/state_tracker/st_cb_clear.c
Roland Scheidegger [Tue, 9 Mar 2010 14:09:01 +0000 (15:09 +0100)]
st/mesa: fix clear/drawpixels/bitmap for new cso vertex elements interface
somehow those got lost...
Roland Scheidegger [Tue, 9 Mar 2010 13:23:00 +0000 (14:23 +0100)]
gallium: don't use flexible array members in drivers for vertex elements cso
While this c99 feature should work with most compilers, valgrind doesn't
really like it, and this only really saves some memory, we don't do this
in similar occasions (like the blend state) neither.
Roland Scheidegger [Tue, 9 Mar 2010 13:19:29 +0000 (14:19 +0100)]
auxiliary: fix vertex elements cso
potentially could have got a match even though the cso was different
(in case of different count and first few elements the same).
David Heidelberger [Tue, 9 Mar 2010 12:50:27 +0000 (13:50 +0100)]
nv30: fix typo
Signed-off-by: David Heidelberger <d.okias@gmail.com>
Keith Whitwell [Tue, 9 Mar 2010 10:54:13 +0000 (10:54 +0000)]
Squashed commit of gallium-no-texture-blanket
commit
f90b3f01af82b9522067b1824e21709a6fb2d3af
Author: Keith Whitwell <keithw@vmware.com>
Date: Mon Mar 8 14:39:44 2010 +0000
gallium: remove p_screen::surface_buffer_create
This isn't very useful without texture_blanket(), which has also been
removed.
Note that this function hasn't been removed from the old pipe_winsys
(u_simple_screen) still used internally by some drivers (eg softpipe).
commit
6c462de39a4b9980a5f034a95e580efdfcb8173b
Author: Keith Whitwell <keithw@vmware.com>
Date: Mon Mar 8 14:27:40 2010 +0000
egl/x11: disable texture_blanket usage
commit
b42da9160df9f47224e5b3291b972f41767aa6e5
Merge:
4be2436 3ca9336
Author: Keith Whitwell <keithw@vmware.com>
Date: Mon Mar 8 14:27:24 2010 +0000
Merge commit 'origin/master' into gallium-no-texture-blanket
Conflicts:
src/gallium/drivers/svga/svga_screen_texture.c
commit
4be2436316929e3dfc55bc34d810920c06556b66
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 4 14:59:26 2010 +0000
gallium: remove texture blanket call
No longer needed, except for nouveau and egl/xll/native_ximage.c.
Fix for nouveau is to keep the call, but move it to an internal
function within nouveau.
Fix for that egl/x11 relies on gallium-sw-api branch or its successor.
commit
69b6764330367d63c237d0bde9fb96435d0e0257
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 4 13:35:16 2010 +0000
drm_api: wrap comment
Marek Olšák [Tue, 9 Mar 2010 01:10:36 +0000 (02:10 +0100)]
r300g: remove hacks from translate_vertex_data_swizzle
The first part of the fix of BGRA vertex colors.
Marek Olšák [Tue, 9 Mar 2010 03:40:55 +0000 (04:40 +0100)]
draw: quads never provoke the first vertex
Marek Olšák [Sun, 7 Mar 2010 03:56:06 +0000 (04:56 +0100)]
softpipe: quads never provoke the first vertex
Marek Olšák [Sun, 7 Mar 2010 03:54:43 +0000 (04:54 +0100)]
llvmpipe: quads never provoke the first vertex
Corbin Simpson [Wed, 10 Feb 2010 18:39:18 +0000 (10:39 -0800)]
mesa/st: Gallium quads, by spec, never change provoking vertex.
Fixes glean/clipFlat for r300g.
Chia-I Wu [Tue, 9 Mar 2010 03:32:17 +0000 (11:32 +0800)]
st/egl: Fix KMS build error after winsys handle change.
Brian Paul [Mon, 8 Mar 2010 23:20:16 +0000 (16:20 -0700)]
gallium: update some comments, remove others which are superfluous
Brian Paul [Mon, 8 Mar 2010 23:19:15 +0000 (16:19 -0700)]
vega: remove redundant DEFINES from .c.o rule
Brian Paul [Mon, 8 Mar 2010 22:19:13 +0000 (15:19 -0700)]
llvmpipe/gallivm: checkpoint: array of pointers to mipmap levels
Change the texture data_ptr from just a single image pointer to an
array of image pointers, indexed by mipmap level.
We'll use this for mipmap filtering.
For now, the mipmap level is hard-coded to zero.
Brian Paul [Mon, 8 Mar 2010 21:02:38 +0000 (14:02 -0700)]
nv: define NV30/40/50_MAX_TEXTURE_LEVELS
Brian Paul [Mon, 8 Mar 2010 21:01:30 +0000 (14:01 -0700)]
r300g: define R300_MAX_TEXTURE_LEVELS
Brian Paul [Mon, 8 Mar 2010 21:00:20 +0000 (14:00 -0700)]
svga: s/PIPE_MAX_TEXTURE_LEVELS/SVGA_MAX_TEXTURE_LEVELS/
Brian Paul [Mon, 8 Mar 2010 20:59:39 +0000 (13:59 -0700)]
i915g: define I915_MAX_TEXTURE_2D/3D_LEVELS
Brian Paul [Mon, 8 Mar 2010 20:57:14 +0000 (13:57 -0700)]
i965g: define BRW_MAX_TEXTURE_2D/3D_LEVELS
Brian Paul [Mon, 8 Mar 2010 20:56:44 +0000 (13:56 -0700)]
softpipe: define SP_MAX_TEXTURE_2D/3D_LEVELS
Brian Paul [Mon, 8 Mar 2010 20:36:34 +0000 (13:36 -0700)]
llvmpipe: define max texture levels
Brian Paul [Mon, 8 Mar 2010 20:25:28 +0000 (13:25 -0700)]
llvmpipe: rewrap for 80 columns
Eric Anholt [Mon, 8 Mar 2010 20:12:31 +0000 (12:12 -0800)]
i965: Fix up the handling of point sprite coordinate replacement.
The code was walking over the regs of pairs of attributes and checking
whether the attribute with a given reg index had point sprite enabled.
So the point sprite setup code was rarely even getting executed.
Instead, we need to determine which channels of a reg need point
sprite coordinate replacement. In addition, it was multiplying the
attribute by 1/w, when it's supposed to cover (0, 1) in each direction
regardless of w, and it wasn't filling in the Z and W components of
the texcoord as specified.
Fixes piglit point-sprite and the spriteblast demo. Bug #24431, #22245.
Zack Rusin [Mon, 8 Mar 2010 20:04:04 +0000 (15:04 -0500)]
gallivm: fix a crash by making sure we set the has_mask flag correctly
Jesse Barnes [Mon, 8 Mar 2010 19:30:26 +0000 (11:30 -0800)]
xdemos/omlsync: improve OML WaitMsc test
Use the divisor/remainder for the WaitForMscOML call if a wait_interval
is passed. Allows for testing of the WaitMSC paths in the server & DDX.
Brian Paul [Mon, 8 Mar 2010 18:43:20 +0000 (11:43 -0700)]
Merge branch '7.8'
Brian Paul [Mon, 8 Mar 2010 18:34:55 +0000 (11:34 -0700)]
softpipe: zero-out entire clear_flags array in sp_tile_cache_flush_clear()
Before, we only cleared the flags for the active tiles (the ones inside
the framebuffer bound). The problem is if we later bound a different,
larger surface to the tile cache we'd have some stale clear-flags still
set (and mistakenly clear some tiles in the new surface).
Fixes fd.o bug 26932.
Brian Paul [Mon, 8 Mar 2010 18:31:23 +0000 (11:31 -0700)]
st/mesa: don't detach renderbuffer, surface in st_finish_render_texture()
There's no reason to release the renderbuffer from the framebuffer object
or release the gallium surface in this function (they're reference counted).
In fact, we don't want to do this because we may later use the texture as a
pixel source (ex: glBlitFramebuffer) and need the surface.
Fixes fd.o bug 26923 and is part of the fix for bug 26932.
Alex Deucher [Mon, 8 Mar 2010 16:59:02 +0000 (11:59 -0500)]
r600: enable GL_ARB_pixel_buffer_object
Brian Paul [Mon, 8 Mar 2010 16:58:54 +0000 (09:58 -0700)]
mesa: add additional missing z formats for render to texture
Allow render to texture for X8_Z24 and Z24_X8 formats.
Replace big if/else with switch, etc.
Alex Deucher [Mon, 8 Mar 2010 15:13:49 +0000 (10:13 -0500)]
radeon/r200/r600: allow src and dst BOs to be placed in GTT during blit
Alex Deucher [Mon, 8 Mar 2010 15:04:02 +0000 (10:04 -0500)]
radeon/r200/r600: reset bos when validating buffers during blit
Alex Deucher [Mon, 8 Mar 2010 15:00:59 +0000 (10:00 -0500)]
r600: recalculate point size, if point min/max size changes
Alex Deucher [Mon, 8 Mar 2010 14:57:26 +0000 (09:57 -0500)]
r600: no need to flush on context init
Maciej Cencora [Sat, 13 Feb 2010 23:02:05 +0000 (00:02 +0100)]
r300: don't enable EXT_packed_depth_stencil
R300 hw doesn't support sampling from Z24_S8 or S8_Z24 formats.
Maciej Cencora [Sat, 16 Jan 2010 14:11:37 +0000 (15:11 +0100)]
radeon: no need to emit full state twice after flush
Maciej Cencora [Thu, 4 Mar 2010 17:35:55 +0000 (18:35 +0100)]
r300: allow src and dst BOs to be placed in GTT during blit
Fixes some relocation failures
Maciej Cencora [Sat, 6 Feb 2010 17:25:36 +0000 (18:25 +0100)]
r300: reset bos when validating buffers during blit
Maciej Cencora [Sat, 6 Feb 2010 18:37:23 +0000 (19:37 +0100)]
radeon: fallback to software in glCopyTexImage if blit isn't available
Maciej Cencora [Sun, 7 Mar 2010 11:02:28 +0000 (12:02 +0100)]
r300: VAP flush is needed only when vertex program or constants are changed
Maciej Cencora [Sat, 6 Mar 2010 12:39:13 +0000 (13:39 +0100)]
r300: recalculate point size, if point min/max size changes
Fixes two wine d3d9 unit tests
Maciej Cencora [Sat, 6 Mar 2010 12:18:11 +0000 (13:18 +0100)]
r300: no need to flush on context init
Maciej Cencora [Sat, 6 Mar 2010 12:09:47 +0000 (13:09 +0100)]
r300: remove unnecessary code
_tnl_UpdateFixedFunctionProgram is already called in r300_draw.c
Brian Paul [Mon, 8 Mar 2010 16:38:07 +0000 (09:38 -0700)]
mesa: add render-to-texture case for MESA_FORMAT_S8_Z24
Brian Paul [Mon, 8 Mar 2010 16:34:46 +0000 (09:34 -0700)]
mesa: s/GL_DEPTH_STENCIL/GL_DEPTH_COMPONENT/ for MESA_FORMAT_Z16 renderbuffer
MESA_FORMAT_Z16 has no stencil bits.
Alex Deucher [Mon, 8 Mar 2010 15:13:49 +0000 (10:13 -0500)]
radeon/r200/r600: allow src and dst BOs to be placed in GTT during blit
Alex Deucher [Mon, 8 Mar 2010 15:04:02 +0000 (10:04 -0500)]
radeon/r200/r600: reset bos when validating buffers during blit
Alex Deucher [Mon, 8 Mar 2010 15:00:59 +0000 (10:00 -0500)]
r600: recalculate point size, if point min/max size changes
Alex Deucher [Mon, 8 Mar 2010 14:57:26 +0000 (09:57 -0500)]
r600: no need to flush on context init
Keith Whitwell [Mon, 8 Mar 2010 12:03:46 +0000 (12:03 +0000)]
Merge commit 'origin/gallium-winsys-handle-rebased'
Marek Olšák [Mon, 8 Mar 2010 03:38:16 +0000 (04:38 +0100)]
r300g: fix updating the tiling flags for the framebuffer state
Marek Olšák [Mon, 8 Mar 2010 03:31:03 +0000 (04:31 +0100)]
r300g: remove unnecessary state emissions and clean up
Chia-I Wu [Wed, 3 Mar 2010 15:51:13 +0000 (23:51 +0800)]
st/vega: Fix OpenVG demo segfaults.
When the paint is color, paint_bind_samplers binds a dummy sampler
without a texture. It causes demos requiring a sampler (those use a
mask or an image) to crash.
Francisco Jerez [Sun, 7 Mar 2010 18:12:27 +0000 (19:12 +0100)]
dri/nouveau: Split big client buffers in the indexed case too.
Francisco Jerez [Sun, 7 Mar 2010 17:40:21 +0000 (18:40 +0100)]
dri/nouveau: Fix nv[12]x color sum.
Andrew Randrianasulu [Sun, 7 Mar 2010 01:09:21 +0000 (01:09 +0000)]
dri/nv04: GL_EXT_secondary_color
Signed-off-by: Francisco Jerez <currojerez@riseup.net>