Age | Commit message (Collapse) | Author |
|
If the driver can't create a PIPE_FORMAT_R16G16B16A16_SNORM surface, create
an accum surface using a shallower format and taller height. Since only the
accum buffer code accesses the surface the actual format doesn't really
matter, just that there's enough memory.
|
|
|
|
|
|
|
|
We'll apply this function to GLSL vertex programs. In GLSL it's legal to
read and write varying (output) vars in a vertex shader. But reading from
an output register isn't supported by all hardware. This routine examines
the vertex program for that condition and rewrites it to use temporary
registers where needed.
|
|
Also, use new _mesa_free_instructions() in a few places.
|
|
|
|
GLSL Vertex and fragment shaders now have independent parameter buffers.
A new gl_uniform_list is used to keep track of program uniforms and where
each uniform is located in each shader's parameter buffer.
This makes better use of the space in each buffer and simplifies shader linking.
|
|
|
|
Mesa always packs 4 immediates into each parameter/const buffer slot.
I think we were just getting lucky with this as it was.
|
|
update_samplers()
|
|
|
|
|
|
Also, make sure that field is copied/updated in the program clone and combine functions.
Without this we weren't getting SAMP declarations in the TGSI shaders.
|
|
As st_gl_flush() isn't used by st_finish() anymore, it doesn't have to make
sure pipe->flush() always gets called.
|
|
This is enough for the current purpose of st_finish(), which is to wait for
things to settle down before context teardown.
|
|
|
|
Add entrypoints to glapi XML file and regenerate files.
Implement glStencilOpSeparateATI().
Consolidate some code in stencil.c
|
|
|
|
Previously all drivers were in twosided mode since they checked for
stencil.enable[1] flag which was a copy of stencil.enable[0]. Note that drivers
should not reference stencil[1] state (other than the enable) if twosided
stenciling is disabled (for now the stencil state is still copied but for
instance clear_with_quads won't provide useful values in there).
Also, use _TestTwoSide instead of TestTwoSide since results would be
bogus otherwise if using APIs with implicit two side stencil enable
(i.e. core ogl 2.0).
|
|
|
|
GL_MESA_ycbcr_texture
Update texture format selection code too.
|
|
|
|
Move init of these items to new st_init_clear().
|
|
|
|
|
|
Since bypass_clipping is set and we're specifying quad vertexes in window
coords, setup identity viewport.
|
|
|
|
|
|
Use this to set up hardware rasterization (if your hardware can
do it) or otherwise turn on various tweaks in the draw module.
Currently only hooked up to point biasing code.
|
|
|
|
|
|
|
|
Make sure the struct pipe_fence_handle* we point st_flush() to is initialized
to NULL, so winsys->fence_reference() doesn't try to unreference a random
struct pipe_fence_handle* pointer.
|
|
"Off" bits get stored as texel=0xff and "on" bits get stored as texel=0x0.
Then use KIL -tmp to kill the off bits and keep the on bits.
This shortens the fragment program by two instructions.
|
|
|
|
|
|
The glBitmap vertex shader is a no-op, but we still have to specify it in
order to convey the number of inputs/outputs.
|
|
Bitmaps can extend beyond window edges so we need to clip.
Also, move some state atom vars to st_context to be a bit more efficient.
|
|
Not convenient and almost not used at all. Better replacements in p_debug.h
|
|
|
|
|
|
signed/unsigned arithmetic problem
Negative values became very large uints.
|
|
_NEW_PACKUNPACK state
|
|
|
|
The bitmap cache attempts to accumulate a series of glBitmap calls in a
buffer to effectively render a whole bunch of bitmaps at once.
The cache can be disabled, if needed, by setting UseBitmapCache=GL_FALSE.
|
|
|
|
Use same code for choosing texture format and renderbuffer format.
|
|
|
|
The later follows the naming scheme of other limits.
Keep the old definition until all possible usage is updated.
|