Age | Commit message (Collapse) | Author |
|
|
|
Fixes piglit glx-shader-sharing crash.
When shaders are shared by multiple contexts, the shader's draw context
pointer may point to a previously destroyed context. Dereferencing the
context pointer will lead to a crash.
In this case, simply removing the flushing code avoids the crash (the
exec and sse shader paths don't flush here either).
There's a deeper issue here, however, that needs examination. Shaders
should not keep pointers to contexts since contexts might get destroyed
at any time.
NOTE: This is a candidate for the 7.10 branch (after this has been
tested for a while).
|
|
Include p_screen.h for completely type to pipe_screen.
|
|
|
|
Plumb the constant buffer sizes down into the tgsi interpreter where
we can do bounds checking. Optional debug code warns upon out-of-bounds
reading. Plus add a few other assertions in the TGSI interpreter.
|
|
|
|
we used to create and cache unltimited number of variant, this
change limits the number of variants kept around to a fixed number.
the change is based on a similar patch by Roland for llvmpipe fragment
shaders.
|
|
To silence some warnings.
Super-seeded by Zack's new llvm middle end.
|
|
Now that draw depends on llvm it is very difficult to correctly handle
broken llvm installations. Either the user requests LLVM and it needs to
supply a working installation. Or it doesn't, and it gets no LLVM
accelerate pipe drivers.
|
|
code generate big chunks of the vertex pipeline in order to speed up
software vertex processing.
|
|
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 changed after a recent commit.
|
|
|
|
Also, rename p_tile.[ch] to u_tile.[ch]
|
|
|
|
|
|
|
|
also some minor cleanups
|
|
The caller can then free the token array immediately.
|
|
|
|
switch the method of distribution of builtins (to get rid of the
llvm2cpp dependency)
|
|
|
|
|
|
This will at least allow us to make the initial gains to get decent
vertex performance much more quickly & with higher confidence of getting
it right.
At some later point can look again at code-generating all the
fetch/cliptest/viewport extras in the same block as the vertex shader.
For now, just need to get some decent baseline performance.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Also:
1. Added an identity_viewport flag to skip viewport transformation when it
has no effect. Might also add an explicit bypass_viewport flag someday.
2. Separate the code for computing clip codes and doing the viewport transform.
Predicate them separately.
Note: even if bypass_vs is set, we still look at the shader to determine the
number of inputs and outputs.
|
|
The later follows the naming scheme of other limits.
Keep the old definition until all possible usage is updated.
|
|
This solves problems when the state tracker frees the token array when the
draw module still needs it.
|
|
|
|
|
|
Create new files for shaders compiled/executed with llvm, sse, exec
respectively
|