Age | Commit message (Collapse) | Author |
|
They are now almost identical, except for nv30 vs nv40 fragtex
initialization.
|
|
Move the remaining content to the common header.
|
|
The files have the same structure but are substantially different.
They are unified with appropriate conditionals.
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
The files are identical, except for an extra comment in nv30.
|
|
The files are identical except formatting.
|
|
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.
|
|
The files are identical, except for the fact that the nv40 version
forgets to unreference the stateobj.
Unified to the correct nv30 version.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
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.
|
|
This will make it faster to check for nv40.
|
|
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).
|
|
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.
|
|
This makes nv30_state.h equivalent to nv40_state.h
|
|
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.
|
|
|
|
|
|
|
|
|
|
Honor the (x, y) and (width, height) pairs.
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
This can break on systems that don't have a system X installation.
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
|
|
|
|
Oh look, an undocumented feature. It's a nice tool for benchmarking
texturing.
|
|
Two bug fixes at the same time. :)
|
|
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.
|
|
|
|
|
|
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.
|
|
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
|
|
Replicates softpipe.
|
|
Otherwise IDEs and debuggers have trouble distinguishing from softpipe's
setup_context.
|
|
|
|
contexts
It requires changes not ony to the state tracker but to the python
scripts too.
|
|
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.
|