Commit Graph

42114 Commits

Author SHA1 Message Date
Kenneth Graunke dc55254f5b ralloc: Add a fake implementation of ralloc based on talloc. 2011-01-31 10:17:09 -08:00
Henri Verbeet 7d9e0ea739 glx: Properly check for a valid fd in dri2CreateScreen().
Signed-off-by: Brian Paul <brianp@vmware.com>
2011-01-31 10:54:04 -07:00
Michel Dänzer 5a1ce49c82 svga: Fix translation of TGSI SSG opcode.
SVGA3D only supports SGN for vertex shaders, and this requires two additional
temporary registers for intermediate results.

For fragment shaders, lower to two CMPs and one ADD.
2011-01-31 17:47:57 +01:00
Michel Dänzer 11c11ee0bc svga: TEXLDL opcode dst/src register information is correct. 2011-01-31 17:47:14 +01:00
Michel Dänzer a61b7aa90d svga: Print the number and mnemonic of the opcode we're missing information for.
Makes it easier to figure out which opcode it's about.
2011-01-31 17:45:07 +01:00
Henri Verbeet 0b47d59e5b glx: Fix leaks in DRISW screen creation error paths.
Signed-off-by: Brian Paul <brianp@vmware.com>
2011-01-31 09:31:24 -07:00
Henri Verbeet 0e8e8ba29a glx: Fix leaks in DRI screen creation error paths.
Signed-off-by: Brian Paul <brianp@vmware.com>
2011-01-31 09:31:21 -07:00
Henri Verbeet bfc889517a glx: Fix leaks in DRI2 screen creation error paths.
Signed-off-by: Brian Paul <brianp@vmware.com>
2011-01-31 09:29:54 -07:00
Julien Cristau cbe9fc12a6 glx: fix length of GLXGetFBConfigsSGIX
The extra length is the size of the request *minus* the size of the
VendorPrivate header, not the addition.

NOTE: This is a candidate for the 7.9 and 7.10 branches

Signed-off-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Brian Paul <brianp@vmware.com>
2011-01-31 09:28:55 -07:00
Julien Cristau e27913f805 glx: fix GLXChangeDrawableAttributesSGIX request
xGLXChangeDrawableAttributesSGIXReq follows the GLXVendorPrivate header
with a drawable, number of attributes, and list of (type, value)
attribute pairs.  Don't forget to put the number of attributes in there.
I don't think this can ever have worked.

NOTE: This is a candidate for the 7.9 and 7.10 branches

Signed-off-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Brian Paul <brianp@vmware.com>
2011-01-31 09:28:37 -07:00
Dave Airlie ea5ede2178 r600g: fix eg OQ properly.
the context init is separate for these gpus.
2011-01-31 20:44:47 +10:00
Alex Deucher 26a4c1cb65 r600g: fix OQ on evergreen
6xx/7xx have a max of 4 DBs, evergreen have a max of 8.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
2011-01-31 02:49:27 -05:00
Dave Airlie df8089df90 r600g: fix occlusion query results.
Like on some r5xx, there are multiple DB backends on the r600,
we need to add up the query results from each of these to get the
final correct value.

So far I'm not 100% sure how to calculate the num_db, value
setting it to 4 should be harmless enough until we do.

This fixes occulsion_query piglit test on my rv740.

Signed-off-by: Dave Airlie <airlied@redhat.com>
2011-01-31 16:14:03 +10:00
Alex Deucher 2f7c876ff5 r600g: remove some non-existent evergreen reg fields
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
2011-01-30 22:41:59 -05:00
Dave Airlie 065c8696e7 r600g: fix regression in cubemap tests since eea1d8199b
Although CUBE is a reduction inst, it writes to more than just PV.X
so we need to keep the dst channel.

Signed-off-by: Dave Airlie <airlied@redhat.com>
2011-01-31 13:06:17 +10:00
Dave Airlie 5555cd776b r600g: handle the write all cbufs property.
This only works on r600/r700 so far, evergreen doesn't appear
to have the multiwrite enable bit in the color control, so we
may have to actually do a shader rewrite on EG hardware.

remove some duplicate code reg defines also.

Signed-off-by: Dave Airlie <airlied@redhat.com>
2011-01-31 10:01:06 +10:00
Henri Verbeet f668b464c0 util: Call tables should be const. 2011-01-30 18:59:13 +01:00
Henri Verbeet 38b54158b6 r600g: Update the flushed depth texture after drawing to the corresponding texture.
I know Jerome will probably rewrite the way depth textures work sometime
soon. For the time being this should at least make common depth texture usage
for shadowing work properly though.
2011-01-30 18:59:13 +01:00
Chia-I Wu 3f0a966807 st/vega: Disable blending when the paint is opaque.
When the paint is opaque (currently, solid color with alpha 1.0f), no
blending is needed for VG_BLEND_SRC_OVER.  This eliminates the serious
performance hit introduced by 859106f196
for a common scenario.
2011-01-30 23:22:40 +08:00
Chia-I Wu e919dee1ed st/vega: Remove an invalid sanity check.
Before create_handle returns, obj->handle is 0.  Calling
handle_to_object will fail.
2011-01-30 23:22:40 +08:00
Chia-I Wu 05e5b53128 st/vega: s/vg[A-Z]/vega[A-Z]/. 2011-01-30 23:22:40 +08:00
José Fonseca 11b15c4d25 scons: We have C++ in several libraries, so always link with the C++ compiler
Prevents missing symbols in libGL.so when LLVM is disabled.
2011-01-30 11:19:44 +00:00
Vinson Lee cad0520179 r600g: Fix void pointer arithmetic.
Fixes SCons build.
2011-01-30 01:08:54 -08:00
Dave Airlie 71f610e26e r600g: fixes a segfault in the piglit fbo-genmipmap-formats test.
should be no need to unset this ptr here and if we don't end up using the
blitter we've just broken the state.
2011-01-30 18:09:25 +10:00
Tom Stellard 8f32c6cfc6 r300/compiler: Standardize the number of bits used by swizzle fields
Swizzles are now defined everywhere as a field with 12 bits that contains
4 channels worth of meaningful information.  Any channel that is unused is
set to RC_SWIZZLE_UNUSED.  This change is necessary because rgb instructions
and alpha instructions were initializing channels that would never be used
(channel 3 for rgb and channels 1-3 for alpha) with 0 (aka RC_SWIZZLE_X).
This made it impossible to use generic helper functions for swizzles,
because sometimes a channel value of 0 meant unused and other times it
meant RC_SWIZZLE_X.

All hacks that tried to guess how many channels were relevant have
also been removed.
2011-01-29 21:32:02 -08:00
Marek Olšák debc45bca0 r300g: upload translated indices via the uploader 2011-01-30 03:29:49 +01:00
Marek Olšák 8d0a540020 r300g: rework vertex format fallback
1) Only translate the [min_index, max_index] range.
2) Upload translated vertices via the uploader.
3) Rename valid_vertex_buffer[] to real_vertex_buffer[]
2011-01-30 03:29:48 +01:00
Marek Olšák 77900843b4 r600g: upload translated indices via the uploader 2011-01-30 03:29:48 +01:00
Marek Olšák 73a40d1383 r600g: rework vertex format fallback
1) Only translate the [min_index, max_index] range.
2) Upload translated vertices via the uploader.
2011-01-30 03:29:48 +01:00
Marek Olšák 70e656b4eb r600g: fix vertex format fallback
This fixes:
- piglit/draw-vertices
- piglit/draw-vertices-half-float
2011-01-30 03:29:48 +01:00
Marek Olšák 8c631cfeae r600g: rework vertex buffer uploads
Only upload the [min_index, max_index] range instead of [0, userbuf_size].
This an important optimization.

Framerate in Lightsmark:
Before: 22 fps
After: 75 fps

The same optimization is already in r300g.
2011-01-30 03:29:48 +01:00
Marek Olšák 15730a8207 r600g: consolidate set_constant_buffer functions 2011-01-30 03:29:48 +01:00
Marek Olšák 73fb2b7c90 r600g: consolidate vertex_buffer_update functions 2011-01-30 03:29:48 +01:00
Marek Olšák 2d7738eb2b r600g: consolidate draw_vbo functions (v2)
Added a conditional to spi_update per Dave's comment.
2011-01-30 03:29:48 +01:00
Marek Olšák 5cefe1eddd r600g: make r600_drawl inherit pipe_draw_info 2011-01-30 03:29:48 +01:00
Marek Olšák 02f8f13464 r600g: add back u_upload_mgr integration
I can't see a performance difference with this code, which means all
the driver-specific code removed in this commit was unnecessary.

Now we use u_upload_mgr in a slightly different way than we did before it got
dropped. I am not restoring the original code "as is" due to latest
u_upload_mgr changes that r300g performance benefits from.

This also fixes:
- piglit/fp-kil
2011-01-30 03:29:48 +01:00
Christoph Bumiller f8a7a0b6f3 nvc0: implement transform feedback state 2011-01-30 01:25:41 +01:00
Christoph Bumiller 7fd29468ec nvc0: enable PIPE_CAP_ARRAY_TEXTURES and fix them 2011-01-29 23:57:52 +01:00
Chia-I Wu 218381d927 egl_dri2: Export glapi symbols for DRI drivers.
When an app loads libEGL.so dynamically with RTLD_LOCAL, loading DRI
drivers would fail because of missing glapi symbols.  This commit makes
egl_dri2 load libglapi.so with RTLD_GLOBAL to export glapi symbols for
future symbol resolutions.

The same trick can be found in GLX.  However, egl_dri2 can only do so
when --enable-shared-glapi is given.  Because, otherwise, both libGL.so
and libglapi.so define glapi symbols and egl_dri2 cannot tell which
library to load.
2011-01-30 05:28:24 +08:00
Chia-I Wu f36cba6cf3 egl: Make the transition to built-in drivers more smooth.
When the user sets EGL_DRIVER to egl_dri2 (or egl_glx), make sure the
built-in driver is used.  The user might leave the outdated egl_dri2.so
(or egl_glx.so) on the filesystem and we do not want to load it.
2011-01-30 04:55:08 +08:00
Chia-I Wu b825e49552 mapi: Workaround a bug in makedepend.
makedepend would crash when a source includes a header indirectly, such
as

  #define HEADER "some-header.h"
  #include HEADER

Do not define HEADER (makedepend would detects this as an incomplete
include) and add the dependency manually in the Makefile.

This should hopefully fix bug #33374.
2011-01-29 19:22:54 +08:00
Marek Olšák 2a456dc123 u_blitter: use user buffers instead of real buffers
User buffers may be the fastest way to upload data.
2011-01-29 05:17:43 +01:00
Brian Paul c5fb0518f4 gallium/docs: add info about transfer boxes and array textures 2011-01-28 20:25:27 -07:00
Brian Paul f9a36a496f gallium: added comments to pipe_transfer 2011-01-28 20:25:27 -07:00
Brian Paul 1dd8e27578 st/mesa: fix texture array dimensions
For 1D/2D texture arrays use the pipe_resource::array_size field.
In OpenGL 1D arrays texture use the height dimension as the array
size and 2D array textures use the depth dimension as the array size.
Gallium uses a special array_size field instead.  When setting up
gallium textures or comparing Mesa textures to gallium textures we
need to be extra careful that we're comparing the right fields.

The new st_gl_texture_dims_to_pipe_dims() function maps OpenGL
texture dimensions to gallium texture dimensions and simplifies
this quite a bit.
2011-01-28 20:25:27 -07:00
Brian Paul 80777743b7 softpipe: fix array textures to use resource array_size
Don't use height for 1D array textures or depth for 2D array textures.
2011-01-28 20:25:27 -07:00
Brian Paul b3cfcdf923 mesa: fix typo, wrap long line 2011-01-28 20:25:26 -07:00
Brian Paul db3a8af7f9 st/mesa: pass layers param to st_texture_create() 2011-01-28 20:25:26 -07:00
Carl Worth 2a18d1950c Revert "glcpp: Demote "macro redefined" from an error to a warning"
This reverts commit d3df641f0a.

The original commit had sat unpushed on my machine for months. By the
time I found it again, I had forgotten that we had decided not to use
this change after all, (the relevant test was removed long ago).
2011-01-29 08:21:05 +10:00
Jakob Bornecrantz 3451ee056c util: Fix leak of transfers in upload manager 2011-01-28 22:10:53 +01:00