Eric Anholt [Tue, 16 Mar 2010 18:22:29 +0000 (11:22 -0700)]
Revert "i965: Do FS SLT, SGT, and friends using CMP, SEL instead of CMP, MOV, MOV."
This reverts commit
46450c1f3f93bf4dc96696fc7e0f0eb808d9c08a. I was
wrong about null reg behavior -- it reads undefined, not 0. And
they're not kidding.
Eric Anholt [Sat, 13 Mar 2010 01:12:14 +0000 (17:12 -0800)]
meta: Fix up restoration of state if _mesa_map_pbo_source() fails.
Eric Anholt [Sat, 13 Mar 2010 01:09:51 +0000 (17:09 -0800)]
meta: Properly refcount our saved programs and texobjs.
Found while debugging bug #24119.
Brian Paul [Tue, 16 Mar 2010 19:31:42 +0000 (13:31 -0600)]
gallium: add target-helpers/wrap_screen.c to C_SOURCES
Was commented out before.
Michal Krol [Tue, 16 Mar 2010 18:39:09 +0000 (19:39 +0100)]
st/mesa: Invalidate sampler view when texture object changes.
Roland Scheidegger [Tue, 16 Mar 2010 14:49:23 +0000 (15:49 +0100)]
st/xorg: fix up xorg state tracker to use cso changes
use cso_set_fragment_sampler_views instead of cso_set_sampler_textures
Brian Paul [Tue, 16 Mar 2010 13:56:56 +0000 (07:56 -0600)]
regenerate gl_mangle.h to get new EGLImage functions
José Fonseca [Tue, 16 Mar 2010 13:48:09 +0000 (13:48 +0000)]
libgl-xlib: Use a simple GALLIUM_DRIVER env var to select the pipe driver.
GALLIUM_DRIVER is being used in many other places, and it easier to
memorizing and understand than all the GALLIUM_NO_XXX.
José Fonseca [Tue, 16 Mar 2010 13:46:10 +0000 (13:46 +0000)]
gallium: Silence warning.
Roland Scheidegger [Mon, 15 Mar 2010 20:55:08 +0000 (21:55 +0100)]
gallium: change remaining util functions to use cso sampler views
changes arguments of util_blit_pixels_tex and util_gen_mipmap to
struct pipe_sampler_view * instead of struct pipe_texture *.
Michal Krol [Tue, 16 Mar 2010 09:58:33 +0000 (10:58 +0100)]
gallium/docs: Create a separate section for Sampler Views.
Keith Whitwell [Tue, 16 Mar 2010 09:02:38 +0000 (09:02 +0000)]
Merge commit 'origin/master' into gallium-sampler-view
This branch already seems to have the nv50_tex.c fix.
Conflicts:
src/gallium/drivers/nv50/nv50_tex.c
Chia-I Wu [Tue, 16 Mar 2010 07:48:03 +0000 (15:48 +0800)]
i965g: Fix use of an uninitialized variable.
Chia-I Wu [Tue, 16 Mar 2010 07:12:46 +0000 (15:12 +0800)]
Merge remote branch 'origin/gallium-st-api'
Ben Skeggs [Tue, 16 Mar 2010 03:18:39 +0000 (13:18 +1000)]
nv50: fix texturing from >=4GiB mark
Jakob Bornecrantz [Tue, 16 Mar 2010 01:17:33 +0000 (01:17 +0000)]
llvmpipe: Fix rebase typo
Jakob Bornecrantz [Thu, 11 Mar 2010 03:33:03 +0000 (03:33 +0000)]
winsys/sw: Add a software winsys layered on a pipe
Jakob Bornecrantz [Tue, 16 Mar 2010 00:12:37 +0000 (00:12 +0000)]
i965g: Fix after context transfers
Brian Paul [Tue, 16 Mar 2010 00:19:04 +0000 (18:19 -0600)]
gallivm: checkpoint: stencil test code
Brian Paul [Mon, 15 Mar 2010 20:00:23 +0000 (14:00 -0600)]
gallivm/llvmpipe: rename some constant building functions
Brian Paul [Mon, 15 Mar 2010 19:54:43 +0000 (13:54 -0600)]
gallivm: fix up some #includes
Brian Paul [Mon, 15 Mar 2010 19:50:40 +0000 (13:50 -0600)]
gallivm/llvmpipe: rename os_llvm.h to lp_bld.h
The llvm wrapper wasn't really an OS thing.
Use lp_bld.h for now but we eventually should rename/re-prefix all the
files/functions in the gallivm/ directory.
José Fonseca [Mon, 15 Mar 2010 21:03:59 +0000 (21:03 +0000)]
libgl-xlib: Obey GALLIUM_SOFTPIPE define.
Dave Airlie [Mon, 15 Mar 2010 20:49:38 +0000 (06:49 +1000)]
gallium: fix frontbuffer rendering with r300g
No idea if this is the correct fix, but it makes it work again at least.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Brian Paul [Mon, 15 Mar 2010 17:46:41 +0000 (11:46 -0600)]
llvmpipe: updated status in README file
Brian Paul [Mon, 15 Mar 2010 17:31:59 +0000 (11:31 -0600)]
progs/objviewer: remove debug code
Brian Paul [Mon, 15 Mar 2010 17:27:24 +0000 (11:27 -0600)]
gallivm: fix typo/bug in lp_build_sgn()
We were never returning -1 as a result. This fixes some inverted/flipped
faces with cube mapping.
Keith Whitwell [Mon, 15 Mar 2010 16:56:19 +0000 (17:56 +0100)]
cso: Do not hold references to bound textures.
Sampler views already hold references to those.
Brian Paul [Mon, 15 Mar 2010 16:51:56 +0000 (10:51 -0600)]
gallivm: add min_lod==max_lod special-case code in lp_build_lod_selector()
When min_lod==max_lod we don't need to go through all the work of
computing the lod from partial derivatives. This is hit by the mipmap
generation utility code.
Brian Paul [Mon, 15 Mar 2010 16:43:05 +0000 (10:43 -0600)]
gallivm: asst clean-ups, comments, etc.
Brian Paul [Mon, 15 Mar 2010 16:36:56 +0000 (10:36 -0600)]
gallivm: implement minification/magnification selection
Use the LOD value to determine whether to use the minification vs.
magnification filter.
All mipmap sampling modes work now.
Brian Paul [Mon, 15 Mar 2010 16:31:20 +0000 (10:31 -0600)]
gallivm: fix incorrect clamp in lp_build_linear_mip_levels()
Brian Paul [Mon, 15 Mar 2010 16:29:04 +0000 (10:29 -0600)]
gallivm: fix incorrect floor(), itrunc()
LLVMBuildFPTrunc() should be used for double->float conversion, not
float->int conversion.
There should be a better way to compute floor(), ceil(), etc that doesn't
involve float->int->float conversion.
Michal Krol [Mon, 15 Mar 2010 14:04:12 +0000 (15:04 +0100)]
st/mesa: Fix a call to st_get_stobj_sampler_view().
Michal Krol [Mon, 15 Mar 2010 14:03:44 +0000 (15:03 +0100)]
st/mesa: Pass in correct sampler view object to blitter.
Michal Krol [Mon, 15 Mar 2010 13:42:44 +0000 (14:42 +0100)]
util: Fix nil pointer reference.
Luca Barbieri [Mon, 15 Mar 2010 13:35:41 +0000 (14:35 +0100)]
nv40: remove leftover nv40_transfer.c from unification into nvfx
Michal Krol [Mon, 15 Mar 2010 12:20:37 +0000 (13:20 +0100)]
gallium: util_blit_pixels() takes source sampler view as argument.
Michal Krol [Mon, 15 Mar 2010 12:18:30 +0000 (13:18 +0100)]
st/mesa: Cache FBO texture's sampler view object.
Chia-I Wu [Mon, 15 Mar 2010 11:15:29 +0000 (19:15 +0800)]
st/mesa: Update the comments in st_manager.c.
Keith Whitwell [Mon, 15 Mar 2010 10:27:25 +0000 (10:27 +0000)]
nvfx: fix up after merge
Keith Whitwell [Mon, 15 Mar 2010 10:24:55 +0000 (10:24 +0000)]
r300g: fix up after merge
Keith Whitwell [Mon, 15 Mar 2010 09:44:52 +0000 (09:44 +0000)]
Merge commit 'origin/master' into gallium-sampler-view
Conflicts:
src/gallium/drivers/nv30/nv30_context.h
src/gallium/drivers/nv30/nv30_state.c
src/gallium/drivers/nv40/nv40_context.h
src/gallium/drivers/nv40/nv40_state.c
src/gallium/drivers/r300/r300_emit.c
Dave Airlie [Fri, 12 Feb 2010 05:39:51 +0000 (15:39 +1000)]
r300g: rebuild screen/winsys interface
This creates a cleaner winsys and drop the simple screen stuff.
It makes r300g use pb_bufmgr structs.
It also tries to avoid overheads from mapping too often.
v5: clean warnings
v6: break out of cache check on first buffer - since most likely
the first busy one implies all after it are busy.
v7: cleanup a bit
v8-merged: drop cman for now to just get all the interface changes in first.
rework to changes that happened upstream
Signed-off-by: Dave Airlie <airlied@redhat.com>
Ben Skeggs [Mon, 15 Mar 2010 06:52:25 +0000 (16:52 +1000)]
nv50: reset vbo_fifo before each validate
Luca Barbieri [Sat, 13 Mar 2010 16:42:57 +0000 (17:42 +0100)]
nvfx: remove src_native_swz, which was a no-op
src_native_swz was used to translate 0/1 swizzles back when Gallium
supported them.
That support was later removed from Gallium, and the function currently
always returns true.
Remove it.
Luca Barbieri [Sun, 21 Feb 2010 17:17:03 +0000 (18:17 +0100)]
nvfx: clean up shader header
Currently the behavior of shader.h depends on some constants that
are defined differently in vertex and fragment programs.
This patch cleans that up by splitting the relevant symbols in
vertex program and fragment program variants
Luca Barbieri [Mon, 22 Feb 2010 12:22:24 +0000 (13:22 +0100)]
nvfx: draw: make swtnl draw_elements actually work.
It was totally broken: the index buffer was passed as NULL!
Luca Barbieri [Mon, 22 Feb 2010 12:18:10 +0000 (13:18 +0100)]
nvfx: draw: emit color as floating point
Don't lose precision by converting to u8.
Luca Barbieri [Mon, 22 Feb 2010 12:15:24 +0000 (13:15 +0100)]
nvfx: draw: make perspective corrective texturing work
We must divide everything in the position by w, and emit position as
a 4-component vector.
Not sure why we must divide, but it works (see progs/redbook/checker).
Luca Barbieri [Mon, 22 Feb 2010 11:35:18 +0000 (12:35 +0100)]
nvfx: draw: create draw vp with ureg
This avoids duplicating the vertex program generation logic and
makes the same code work for both nv30 and nv40.
Luca Barbieri [Mon, 22 Feb 2010 10:44:31 +0000 (11:44 +0100)]
nvfx: add NOUVEAU_SWTNL to force swtnl at runtime
Replace the FORCE_SWTNL macro with a NOUVEAU_SWTNL environment variable.
Luca Barbieri [Mon, 22 Feb 2010 19:14:32 +0000 (20:14 +0100)]
nvfx: move nv04_surface_2d.c into nvfx directory
It is only used on pre-nv50 and nvfx is the only Gallium pre-nv50 driver.
Luca Barbieri [Mon, 22 Feb 2010 13:13:17 +0000 (14:13 +0100)]
nvfx: fix quads drawing
The primitive splitting code is totally broken and will be rewritten.
Fix the most important bug now though.
Luca Barbieri [Tue, 2 Mar 2010 21:51:39 +0000 (22:51 +0100)]
nvfx: fix viewport state after bypass removal for swtnl
The adjustment of nv30/nv40 after the removal of bypass incorrectly
removed the hardware viewport bypass code, which we still need for
swtnl and also forgot to remove NVFX_NEW_RAST from pipe.
Luca Barbieri [Sun, 21 Feb 2010 14:13:12 +0000 (15:13 +0100)]
nv30, nv40: move last files to nvfx/ and rm -rf nv30 nv40
This is the last nvfx unification patch.
nv[34]0_fragtex.c are moved to the common directory
nv[34]0_shader.h are renamed to nv[34]0_vertprog.h and moved to
the common directory
The separate nv30 and nv40 directories are removed from the build
system
Luca Barbieri [Wed, 24 Feb 2010 14:08:48 +0000 (15:08 +0100)]
nv30, nv40: partially non-trivially unify sampler state in nv[34]0_state.c
Many things, like texture wrap modes and min/mag filters are common.
Some others, like annisotropy and lod settings, are not.
Luca Barbieri [Sun, 21 Feb 2010 14:07:17 +0000 (15:07 +0100)]
nv30, nv40: partially non-trivially unify nv[34]0_fragtex.c
The bulk files cannot be unified, but the frontend can and allows to
share some code and simplify state_emit.c
Luca Barbieri [Sun, 21 Feb 2010 13:40:32 +0000 (14:40 +0100)]
nv30, nv40: unify nv[34]0_context.c
They are now almost identical, except for nv30 vs nv40 fragtex
initialization.
Luca Barbieri [Sun, 21 Feb 2010 13:38:04 +0000 (14:38 +0100)]
nv30, nv40: fully unify nv[34]0_context.h
Move the remaining content to the common header.
Luca Barbieri [Sun, 21 Feb 2010 13:31:27 +0000 (14:31 +0100)]
nv30, nv40: non-trivially unify nv[34]0_screen.c
The files have the same structure but are substantially different.
They are unified with appropriate conditionals.
Luca Barbieri [Sun, 21 Feb 2010 12:33:48 +0000 (13:33 +0100)]
nv30, nv40: non-trivially unify nv[34]0_vertprog.c
vertprog.c is similar but has substantial differences:
1. nv40 supports clip planes
2. nv40 uses a more advanced register allocator
3. Some register setup is different
4. Constants with the same name have different values
This patch unifies the two files.
nv30 gains clip plane support and the nv40 register allocator.
A new NVFX_VP(x) macro is introduced that at runtime resolved to
either the nv30 or the nv40 constant value.
nv30 clip planes are not tested and might not work
Luca Barbieri [Sun, 21 Feb 2010 11:39:21 +0000 (12:39 +0100)]
nv30, nv40: partially unify nv[34]0_state.c
state.c is identical except for:
1. Sampler state creation is different
2. nv40 swtnl support
3. Separate blend equations on nv40
This patch unifies nv[34]0_state.c, except the sampler state creation code.
Luca Barbieri [Sun, 21 Feb 2010 10:12:08 +0000 (11:12 +0100)]
nv30, nv40: unify nv[34]0_vbo.c
The files are identical, except for swtnl support which is commented
out on nv30 and restart being initialized on nv30 to avoid a compiler
warning.
Luca Barbieri [Sun, 21 Feb 2010 10:17:55 +0000 (11:17 +0100)]
nv30, nv40: non-trivially unify nv[34]0_draw.c
nv30_draw.c is a stub.
This patch makes both nv30 and nv40 use the nv40 swtnl path.
Note that this doesn't actually work on nv30 because the vertex program is
encoded in the nv40-only layout.
However, swtnl was unimplemented before on nv30, so this is not a regression.
Furthermore, a patch to fix this is available near the end of the patchset.
Luca Barbieri [Sun, 21 Feb 2010 09:55:41 +0000 (10:55 +0100)]
nv30, nv40: non-trivially unify nv[34]0_fragprog.c
The files are mostly the same except:
1. On NV40, some TGSI instructions are emulated with several hardware ones
2. Some instructions such as DDX/DDY, and STR were missing from nv30
3. NV40 has more sophisticated register management
nv30 now supports all instructions and uses the nv40 register management.
Luca Barbieri [Sun, 21 Feb 2010 01:26:25 +0000 (02:26 +0100)]
nv30, nv40: non-trivially partially unify nv[34]0_shader.h
shader.h is similar, except for the following differences:
1. The instruction sets are not exactly the same, but mostly similar
2. Vertex program fields are in different bit positions
This patch unifies all parts of nv[34]0_shader.h except the vertex
program fields.
Vertex opcodes are also changed so that the constant names includes
SCA if it is a scalar opcode and VEC if it is a vector opcode.
Luca Barbieri [Sat, 20 Feb 2010 23:59:30 +0000 (00:59 +0100)]
nv30, nv40: non-trivially unify nv[34]0_state_fb.c
The files are significantly different due to:
1. nv30 support 2 render targets, nv40 4
2. z-buffer pitch is set differently
3. nv30 has a limitation of colour_bits >= zeta_bits. This may not
actually exist in the driver though
4. nv30 points color0 at depth in the depth-only case
5. nv30 sets NV34TCL_VIEWPORT_TX_ORIGIN to 0. This is probably
unnecessary
This patch attempts to unify the two files and preserve the existing
behavior.
Luca Barbieri [Sat, 20 Feb 2010 22:30:59 +0000 (23:30 +0100)]
nv30, nv40: unify nv[34]0_state_viewport.c
The files are identical, except for an extra comment in nv30.
Luca Barbieri [Sat, 20 Feb 2010 18:39:24 +0000 (19:39 +0100)]
nv30, nv40: unify nv[34]0_query.c
The files are identical except formatting.
Luca Barbieri [Sat, 20 Feb 2010 18:32:29 +0000 (19:32 +0100)]
nv30, nv40: unify nv[34]0_miptree.c
The only difference between nv30 and nv40 is that nv30 allowed swizzling
for more texture types.
This patch preserves the existing behavior, using conditional code.
Note however that this does not make sense, since all texture types can
be swizzled on nv40 and probably on nv30 too.
However, the handling of swizzled surfaces in the current 2D code is
partially broken, so it's best not to touch this.
A whole rewrite of the 2D code will be submitted, which will solve this
problem.
Luca Barbieri [Sat, 20 Feb 2010 18:22:57 +0000 (19:22 +0100)]
nv30, nv40: unify nv[34]0_state_stipple.c
The files are identical, except for the fact that the nv40 version
forgets to unreference the stateobj.
Unified to the correct nv30 version.
Luca Barbieri [Sat, 20 Feb 2010 22:19:40 +0000 (23:19 +0100)]
nv30, nv40: unify identical nv[34]0_state_zsa.c
Luca Barbieri [Sat, 20 Feb 2010 22:17:41 +0000 (23:17 +0100)]
nv30, nv40: unify identical nv[34]0_state_scissor.c
Luca Barbieri [Sat, 20 Feb 2010 22:16:01 +0000 (23:16 +0100)]
nv30, nv40: unify identical nv[34]0_state_rasterizer.c
Luca Barbieri [Sat, 20 Feb 2010 19:37:17 +0000 (20:37 +0100)]
nv30, nv40: unify identical nv[34]0_state_blend.c
Luca Barbieri [Sun, 21 Feb 2010 10:33:15 +0000 (11:33 +0100)]
nv30, nv40: non-trivially unify nv[34]0_state_emit.c
The files are the same except for swtnl support on nv40 and for
texture cache flushing on nv40.
Unify them, and use a macro to define 4 versions of render_states,
for all combinations of nvfx and hwtnl/swtnl.
Luca Barbieri [Sat, 20 Feb 2010 19:07:10 +0000 (20:07 +0100)]
nv30, nv40: unify identical nv[34]0_transfer.c
Luca Barbieri [Sat, 20 Feb 2010 19:04:54 +0000 (20:04 +0100)]
nv30, nv40: unify identical nv[34]0_clear.c
Luca Barbieri [Sat, 20 Feb 2010 18:52:22 +0000 (19:52 +0100)]
nvfx: add nvfx directory to build system
Will be used to hold source files unified between nv30 and nv40.
Eventually all nv30 and nv40 code will be moved there and the
nv30 and nv40 directories will be removed.
Luca Barbieri [Sun, 21 Feb 2010 12:40:49 +0000 (13:40 +0100)]
nv30, nv40: add is_nv4x member to context and screen structs
This will make it faster to check for nv40.
Luca Barbieri [Sat, 20 Feb 2010 17:37:43 +0000 (18:37 +0100)]
nv30, nv40: unify all structures and headers, except shaders
This patch unifies nv[34]0_screen.h, nv[34]0_context.h and
nv[34]0_state.h
The unified files are put in a new "nvfx" directory.
nv30_context.h and nv40_context.h still exist to hold the function
prototypes and include nvfx_context.h
nv[34]0_screen.h and nv[34]0_state.h are deleted, replaced by the
unified versions.
nv40 includes some extra fields for swtnl and user clip planes
support.
These fields will be unused on nv30 until that functionality gets
added to it too (by unification with nv40).
Luca Barbieri [Sat, 20 Feb 2010 17:34:00 +0000 (18:34 +0100)]
nouveau: s/rankine/eng3d/g; s/curie/eng3d/g
Result of running:
perl -i -p -e 's/rankine/eng3d/g; s/curie/eng3d/g;' nv[34]0/*.[ch]
This will allow to more easily unify nv30 and nv40.
Luca Barbieri [Sat, 20 Feb 2010 17:18:48 +0000 (18:18 +0100)]
nv30: remove unused on_hw field and constant fp_reg_control field
This makes nv30_state.h equivalent to nv40_state.h
Luca Barbieri [Sat, 20 Feb 2010 16:43:31 +0000 (17:43 +0100)]
nv40: use NV34TCL_ constants where available
It was decided to just use the NV34TCL_ constants for constants
common between nv30 and nv40, and deprecate the NV40TCL_ versions.
This patch changes the nv40 driver to use NV34TCL_ constants for
common functionality.
This reduces differences between nv30 and nv40 to ease further
unification.
Vinson Lee [Sun, 14 Mar 2010 23:43:01 +0000 (16:43 -0700)]
r300g: Remove unnecessary headers.
George Sapountzis [Sun, 14 Mar 2010 09:36:47 +0000 (11:36 +0200)]
dri/common: mv __driUtilMessage to utils.c
allows to link with xmlconfig without dri_util, and has nothing drm-specific.
George Sapountzis [Sun, 14 Mar 2010 09:36:46 +0000 (11:36 +0200)]
dri/swrast: add comment in case it's not clear
George Sapountzis [Sun, 14 Mar 2010 09:36:46 +0000 (11:36 +0200)]
dri/swrast: drop mtypes.h from dri_sw
George Sapountzis [Sun, 14 Mar 2010 09:36:46 +0000 (11:36 +0200)]
dri/swrast: update copyright email
George Sapountzis [Sun, 14 Mar 2010 09:36:46 +0000 (11:36 +0200)]
dri/swrast: port to dri_sw (drawable)
George Sapountzis [Sun, 14 Mar 2010 09:36:45 +0000 (11:36 +0200)]
dri/swrast: port to dri_sw (context)
George Sapountzis [Sun, 14 Mar 2010 09:36:45 +0000 (11:36 +0200)]
dri/swrast: port to dri_sw
George Sapountzis [Sun, 14 Mar 2010 09:36:45 +0000 (11:36 +0200)]
dri: add dri_sw.c helper
This is dri_util.c stripped from the drm-specific bits and will be used for
both classic and gallium swrast_dri.so
Vinson Lee [Sun, 14 Mar 2010 22:47:05 +0000 (15:47 -0700)]
trace: Remove unnecessary headers.
Vinson Lee [Sun, 14 Mar 2010 22:38:04 +0000 (15:38 -0700)]
svga: Remove unnecessary header.
George Sapountzis [Thu, 11 Mar 2010 16:04:03 +0000 (18:04 +0200)]
glapi: exec_malloc for dispatch stubs
George Sapountzis [Thu, 11 Mar 2010 16:04:03 +0000 (18:04 +0200)]
glapi: this one should be by THREAD
George Sapountzis [Thu, 11 Mar 2010 16:04:03 +0000 (18:04 +0200)]
glapi: more organize code by arch
It seems that x86-64 with tls will fail to compile or load due to a missining
gl_dispatch_functions_start symbol. Not changing though, since this is how it
used to be and cannot test.
George Sapountzis [Thu, 11 Mar 2010 16:04:02 +0000 (18:04 +0200)]
glapi: organize arch-specific code by arch (2)