Okay need to revist the whole OQ stuff anyways, glean test asserts
which is never good.
I'm liking the cached bufmgr restrictions less and less, I think I'll
probably play with the fence and/or busy stuff ASAP and try and clean it up.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Suggested by Jose on the list, probably not perfect but will let me get
past this for now, testing with a fenced bufmgr on top of this, was slower,
Also this doesn't let you do the busy early exit optimisation either from
what I can see.
Signed-off-by: Dave Airlie <airlied@redhat.com>
If we change the tiling on a buffer we need to flush it, the old
radeon_buffer.c code had this but it crossed streams when I ported to
radeon_drm_buffer.c and I missed it. Should fix some piglit regressions.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Do a very shallow conversion - basically keeping the existing
buffer and texture code intact and using a vtbl struct
inside our resource struct to select between the two implementations.
The buffer and texture treatments could be further merged without
much effort, but try to keep the existing code working at this point.
gallivm: simplify and clean-up Z/stencil bit mask/shift code
Refactor the code into two helper functions which compute the bit mask
and shift terms for Z and stencil. Plus add a bunch of new comments to
explain everything.
st/vega: fix up vega state tracker to use cso changes
use cso fragment sampler views instead of sampler textures.
since we don't really change views, try to store sampler views instead
of the textures to avoid having to recreate views most of the time.
gallivm/llvmpipe: added lp_rast_shader_inputs::facing and pass through
The triangle rasterizer sets this field to indicate front/back-facing.
It gets passed into the generated fragment code as another parameter.
Used now for stencil front/back selection but will also be used for
fragment shaders in general (see TGSI_SEMANTIC_FACE).
With this commit two-sided stenciling mostly works but there's
still a bug or two...