summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* r600g: handle the write all cbufs property.Dave Airlie2011-01-315-30/+16
| | | | | | | | | | 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 <[email protected]>
* util: Call tables should be const.Henri Verbeet2011-01-301-1/+1
|
* r600g: Update the flushed depth texture after drawing to the corresponding ↵Henri Verbeet2011-01-305-4/+42
| | | | | | | | 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.
* st/vega: Disable blending when the paint is opaque.Chia-I Wu2011-01-308-5/+37
| | | | | | | 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 859106f196ade77f59f8787b071739901cd1a843 for a common scenario.
* st/vega: Remove an invalid sanity check.Chia-I Wu2011-01-301-6/+0
| | | | | Before create_handle returns, obj->handle is 0. Calling handle_to_object will fail.
* st/vega: s/vg[A-Z]/vega[A-Z]/.Chia-I Wu2011-01-304-42/+42
|
* r600g: Fix void pointer arithmetic.Vinson Lee2011-01-301-1/+1
| | | | Fixes SCons build.
* r600g: fixes a segfault in the piglit fbo-genmipmap-formats test.Dave Airlie2011-01-301-2/+0
| | | | | 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.
* r300/compiler: Standardize the number of bits used by swizzle fieldsTom Stellard2011-01-2910-46/+50
| | | | | | | | | | | | | | 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.
* r300g: upload translated indices via the uploaderMarek Olšák2011-01-301-20/+45
|
* r300g: rework vertex format fallbackMarek Olšák2011-01-307-78/+86
| | | | | | 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[]
* r600g: upload translated indices via the uploaderMarek Olšák2011-01-301-3/+13
|
* r600g: rework vertex format fallbackMarek Olšák2011-01-303-47/+55
| | | | | 1) Only translate the [min_index, max_index] range. 2) Upload translated vertices via the uploader.
* r600g: fix vertex format fallbackMarek Olšák2011-01-305-21/+44
| | | | | | This fixes: - piglit/draw-vertices - piglit/draw-vertices-half-float
* r600g: rework vertex buffer uploadsMarek Olšák2011-01-303-84/+106
| | | | | | | | | | | 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.
* r600g: consolidate set_constant_buffer functionsMarek Olšák2011-01-304-97/+51
|
* r600g: consolidate vertex_buffer_update functionsMarek Olšák2011-01-304-164/+134
|
* r600g: consolidate draw_vbo functions (v2)Marek Olšák2011-01-305-258/+142
| | | | Added a conditional to spi_update per Dave's comment.
* r600g: make r600_drawl inherit pipe_draw_infoMarek Olšák2011-01-305-54/+30
|
* r600g: add back u_upload_mgr integrationMarek Olšák2011-01-3010-214/+73
| | | | | | | | | | | | 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
* nvc0: implement transform feedback stateChristoph Bumiller2011-01-307-59/+163
|
* nvc0: enable PIPE_CAP_ARRAY_TEXTURES and fix themChristoph Bumiller2011-01-294-19/+34
|
* egl_dri2: Export glapi symbols for DRI drivers.Chia-I Wu2011-01-302-10/+27
| | | | | | | | | | | | 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.
* egl: Make the transition to built-in drivers more smooth.Chia-I Wu2011-01-301-5/+24
| | | | | | 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.
* mapi: Workaround a bug in makedepend.Chia-I Wu2011-01-294-7/+30
| | | | | | | | | | | | | 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.
* u_blitter: use user buffers instead of real buffersMarek Olšák2011-01-291-21/+8
| | | | User buffers may be the fastest way to upload data.
* gallium/docs: add info about transfer boxes and array texturesBrian Paul2011-01-281-0/+16
|
* gallium: added comments to pipe_transferBrian Paul2011-01-281-4/+4
|
* st/mesa: fix texture array dimensionsBrian Paul2011-01-283-18/+122
| | | | | | | | | | | | | 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.
* softpipe: fix array textures to use resource array_sizeBrian Paul2011-01-283-21/+88
| | | | Don't use height for 1D array textures or depth for 2D array textures.
* mesa: fix typo, wrap long lineBrian Paul2011-01-281-2/+3
|
* st/mesa: pass layers param to st_texture_create()Brian Paul2011-01-287-4/+9
|
* Revert "glcpp: Demote "macro redefined" from an error to a warning"Carl Worth2011-01-294-38/+15
| | | | | | | | This reverts commit d3df641f0aba99b0b65ecd4d9b06798bca090a29. 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).
* util: Fix leak of transfers in upload managerJakob Bornecrantz2011-01-281-0/+1
|
* mesa: Fix available APIs for AMD_conservative_depthChad Versace2011-01-281-1/+1
| | | | | Remove ES2, since AMD_conservative_depth is not listed in the OpenGL ES extension registry.
* r300/compiler: print stats based on the initial number of instructionsMarek Olšák2011-01-282-3/+10
| | | | | The same number of shaders is now printed regardless of optimizations being enabled or not, so that we can compare shader stats side by side easily.
* r300g: fix resource_copy_region for DXT SRGB formatsMarek Olšák2011-01-281-4/+4
|
* glcpp: Demote "macro redefined" from an error to a warningCarl Worth2011-01-284-15/+38
| | | | | | | | | | The GLSL specification is vague here, (just says "as is standard for C++"), though the C specifications seem quite clear that this should be an error. However, an existing piglit test (CorrectPreprocess11.frag) expects this to be a warning, not an error, so we change this, and document in README the deviation from the specification.
* glapi: add @GOTPCREL relocation typeDimitry Andric2011-01-272-2/+4
| | | | | | | | | Fixes http://bugs.freedesktop.org/show_bug.cgi?id=33440 This replaces commit 731ec60da3ccb92f5bfb4d6f1bc3c8e712751376 NOTE: This is a candidate for the 7.9 and 7.10 branches Signed-off-by: Brian Paul <[email protected]>
* r600g: handle PIPE_CAP_ARRAY_TEXTURESMarek Olšák2011-01-281-0/+1
|
* r300g: handle PIPE_CAP_ARRAY_TEXTURESMarek Olšák2011-01-281-0/+1
|
* r300g: 8x8-compressed zbuffer can only be point-sampledMarek Olšák2011-01-281-1/+2
|
* r300g: fix and re-enable 8x8 zbuffer compression modeMarek Olšák2011-01-286-44/+69
| | | | Also cleanup the whole thing.
* r300g: print driver info if RADEON_DEBUG=infoMarek Olšák2011-01-277-39/+60
|
* r300g: add winsys flag CAN_AACOMPRESSMarek Olšák2011-01-274-10/+23
|
* r300g: rename flag squaretiling -> drm_2_1_0Marek Olšák2011-01-277-15/+14
|
* util: fix parsing debug optionsMarek Olšák2011-01-271-19/+25
| | | | | | | So that 'foo' can be found in: OPTION=prefixfoosuffix,foo Also allow that debug options can be separated by a non-alphanumeric characters instead of just commas.
* r300g: fix some bugs with zbuffer compression (v4)Marek Olšák2011-01-2714-331/+364
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This drops the memblock manager for ZMASK. Instead, only one zbuffer can be compressed at a time. Note that this does not necessarily have to be slower. When there is a large number of zbuffers, compression might be used more often than it was before. It's also easier to debug. How it works: 1) 'clear' turns the compression on. 2) If some other zbuffer is set or the currently-bound zbuffer is used for texturing, the driver decompresses it and then turns the compression off. Notes: - The ZMASK clear has been refactored, so that only one packet3 is used to clear ZMASK. - The 8x8 compression mode is disabled. I couldn't make it work without issues. - Also removed driver-specific stuff from u_blitter. Driver status: - RV530 and R580 appear to just work (finally). - RV570 should work, but there may be an issue that we don't correctly calculate the number of dwords to clear, resulting in a partially uninitialized zbuffer. - RS690 misrenders as if no ZMASK clear happened. No idea what's going on. - RV350 may even hardlock. This issue was already present and this patch doesn't fix it. I think we are still missing some hardware info we need to make the zbuffer compression work fully. Note that there is also an issue with HiZ, resulting in a sort of blocky zigzagged corruption around some objects.
* glsl: use 'this' pointer to be consistentBrian Paul2011-01-261-1/+1
|
* glsl: remove needless conditionalBrian Paul2011-01-261-14/+10
|