Ben Skeggs [Thu, 6 Jan 2005 00:10:11 +0000 (00:10 +0000)]
Added GL_POLYGON primitive. Single primitive between glBegin()/glEnd() now works.
Felix Kuehling [Wed, 5 Jan 2005 23:56:16 +0000 (23:56 +0000)]
* Fixed handling of scissors
* Only set scissor regs directly if drmMinor < 1
* Don't set texaddr to 0 when a texture unit is disabled. That would trigger
the tightened texture state check in the DRM if the texaddr and texdesc
registers were not emitted atomically.
Alan Hourihane [Wed, 5 Jan 2005 22:40:34 +0000 (22:40 +0000)]
support 720x480 and 960x540 modes
Alan Hourihane [Wed, 5 Jan 2005 21:49:52 +0000 (21:49 +0000)]
Only try to free the front buffer when it's a pbuffer.
Keith Whitwell [Wed, 5 Jan 2005 20:56:05 +0000 (20:56 +0000)]
Make the format of the fastpaths cleaner at the expense of a little
performance.
Add fastpaths for some more common vertex formats.
Alan Hourihane [Wed, 5 Jan 2005 20:13:04 +0000 (20:13 +0000)]
fix build problem
Keith Whitwell [Wed, 5 Jan 2005 18:14:38 +0000 (18:14 +0000)]
Improve some quad paths, gives gears a little boost.
Keith Whitwell [Wed, 5 Jan 2005 18:06:05 +0000 (18:06 +0000)]
Give attributes with zero-stride a count of 1 to make it easier
to avoid transforming the same attribute multiple times.
Don't light a single normal multiple times in light_fast_rgba*
Keith Whitwell [Wed, 5 Jan 2005 13:51:38 +0000 (13:51 +0000)]
make alloc-dma functions inline, rearrange some debug
Keith Whitwell [Wed, 5 Jan 2005 13:51:03 +0000 (13:51 +0000)]
Avoid a segfault in multiarb.c
Alan Hourihane [Wed, 5 Jan 2005 13:45:09 +0000 (13:45 +0000)]
Bring VIA driver up-to-date with regard to drm_*_t changes and remove
the xf86drmVIA.[ch] files.
Bring in the IRQ handler and Ring buffer code, but ring buffer is disabled
as it is with the Xserver. It certainly locks up the CLE266.
Keith Whitwell [Wed, 5 Jan 2005 12:58:14 +0000 (12:58 +0000)]
Add a couple of hardwired fastpaths to t_vertex.c.
Keith Whitwell [Wed, 5 Jan 2005 11:10:05 +0000 (11:10 +0000)]
If there is only one normal, don't transform it multiple times.
Vladimir Dergachev [Wed, 5 Jan 2005 04:56:23 +0000 (04:56 +0000)]
Reduce the amount of debug output, while still printing important messages.
Make guessing texture formats easier.
Vladimir Dergachev [Wed, 5 Jan 2005 00:18:46 +0000 (00:18 +0000)]
Play a little bit with texture formats.
Get NeHe demos 06, 07 and 19 working.
Vladimir Dergachev [Tue, 4 Jan 2005 22:52:53 +0000 (22:52 +0000)]
Sync with master copy.
Vladimir Dergachev [Tue, 4 Jan 2005 20:25:11 +0000 (20:25 +0000)]
Port code from r200 that implements color blending. Seems to work.
This can be tested with lesson19 from NeHe.
This has also shown that the alpha code does not work - we pick up a red tint
for transparent pixels somewhere.
Vladimir Dergachev [Tue, 4 Jan 2005 19:15:37 +0000 (19:15 +0000)]
Unify rendering of textured and non-textured primitives.
Vladimir Dergachev [Tue, 4 Jan 2005 18:59:47 +0000 (18:59 +0000)]
Major code restructuring:
* move proven code into the r300_state.c
* update ClearBuffer to cope with more dynamic state
* cleanup !
Brian Paul [Tue, 4 Jan 2005 14:48:14 +0000 (14:48 +0000)]
added GLX_NV_float_buffer
Brian Paul [Tue, 4 Jan 2005 14:33:47 +0000 (14:33 +0000)]
use HIDDEN macro to export fewer symbols (bug 2210)
Brian Paul [Tue, 4 Jan 2005 14:19:25 +0000 (14:19 +0000)]
directfb changes (Claudio Ciccani)
Keith Whitwell [Tue, 4 Jan 2005 12:57:02 +0000 (12:57 +0000)]
Add GL_EXT_fog_coord
Keith Whitwell [Tue, 4 Jan 2005 12:56:17 +0000 (12:56 +0000)]
Add GL_EXT_secondary_color
Keith Whitwell [Tue, 4 Jan 2005 12:53:41 +0000 (12:53 +0000)]
Turn specular lighting state on/off appropriately.
Keith Whitwell [Tue, 4 Jan 2005 12:18:05 +0000 (12:18 +0000)]
Change to use the t_vertex.c mechanisms for building vertices,
including Felix's ptex code.
Re-enable some assembly for performance.
Brian Paul [Tue, 4 Jan 2005 00:58:29 +0000 (00:58 +0000)]
Use the GLX 1.3 pbuffer/fbconfig functions in preference to the SGIX ones.
Added more functions to pbutil.[ch] to better isolate API differences.
Felix Kuehling [Mon, 3 Jan 2005 22:24:44 +0000 (22:24 +0000)]
Added support for floating point depth buffers on Savage4-based
hardware. By also reversing the depth range this can compensate the loss
of accuracy of far objects caused by the projective transformation.
Software fallbacks work but are slightly slower since floats in a custom
(non IEEE) format have to be encoded and decoded. I havn't done anything
about polygon offsets yet. There doesn't seem to be an easy way do get
it right except making the offset unit as big as the lowest resolution
of depth values. For now float depth is disabled by default but can be
enabled through driconf (though I have seen only positive effects so
far).
Felix Kuehling [Mon, 3 Jan 2005 22:15:41 +0000 (22:15 +0000)]
Added a boolean option for a floating-point depth buffer.
Ian Romanick [Mon, 3 Jan 2005 21:03:03 +0000 (21:03 +0000)]
The opcode and command length fields of RenderLarge commands were
mistakenly emitted in the wrong order.
Brian Paul [Mon, 3 Jan 2005 15:55:51 +0000 (15:55 +0000)]
latest updates
Vladimir Dergachev [Mon, 3 Jan 2005 15:45:10 +0000 (15:45 +0000)]
Add structs describing vertex and pixel shader state to r300_state.
Take apart program_pipeline() and move it into appropriate pieces within the driver.
Test the framework on run_flat_render()
Brian Paul [Mon, 3 Jan 2005 15:36:27 +0000 (15:36 +0000)]
bump version to 6.3, etc.
Brian Paul [Mon, 3 Jan 2005 15:35:00 +0000 (15:35 +0000)]
DirectFB driver (Claudio Ciccani)
Brian Paul [Mon, 3 Jan 2005 15:01:26 +0000 (15:01 +0000)]
updates from Jouk
Vladimir Dergachev [Mon, 3 Jan 2005 06:53:38 +0000 (06:53 +0000)]
Turns out I left flat primitives in vertex buffer mode. Switch them back to immediate which works correctly..
Vladimir Dergachev [Mon, 3 Jan 2005 06:48:50 +0000 (06:48 +0000)]
Enable code to compute other constants that were used by R200 code.
Add fprintf to print these constants.
Correct t->size computation, so it works now.
Vladimir Dergachev [Mon, 3 Jan 2005 05:44:20 +0000 (05:44 +0000)]
Port texture allocation code from R200.
Hook it up, so lesson06 displays red colored textures.
Vladimir Dergachev [Sun, 2 Jan 2005 21:53:53 +0000 (21:53 +0000)]
Add texture units registers
Vladimir Dergachev [Sun, 2 Jan 2005 06:16:44 +0000 (06:16 +0000)]
Cleanup !
I can not trigger any lockups now..
Vladimir Dergachev [Sun, 2 Jan 2005 05:57:15 +0000 (05:57 +0000)]
I think I fixed the lockups issue.
Vladimir Dergachev [Sun, 2 Jan 2005 04:46:25 +0000 (04:46 +0000)]
Get textures to work with NeHe lesson06.
The code is still disabled since we are displaying random image data instead of actual texture and because I had to put a sleep(1) in lesson06 drawing loop to prevent lockups.
Adam Jackson [Sun, 2 Jan 2005 03:36:53 +0000 (03:36 +0000)]
linux-dri-x86 build fix from Andreas Stenglein.
Felix Kuehling [Sun, 2 Jan 2005 01:22:10 +0000 (01:22 +0000)]
Improved the performance of software fallbacks by not waiting for idle
in every single span function. Instead flush and wait in the
SpanRenderStart hook and in wrappers around _swrast_Copy/Draw/ReadPixels.
Misc. cleanups in savagespan.c while I'm there.
Felix Kuehling [Sat, 1 Jan 2005 20:40:14 +0000 (20:40 +0000)]
Removed all direct hardware access (MMIO, BCI) from the Savage DRI
driver. It uses the new DRM version 2.0.x now, which has just been
committed to DRM CVS.
Felix Kuehling [Sat, 1 Jan 2005 20:33:45 +0000 (20:33 +0000)]
Use DRM headers from $(DRM_SOURCE_PATH)/shared-core instead of .../shared.
Vladimir Dergachev [Sat, 1 Jan 2005 18:41:43 +0000 (18:41 +0000)]
Add a convenience function to issue CP delays.
Vladimir Dergachev [Fri, 31 Dec 2004 21:28:36 +0000 (21:28 +0000)]
Qualify the magic 20B0 register as SE_VTE_CNTL similar to R200. Looks like disabling Z offset and scaling displays gears properly, not sure why. Perhaps the meaning of the bits has changed ?
Cleanup code a bit.
Vladimir Dergachev [Fri, 31 Dec 2004 20:57:48 +0000 (20:57 +0000)]
Sync with master copy.
Vladimir Dergachev [Fri, 31 Dec 2004 19:39:03 +0000 (19:39 +0000)]
Add texture drawing code. Note: it is broken at the moment and is disabled in CVS. However, all hooks are there.
Fix vertex buffer drawing code.
Vladimir Dergachev [Thu, 30 Dec 2004 20:24:30 +0000 (20:24 +0000)]
Rework slightly r300_get_primitive_type - make it clearer and more compact..
Keith Whitwell [Thu, 30 Dec 2004 17:47:08 +0000 (17:47 +0000)]
Get scissor test working again. Passes glean scissor test.
Keith Whitwell [Thu, 30 Dec 2004 16:30:26 +0000 (16:30 +0000)]
Calculate DEPTH_SCALE correctly for polygon offset.
Keith Whitwell [Thu, 30 Dec 2004 16:13:35 +0000 (16:13 +0000)]
Simplify viaBlit a bit more.
Implement masked clears.
Vladimir Dergachev [Thu, 30 Dec 2004 16:06:37 +0000 (16:06 +0000)]
Add missing files.
Keith Whitwell [Thu, 30 Dec 2004 16:05:07 +0000 (16:05 +0000)]
Initialize depth pointer correctly.
Keith Whitwell [Thu, 30 Dec 2004 15:58:45 +0000 (15:58 +0000)]
Don't need to adjust for drawXoff in fallback clipping.
Keith Whitwell [Thu, 30 Dec 2004 14:32:19 +0000 (14:32 +0000)]
fix regression with fallbacks from recent commits
Keith Whitwell [Thu, 30 Dec 2004 14:21:46 +0000 (14:21 +0000)]
Fix MagFilter state for texunit 0
Vladimir Dergachev [Thu, 30 Dec 2004 11:43:04 +0000 (11:43 +0000)]
Update vertex buffer code (still does not work properly..)
Vladimir Dergachev [Thu, 30 Dec 2004 11:17:42 +0000 (11:17 +0000)]
Update to recent r300_lib.
Cleanup code that is not relevant anymore.
Play with unknown2 parameter.
Vladimir Dergachev [Thu, 30 Dec 2004 10:27:04 +0000 (10:27 +0000)]
Hooked up projection matrix - the gears actually rotate !
Vladimir Dergachev [Thu, 30 Dec 2004 10:11:39 +0000 (10:11 +0000)]
Restructure code.
Add drawing code that uses vertex buffers - does not lockup, but does not draw correctly either.. Perhaps something to do with vertices being overwritten ?
Start using hardware state retained by the driver and cut back on direct register writes significantly.
Vladimir Dergachev [Thu, 30 Dec 2004 07:50:15 +0000 (07:50 +0000)]
Change default RS settings so that glxgears will display something..
Vladimir Dergachev [Thu, 30 Dec 2004 07:11:28 +0000 (07:11 +0000)]
Clarify some of the unkXXXX atoms.
Vladimir Dergachev [Thu, 30 Dec 2004 06:06:54 +0000 (06:06 +0000)]
Port viewport setting code from R200.
Take it outside R300ResetHwState.
Keith Whitwell [Wed, 29 Dec 2004 21:17:06 +0000 (21:17 +0000)]
Fix some wrapping bugs in the last commit. Probably there are more
remaining.
Keith Whitwell [Wed, 29 Dec 2004 20:46:27 +0000 (20:46 +0000)]
Simplfy clear() and swapbuffers() code.
Fix various mishandling of cliprects.
Allow multiple primitives to be emitted to a single dma buffer, which
was largely impossible previously.
Re-enable the fast unclipped render stage.
Keith Whitwell [Wed, 29 Dec 2004 14:38:17 +0000 (14:38 +0000)]
Use Point._Size in calculation
Keith Whitwell [Wed, 29 Dec 2004 14:36:58 +0000 (14:36 +0000)]
use clamped Line._Width in calculations
Keith Whitwell [Wed, 29 Dec 2004 14:09:21 +0000 (14:09 +0000)]
Don't advertise wide lines or points.
Keith Whitwell [Wed, 29 Dec 2004 14:06:09 +0000 (14:06 +0000)]
Make line stipple a fallback.
Make sure fallbacks are wrapped by SpanRenderStart/SpanRenderFinish
Keith Whitwell [Wed, 29 Dec 2004 14:05:16 +0000 (14:05 +0000)]
Don't pingpong cliprects through sarea on CopyBuffer().
Keith Whitwell [Wed, 29 Dec 2004 13:03:12 +0000 (13:03 +0000)]
Fallback on 3d textures correctly.
Keith Whitwell [Wed, 29 Dec 2004 12:48:50 +0000 (12:48 +0000)]
Get twoside-lit triangles working again
Keith Whitwell [Wed, 29 Dec 2004 12:39:50 +0000 (12:39 +0000)]
Large update
- Remove via duplicates of shared template files
- Update driver to work with current versions of the above
- Rework dma accounting
- Rework emitting to dma to use a consistent set of macros
The handling of cliprects in the driver is still pretty questionable.
Vladimir Dergachev [Wed, 29 Dec 2004 04:51:46 +0000 (04:51 +0000)]
Rearrange code so we don't dump state as often.
Vladimir Dergachev [Wed, 29 Dec 2004 04:33:33 +0000 (04:33 +0000)]
Get most primitives working using immediate mode.
Glxgears displays "rotating" gears, all in the same place (no transform mode, remember ?)
Work needs to be done to understand how to have glxgears working properly.
Vladimir Dergachev [Wed, 29 Dec 2004 03:48:05 +0000 (03:48 +0000)]
Bring in latest revision of r300_lib.
New capabilities: using vertex buffers, immediate vertex data, immediate indices.
Vladimir Dergachev [Mon, 27 Dec 2004 23:30:39 +0000 (23:30 +0000)]
Use R300_CMD_END3D for end_3d().
Adam Jackson [Mon, 27 Dec 2004 22:57:05 +0000 (22:57 +0000)]
Fix read-from-uninitialized in s3vMakeCurrent()
Adam Jackson [Mon, 27 Dec 2004 22:08:34 +0000 (22:08 +0000)]
Unused variable cleanup.
Adam Jackson [Mon, 27 Dec 2004 21:52:17 +0000 (21:52 +0000)]
Bug #1859: Initialize 'size' before first use in intelTryReadPixels()
Adam Jackson [Mon, 27 Dec 2004 20:38:29 +0000 (20:38 +0000)]
Build s3v and trident by default too.
Smoky the bear says: Only you can prevent bitrot.
Adam Jackson [Mon, 27 Dec 2004 20:31:56 +0000 (20:31 +0000)]
Get s3v building with a minimum of warnings.
Vladimir Dergachev [Mon, 27 Dec 2004 17:18:48 +0000 (17:18 +0000)]
Implement rendering of (flat color) QUAD primitives as an experiment.
Ian Romanick [Mon, 27 Dec 2004 08:29:54 +0000 (08:29 +0000)]
Fixed two problems with the handling of GLX protocol replies. The logic
for determining when extra data needed to be read after a reply (to ensure
4-byte alignment) and the logic to determine whether or not to read reply
data after the SingleReply packet were both slightly wrong.
Vladimir Dergachev [Sun, 26 Dec 2004 21:42:14 +0000 (21:42 +0000)]
Expose primitive types being rendered, in preparation to implement fixed pipeline primitive drawing.
Note: these are only visible when export LIBGL_DEBUG=verbose is specified.
Vladimir Dergachev [Sun, 26 Dec 2004 19:32:21 +0000 (19:32 +0000)]
Update with most recent version.
Adam Jackson [Fri, 24 Dec 2004 03:04:14 +0000 (03:04 +0000)]
Get trident building and -Werror clean.
- Added Makefile
- Deleted references to old headers
- Added prototypes all over the place
- Lots of type updates (drmHandle -> drm_handle_t etc.)
- Added __driCreateNewScreen(), deleted __driCreateScreen()
- Fixed context creation to match other drivers
- Fixed various bitfield names
- Bumped driver date
Still nowhere close to usable, the DDX isn't DRI-aware and there's no DRM.
Felix Kuehling [Thu, 23 Dec 2004 20:26:59 +0000 (20:26 +0000)]
Simplified and optimized _savage_texnorm_stage.
Keith Whitwell [Thu, 23 Dec 2004 18:26:40 +0000 (18:26 +0000)]
Remove the VIA_PERFORMANCE code. A step towards moving the driver
back to using the shared template files.
Keith Whitwell [Thu, 23 Dec 2004 18:16:22 +0000 (18:16 +0000)]
Chop out more dead code.
Get the drawXoff adjustment working a bit better.
Seems to pass the glean orthoPos tests.
Keith Whitwell [Wed, 22 Dec 2004 19:31:10 +0000 (19:31 +0000)]
Fix merge error.
Keith Whitwell [Wed, 22 Dec 2004 19:30:02 +0000 (19:30 +0000)]
Remove dead code.
Fix 24/8 depth/stencil visuals.
Felix Kuehling [Wed, 22 Dec 2004 16:12:59 +0000 (16:12 +0000)]
Enabled hardware rendering of 1D textures. No need for a software fallback.
Felix Kuehling [Wed, 22 Dec 2004 00:21:32 +0000 (00:21 +0000)]
- Fake projective textures on a single texture unit. A fallback is only
needed if a second texture unit is enabled.
- Also worked around an application bug in Chromium B.S.U.: it sends 3D
texture coordinates while only a 2D texture is enabled. This used to
trigger a PTEX fallback. Now the 3rd coordinate is just ignored.
- Fixed the _savage_texnorm_stage to never normalize homogenous texture
coordinates.
Keith Whitwell [Tue, 21 Dec 2004 23:07:13 +0000 (23:07 +0000)]
Remove debug code which referenced an old global variable.
Ian Romanick [Tue, 21 Dec 2004 23:06:02 +0000 (23:06 +0000)]
Used GCC's __builtin_expect when available. Change the way code is
generated for commands that can use RenderLarge packets. Tweak the code for
__glXFlushRenderBuffer slightly.
Keith Whitwell [Tue, 21 Dec 2004 22:42:00 +0000 (22:42 +0000)]
Push a number of global variables into the viaContext struct.
Remove the bogus 'current_vmesa' pointer.