Commit graph

7716 commits

Author SHA1 Message Date
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