Commit graph

7740 commits

Author SHA1 Message Date
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
Brian Paul
fb440c9f82 Need to set hardware viewport params depending on window vs. FBO rendering
and normal FBO vs. RTT.  Fixes upside down teapot in fbotexture.c demo.
Still need to adjust glDraw/Read/CopyPixels Y direction depending on if
we're doing RTT.
2006-03-21 18:35:02 +00:00
Brian Paul
576c9c310f comments, #if 0 / #endif some apparently unused context fields 2006-03-21 16:55:42 +00:00
Brian Paul
ec1db9db1f In intelReadBuffer() check/update framebuffer completeness.
Added intel_get_renderbuffer() and intel_get_rb_region() helper functions
to simplify some code (should be inlined in the future).
2006-03-21 16:46:05 +00:00
Brian Paul
e1f70cf5e2 include intel_buffers.h 2006-03-21 01:11:41 +00:00
Brian Paul
a7cdbf5c38 Additional login in intel_draw_buffer() to check if any needed renderbuffers
are software/fallback cases.
The hardware's combined depth/stencil buffer is now treated as such
(ala GL_EXT_packed_depth_stencil).  So the depth/stencil span functions
are effectively merged.  Renderbuffers wrappers will extract the depth or
stencil values when needed.
2006-03-21 01:11:12 +00:00
Brian Paul
fe37adfde3 Added _mesa_finish_render_texture() function and reference counting for
the renderbuffer which wraps textures.
2006-03-21 00:47:40 +00:00
Brian Paul
315396ac6c Created new intel_buffers.h file with appropriate prototypes.
Moved body of intelDrawBuffer() into new intel_draw_buffer() which will do
additional things in future.
2006-03-20 23:53:29 +00:00
Brian Paul
a7252f42ae use correct renderbuffer regions in intelClearWithTris() 2006-03-20 23:37:54 +00:00
Brian Paul
bffc66109e fix up some loose ends for render to texture, clean-ups 2006-03-20 23:35:02 +00:00
Brian Paul
0089c7f4ee Checkpoint: render-to-texture starting to work. Had to turn off stencil
in fbotexture.c.  Teapot is drawn upside down, not centered...
2006-03-20 22:12:48 +00:00
Brian Paul
54f435340b debug code to enable/disable depth/stencil operations 2006-03-20 22:09:58 +00:00
Brian Paul
66d887d605 Checkpoint render-to-texture. Doesn't function, but doesn't crash either. 2006-03-20 21:08:55 +00:00
Brian Paul
c6dc5cc8ab update get_teximage_source() to use renderbuffer regions 2006-03-20 19:02:37 +00:00
Brian Paul
e0412bb726 updates to sync with trunk merge 2006-03-20 19:01:10 +00:00
Brian Paul
cc5cbd1bca Merge from CVS trunk (get render-to-texture updates). 2006-03-20 19:00:18 +00:00
Keith Whitwell
93fbfa5781 Use an rgba image so that hw pbos work. 2006-03-20 18:54:54 +00:00
Keith Whitwell
30709caad6 Restore animation 2006-03-20 18:54:22 +00:00
Keith Whitwell
a647198f65 Remove old DRM_SOURCE_PATH defn 2006-03-20 18:54:06 +00:00
Keith Whitwell
7ad6ea6ff2 Call _mesa_update_state() before checking FragmentProgram->_Enabled 2006-03-20 18:52:56 +00:00
Brian Paul
ceee2c45cd Fixed bug in intelClearWithBlit(). If clearing multiple cliprects, the
buffer mask was clobbered after the first rect.
Rename 'flags' to 'mask' to be consistent w/ other clearing code.
2006-03-20 16:06:07 +00:00
Brian Paul
26dc161fde XXX comments 2006-03-20 15:50:59 +00:00
Brian Paul
b176ef05f2 In intelCopyBuffer(), use renderbuffer regions instead of context's region
pointers.  Added const qualifiers.  Added comments.
2006-03-20 15:50:09 +00:00
Brian Paul
6d6e7a08c7 Fix up intelSwapBuffers:
- get gl_framebuffer pointer from dPriv.
 - flush current context if bound to window we're swapping.  Previous code
   could try to flush a non-current context.
2006-03-20 15:48:12 +00:00
Brian Paul
eb75ec2349 merge from trunk (additional renderbuffer error checks, debug code) 2006-03-20 15:39:30 +00:00
Brian Paul
2a8bd4e329 Replace intel_clip_to_framebuffer(), intel_clip_to_drawable(), and
intel_clip_to_region() with new _mesa_clip_to_region().
2006-03-20 02:23:26 +00:00
Brian Paul
c247268499 added _mesa_clip_to_region() 2006-03-20 02:17:15 +00:00