| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
saves us a dword in sampler state, hw can't do non-integer aniso degree anyway.
To allow aniso 1x (which seems of dubious value but some hardware (radeons)
have such a mode, and even d3d allows specifiying it) redefine anisotropic
filtering as disabled only if max_anistropy is 0.
|
|
|
|
| |
seems cleaner, and other dynamic state like viewport is handled that way too
|
|
|
|
| |
makes life of state trackers easier
|
|
|
|
|
| |
compiles. Might need to do something to make it possible to save/restore
stencil ref.
|
|
|
|
|
|
|
|
| |
This will make driver's life a bit harder, however it makes sense that stencil
reference value is not part of the pipe_depth_stencil_alpha_state, because
it often (there are some algorithms which require this) changes more frequently
than the rest of the dsa state. This is also encouraged by some graphic APIs.
Treat it similar to pipe_blend_color.
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
src/gallium/drivers/nv10/nv10_state.c
src/gallium/drivers/nv20/nv20_state.c
src/gallium/drivers/nv50/nv50_program.c
|
| | |
|
| |
| |
| |
| |
| | |
This determines if points should be rasterized according to GL point rules
or as normal quads (GL point sprites / d3d points / d3d point sprites).
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The point size min/max registers (unused by mesa state tracker) were removed
since most hardware couldn't do much with them. However, we don't want to have
to rely on hw to do point size clamping correctly to implementation
dependent limits, hence have to do that in the vertex shader. This should also
solve a potential problem with (non-AA) points smaller than 1.0 which according
to OGL still have size 1.0.
Note that OGL point rendering is odd, in particular point sprites are rasterized
differently to points. Some hardware might support those different modes, but in
any case the different clamping values used for smooth/multisampled/sprite
enabled points might help a bit for hw which rasterizes points the same as point
sprites.
Also tweak mesa's ff to vertex shader translation so don't have to clamp twice in
case of point attenuation.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Don't need sprite coord origin per coord.
Also, don't need separate sprite enable bit - if all coords have it diabled,
then there are no point sprites (technically, there's a distinction in pre-GL3,
but it only differs in having more leniency in clamping to max size, something
the state tracker would need to handle and the hardware won't bother anyway).
Also, use packed field for the per-coord enables.
All in all, should save 3 dwords in rasterizer state (from 10 down to 7).
|
| |
| |
| |
| |
| |
| |
| | |
The state tracker is responsible for clamping to any graphics API enforced
size min/max limits for both the static point_size setting as well as per
vertex point size (in the vertex shader).
Note that mesa state tracker didn't actually use these values.
|
| | |
|
| |
| |
| |
| | |
Cylinder wrap mode works with perspective interpolation now.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the texture priority field is 0.125 set the PROG_PARAM_BIT_CYL_WRAP
flag. The gallium state tracker will look for this flag.
This feature is only for testing purposes and may be remove at some
point. But if it's useful we could write a GL/Mesa extension to
expose it properly.
|
| |
| |
| |
| |
| |
| |
| |
| | |
This object can be shared with another context, so we cannot just
delete it when the owning context is being destroyed.
Ensuring that buffer objects are properly refcounted guarantees
NullBufferObj is destroyed when all references to it are removed.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Lets see if this is not too pedantic. Obj pointers are never exposed to
GL apps so it should be possible to get this right.
Furthermore apps with GL widgets and test suits create and destroy many
contexts and objects, so bad reference counting is not really an option.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Always use _mesa_reference_buffer_object, and never call
ctx->Driver.DeleteBuffer() directly to prevent dangling pointers to the
null buffer object.
This fixes crash/assertions in sharedtex_mt and Autodesk Mudbox.
|
| | |
|
| |
| |
| |
| |
| |
| | |
UMS doesn't need the STP atom.
Signed-off-by: Dave Airlie <[email protected]>
|
| |
| |
| |
| |
| | |
Without subtracting one pow2 value would be rounded up to next pow2
which is not correct behaviour for the function.
|
| |
| |
| |
| |
| |
| | |
Just emit minLod and maxLod to correct reisters.
Fixes lodclamp and levelclamp test cases from piglit.
|
| |
| |
| |
| |
| |
| |
| | |
Fixes glActiveTexture to set GL_INVALID_ENUM when trying
to activate texture unit that is not available.
piglit test case general/texunit passes now.
|
| |
| |
| |
| |
| |
| | |
glean/pointSprite shows that rv280 is trying to read from better
quality mipmap level. We have to correct default lod bias to match
required texture selection.
|
| | |
|
| |
| |
| |
| | |
Fixes ut2004 warnings about overflowing command buffer.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With gcc implementation uses __builtin_clr which counts number of
leading zeros.
Fallback implementation uses bit manipulation. First it duplicates
the highest bit to all lower bits and then adds one to get the power
of two number.
|
| | |
|
| |
| |
| |
| |
| |
| | |
Changed stride size calculation to do the math by rounding
the value instead of loop. r600 minimum stride is 256 which
might might cause up to about 60 rounds of the loop.
|
| |
| |
| |
| | |
Bug #32810
|
| |
| |
| |
| |
| |
| | |
For the tiny bis of data we generally upload through the CURBEs, the
overhead of the kernel's pagetable trickery is actually rather high.
This improves cairo-gl gnome-terminal-vim performance by 3.8%.
|
| |
| |
| |
| | |
Improves cairo-gl gnome-terminal-vim times by 11%.
|
| |
| |
| |
| | |
Fixes failure in cairo-gl firefox-planet-gnome.
|
| |
| |
| |
| | |
This improves firefox-talos-svg runtimes on cairo-gl by 14%.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The piglit vp-address-01 test uses negative address-relative
offsets. In this test we're indexing into PROGRAM_STATE_VAR
which, in turn, contains references to ENV vars.
We previously fixed this issue for PROGRAM_CONSTANT.
piglit/vp-address-01 (the version from Feb 5) passes now.
(cherry picked from commit 64be837b0b171c44f47a3c0b83f566d292ffff50)
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Without this patch, the two symbols get an underscore prepended
and an "@4" appended when compiling with VC8.
Signed-off-by: Brian Paul <[email protected]>
(cherry picked from commit e65029e9b32ddabea0ec583c04484345b40f1557)
|
| |
| |
| |
| | |
This got "simplified" away in e4f168a6f4911a096be97d2e83ef8ad9c5862ec0.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This fixes the progs/glsl/pointcoord.c demo. But this isn't a proper fix.
We really need a TGSI_SEMANTIC_POINT_COORD label so that the draw module
can determine which fragment input / vertex output slot needs to be set
up with the point coordinate info. We've been using generic slot 0 so far.
This would also require telling the draw module about fragment shaders
(something it doesn't have at this time).
|
| |
| |
| |
| | |
Only emit polygon stipple when the state is enabled.
|
| | |
|
|\ \ |
|
| | | |
|
| | |
| | |
| | |
| | | |
This fixes glean paths test case.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
GL_TRUE indicates that the driver accepts the program.
GL_FALSE indicates the program can't be compiled/translated by the
driver for some reason (too many resources used, etc).
Propogate this result up to the GL API: set GL_INVALID_OPERATION
error if glProgramString() was called. Set shader program link
status to GL_FALSE if glLinkProgram() was called.
At this point, drivers still don't do any program checking and
always return GL_TRUE.
|
| | |
| | |
| | |
| | | |
This fixes glean paths test case.
|
| | | |
|