Brian Paul [Thu, 29 Jan 2009 22:01:09 +0000 (15:01 -0700)]
mesa: allow glFramebufferTexture1/2/3D(target = GL_READ/DRAW_FRAMEBUFFER)
This is part of GL_EXT_framebuffer_blit and GL_ARB_framebuffer_obbject.
Brian Paul [Thu, 29 Jan 2009 21:57:31 +0000 (14:57 -0700)]
intel: formatting clean-ups
Brian Paul [Thu, 29 Jan 2009 21:57:16 +0000 (14:57 -0700)]
intel: fix check for Y orientation in span functions.
Brian Paul [Thu, 29 Jan 2009 18:10:56 +0000 (11:10 -0700)]
i965: use bitfields in brw_sf_unit_key struct
Brian Paul [Thu, 29 Jan 2009 18:07:55 +0000 (11:07 -0700)]
intel: remove unused intel_rendering_to_texture()
Brian Paul [Thu, 29 Jan 2009 18:07:14 +0000 (11:07 -0700)]
i965: fix render to FBO/texture orientation bugs
Anytime we're not rendering to the default/window FBO, need to invert
rendering, not just when rendering to a texture. Otherwise, if a FBO
consists of a mix of textures and renderbuffers the up/down orientation
was inconsistant.
Fixes shadowtex.c bad rendering.
Brian Paul [Thu, 29 Jan 2009 16:20:18 +0000 (09:20 -0700)]
mesa: fix a render to texture FBO validation bug
When glTexImage() is called we need to re-validate any FBOs that point to
the texture (i.e. render-to-texture) since changing the texture's size/format
will effect FBO completeness.
We don't keep a list of all FBOs rendering into each texture (which would be
a bit messy) so we check all FBOs in existance. To optimize this, the
gl_texture_object->_RenderToTexture flag is used to avoid checking textures
that have never been used as renderbuffers. So, we only walk over all FBOs
(there's usually only a few) when glTexImage() modifies a RTT texture.
Fixes a bug seen in shadowtex.c when toggling packed depth/stencil mode.
Ian Romanick [Wed, 28 Jan 2009 07:44:18 +0000 (23:44 -0800)]
intel: Fix up some extension string issues
Move the remaining extension string enables to intel_extensions.c.
Make sure that GL_NV_texture_env_combine4 is not enabled on i830.
Ian Romanick [Wed, 28 Jan 2009 03:12:24 +0000 (19:12 -0800)]
Make GLX_SGIX_pbuffer mandatory
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Ian Romanick [Wed, 28 Jan 2009 03:10:43 +0000 (19:10 -0800)]
Make GL_ARB_draw_buffers mandatory
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Ian Romanick [Wed, 28 Jan 2009 02:16:51 +0000 (18:16 -0800)]
Make GL_{EXT,SUN}_multi_draw_arrays and GL_IBM_multimode_draw_arrays mandatory
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Ian Romanick [Wed, 28 Jan 2009 02:04:12 +0000 (18:04 -0800)]
Make GL_ARB_vertex_buffer_object mandatory
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Ian Romanick [Wed, 28 Jan 2009 01:50:45 +0000 (17:50 -0800)]
Make GL_ARB_multisample mandatory
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Ian Romanick [Wed, 28 Jan 2009 01:36:03 +0000 (17:36 -0800)]
Make GL_ARB_texture_compression mandatory
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Brian Paul [Wed, 28 Jan 2009 23:49:28 +0000 (16:49 -0700)]
mesa: remove GL_SGIX_shadow, GL_SGIX_shadow_ambient and GL_SGIX_depth_texture
Everyone should be using the newer/better ARB versions of these extensions.
Brian Paul [Wed, 28 Jan 2009 22:06:54 +0000 (15:06 -0700)]
docs: document GL_EXT_texture_swizzle
Brian Paul [Wed, 28 Jan 2009 21:51:35 +0000 (14:51 -0700)]
i965: minor tweak: replace OPCODE_MOV with OPCODE_SWZ
Just to reinforce the understanding that an extended swizzle with 0 and 1
terms is possible there.
Brian Paul [Wed, 28 Jan 2009 21:50:03 +0000 (14:50 -0700)]
i965: implement GL_EXT_texture_swizzle
If the texture swizzle is not XYZW (no-op) add an extra MOV instruction
after the TEX instruction to rearrange the components.
Brian Paul [Wed, 28 Jan 2009 21:48:41 +0000 (14:48 -0700)]
i965: minor clean-up, comments, etc.
Brian Paul [Wed, 28 Jan 2009 21:45:18 +0000 (14:45 -0700)]
Merge commit 'origin/master' into texture_swizzle
Brian Paul [Wed, 28 Jan 2009 21:35:58 +0000 (14:35 -0700)]
i965: fix bug in pass0_precalc_mov()
Previously, "in-place" swizzles such as:
MOV t, t.xxyx;
were handled incorrectly. Fixed by splitting the one loop into two loops so we
get all the refs before assigning them (to avoid potential clobbering).
Brian Paul [Wed, 28 Jan 2009 21:33:07 +0000 (14:33 -0700)]
i965: minor comment additions/edits
Brian Paul [Wed, 28 Jan 2009 18:42:42 +0000 (11:42 -0700)]
i965: minor improvements in brw_wm_populate_key()
Brian Paul [Wed, 28 Jan 2009 18:38:42 +0000 (11:38 -0700)]
i965: remove pad field
Brian Paul [Wed, 28 Jan 2009 18:37:11 +0000 (11:37 -0700)]
i965: widen per-texture bitfields for 16 texture image units
Brian Paul [Wed, 28 Jan 2009 18:36:39 +0000 (11:36 -0700)]
i965: minor comments
Brian Paul [Wed, 28 Jan 2009 17:44:04 +0000 (10:44 -0700)]
mesa: additional GL_INVALID_OPERATION tests for texture swizzle
Brian Paul [Wed, 28 Jan 2009 17:31:05 +0000 (10:31 -0700)]
mesa: implement texture swizzling in swrast
And enable GL_EXT_texture_swizzle for software drivers.
Brian Paul [Wed, 28 Jan 2009 17:27:33 +0000 (10:27 -0700)]
mesa: set/get new state for GL_EXT_texture_swizzle
Brian Paul [Wed, 28 Jan 2009 16:16:11 +0000 (09:16 -0700)]
mesa: if texObj is NULL in fetch_texel_*(), return black.
Eric Anholt [Tue, 27 Jan 2009 22:34:29 +0000 (14:34 -0800)]
dri2: add complaints for more initialization failures.
Somehow we're running into DRI2Authenticate failing, and silent demotion to
swrast is bad.
Eric Anholt [Tue, 27 Jan 2009 20:05:47 +0000 (12:05 -0800)]
intel: clean up more pf mess.
Brian Paul [Tue, 27 Jan 2009 18:07:21 +0000 (11:07 -0700)]
mesa: refactor glTexParameter code
Brian Paul [Tue, 27 Jan 2009 16:49:27 +0000 (09:49 -0700)]
mesa: move call to _mesa_update_framebuffer_visual()
Update the visual info in the _mesa_test_framebuffer_completeness()
function when we've determined the FBO to be "complete".
Fixes regression seen in progs/demos/shadowtex.c
Brian Paul [Tue, 27 Jan 2009 00:23:59 +0000 (17:23 -0700)]
i915: rename some functions
Brian Paul [Mon, 26 Jan 2009 23:40:08 +0000 (16:40 -0700)]
intel: replace i915/intel_state.c and i965/intel_state.c with shared file
Brian Paul [Mon, 26 Jan 2009 23:38:01 +0000 (16:38 -0700)]
intel: whitespace changes
Brian Paul [Mon, 26 Jan 2009 23:33:45 +0000 (16:33 -0700)]
intel: move some driver functions around
A step toward consolidating i915/intel_state.c and i965/intel_state.c
Brian Paul [Mon, 26 Jan 2009 21:22:30 +0000 (14:22 -0700)]
intel: check if stencil test is enabled in intel_stencil_drawpixels()
Brian Paul [Mon, 26 Jan 2009 21:01:32 +0000 (14:01 -0700)]
intel: save/restore GL matrix mode in intel_meta_set_passthrough_transform(), intel_meta_restore_transform()
Brian Paul [Mon, 26 Jan 2009 19:44:05 +0000 (12:44 -0700)]
intel: asst. casts to silence warnings
Brian Paul [Mon, 26 Jan 2009 19:38:46 +0000 (12:38 -0700)]
intel: #include clean-ups
Brian Paul [Mon, 26 Jan 2009 19:37:14 +0000 (12:37 -0700)]
intel: remove old #includes
Brian Paul [Mon, 26 Jan 2009 19:36:17 +0000 (12:36 -0700)]
intel: make intelUpdateScreenFromSAREA() static
Brian Paul [Mon, 26 Jan 2009 19:33:58 +0000 (12:33 -0700)]
intel: remove unused var
Brian Paul [Mon, 26 Jan 2009 19:22:04 +0000 (12:22 -0700)]
intel: move intelInitExtensions() and related code into new intel_extensions.c
Brian Paul [Mon, 26 Jan 2009 19:02:25 +0000 (12:02 -0700)]
intel: move glClear-related code into new intel_clear.c file
Brian Paul [Mon, 26 Jan 2009 18:53:06 +0000 (11:53 -0700)]
intel: Move swap-related functions from intel_buffers.c to new intel_swapbuffers.c
Brian Paul [Mon, 26 Jan 2009 18:38:30 +0000 (11:38 -0700)]
i965: scissor rect was inverted when rendering to texture
Robert Ellison [Mon, 26 Jan 2009 17:22:34 +0000 (10:22 -0700)]
mesa: add missing texture_put_row_rgb() function in texrender.c
The wrap_texture() function doesn't set the renderbuffer PutRowRGB() method,
which is used to implement DrawPixels(). This fix adds an implementation
of this method.
Brian Paul [Sat, 24 Jan 2009 00:40:24 +0000 (17:40 -0700)]
docs: added GL_NV_texture_env_combine4
Brian Paul [Sat, 24 Jan 2009 00:39:44 +0000 (17:39 -0700)]
Merge branch 'tex_combine4'
Brian Paul [Sat, 24 Jan 2009 00:37:21 +0000 (17:37 -0700)]
i965: init array->Format fields (see bug 19708)
Brian Paul [Sat, 24 Jan 2009 00:32:59 +0000 (17:32 -0700)]
intel: enable GL_NV_texture_env_combine4 extension
Brian Paul [Sat, 24 Jan 2009 00:32:32 +0000 (17:32 -0700)]
mesa: enable GL_NV_texture_env_combine4 for sw drivers
Brian Paul [Sat, 24 Jan 2009 00:32:09 +0000 (17:32 -0700)]
mesa: updated fragment shader codegen for GL_NV_texture_env_combine4
Expand struct fields, increase loops and handle new 4-term ADD modes.
Plus, some new assertions to catch switch/default cases that may be incorrect.
Brian Paul [Sat, 24 Jan 2009 00:30:54 +0000 (17:30 -0700)]
swrast: updates for GL_NV_texture_env_combine4
Brian Paul [Sat, 24 Jan 2009 00:30:33 +0000 (17:30 -0700)]
mesa: update state setup/validation for GL_NV_texture_env_combine4
Brian Paul [Sat, 24 Jan 2009 00:30:03 +0000 (17:30 -0700)]
mesa: update glTexEnv(), glGetTexEnv() for GL_NV_texture_env_combine4
Brian Paul [Sat, 24 Jan 2009 00:29:26 +0000 (17:29 -0700)]
mesa: initial changes for GL_NV_texture_env_combine4
Brian Paul [Fri, 23 Jan 2009 23:40:27 +0000 (16:40 -0700)]
mesa: set the new array->Format field in VBO code
Should help to solve failed assertion in i965 driver (see bug 19708)
Jesse Barnes [Fri, 23 Jan 2009 21:18:13 +0000 (13:18 -0800)]
intel: fix the mismerge of the vblank pipe enable sanity check
Fix the last merge fix, had the blocks ordered incorrectly.
Brian Paul [Fri, 23 Jan 2009 21:15:45 +0000 (14:15 -0700)]
mesa: consolidate glGetTexEnvi/f() code with new get_texenvi() helper
Jesse Barnes [Fri, 23 Jan 2009 21:13:23 +0000 (13:13 -0800)]
intel: move pipe enable sanity check to where it belongs
Bah, applied the patches in the wrong order, not Owain's fault...
Owain Ainsworth [Wed, 21 Jan 2009 21:57:24 +0000 (21:57 +0000)]
intel: fix vblank crtc selection with DRI1 when only one pipe is enabled.
On Mobile chipsets, we often enable PipeB instead of PipeA, but the test
in here was insufficient, falling back to pipe A if the area
intersection returned zero. Therefore, in the case where a window went
off to the top of the left of the screen, it would freeze, waiting on
the wrong vblank.
Fix this mess by checking the sarea for a crtc being zero sized, and in
that case always default to the other one.
Owain G. Ainsworth [Wed, 21 Jan 2009 22:41:26 +0000 (22:41 +0000)]
intel: Prevent an "irq is not working" printf when only pipe B is enabled.
intelMakeCurrent is called before intelWindowMoved (in fact, it calls
it), so calculation of the correct vblank crtc has not happened yet.
Fix this by making a function that fixes up a set of vblank flags and
call if from both functions.
Brian Paul [Fri, 23 Jan 2009 20:44:12 +0000 (13:44 -0700)]
mesa: refactor _mesa_TexEnvfv() code with helper functions
Brian Paul [Fri, 23 Jan 2009 18:36:57 +0000 (11:36 -0700)]
docs: document improved stencil support and GL_EXT_vertex_array_bgra
Brian Paul [Fri, 23 Jan 2009 18:29:05 +0000 (11:29 -0700)]
Merge branch 'vertex_array_bgra'
Brian Paul [Fri, 23 Jan 2009 18:27:42 +0000 (11:27 -0700)]
i965: enable GL_EXT_vertex_array_bgra
Simply a matter of choosing the right surface/vertex format for GLubyte/GL_BGRA arrays.
Brian Paul [Fri, 23 Jan 2009 18:26:51 +0000 (11:26 -0700)]
mesa: enable GL_EXT_vertex_array_bgra for sw drivers
Brian Paul [Fri, 23 Jan 2009 18:26:30 +0000 (11:26 -0700)]
mesa: update tnl module for GL_EXT_vertex_array_bgra
Add special case for GLubyte/GL_BGRA color arrays in _tnl_import_array()
Brian Paul [Fri, 23 Jan 2009 18:25:13 +0000 (11:25 -0700)]
mesa: improve array initialization code, and set the new array->Format field.
Brian Paul [Fri, 23 Jan 2009 18:24:31 +0000 (11:24 -0700)]
mesa: update glColorPointer, etc for GL_EXT_vertex_array_bgra
Add new error checking, set array state appropriately.
Brian Paul [Fri, 23 Jan 2009 18:23:12 +0000 (11:23 -0700)]
mesa: initial bits for GL_EXT_vertex_array_bgra
Ian Romanick [Sat, 10 Jan 2009 00:41:19 +0000 (16:41 -0800)]
r300: Enable GL_ATI_separate_stencil in R300
At this point, GL_EXT_stencil_two_side should probably be disabled.
It may be worth leaving it enabled because it has GLX protocol while
GL_ATI_separate_stencil does not. I'll leave it to one of the r300
maintainers to make the call.
Ian Romanick [Fri, 9 Jan 2009 23:47:34 +0000 (15:47 -0800)]
965: Enable GL_EXT_stencil_two_side
Ian Romanick [Fri, 9 Jan 2009 23:47:05 +0000 (15:47 -0800)]
swrast: Enable GL_EXT_stencil_two_side
Ian Romanick [Fri, 9 Jan 2009 23:43:17 +0000 (15:43 -0800)]
Track two sets of back-face stencil state
Track separate back-face stencil state for OpenGL 2.0 /
GL_ATI_separate_stencil and GL_EXT_stencil_two_side. This allows all
three to be enabled in a driver. One set of state is set via the 2.0
or ATI functions and is used when STENCIL_TEST_TWO_SIDE_EXT is
disabled. The other is set by StencilFunc and StencilOp when the
active stencil face is set to BACK. The GL_EXT_stencil_two_side spec has
more details.
http://opengl.org/registry/specs/EXT/stencil_two_side.txt
Brian Paul [Fri, 16 Jan 2009 23:02:34 +0000 (16:02 -0700)]
i965: whitespace changes and reformatting
Brian Paul [Thu, 22 Jan 2009 22:51:12 +0000 (15:51 -0700)]
docs: first 7.5 feature: GL_ARB_framebuffer_object
Brian Paul [Wed, 21 Jan 2009 18:49:59 +0000 (11:49 -0700)]
i965: enable GL_ARB_framebuffer_object
Brian Paul [Thu, 22 Jan 2009 22:43:40 +0000 (15:43 -0700)]
intel: add GL_EXT_framebuffer blit extension
This functionality is required by GL_ARB_framebuffer_object.
For now, implement it in terms of glCopyPixels(). This will need to be
revisted though.
Brian Paul [Thu, 22 Jan 2009 22:34:16 +0000 (15:34 -0700)]
intel: remove/disable the "paired depth/stencil" code
We only allow combined depth+stencil renderbuffers so the complicated code
for splitting and combining separate depth and stencil buffers is no longer
needed.
Brian Paul [Thu, 22 Jan 2009 18:31:28 +0000 (11:31 -0700)]
intel: asst clean-ups, simplifications in intel_draw_buffer()
Brian Paul [Thu, 22 Jan 2009 18:15:37 +0000 (11:15 -0700)]
intel: remove unneeded call to ctx->Driver.DepthRange()
The preceeding call to intel_draw_buffer() does that.
Brian Paul [Thu, 22 Jan 2009 22:32:38 +0000 (15:32 -0700)]
i965: disallow separate depth/stencil renderbuffers
Take advantage of the GL_FRAMEBUFFER_UNSUPPORTED feature to disallow separate
depth and stencil renderbuffers; only allow combined depth/stencil buffers.
Next up: remove/simplify a bunch of the depth/stencil renderbuffer code.
Also: restore the previously disabled GL_DEPTH_COMPONENT16 case
Brian Paul [Wed, 21 Jan 2009 23:29:10 +0000 (16:29 -0700)]
i965: minor reformatting
Brian Paul [Tue, 20 Jan 2009 22:30:22 +0000 (15:30 -0700)]
intel: plug in stub intel_validate_framebuffer() function
Brian Paul [Thu, 22 Jan 2009 22:30:57 +0000 (15:30 -0700)]
intel: inline some renderbuffer functions
Brian Paul [Thu, 22 Jan 2009 22:25:10 +0000 (15:25 -0700)]
demos: revamp the fbotexture.c demo
Try making depth/stencil attachments in two different ways.
Check for GL errors and GL_FRAMEBUFFER_UNSUPPORTED status to be more robust.
Reorganize the code a bit to make it clearer.
Added -arb option to test GL_ARB_fbo's mixed renderbuffer sizes
Added -ds2 option to test GL_DEPTH_STENCIL_ATTACHMENT
Brian Paul [Mon, 19 Jan 2009 23:12:17 +0000 (16:12 -0700)]
demos: updated FBO tests to for ARB_fbo
Some things that were not errors in EXT_fbo are errors in ARB_fbo.
Brian Paul [Mon, 19 Jan 2009 23:14:39 +0000 (16:14 -0700)]
mesa: enable ARB_fbo for s/w drivers
Brian Paul [Wed, 21 Jan 2009 23:28:38 +0000 (16:28 -0700)]
mesa: avoid calling _mesa_test_framebuffer_completeness() more than needed
When we change a FBO's attachments, set _Status=0.
Before using an FBO, check if status != GL_FRAMEBUFFER_COMPLETE.
Also, fix missing GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE status.
Brian Paul [Wed, 21 Jan 2009 18:17:45 +0000 (11:17 -0700)]
mesa: fix some renderbuffer/framebuffer delete semantics
Need to unbind buffers if referenced by the current read/draw pointers when
being deleted.
Brian Paul [Wed, 21 Jan 2009 18:06:11 +0000 (11:06 -0700)]
mesa: add support for GL_DEPTH_STENCIL_ATTACHMENT point.
Used to set both the depth and stencil attachment points to one renderbuffer
of texture.
Brian Paul [Tue, 20 Jan 2009 23:58:49 +0000 (16:58 -0700)]
mesa: additional FBO error checking for multisample-related things
Plus some new comments.
Brian Paul [Tue, 20 Jan 2009 23:53:29 +0000 (16:53 -0700)]
mesa: update Visual.samples field in _mesa_update_framebuffer_visual()
Brian Paul [Thu, 22 Jan 2009 22:19:56 +0000 (15:19 -0700)]
mesa: refactor glRenderbufferStorage(), glRenderbufferStorageMultisample() code
Use a common helper routine for both functions.
Brian Paul [Tue, 20 Jan 2009 22:29:08 +0000 (15:29 -0700)]
mesa: init MaxSamples = 0 (no multisampling)