The new lp_build_sample_general() function will handle all sampling
modes for all texture types. Still incomplete, but a few additional
sampling modes are now supported.
1D textures should work and most of the code for 3D textures is in place.
No support for cube maps yet. No support for different min/mag filters.
Reemitting dirty states on flush causes problems if the GL context
isn't fully consistent when we get to it. It didn't serve any specific
purpose, so, use nouveau_bo_state_emit instead.
Saves an instruction in PINTERP, LINTERP, and PIXEL_W from
brw_wm_glsl.c For non-GLSL it isn't used yet because the deltas have
to be laid out differently.
Otherwise we use glRead/DrawPixels to copy the off-screen FBO image
into the window.
Looks like NVIDIA's broken when using -c (the image is upside down),
but OK with -c -t.
NVIDIA's driver requires that the texture that we're going to render into
be complete. Need to set min/mag filters to non-mipmap modes.
Plus added other error/debug checks.
The bad response length would hang the GPU with a masked sample in a
shader using control flow. For 8-wide, the response length is always
4, and masked slots are just not written to. brw_wm_glsl.c already
allocates registers in the right locations.
Fixes piglit glsl-fs-bug25902 (fd.o bug #25902).
If the user calls glRenderBufferTexture(texture=N) but texture N
doesn't name an existing texture, raise GL_INVALID_ENUM.
Plus, add a comment about some questionable error checking code in
framebuffer_texture(). Ian?
This fixes a problem in glReadPixels when reading from an FBO's texture
attachment. We have a better chance at hitting a fast path for
glReadPixels now.
There was a DrawBuffer/ReadBuffer typo and we were neglecting to invert
the texture coords when copying from a window to an FBO.
Plus, add some surface dump/debug code (disabled).
(cherry picked from commit 34f0207161)
Could result in use of freed memory and consequently random crashes, e.g. on
screen resize.
(cherry picked from commit 21c91b410a)
Conflicts:
src/gallium/state_trackers/xorg/xorg_tracker.h
add_dispatch (driver) and maybe get_proc_address (client) may be called before
set_dispatch is called, which results in generate_entrypoint using an unreloced
function template.