| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Fixes use of uninitialized variables in non-debug builds.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Note that only the PIPE_TEX_WRAP_CLAMP,CLAMP_TO_EDGE,CLAMP_TO_BORDER
modes work with non-normalized texcoords.
|
|
|
|
|
|
|
|
|
|
|
| |
The progs/test/texwrap demo looks pretty good, but there are still some
tiny differences from softpipe. There may be a sub-pixel texcoord
interpolation error somewhere.
There's some room for optimization. Many of the wrap modes compute
intermediate values that are constant for the texture size (see the
min/max values). These could be computed earlier and stored somewhere
for later use.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
All the texture wrap modes are now implemented for linear and nearest
sampling.
However, texture border color is not yet supported so some wrap modes
will produce int coords outside the texture bounds. We'll get garbage
values insted of the texture border color for now.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
The lp_int_type() function was creating an unsigned type. So rename
that function to lp_uint_type() and create new lp_int_type() that
creates a signed type.
|
| |
|
| |
|
|
|
|
|
|
| |
else was broken in the outter most else statemants, plus the code
didn't need an inverted mask to compute the inverse of the current
condition.
|
|
|
|
|
|
|
| |
implements if/else/endif constructs and lays down the code for looping
and others. we create a conditional execution mask which decides which
of the four inputs are enabled for any store. it's used only if an
execution mask is present, otherwise we go through a direct store.
|
| |
|
| |
|
| |
|
|
|
|
| |
Avoids assertion failures with certain shaders.
|
|
|
|
|
|
| |
Note that with FIXME instead of an assertion failure.
Addresses fdo 25956.
|
| |
|
|
|
|
|
|
|
|
| |
with mutable vars we don't need to follow the phi nodes. meaning that
control flow becomes trivial as we don't have scan the rest of the tgsi
to figure out the variable usage anymore. futhermore the memory2register
pass promotes alloca/store/load to registers while inserting the right phi
nodes. so we get simplicity and performance.
|
|
|
|
|
|
|
| |
the llvmpipe tgsi translation is a lot more complete than what was in
gallivm so replacing the latter with the former. this is needed since
the draw llvm paths will use the same code. effectively the proven
llvmpipe code becomes gallivm.
|
|
|
|
| |
This is to differentiate it from its unsigned version, TGSI_OPCODE_USHR.
|
| |
|
|
|
|
|
| |
Makes integration of gallium into out of tree components much easier. No
pratical change for components in this tree,
|
|
|
|
|
|
|
| |
SrcRegister -> Register
SrcRegisterInd -> Indirect
SrcRegisterDim -> Dimension
SrcRegisterDimInd -> DimIndirect
|
|
|
|
|
| |
DstRegister -> Register
DstRegisterInd -> Indirect
|
|
|
|
| |
DeclarationRange -> Range
|
|
|
|
|
|
|
|
| |
InstructionPredicate -> Predicate
InstructionLabel -> Label
InstructionTexture -> Texture
FullSrcRegisters -> Src
FullDstRegisters -> Dst
|
|
|
|
|
|
|
|
| |
The LOOP/ENDLOOP pair is renamed to BGNFOR/ENDFOR as its behaviour
is similar to a C language for-loop.
The BGNLOOP2/ENDLOOP2 pair is renamed to BGNLOOP/ENDLOOP as now
there is no name collision.
|
|
|
|
|
| |
make linux-llvm succeeds, but doesn't seem to be working, at least with
llvm 2.5
|
|
|
|
|
|
| |
Various opcodes which can be implemented trivially with other TGSI opcodes,
such as matrix multiplication and negation. These were not used by any
state tracker or implemented by any of the drivers.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove the need to have a pointer in this struct by just including
the immediate data inline. Having a pointer in the struct introduces
complications like needing to alloc/free the data pointed to, uncertainty
about who owns the data, etc. There doesn't seem to be a need for it,
and it is unlikely to make much difference plus or minus to performance.
Added some asserts as we now will trip up on immediates with more
than four elements. There were actually already quite a few such asserts,
but the >4 case could be used in the future to specify indexable immediate
ranges, such as lookup tables.
|
| |
|
|
|
|
|
| |
The debug functions depend on several util function for os abstractions, and
these depend on debug functions, so a seperate module is not possible.
|
| |
|
|
|
|
| |
May fail to parse otherwise.
|
| |
|
| |
|
| |
|
|
|
|
| |
temps. This avoids useless writes of temporary results.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/gallium/auxiliary/gallivm/instructionssoa.cpp
src/gallium/auxiliary/gallivm/soabuiltins.c
src/gallium/auxiliary/rtasm/rtasm_x86sse.c
src/gallium/auxiliary/rtasm/rtasm_x86sse.h
src/mesa/main/texenvprogram.c
src/mesa/shader/arbprogparse.c
src/mesa/shader/prog_statevars.c
src/mesa/state_tracker/st_draw.c
src/mesa/vbo/vbo_exec_draw.c
|
| | |
|
| | |
|