Brian Paul
65f1cf2cbf
update i915/i830Scissor to use DrawBuffer instead of driDrawable bounds
2006-03-24 22:03:22 +00:00
Brian Paul
f04f5e990a
minor clean-ups
2006-03-24 16:51:51 +00:00
Brian Paul
1854ebe77e
more fixes and clean-up in intelCopyBuffer()
2006-03-24 14:42:04 +00:00
Brian Paul
3500f2e3c4
some comments
2006-03-23 23:23:18 +00:00
Brian Paul
cfeefc9b81
just comments
2006-03-23 23:17:57 +00:00
Brian Paul
3ad6adfb57
another intelFlush() call
2006-03-23 23:11:50 +00:00
Brian Paul
8a126f1166
fix some mapping bugs
2006-03-23 23:11:30 +00:00
Brian Paul
6315aabcf2
check for NULL rb in _mesa_framebuffer_renderbuffer()
2006-03-23 23:11:07 +00:00
Brian Paul
a8c2344364
Added an intelFlush() call inside intel_bind_framebuffer() to be sure
...
any previous rendering is completed. Not sure why this is needed when
_mesa_BindFramebufferEXT() does a FLUSH_VERTICES() call.
This fixes an offset/wrap-around bug when rendering to FBOs.
2006-03-23 22:33:58 +00:00
Brian Paul
2929b2569b
added render/framebuffer locking for thread safety
2006-03-23 20:08:15 +00:00
Brian Paul
f14790d7b0
tweak to render-to-texture region code
2006-03-23 20:05:33 +00:00
Brian Paul
8fb2e61801
In intelCopyBuffer() use current context, not dPriv->driContextPriv->driverPrivate.
...
The later can lead to nested locking attempt with threaded apps.
2006-03-23 20:03:57 +00:00
Brian Paul
b3c94f9d9d
move prevLockFile/Line into context struct
2006-03-23 20:02:57 +00:00
Brian Paul
5b889f7f2d
INTEL_PACKCOLOR() no longer needed
2006-03-23 18:58:48 +00:00
Brian Paul
0f531b5b48
Combine the bodies of _mesa_FramebufferTexture1D/2D/3DEXT into a single
...
function.
2006-03-23 18:25:52 +00:00
Brian Paul
c6482c0d41
Comment about removing screen->fbFormat field in the future.
2006-03-23 02:02:34 +00:00
Brian Paul
b71748efd1
In intelClearColor() always compute both 16bpp and 32bpp clear values
...
since we won't know which is needed until we're in glClear.
2006-03-23 02:00:45 +00:00
Brian Paul
1c4b9edc41
Initial attempt at software fallback for rendering to a hardware texture
...
when the texture format isn't supported by the hw rendering system.
Doesn't work yet.
2006-03-23 01:13:43 +00:00
Brian Paul
2b464d93d1
Before calling intel_region_release/reference() check if the regions
...
are changing.
2006-03-23 01:12:24 +00:00
Brian Paul
497f80ac34
Only try to validate depth/stencil pairing for user-created FBOs.
...
Disable the intel_region_release/reference() code in intel_draw_buffer()
since it seems redundant with same thing in i915_state_draw_region().
2006-03-23 01:11:29 +00:00
Brian Paul
2be748769b
assert(refcount > 0) in intel_region_release() - helpful for finding refernces to free'd memory
2006-03-23 01:03:35 +00:00
Brian Paul
45a1083ee7
use intel_region_reference() in MakeCurrent to make sure we don't accidentally lose the screen->front/back/depth regions
2006-03-23 01:00:49 +00:00
Brian Paul
3a45baa70d
fix 16bpp bug
2006-03-22 23:53:07 +00:00
Brian Paul
0bc3a7ac2e
fix a test in intel_validate_paired_depth_stencil(), fixes a 16bpp bug
2006-03-22 23:52:18 +00:00
Brian Paul
08f0579176
Rendering to FBO w/ stencil but w/out depth works now.
...
Assorted clean-ups and fixes.
2006-03-22 23:05:25 +00:00
Brian Paul
d689cd0715
need to resize the depth/stencil wrappers, if present, in _mesa_resize_framebuffer()
2006-03-22 22:05:26 +00:00
Brian Paul
e957f39f67
need an AllocStorage function for resizes
2006-03-22 22:04:32 +00:00
Brian Paul
416f09d3e6
Merge from trunk (get RENDER_START, clip code movement)
2006-03-22 22:03:31 +00:00
Brian Paul
40cc5d36fd
assertion fixes
2006-03-22 19:18:04 +00:00
Brian Paul
62f9613dbc
remove some invalid assertions (storage may not yet be allocated for the renderbuffer)
2006-03-22 19:16:11 +00:00
Brian Paul
7f31255eb2
Support for separate depth and stencil renderbuffers.
...
If the user creates several stencil renderbuffers and several depth
renderbuffers, any combination can get bound to a framebuffer object.
Since the hardware only supports combined depth+stencil buffers we
need to do some shuffling of buffer data to make things work.
This code deals with that.
Now fbotexture.c runs in hardware without the -ds flag.
Probably quite a few loose ends, clean-ups remain...
2006-03-22 18:46:18 +00:00
Brian Paul
78382b4bbe
Fix a number of issues in the _mesa_extract/insert_stencil() functions.
...
Pass an attachment index to _mesa_update_depth/stencil_buffer() funcs to
facilitate "paired" depth/stencil renderbuffers in drivers.
New update_color_draw_buffers() and update_color_read_buffer() functions
to make the _mesa_update_framebuffer() function a little cleaner.
2006-03-22 18:40:06 +00:00
Brian Paul
bd8e90857c
Call check_begin/end_render_texture() whenever the framebuffer binding
...
changes in _mesa_BindFramebufferEXT().
2006-03-22 16:48:14 +00:00
Brian Paul
b7cc448ff8
minor clean-up
2006-03-22 16:42:12 +00:00
Brian Paul
0ea582acbe
remove unused var
2006-03-22 15:20:58 +00:00
Brian Paul
05c824db87
fix some _ActualFormat initializations
2006-03-22 14:19:17 +00:00
Thomas Hellström
829f6909bd
Disable texture memory initialization.
...
Add some missing error checks in the buffer manager.
2006-03-22 13:24:01 +00:00
Brian Paul
34f1ebc72f
New functions for manipulating depth/stencil renderbuffers:
...
_mesa_extract_stencil(), _mesa_insert_stencil(), _mesa_promote_stencil().
2006-03-22 02:11:28 +00:00
Brian Paul
c6e586ee0c
Export _mesa_lookup_renderbuffer() and _mesa_lookup_framebuffer() functions.
...
Use new _mesa_lookup_texture() function.
2006-03-22 02:10:09 +00:00
Brian Paul
9180d932c6
New _mesa_lookup_texture() function to wrap the hashtable lookup.
2006-03-22 02:09:22 +00:00
Brian Paul
95df1b67a2
Reorganize the code relating to updating the framebuffer's _DepthBuffer
...
and _StencilBuffer fields.
These fields are often wrappers/adaptors around combined depth/stencil
renderbuffers.
Make _mesa_update_depth_buffer() and _mesa_update_stencil_buffer() public.
2006-03-22 02:08:30 +00:00
Brian Paul
bc400c3f30
Lots of updates for new gl_renderbuffer ClassID and _ActualFormat fields.
...
Removed hw_stencil field from context. Now determine hw stencil from looking
at the stencil renderbuffer.
Enabled the GL_EXT_packed_depth_stencil extension. May not be permanent but
for now it allows hw stencil to work with the fbotexture.c demo (w/ -ds flag).
Using separate renderbuffers for GL_DEPTH_ATTACHMENT_EXT and
GL_STENCIL_ATTACHMENT_EXT works, but is currently a software fallback.
2006-03-21 23:58:03 +00:00
Brian Paul
3a3db0e9ec
A number of renderbuffer changes:
...
1. Added _ActualFormat field to record the actual storage format chosen by
Mesa or the driver. The InternalFormat field has to store the value that
the user passed into the glRenderbufferStorageEXT() function.
2. Added ClassID field so driver can distinguish between gl_renderbuffers
and intel_renderbuffers (for example). Not very OOP-like, but seems to
be a reasonable solution.
2006-03-21 23:53:06 +00:00
Brian Paul
613e395ab8
added -DDEBUG so core mesa debug/ASSERT code is activated (temporary on this branch)
2006-03-21 23:18:46 +00:00
Brian Paul
86c5de8b85
fix token in assertion
2006-03-21 23:17:37 +00:00
Brian Paul
44c8c42ab9
GL_EXT_packed_depth_stencil should be off by default
2006-03-21 21:56:04 +00:00
Brian Paul
31a82a663c
When s/w rendering to texture memory, don't invert Y as for regular rendering.
...
Perhaps put yScale, yBias factors into intel_renderbuffer since they're
the same as those in intelCalcViewport().
2006-03-21 21:39:21 +00:00
Keith Whitwell
dafdf6512e
Use 64 byte-aligned pitches for RBO's
2006-03-21 20:30:10 +00:00
Keith Whitwell
9caacb015a
Add a few assertions, currently hit by fgl_glxgears
2006-03-21 20:02:37 +00:00
Keith Whitwell
2887770534
Protect depth buffer emit with test for state->depth_region
2006-03-21 18:42:22 +00:00