Age | Commit message (Collapse) | Author |
|
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 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 it didn't change. This seems to flush texture cashes. Fixes
multi-textured lighting in quake2.
|
|
|
|
|
|
|
|
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.
|
|
|
|
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.
|
|
new DRM version 2.4 and command DMA.
- Flush less.
- Bumped the driver date.
|
|
|
|
From: Stephane Marchesin
|
|
*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.
|
|
bogus value. This fixes many, many rendering issues which I wrongly blamed on texture programming or performance..
|
|
From: Stephane Marchesin
|
|
|
|
|
|
|
|
r420 cards with less than 16 pipes.
|
|
|
|
program related functions.
|
|
endElement handler for <function>. This catches the errors as early as
possible and makes debugging other code easier.
|
|
(XMesaDrawable)w)->depth in the error message.
|
|
|
|
environment.
|
|
|
|
|
|
|
|
alpha value. Fixed.
|
|
|
|
protocol support (reported by Adam Jackson). Added code to validate the
'type' parameter to the draw element functions.
|
|
|
|
VSF_MAX_FRAGMENT_LENGTH as it seems a bit low otherwise.
|
|
|
|
0x4e71 - Saphire 9600 256MB - Second Head...
|
|
|
|
additional checks.
Replace _mesa_init_buffers() with _mesa_init_scissor() and _mesa_init_multisample().
|
|
make ycbcr depend on a CHIPSET define .. needs to be filled in though
|
|
|
|
add girl2.rgb which is a slightly resized girl.rgb so client texturing works
|
|
|
|
|
|
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.
|
|
|
|
ARB_fragment_program_shadow, ARB_vertex_program, NV_fragment_program,
NV_fragment_program_option, NV_fragment_program2, NV_vertex_program,
NV_vertex_program1_1, NV_vertex_program2, NV_vertex_program2_option,
NV_vertex_program3, and ATI_text_fragment_shader.
|
|
setup_single_request, and setup_vendor_request to the global functions
__glXReadPixelReply, __glXReadReply, __glXSetupSingleRequest, and
__glXSetupVendorRequest. This will make it easier to add handcoded Single /
VendorPrivate / VendorPrivteWithReply functions.
|
|
|
|
|
|
changed. Other drivers don't need to do this because they're swapping
modified textures out of texture memory, which implies a timestamp
update.
|
|
Fixed a flow control problem in glGet*v that could result in the display
not being unlocked. This also resulted in refactoring a lot more code
out of the glGet*v routines into get_array_data, which was renamed to
get_client_data.
|