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)
George Sapountzis [Thu, 11 Mar 2010 16:04:02 +0000 (18:04 +0200)]
glapi: organize arch-specific code by arch
Marek Olšák [Sun, 14 Mar 2010 13:32:50 +0000 (14:32 +0100)]
r300g: remove pipe_context from r300_screen
Chia-I Wu [Sun, 14 Mar 2010 06:58:27 +0000 (14:58 +0800)]
st/glx: Fix glXCopySubBufferMESA.
Honor the (x, y) and (width, height) pairs.
Chia-I Wu [Sun, 14 Mar 2010 04:01:27 +0000 (12:01 +0800)]
st/glx: Sync the back buffer to the front buffer.
Consider this rendering sequence
* render to the back buffer
* swap buffers
* read from the front buffer
The front buffer is expected to have the contents of the back buffer.
Chia-I Wu [Sun, 14 Mar 2010 03:34:16 +0000 (11:34 +0800)]
st/glx: Add support for GLX_MESA_copy_sub_buffer.
Create a per-display pipe_context as needed to copy the contents between
framebuffer attachments. This allows us to support
GLX_MESA_copy_sub_buffer.
Chia-I Wu [Sun, 14 Mar 2010 03:20:58 +0000 (11:20 +0800)]
st/glx: Add xmesa_display to hold per-display variables.
This basically adds a static xmesa_display to collect per-display static
variables in xm_api.c. Multiple display support is still missing, but
this is a step forward.
Chia-I Wu [Sat, 13 Mar 2010 16:10:09 +0000 (00:10 +0800)]
st/mesa: Fix handling of FBO.
FBOs are created by st_new_framebuffer and cannot be casted to
st_framebuffer.
Vinson Lee [Sun, 14 Mar 2010 02:05:39 +0000 (18:05 -0800)]
softpipe: Remove unnecessary header.
Dan Nicholson [Sat, 13 Mar 2010 19:56:59 +0000 (11:56 -0800)]
gallium: Respect user's CFLAGS for including X headers
This can break on systems that don't have a system X installation.
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Jeff Smith [Sat, 13 Mar 2010 00:55:09 +0000 (18:55 -0600)]
Use X_LIBS from pkg-config, instead of libdir, for locating libX11
Signed-off-by: Jeff Smith <whydoubt@yahoo.com>
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
José Fonseca [Sat, 13 Mar 2010 19:11:08 +0000 (19:11 +0000)]
llvmpipe: Switch to PIPE_TEX_MIPFILTER_NONE when texture has no mipmaps.
Marek Olšák [Sat, 13 Mar 2010 16:38:43 +0000 (17:38 +0100)]
r300g: add high quality anisotropic filtering for R5xx (disabled by default)
Oh look, an undocumented feature. It's a nice tool for benchmarking
texturing.
Marek Olšák [Sat, 13 Mar 2010 15:24:50 +0000 (16:24 +0100)]
r300g: fix anisotropic filtering, fix macrotiling
Two bug fixes at the same time. :)
Marek Olšák [Sat, 13 Mar 2010 05:07:33 +0000 (06:07 +0100)]
r300g: refrain from using immediate mode if it causes slowdown
E.g. when mapping buffers could flush CS or cause waiting
for a busy buffer.
The side effect of this is it also fixes progs/demos/arbocclude however
a separate fix should be proposed to address this issue in other cases
it might occur.
Marek Olšák [Sat, 13 Mar 2010 03:43:46 +0000 (04:43 +0100)]
r300g: fix up function names
Maciej Cencora [Sat, 13 Mar 2010 16:33:48 +0000 (17:33 +0100)]
radeon: add some debuging info for glCopyTex(Sub)Image
Maciej Cencora [Sat, 13 Mar 2010 16:28:33 +0000 (17:28 +0100)]
r300: blits for small dst pitch work just fine
Maciej Cencora [Sat, 13 Mar 2010 16:27:51 +0000 (17:27 +0100)]
radeon: fix gl format to mesa format mapping and add GL_BGRA formats
Maciej Cencora [Sat, 13 Mar 2010 15:46:19 +0000 (16:46 +0100)]
radeon: fix glCopyTex(Sub)Image
Fallback to swrast for software renderbuffers
José Fonseca [Sat, 13 Mar 2010 16:13:26 +0000 (16:13 +0000)]
llvmpipe: Ensure the context is flushed before modifying textures.
José Fonseca [Sat, 13 Mar 2010 16:04:06 +0000 (16:04 +0000)]
llvmpipe: Don't use texture transfer internally.
Now that transfers are context objects their sideeffects must happen in
order when used by the state tracker, but that synchronization must be
bypassed when used inside the driver, or it would cause infinite
recursion.
Keith Whitwell [Sat, 13 Mar 2010 15:06:35 +0000 (15:06 +0000)]
Merge commit 'origin/master' into gallium-sampler-view
Conflicts:
src/gallium/auxiliary/util/u_tile.c
src/gallium/auxiliary/util/u_tile.h
src/gallium/drivers/identity/id_context.c
src/gallium/drivers/llvmpipe/lp_setup.c
src/gallium/drivers/llvmpipe/lp_setup.h
src/gallium/drivers/softpipe/sp_tex_tile_cache.c
src/gallium/include/pipe/p_context.h
src/mesa/state_tracker/st_cb_bitmap.c
src/mesa/state_tracker/st_cb_drawpixels.c
Chia-I Wu [Sat, 13 Mar 2010 12:30:03 +0000 (20:30 +0800)]
st/mesa: Validate the state in st_readpixels.
The front renderbuffer of a framebuffer is usually added as needed when
glReadBuffer(GL_FRONT) is called. When the call is followed by
glReadPixels, we should validate the state before reading from the
renderbuffer.
José Fonseca [Sat, 13 Mar 2010 11:22:39 +0000 (11:22 +0000)]
llvmpipe: Obey rasterization rules.
Replicates softpipe.
José Fonseca [Sat, 13 Mar 2010 10:45:52 +0000 (10:45 +0000)]
llvmpipe: setup_context -> lp_setup_context
Otherwise IDEs and debuggers have trouble distinguishing from softpipe's
setup_context.
Keith Whitwell [Fri, 12 Mar 2010 18:32:10 +0000 (18:32 +0000)]
mesa: Fix memory leak in decompress-with-blit.
(cherry picked from commit
f05a4ee6f2840590c90da4be2fe5c6295410a5af)
Xavier Chantry [Sat, 13 Mar 2010 10:33:27 +0000 (11:33 +0100)]
nv50: fixup after gallium-context-transfers merge
José Fonseca [Fri, 12 Mar 2010 13:12:15 +0000 (13:12 +0000)]
python: Temporarily disable python state tracker until transfers are done by contexts
It requires changes not ony to the state tracker but to the python
scripts too.
Chia-I Wu [Sat, 13 Mar 2010 09:40:24 +0000 (17:40 +0800)]
st/glx: Fix framebuffer validation.
When xmesa_st_framebuffer_validate was called twice with different sets
of attachments, the second call was ignored. Add a texture_mask to
remember which textures have been requested to make sure the missing
ones get created.
Chia-I Wu [Sat, 13 Mar 2010 09:39:14 +0000 (17:39 +0800)]
st/glx: Correctly set buffer_mask of a visual.
Stupid typos again..
Chia-I Wu [Sat, 13 Mar 2010 09:00:24 +0000 (17:00 +0800)]
st/mesa: Set revalidate in st_framebuffer_update_attachments.
There are two conditions that a validation is required. One is when the
the framebuffer becomes invalid. The other is when we request for
textures that we did not request before.
Chia-I Wu [Sat, 13 Mar 2010 07:57:15 +0000 (15:57 +0800)]
st/glx: Make xmesa_create_st_api a callback of xm_driver.
Instead of guessing the API in st/glx, let the target decide how to
create st_api.
Chia-I Wu [Sat, 13 Mar 2010 06:57:32 +0000 (14:57 +0800)]
st/egl: Fix eglCopyBuffers.
Use a (real) pipe context to copy between pipe surfaces. Fix a NULL
dereference of the temporary native surface created for copying.
Chia-I Wu [Fri, 12 Mar 2010 16:52:47 +0000 (00:52 +0800)]
st/glx: Fix leaks in xmesa_st_framebuffer.
The textures and surface of a framebuffer should be unreferenced when
the framebuffer is destroyed.
Chia-I Wu [Fri, 12 Mar 2010 16:48:23 +0000 (00:48 +0800)]
st/egl: Cache the pipe surface used in flush_frontbuffer.
It is very likely that the same surface will be flushed again and again.
Caching the surface should reduce the overhead of surface creation.
Alan Coopersmith [Sat, 13 Mar 2010 03:03:41 +0000 (19:03 -0800)]
mklib: Fix amd64 builds on Solaris when using Sun compilers
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Corbin Simpson [Sat, 13 Mar 2010 02:13:18 +0000 (18:13 -0800)]
r300g: Forcibly sanitize max index.
Not perfect, but the kernel should shut up now.
Corbin Simpson [Sat, 13 Mar 2010 01:58:59 +0000 (17:58 -0800)]
Revert "st/mesa: Always recalculate invalid index bounds."
This reverts commit
50876ddaaff72a324ac45e255985e0f84e108594.
Per ML discussion.
Brian Paul [Fri, 12 Mar 2010 23:54:55 +0000 (16:54 -0700)]
gallivm: cube map sampling works now
Brian Paul [Fri, 12 Mar 2010 23:53:51 +0000 (16:53 -0700)]
gallivm: fix bugs in nested if/then/else codegen
Quite a bit a hair pulling was involved...
Brian Paul [Fri, 12 Mar 2010 21:24:03 +0000 (14:24 -0700)]
gallivm: support non-vector float in lp_build_sgn()
Eric Anholt [Fri, 12 Mar 2010 23:10:22 +0000 (15:10 -0800)]
i965: Clarify the roles of emit_pixel_xy(), emit_delta_xy(), emit_wpos_xy().
Eric Anholt [Thu, 11 Mar 2010 02:48:23 +0000 (18:48 -0800)]
i965: Clarify that DELTAXY always occurs for both X and Y.
Eric Anholt [Thu, 11 Mar 2010 01:38:33 +0000 (17:38 -0800)]
i965: Do FS SLT, SGT, and friends using CMP, SEL instead of CMP, MOV, MOV.
Eric Anholt [Thu, 11 Mar 2010 01:35:02 +0000 (17:35 -0800)]
i965: Do VS SGT, SLT, and friends using CMP, SEL instead of CMP, MOV, MOV.
Eric Anholt [Thu, 11 Mar 2010 01:16:39 +0000 (17:16 -0800)]
i965: Fix up VS DP4 sequences to avoid dependency control.
This is recommended by the B-Spec. I wasn't able to measure any
difference in ETQW.
Eric Anholt [Wed, 10 Mar 2010 23:44:32 +0000 (15:44 -0800)]
i965: When doing a swizzled kill pixel, don't do redundant channel compares.
This was obvious when looking at the compiled output of ETQW's
shaders.
Eric Anholt [Wed, 10 Mar 2010 23:32:05 +0000 (15:32 -0800)]
i965: Use the SEL instruction to implement MIN and MAX.
Saves an instruction over doing conditional moves.
Michel Dänzer [Fri, 12 Mar 2010 18:52:24 +0000 (19:52 +0100)]
svga: Fix up for context transfers.
Michel Dänzer [Fri, 12 Mar 2010 18:52:24 +0000 (19:52 +0100)]
st/xorg: Remove flushes no longer necessary thanks to context transfers.
Alan Coopersmith [Fri, 12 Mar 2010 18:27:03 +0000 (10:27 -0800)]
glx/single2.c: Don't call __builtin_expect on non-gnu compilers
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Michel Dänzer [Fri, 12 Mar 2010 18:00:47 +0000 (19:00 +0100)]
Merge branch '7.8'
Michel Dänzer [Fri, 12 Mar 2010 17:54:23 +0000 (18:54 +0100)]
vmwgfx/dri: Fix SCons build.
Michel Dänzer [Fri, 12 Mar 2010 17:24:34 +0000 (18:24 +0100)]
st/dri: Always try to set up R5G6B5 configs.
Allows compiz to work in depth 16.
The DRI2 getBuffersWithFormat hook is only required for 16/32 bit depth
buffers, for colour buffers the only requirement is that the format matches
the drawable depth, which we can't check here.
(cherry picked from commit
c50477c255a34444720fb944c54373462ef39fb9)
Alex Deucher [Fri, 12 Mar 2010 16:16:50 +0000 (11:16 -0500)]
r100/r200/r300/r300: only enable accelerated pixel ops with kms
fixes fdo bug 27043
Luc Verhaegen [Fri, 12 Mar 2010 07:35:22 +0000 (08:35 +0100)]
dri/r700: include shader/programopt.h instead of programopt.c.
Signed-off-by: Brian Paul <brianp@vmware.com>
Jeff Smith [Fri, 12 Mar 2010 02:19:49 +0000 (20:19 -0600)]
Add programs to .gitignore in redbook
Signed-off-by: Jeff Smith <whydoubt@yahoo.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
Jeff Smith [Fri, 2 Mar 2007 06:14:48 +0000 (00:14 -0600)]
Add programs to .gitignore in xdemos
Signed-off-by: Jeff Smith <whydoubt@yahoo.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
Jeff Smith [Tue, 9 Mar 2010 18:40:44 +0000 (12:40 -0600)]
Add -L$(libdir) for xdemos and egl so that the right libX11 is found
Signed-off-by: Jeff Smith <whydoubt@yahoo.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
Jeff Smith [Fri, 13 Jun 2008 14:50:43 +0000 (09:50 -0500)]
Grammar and spelling fixes
Signed-off-by: Jeff Smith <whydoubt@yahoo.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
Michal Krol [Fri, 12 Mar 2010 13:43:11 +0000 (14:43 +0100)]
cso: Remove set/save/restore_vertex_sampler_textures().
Michal Krol [Fri, 12 Mar 2010 13:37:36 +0000 (14:37 +0100)]
st/mesa: Associate a sampler view with an st texture object.
Lazily create a sampler view when the texture is being bound
for the first time.
Michal Krol [Fri, 12 Mar 2010 13:36:23 +0000 (14:36 +0100)]
cso: Add entry points for vertex/fragment sampler views.
Keith Whitwell [Fri, 12 Mar 2010 12:13:32 +0000 (12:13 +0000)]
st/xorg: context transfers