Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
No idea if this is the correct fix, but it makes it work again at least.
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
|
|
We were never returning -1 as a result. This fixes some inverted/flipped
faces with cube mapping.
|
|
Sampler views already hold references to those.
|
|
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.
|
|
|
|
Use the LOD value to determine whether to use the minification vs.
magnification filter.
All mipmap sampling modes work now.
|
|
|
|
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.
|
|
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
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>
|
|
|
|
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.
|
|
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
|
|
It was totally broken: the index buffer was passed as NULL!
|
|
Don't lose precision by converting to u8.
|
|
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).
|
|
This avoids duplicating the vertex program generation logic and
makes the same code work for both nv30 and nv40.
|
|
Replace the FORCE_SWTNL macro with a NOUVEAU_SWTNL environment variable.
|
|
It is only used on pre-nv50 and nvfx is the only Gallium pre-nv50 driver.
|
|
The primitive splitting code is totally broken and will be rewritten.
Fix the most important bug now though.
|
|
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.
|
|
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
|
|
Many things, like texture wrap modes and min/mag filters are common.
Some others, like annisotropy and lod settings, are not.
|
|
The bulk files cannot be unified, but the frontend can and allows to
share some code and simplify state_emit.c
|
|
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.
|