intel: Flush the render/texture cache when finishing render to texture.
Back when we were flushing the entire batch at BindFramebuffer, the kernel
would notice the domain transition when someone went to texture from it and
flush for us. We no longer do the batch flushing every time, so we get to
do aggressive flushing until we move batchbuffer handling to libdrm.
Fixes piglit fbo-flushing. Bug #25377. No noticeable performance loss
on cairo-gl (so this is better than batch flushing).
The swrast pipeline shouldn't have any problem with all the frag and vert
textures being bound at the same time. Note that this may result in
DRI drivers that don't set this limit having an improbable return
(fragment + vertex < combined), but it seems like it shouldn't cause
problems for apps.
intel: Attempt to fix up after "Update vertex texture code."
The MaxCombinedTextureImageUnits is the total number of samplers that can
be bound between vertex, geometry, and fragment, not 0. This should report
the correct value on 965 now. Other DRI drivers may also need updating if
their MaxVertexTextureImageUnits != 0 (for example, if using the sw vertex
pipeline).
It's not clear to me if there's going to be a valid value for this
limit other than MaxTextureImageUnits + MaxVertexTextureImageUnits (+
MaxGeometryTextureImageUnits eventually). If not, then we should probably
just move this into the core at Get time.
Bug #25518 (wine regression). Fixes piglit vp-combined-image-units.
The util_format_layout name was unfortunate and there
are as been a lot of confusion due to this. Hopefully
this will shed some light on what it was meant for.
Bottom line is: do not rely on these values unless
you're automatically code generating pixel
packing/unpacking routines.
Suggestions for better names than util_format_layout
are welcome!
mesa: Move OES_read_format support from drivers into the core.
The assertion is that the correct read type to be using is the native
type of the underlying read renderbuffer. For some fallback paths, this
may be worse than GL_RGBA/GL_UNSIGNED_BYTE for reads today, but it gets
all drivers the expected GL_BGRA/GL_UNSIGNED_BYTE for ARGB8888 or
GL_BGR//GL_UNSIGNED_SHORT_5_6_5_REV for rgb565 with no work.
This fixes the intel (and other) DRI drivers to report read formats that
should hit blit PBO readpixels paths.
vbo: fix array index out of bounds error, and fix evaluator priorities
Fixes bug 25525.
Plus, the GL_NV_vertex_program evaluators alias and override the
convential evaluator maps, so set their state after the conventional
maps.
gallium: fix more potential strict aliasing issues
In particular, gcc man page warns that
union a_union {
int i;
double d;
};
int f() {
double d = 3.0;
return ((union a_union *) &d)->i;
}
"might" not be ok (why not?), even though it doesn't seem to generate
any warnings. Hence don't use this and do the extra step to actually use
assignment to get the values in/out of the union.
This changes parts of 3456f9149b.
tgsi: fix some off-by-one errors in shader length, instruction length
The ureg and/or tgsi-simplification work introduced some inconsistencies
between the ureg and traditional TGSI construction code.
Now the tgsi_instruction::NrTokens field is consistant and the
tgsi_header::BodySize field isn't off by one.
Fixes bug 25455.