r600g: texture buffer object + glsl 1.40 enable support (v2)
authorDave Airlie <airlied@redhat.com>
Sun, 16 Dec 2012 10:31:32 +0000 (10:31 +0000)
committerDave Airlie <airlied@redhat.com>
Fri, 11 Jan 2013 22:31:54 +0000 (22:31 +0000)
commitd23aa650015ec017649f5a4ce8cb12d8c314bd3a
treea76e70719be1969b929be5f96bc8f6993bfc653f
parent77c10225eef43eb428ebbc80f1dd426e3d33b281
r600g: texture buffer object + glsl 1.40 enable support (v2)

This adds TBO support to r600g, and with GLSL 1.40 enabled,
we now get 3.1 core profiles advertised for r600g.

The r600/700 implementation is a bit different from the evergreen one,
as r6/7 hw lacks vertex fetch swizzles. So we implement it by passing 5
constants per sampler to the shader, the shader uses the first 4 as masks
for each component and the 5th as the alpha value to OR in.

Now TXQ is also broken so we have to pass a constant for the buffer size,
on evergreen we just pass this, on r6/7 we pass it as the 6th element
in the const info buffer.

v1.1: drop return as DDX doesn't use a texture type
v2: add r600/700 support.

Signed-off-by: Dave Airlie <airlied@redhat.com>
src/gallium/drivers/r600/evergreen_state.c
src/gallium/drivers/r600/r600_asm.c
src/gallium/drivers/r600/r600_asm.h
src/gallium/drivers/r600/r600_pipe.c
src/gallium/drivers/r600/r600_pipe.h
src/gallium/drivers/r600/r600_shader.c
src/gallium/drivers/r600/r600_shader.h
src/gallium/drivers/r600/r600_state.c
src/gallium/drivers/r600/r600_state_common.c
src/gallium/drivers/r600/r600_texture.c