Ian Romanick [Thu, 18 Dec 2008 22:13:26 +0000 (14:13 -0800)]
965 / GLSL: Use full precision for EXP instruction
The partial precision mode doesn't have quite enough bits of precision
to pass conformance tests.
Ian Romanick [Thu, 18 Dec 2008 22:11:06 +0000 (14:11 -0800)]
GLSL: The LOG2 macro doesn't have enough precision
It looks like the LOG2 macro only has 8 or 9 bits of precission, but
the ARB_vertex_program spec says "accurate to at least 10 bits".
Eric Anholt [Fri, 19 Dec 2008 00:00:09 +0000 (16:00 -0800)]
intel: Fix glBitmap top/bottom clipping.
Bug #19139.
Eric Anholt [Thu, 18 Dec 2008 06:10:57 +0000 (22:10 -0800)]
intel: Don't forget the source bitmap size when clipping the size we draw.
Eric Anholt [Thu, 18 Dec 2008 05:18:20 +0000 (21:18 -0800)]
intel: Update mesa state in blit operations that want post-scissor draw bounds.
Eric Anholt [Thu, 18 Dec 2008 05:18:00 +0000 (21:18 -0800)]
intel: don't clip to scissor-clipped read framebuffer bounds in copypixels.
Eric Anholt [Fri, 19 Dec 2008 02:42:06 +0000 (18:42 -0800)]
intel: Move copyteximage source clipping out of copytexsubimage.
glCopyTexSubImage already gets the (correct) clipping for us, so it doesn't
need the path. While moving the clipping out, replace the code with the mesa
path to do the same job.
Eric Anholt [Fri, 19 Dec 2008 02:31:25 +0000 (18:31 -0800)]
mesa: Clip copytexsubimage to read framebuffer bounds, not scissor region.
Eric Anholt [Fri, 19 Dec 2008 02:23:51 +0000 (18:23 -0800)]
mesa: Correct _mesa_clip_to_region() off-by-one.
Note how if:
x + width == xmax + 0: width -= 0
x + width == xmax + 1: width -= 0
x + width == xmax + 2: width -= 1
So, the function was clipping to [xmin, xmax+1), not [xmin, xmax) like it was
supposed to. Same for ymax.
Michal Krol [Thu, 18 Dec 2008 17:45:32 +0000 (18:45 +0100)]
glsl: Fix handling of nested parens in macro actual arguments.
Brian Paul [Thu, 18 Dec 2008 16:48:20 +0000 (09:48 -0700)]
demos: all glutDestroyWindow() upon exit to test query object clean-up
Xiang, Haihao [Thu, 18 Dec 2008 04:57:41 +0000 (12:57 +0800)]
i915: check WRAP_T instead of WRAP_R for cube map texture.
Xiang, Haihao [Thu, 18 Dec 2008 02:07:45 +0000 (10:07 +0800)]
i915: fix abort issue. (bug #19147)
Brian Paul [Thu, 18 Dec 2008 01:05:03 +0000 (18:05 -0700)]
mesa: remove unneeded _mesa_reference_fragprog() call
The subsequent if/else cases always call _mesa_reference_fragprog() anyway.
Jon Turney [Thu, 18 Dec 2008 01:01:16 +0000 (18:01 -0700)]
dri: fix for Cygwin compilation, bug 19144
Brian Paul [Wed, 17 Dec 2008 21:54:46 +0000 (14:54 -0700)]
mesa: updated comments
Brian Paul [Wed, 17 Dec 2008 20:58:31 +0000 (13:58 -0700)]
demos: add test of vertex-only and fragment-only shader programs
Brian Paul [Wed, 17 Dec 2008 20:58:05 +0000 (13:58 -0700)]
util: check for frag/vertShader=0 before attaching
Brian Paul [Tue, 16 Dec 2008 22:25:58 +0000 (15:25 -0700)]
mesa: disable debug output
Brian Paul [Tue, 16 Dec 2008 21:29:52 +0000 (14:29 -0700)]
mesa: fix some GLSL array regressions
array.length() wasn't working.
Swizzle mask for accessing elements of float arrays was incorrect.
Brian Paul [Tue, 16 Dec 2008 01:37:39 +0000 (18:37 -0700)]
mesa: rename slang_library_noise.[ch] to prog_noise.[ch] and rename functions
The noise functions were not glsl-specific.
Also, ran indent on the code to clean it up.
Brian Paul [Tue, 16 Dec 2008 01:30:40 +0000 (18:30 -0700)]
mesa: updated GLSL docs
Brian Paul [Tue, 16 Dec 2008 01:25:43 +0000 (18:25 -0700)]
Merge branch 'glsl-1.20-v2'
Brian Paul [Tue, 16 Dec 2008 01:24:16 +0000 (18:24 -0700)]
mesa: bump glsl grammar revision
And update some copyrights.
Brian Paul [Tue, 9 Dec 2008 21:30:42 +0000 (14:30 -0700)]
mesa: in slang linker, replace assertion with link error when max samplers exceeded
Brian Paul [Tue, 9 Dec 2008 21:29:14 +0000 (14:29 -0700)]
demos: updated tests/floattex.c (doesn't work just yet).
Brian Paul [Tue, 9 Dec 2008 21:26:02 +0000 (14:26 -0700)]
mesa: move _mesa_dlopen(), etc into separate dlopen.c file
Brian Paul [Mon, 8 Dec 2008 22:42:54 +0000 (15:42 -0700)]
glut: added GLUT_PPM_FILE env var to dump first frame to a PPM file
Set GLUT_PPM_FILE to the desired filename. The first frame rendered will
be written to that file.
Brian Paul [Tue, 16 Dec 2008 01:18:08 +0000 (18:18 -0700)]
mesa: more re-org of variable declarations in glsl compiler
Brian Paul [Mon, 15 Dec 2008 23:57:37 +0000 (16:57 -0700)]
mesa: more comments, clean up
Brian Paul [Mon, 15 Dec 2008 23:49:32 +0000 (16:49 -0700)]
mesa: added comments, remove unused code
Brian Paul [Mon, 15 Dec 2008 23:44:55 +0000 (16:44 -0700)]
mesa: checkpoint: handle uniform vars in _slang_gen_var_decl()
This allows uniform declarations with scalar/array initializers.
The code is rough though, and will be cleaned up.
Eric Anholt [Mon, 15 Dec 2008 23:10:18 +0000 (15:10 -0800)]
intel: stub out CompressedTexSubImage2D instead of segfaulting.
Eric Anholt [Mon, 15 Dec 2008 21:25:20 +0000 (13:25 -0800)]
i965: Update state before checking for fallbacks in brw_try_draw_prims.
This got flipped around in
7855b2aef6bd9e9c2d73260b5cd166159b2525c6.
Bug #18907. Thanks to idr for pointing me at a nicer testcase than blender.
Pierre Willenbrock [Fri, 12 Dec 2008 20:18:23 +0000 (21:18 +0100)]
intel: Don't steal renderbuffer from caller in intel_miptree_create_for_region
Fixes double-frees of some regions, once from the renderbuffer code and
once from the miptree itself.
Bug #19062
Eric Anholt [Wed, 10 Dec 2008 20:43:58 +0000 (12:43 -0800)]
i965: Add decode of index/vertex buffer and primitive emit.
Eric Anholt [Wed, 10 Dec 2008 07:02:48 +0000 (23:02 -0800)]
intel: Add batchbuffer assertions to hopefully catch future mistakes.
Ian Romanick [Mon, 15 Dec 2008 02:42:11 +0000 (18:42 -0800)]
Perform range checking on app supplied texture base level
It is possible for applications to specify any texture base level,
including trivially invalid values (i.e.,
47000000). When an app
specifies an invalide base level, we should gracefully disable the
texture instead of accessing memory outside the gl_texture_object.
This fixes an occasional segfault in one of our conformance tests.
Ian Romanick [Mon, 15 Dec 2008 02:40:39 +0000 (18:40 -0800)]
GLX: Include glapi.h before glapitable.h
A previous commit (
2dbc515a669be123a019aeb4aa5aae6b1679f6a9) change
some of the interdependencies between these two header files. Now
glapi.h must be included before glapitable.h.
Ian Romanick [Fri, 12 Dec 2008 20:59:59 +0000 (12:59 -0800)]
GLX: Change resulting from previous commit
Commit
db61cbfa2aa241da49589331d8b6875d9a77d826 made modifications to
the protocol generator data and scripts. This commit represents the
changes to the generated files resulting from the previous changes.
This is the client-side part of the fix for bugzilla #11003.
Neil Roberts [Tue, 2 Dec 2008 15:03:01 +0000 (15:03 +0000)]
Return 0 as the request size when the pixels parameter is NULL
img_null_flag was being ignored when calculating the size of a request
so a BadLength error gets thrown for glTexImage3D when the pixels
parameter is NULL.
See bug #11003
Ian Romanick [Tue, 9 Dec 2008 22:43:09 +0000 (14:43 -0800)]
GLX: Fix protocol for glTexSubImage#D
The TexSubImage commands do not have the "NULL image" flag that was
introduced with glTexImage3D. However, there is a CARD32 pad element
where that flag would be. Removing the img_null_flag causes the flag
to be removed from the protocol. This changes the protocol and breaks
everything.
In order to prevent needing to hand-code all of the TexSubImage
functions, a new attribute was added to the param element. This new
attribute, called "padding," is a boolean flag that selects whether or
not the parameter is a real parameter (default / false) or is protocol
padding (true) that does not appear in the function's parameter list.
This change resulted in a number of changes to other Python scripts.
In almost all cases parameters with the is_padding flag set should not
be emitted.
This patch only changes the the XML, the DTD, and the generator
scripts. It does NOT include the resulting changes to the generated
code. Generated code in the X server is also changed by the script /
XML changes in this patch.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Dan Nicholson [Sun, 14 Dec 2008 17:35:29 +0000 (09:35 -0800)]
Add OSMesa pkg-config file
This makes the GLU .pc file a little simpler, too.
Dan Nicholson [Mon, 24 Nov 2008 19:01:57 +0000 (11:01 -0800)]
Add more package metadata to the pkg-config files
The pkg-config files have been filled in more thoroughly to allow users
to use mesa more effectively. By adding metadata to Requires.private,
Libs.private and Cflags, we can ensure that all the libraries and
headers will be found in all situations. However, the full substitutions
are only done when using the configure script.
This also fixes the glu pkg-config file to account for using GL or
OSMesa.
Fixes bug 18161.
Gary Wong [Sun, 14 Dec 2008 03:06:21 +0000 (20:06 -0700)]
Fix silly type mismatch error in multinoise demo.
Gary Wong [Sat, 13 Dec 2008 21:15:33 +0000 (14:15 -0700)]
i965: Finish OPCODE_NOISEn instructions.
Added missing OPCODE_NOISE4, and use BRW_REGISTER_TYPE_D (instead of _UD)
in the initial RNDD instructions (which avoids saturating negative inputs
to 0).
Gary Wong [Sat, 13 Dec 2008 21:00:37 +0000 (14:00 -0700)]
Add "multinoise" demo, to test 1/2/3/4 dimensional noise.
Gary Wong [Sat, 13 Dec 2008 19:58:18 +0000 (12:58 -0700)]
Ensure p.w is initialised in noise demo.
Brian Paul [Sat, 13 Dec 2008 01:03:48 +0000 (18:03 -0700)]
mesa: use IFLOOR(x) instead of (int) FLOORF(x)
Brian Paul [Sat, 13 Dec 2008 01:00:47 +0000 (18:00 -0700)]
mesa: place glsl constant arrays in constant memory
For example, a declaration like
const float[3] xxx = float[3](1.1, 2.2, 3.3);
will place the array in the constant buffer whereas a regular, non-const array
would be placed in the temporary register file.
Next up: do the same thing for uniform arrays.
Brian Paul [Sat, 13 Dec 2008 01:00:19 +0000 (18:00 -0700)]
mesa: remove old size=4 limit
Brian Paul [Fri, 12 Dec 2008 23:20:31 +0000 (16:20 -0700)]
mesa: code clean-up in glsl compiler
Brian Paul [Fri, 12 Dec 2008 23:02:31 +0000 (16:02 -0700)]
mesa: remove unneeded swizzle init code in glsl compiler
Brian Paul [Fri, 12 Dec 2008 22:34:58 +0000 (15:34 -0700)]
mesa: disable glsl debug output
Brian Paul [Fri, 12 Dec 2008 22:11:08 +0000 (15:11 -0700)]
mesa: remove unused varpool code in glsl compiler
Brian Paul [Fri, 12 Dec 2008 22:07:21 +0000 (15:07 -0700)]
mesa: basic array constructors work now
For example: float[3] xxx = float[3](1.1, 2.2, 3.3);
Optimizations for const-qualified arrays next.
Brian Paul [Fri, 12 Dec 2008 22:01:00 +0000 (15:01 -0700)]
mesa: copy array_len in slang_fully_specified_type_copy()
Brian Paul [Fri, 12 Dec 2008 22:00:06 +0000 (15:00 -0700)]
mesa: remove incorrect array_len assignment
Brian Paul [Fri, 12 Dec 2008 20:18:30 +0000 (13:18 -0700)]
mesa: array size fix in _slang_typeof_operation()
Brian Paul [Fri, 12 Dec 2008 20:05:29 +0000 (13:05 -0700)]
mesa: fix some more GLSL 1.20 array things.
Function that return arrays should work now.
Brian Paul [Fri, 12 Dec 2008 17:32:56 +0000 (10:32 -0700)]
mesa: more glsl function renaming
Brian Paul [Fri, 12 Dec 2008 17:29:15 +0000 (10:29 -0700)]
mesa: use _slang_alloc()
Brian Paul [Fri, 12 Dec 2008 17:22:47 +0000 (10:22 -0700)]
mesa: glsl compiler function renaming
Brian Paul [Fri, 12 Dec 2008 17:17:58 +0000 (10:17 -0700)]
mesa: more glsl type/function movement
Brian Paul [Fri, 12 Dec 2008 17:11:41 +0000 (10:11 -0700)]
mesa: move some glsl compiler functions to different files to be more consistant
Brian Paul [Fri, 12 Dec 2008 17:03:31 +0000 (10:03 -0700)]
mesa: move _slang_locate_function() to different file
Brian Paul [Fri, 12 Dec 2008 16:58:18 +0000 (09:58 -0700)]
mesa: remove unused fixup table code in glsl compiler
Brian Paul [Fri, 12 Dec 2008 16:56:13 +0000 (09:56 -0700)]
mesa: checkpoint: GLSL 1.20 array constructors
Brian Paul [Fri, 12 Dec 2008 02:34:43 +0000 (19:34 -0700)]
mesa: consolidate variable declaration initializer code for globals too
Brian Paul [Fri, 12 Dec 2008 02:28:22 +0000 (19:28 -0700)]
mesa: move variable initializer IR generation into _slang_gen_var_decl()
More code consolidation coming...
Brian Paul [Fri, 12 Dec 2008 02:10:58 +0000 (19:10 -0700)]
mesa: simplify some glsl variable declaration code
Xiang, Haihao [Fri, 12 Dec 2008 02:02:05 +0000 (10:02 +0800)]
intel: check for null texture. (fix #13902)
Brian Paul [Fri, 12 Dec 2008 01:49:28 +0000 (18:49 -0700)]
mesa: glsl clean-ups
Brian Paul [Fri, 12 Dec 2008 01:02:19 +0000 (18:02 -0700)]
mesa: checkpoint commit of GLSL 1.20 array syntax.
This allows things like float[3] x = float[3](1., 2., 3.);
Parsing and AST construction now. Codegen not working yet.
Xiang, Haihao [Thu, 11 Dec 2008 06:03:00 +0000 (14:03 +0800)]
i915: fallback for cube map texture.
The i915 (and related graphics cores) only support TEXCOORDMODE_CLAMP and
TEXCOORDMODE_CUBE when using cube map texture coordinates, so fall back to
software rendering for other modes to avoid potential gpu hang issue. This
fixes scorched3d issue on 945GM(see bug 14539).
Brian Paul [Tue, 9 Dec 2008 21:30:42 +0000 (14:30 -0700)]
mesa: in slang linker, replace assertion with link error when max samplers exceeded
Brian Paul [Tue, 9 Dec 2008 21:29:14 +0000 (14:29 -0700)]
demos: updated tests/floattex.c (doesn't work just yet).
Brian Paul [Tue, 9 Dec 2008 21:26:02 +0000 (14:26 -0700)]
mesa: move _mesa_dlopen(), etc into separate dlopen.c file
Guillaume Melquiond [Tue, 9 Dec 2008 21:15:05 +0000 (13:15 -0800)]
tnl: Fix zeroing of the 3ub part of a 3ub+1ub attrib pair in SSE.
Bug #16520.
Guillaume Melquiond [Tue, 9 Dec 2008 21:10:56 +0000 (13:10 -0800)]
tnl: Optimize SSE load[23]f_1 since they don't need the identity swizzle.
SSE movss from memory zeroes out everything above the destination dword, so
we get the (a, 0) or (a, 0, 0) result that these functions needed.
Bug #16520.
Guillaume Melquiond [Tue, 9 Dec 2008 19:42:24 +0000 (11:42 -0800)]
tnl: Fix typo that resulted in fallback from SSE for EMIT_3UB_3F_RGB/BGR.
Bug #16520
Guillaume Melquiond [Tue, 9 Dec 2008 17:29:08 +0000 (09:29 -0800)]
tnl: Avoid undefined input value use in insert_3f_viewport_2().
Bug #16520.
Brian Paul [Mon, 8 Dec 2008 22:42:54 +0000 (15:42 -0700)]
glut: added GLUT_PPM_FILE env var to dump first frame to a PPM file
Set GLUT_PPM_FILE to the desired filename. The first frame rendered will
be written to that file.
Pierre Willenbrock [Mon, 8 Dec 2008 22:06:51 +0000 (14:06 -0800)]
intel: Require the right amount of space in glBitmap blit acceleration.
This leads to problems when the batchbuffer is flushed, but the bitmap
data could not fit into it.
Eric Anholt [Sun, 7 Dec 2008 05:14:56 +0000 (21:14 -0800)]
mesa: Fix GenerateMipmapEXT(GL_TEXTURE_CUBE_MAP_ARB).
The ctx->Driver.GenerateMipmap() hook only expects cubemap face enums, not
CUBE_MAP_ARB, so walk all faces when we encounter that. Fixes oglconform
fbo.c segfault with both swrast and i965 drivers.
Eric Anholt [Sat, 6 Dec 2008 23:47:23 +0000 (15:47 -0800)]
intel: Fall back on rendering to a texture attachment with a border.
Fixes a segfault in oglconform fbo.c test.
Eric Anholt [Sat, 6 Dec 2008 23:21:47 +0000 (15:21 -0800)]
intel: Fix crash in automatic mipmap generation for glCopyTex{Sub,}Image.
The images aren't mapped at this point, so we want the generic Mesa path for
GenerateMipmapEXT that does the mapping/unmapping for us. Ideally Mesa would
just call it for us.
Eric Anholt [Sat, 6 Dec 2008 22:51:17 +0000 (14:51 -0800)]
intel: Fix glCopyPixels blit acceleration for FBO destinations.
This was another opportunity to either get clipped to screen size or not get
clipped enough and draw outside of object boundaries.
Eric Anholt [Sat, 6 Dec 2008 22:21:12 +0000 (14:21 -0800)]
intel: Fix glBitmap blit acceleration for FBO destinations.
Bug #18914. Fixes fbo_firecube hang due to drawing outside the FBO bounds.
Thanks to Pierre Willenbrock for debugging the issue.
Eric Anholt [Wed, 3 Dec 2008 23:32:51 +0000 (15:32 -0800)]
intel: Put CopyTexImage fallback under DEBUG_FALLBACKS not DEBUG_TEXTURE.
Brian [Sun, 30 Nov 2008 00:25:44 +0000 (17:25 -0700)]
mesa: assorted clean-ups, updated comments, etc.
Brian [Sat, 29 Nov 2008 23:03:40 +0000 (16:03 -0700)]
mesa: replace large macros with inline functions
Brian [Wed, 3 Dec 2008 05:51:39 +0000 (22:51 -0700)]
demos: added simple vertex shader texture test.
Draw a quadmesh where Z coord is taken from a texture map.
Jeremy Huddleston [Thu, 4 Dec 2008 01:03:13 +0000 (17:03 -0800)]
darwin: Use -Os instead of -O2
(cherry picked from commit
456dbb143a0d11b69d8af0d493cd84efb0596273)
Eric Anholt [Wed, 3 Dec 2008 19:36:55 +0000 (11:36 -0800)]
i965: Fix failure to upload new constant data when changing programs.
This is fallout from the ffvertex_prog.c work. It doesn't call
ProgramStringNotify, so we don't set param_state, so we wouldn't track when
VP parameters changed, and constants wouldn't get uploaded. Instead, remove
param_state entirely and just use the real value that we want to be tracking.
Fixes rendering in openarena since BRW_NEW_BATCH got disentangled from
BRW_NEW_INDICES.
Bug #18822.
Eric Anholt [Wed, 3 Dec 2008 19:30:58 +0000 (11:30 -0800)]
i965: Fix stray character that the compile whined about.
Kristian Høgsberg [Tue, 2 Dec 2008 02:44:03 +0000 (21:44 -0500)]
Bump dri2proto requirement to 1.99.3, drop CopyRegion bitmask from protocol.
Dave Airlie [Fri, 28 Nov 2008 09:38:47 +0000 (19:38 +1000)]
intel: restore old vertex submit paths for i8xx hardware.
Intel docs state that only 830/845 have VBOs, 855/865 don't. So
lets just not use them on i8xx at all.
This restores the old pre-vbo code and uses it on all 8xx hw.
Brian [Tue, 2 Dec 2008 01:32:47 +0000 (18:32 -0700)]
mesa: fix conditional in save_Lightfv(), bug 18838
Eric Anholt [Fri, 28 Nov 2008 20:43:10 +0000 (12:43 -0800)]
i965: Add a new state flag BRW_NEW_NR_SURFACES instead of CACHE_NEW_SURFACE
The CACHE_NEW_SURFACE bit always gets spammed since we get many different
surface BOs per state emit, but the only consumer of it wanted to just know
how many surfaces were enabled.