summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Initial multitexturing support. Old behaviour can be re-enabled by changing ↵Ben Skeggs2005-03-155-9/+336
| | | | ifdefs in r300_setup_rs_unit and r300SetupPixelShader in r300_state.c\nRequires DRM update.
* When timestamping textures, need to emit the event with SAVAGE_WAIT_3DFelix Kuehling2005-03-142-27/+41
| | | | | | | | set. Otherwise the 3D engine may still be using a texture that is being overwritten. In order to minimize the cost of waiting, timestamp textures only when needed: when a texture image changes, when a different texture is bound to a texture unit or when a texture unit is disabled. (Used to be after flushing every command buffer.)
* Stencil supportPeter Zubaj2005-03-144-34/+84
| | | | | | Reflex from mesa demos doesn't work TODO - double side stencil I hope that I didn't break anything
* re-enable slang sourcesMichal Krol2005-03-141-6/+5
|
* make it compile under linuxMichal Krol2005-03-141-1/+2
|
* make it compile under gcc 3.3.2Michal Krol2005-03-141-1/+1
|
* fix enum commaMichal Krol2005-03-144-6/+6
|
* Replacing alpha test bits with values that give desired results as compaired ↵Aapo Tahkola2005-03-131-8/+1
| | | | to software rendering. Alpha test in textures is still completely broken as can be seen in progs/demos/fire and various games.
* Updated savage_dri.h from Xorg CVS. This removes definitions that areFelix Kuehling2005-03-131-81/+0
| | | | | not part of the DDX->DRI interface and should never have been in this file in the first place.
* Removed savagedma.[ch]. They have been unused for a while and were onlyFelix Kuehling2005-03-122-261/+0
| | | | | kept around for reference. Now that command DMA is implemented in the DRM module they are no longer needed.
* Unlike radeon and r200 drivers r300AllocCmdBuf allocs dwords not bytes.Aapo Tahkola2005-03-126-23/+70
|
* Add support for ARB_draw_buffers and ARB_occlusion_query. The GLX protocolIan Romanick2005-03-116-30/+226
| | | | | | | | | | | for these extensions (as well as ARB_vertex_program and ARB_matrix_palette) was just approved by the ARB on 8-Mar-2005. Now the only extension missing for 1.5 support is ARB_vertex_buffer_object. The opcodes for ARB_matrix_palette were also added to gl_API.xml. Since this extension isn't supported by Mesa, no code is generated for it. Some tabs were also converted to spaces in the comment for GetCompressedTexImageARB.
* add MAT_DIRTY_FLAGS in _math_matrix_mul_floats(), (bug 2696)Brian Paul2005-03-111-3/+4
|
* Add suitable definitions for the _REV formats, plus a commentPaul Mackerras2005-03-111-10/+20
| | | | | | | explaining why they are the same as the non-REV formats now that textures don't get byte-swapped on their way to the chip. Fix the ARGB4444 and L8 formats. Add entries for the A8 and RGB332 formats.
* - Flush before updating the timestamp of a texture heap from a bound texture.Felix Kuehling2005-03-101-3/+21
| | | | | | | - Flush before using a new texture or before disabling a texture unit, because savageFlushCmdBuf can only update the timestamp of the last used texture. This fixes corruption in quake2 with single-textured lighting.
* If the texture image changed force emitting the texture address, evenFelix Kuehling2005-03-091-2/+10
| | | | | if it didn't change. This seems to flush texture cashes. Fixes multi-textured lighting in quake2.
* Don't use R200 texture constants - R300 fields are all different.Vladimir Dergachev2005-03-091-0/+4
|
* Deal with texture formats in a more robust way.Vladimir Dergachev2005-03-091-49/+25
|
* Replacing some RADEON cmd types with r300 counterparts.Aapo Tahkola2005-03-082-6/+6
|
* Improving Vladimirs alpha test fix a bit as it turns out r300Enable didnt ↵Aapo Tahkola2005-03-085-19/+15
| | | | correctly disable alpha test. Vertex programs with high vertex count now run a lot faster as software fallback is no longer on. Also disabling 'temp to result'-instructions as they probably violate the spec and dont seem to be something thats needed.
* Actually *use* the count_scale value associated with a parameter.Ian Romanick2005-03-062-27/+35
|
* Don't synchronize after each frame. Allow the GPU to be one frameFelix Kuehling2005-03-063-14/+17
| | | | | | | | | ahead of the CPU for more parallelism of CPU and GPU. Unfortunately there seems to be some broken hardware (like my ProSavageDDR) on which status register updates are delayed sometimes. This leads to very jerky animation if the hardware can buffer more than the current frame. A new option "sync_frames" can be used as a remedy on such broken hardware.
* - Fixed two bugs related to DMA buffer handling that showed up with theFelix Kuehling2005-03-065-29/+14
| | | | | | new DRM version 2.4 and command DMA. - Flush less. - Bumped the driver date.
* Add format 15. It turned out to be X,X,X,X,X8.gliding_penguinVladimir Dergachev2005-03-051-2/+2
|
* Fixing memset on ia64 & other archsDave Airlie2005-03-054-6/+26
| | | | From: Stephane Marchesin
* Enable VB mode rendering by default. If anyone thinks this is wrong, ↵Vladimir Dergachev2005-03-051-1/+1
| | | | | | | | | | *please* feel free to change it back. My reasons: * immediate mode is broken * vb mode is faster * vb mode is the right way to do it.
* Do properly initialize ALPHA_TEST register instead of carefully preserving ↵Vladimir Dergachev2005-03-051-2/+6
| | | | bogus value. This fixes many, many rendering issues which I wrongly blamed on texture programming or performance..
* fix for solo to set the mode, and make solo gcc2 friendly...Dave Airlie2005-03-051-2/+2
| | | | From: Stephane Marchesin
* remove one of the two _tnl_isolate_materials function callsRoland Scheidegger2005-03-051-6/+0
|
* Import fixes from X.org tree (Søren Sandmann <[email protected]>).Ian Romanick2005-03-041-10/+16
|
* Set pipes for R420 cards. Gives a nice speedup. This needs to be tested on ↵Rune Petersen2005-03-042-0/+5
| | | | r420 cards with less than 16 pipes.
* Add a couple of helper functions for completeness.Vladimir Dergachev2005-03-031-0/+19
|
* Fix some errors in the parameter descriptions in serveral vertex / fragmentIan Romanick2005-03-032-78/+100
| | | | program related functions.
* Check for some common function parameter description errors in theIan Romanick2005-03-031-0/+34
| | | | | endElement handler for <function>. This catches the errors as early as possible and makes debugging other code easier.
* When building in the X-Server, attr.depth doesn't exist. Instead, useIan Romanick2005-03-031-1/+4
| | | | (XMesaDrawable)w)->depth in the error message.
* change gl_buffer_object's Size field to GLsizeiptrARB typeBrian Paul2005-03-032-2/+2
|
* use COPY_CLEAN_4V macro to replace using both ASSIGN_4V & COPY_SZ_4VAlan Hourihane2005-03-024-12/+6
|
* Added a bunch of new comments, minor code clean-ups.Brian Paul2005-03-021-18/+45
|
* Using glColor3 commands to update materials could result in an undefinedBrian Paul2005-03-021-4/+6
| | | | alpha value. Fixed.
* added stub functions for GLX_MESA_allocate_memoryBrian Paul2005-03-011-4/+34
|
* Clean-up some warnings caused by the addition of vertex / fragment programIan Romanick2005-02-282-15/+41
| | | | | protocol support (reported by Adam Jackson). Added code to validate the 'type' parameter to the draw element functions.
* additional parenthesis in TNL_CONTEXT macro (Nicolai Haehnle)Brian Paul2005-02-281-3/+3
|
* fix for 'nasty bug' and some sanity checks to avoid buffer overruns. Bumping ↵before_upgrade_03_01_05Aapo Tahkola2005-02-285-16/+35
| | | | VSF_MAX_FRAGMENT_LENGTH as it seems a bit low otherwise.
* silence warningsBrian Paul2005-02-271-2/+2
|
* Added 0x4e51 - Saphire 9600 256MBhmarson2005-02-271-0/+4
| | | | 0x4e71 - Saphire 9600 256MB - Second Head...
* precedence precedence precedence.. add some bracketsDave Airlie2005-02-271-1/+1
|
* Rename _mesa_update_buffers() to _mesa_update_draw_buffer_bounds() and doBrian Paul2005-02-264-43/+67
| | | | | additional checks. Replace _mesa_init_buffers() with _mesa_init_scissor() and _mesa_init_multisample().
* Add a dri config option to enable the max texture level hackDave Airlie2005-02-266-5/+28
| | | | make ycbcr depend on a CHIPSET define .. needs to be filled in though
* Fairly significant changes to enums.c and the way it is generated. enums.cIan Romanick2005-02-263-3052/+4549
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | now contains 3 static tables. The first table is a single, large string of all the enum names. The second table is an array, sorted by enum name, of indexes to the string table and the matching enum value. The extra string table is used to eliminate relocs (and save space) in the compiled file. The third table is an array, sorted by enum value, of indexes into the second table. The [name, enum] table contains all of the enums, but the table sorted by enum-value does not. This table contains one entry per enum value. For enum values that have multiple names (e.g., 0x84C0 has GL_TEXTURE0_ARB and GL_TEXTURE0), only an index to the "best" name will appear in the table. gl_enums.py gives precedence to "core" GL versions of names, followed by ARB versions, followed by EXT versions, followed, finally, by vendor versions (i.e., anything that doesn't fall into one of the previous categories). By filtering the unneeded elements from this table, not only can we guarantee determinism in the generated tables, but we save 364 elements in the table. The optimizations outlined above reduced the size of the stripped enums.o (on x86) from ~80KB to ~53KB. The internal organization of gl_enums.py was also heavily modified. Previously enums were stored in an unsorted list as [value, name] tuples (basically). This list was then sorted, using a user-specified compare function (i.e., VERY slow in most Python implementations) to generate a table sorted by enum value. It was then sorted again, using another user-specified compare function, to generate a table sorted by name. Enums are now stored in a dictionary, called enum_table, with the enum value as the key. Each dictionary element is a list of [name, priority] pairs. The priority is determined as described above. The table sorted by enum value is generated by sorting the keys of enum_table (i.e., very fast). The tables sorted by name are generated by creating a list, called name_table, of [name, enum value] pairs. This table can then be sorted by doing name_table.sort() (i.e., very fast). The result is a fair amount more Python code, but execution time was reduced from ~14 seconds to ~2 seconds.
* Accidentally committed wrong version with the previous commit set.Ian Romanick2005-02-251-31/+31
|