Brian Paul [Tue, 6 Jan 2009 21:28:49 +0000 (14:28 -0700)]
mesa: Move var declaration to top of scope.
(cherry picked from commit
3740a06e28f4cd09e2a3dce2da60320aa9304df1)
Brian Paul [Tue, 6 Jan 2009 21:21:27 +0000 (14:21 -0700)]
mesa: fix GL_DEPTH_CLEAR_VALUE casting
(cherry picked from commit
d14d494dcda3d80ec2cf452551c680ffb432e306)
Brian Paul [Tue, 6 Jan 2009 14:35:45 +0000 (07:35 -0700)]
mesa: remove dri_sarea.h, add glcore.h in Makefile
Xiang, Haihao [Tue, 6 Jan 2009 07:37:45 +0000 (15:37 +0800)]
mesa: Fix the size per pixel for packed pixel format data type.
Xiang, Haihao [Tue, 6 Jan 2009 07:30:34 +0000 (15:30 +0800)]
mesa: Fix the number of components for GL_UNSIGNED_SHORT_1_5_5_5_REV. (bug #19390)
Xiang, Haihao [Tue, 6 Jan 2009 03:22:19 +0000 (11:22 +0800)]
dri: correct the damage.
Fixes bug #17234
Brian Paul [Tue, 6 Jan 2009 00:52:14 +0000 (17:52 -0700)]
mesa: add GLushort cases for render to texture (Z-buffers)
Brian Paul [Mon, 5 Jan 2009 20:12:12 +0000 (13:12 -0700)]
mesa: fix a GLSL swizzled writemask bug
This fixes cases such as:
vec4 v4;
vec2 v2;
v4.xz.yx = v2;
The last line now correctly compiles into MOV TEMP[1].xz, TEMP[0].yyxw;
Helps to fix the Humus Domino demo. See bug 19189.
Brian Paul [Mon, 5 Jan 2009 17:09:28 +0000 (10:09 -0700)]
i965: implement OPCODE_TRUNC (round toward zero) on vertex path.
Also, fix some RNDD vs. RNDZ confusion elsewhere.
Tom Fogal [Mon, 5 Jan 2009 14:59:41 +0000 (07:59 -0700)]
glu: Add mangled symbols to export list
This adds all of the `mglu' symbols to the list of symbol exports
for GLU. Without this patch, mangled GLU symbols are considered
`internal' symbols, and calling any results in undefined references.
Brian Paul [Sat, 3 Jan 2009 00:30:08 +0000 (17:30 -0700)]
mesa: fix warning about possibly undefined var in GLSL compiler
Brian Paul [Fri, 2 Jan 2009 19:26:15 +0000 (12:26 -0700)]
mesa: fix another "out of samplers" problem
Now only the samplers that are actually used by texture() functions are
saved in the uniform variable list. Before, we could run out of samplers
if too many were declared while only some of them were actually used.
Brian Paul [Thu, 1 Jan 2009 21:04:57 +0000 (14:04 -0700)]
i965: increase number of texture samplers to 16
This lets GLSL shaders use up to 16 samplers.
Fixed function is still limited to 8 textures.
Tested with progs/glsl/samplers.c
Brian Paul [Thu, 1 Jan 2009 19:03:07 +0000 (12:03 -0700)]
i965: comments, clean-ups, re-order some functions
Brian Paul [Thu, 1 Jan 2009 00:16:44 +0000 (17:16 -0700)]
i965: added OPCODE_NRM3/4
Brian Paul [Thu, 1 Jan 2009 00:16:27 +0000 (17:16 -0700)]
i965: fix comment
Brian Paul [Thu, 1 Jan 2009 00:01:44 +0000 (17:01 -0700)]
i965: indentation and formatting fixes
Brian Paul [Wed, 31 Dec 2008 23:49:58 +0000 (16:49 -0700)]
i965: implement OPCODE_NRM3/NRM4
Brian Paul [Wed, 31 Dec 2008 23:43:57 +0000 (16:43 -0700)]
i965: whitespace, comment changes
Brian Paul [Wed, 31 Dec 2008 23:38:10 +0000 (16:38 -0700)]
mesa: comments, whitespace changes
Brian Paul [Thu, 1 Jan 2009 21:02:17 +0000 (14:02 -0700)]
demos: added progs/glsl/samplers.c to test all available texture samplers
Brian Paul [Thu, 1 Jan 2009 15:07:54 +0000 (08:07 -0700)]
mesa: updated comments about GLSL constants
Brian Paul [Wed, 31 Dec 2008 18:54:02 +0000 (11:54 -0700)]
mesa: increase max texture image units and GLSL samplers to 16
The max texture coord units is still 8. All the fixed-function paths are
still limited to 8 too. But GLSL shaders can use more samplers now.
Note that some texcoord-related data structures are declared to be 16
elements in size rather than 8. This just simplifies the code in a few
places; the extra elements aren't accessible to the user.
These changes haven't been extensively tested yet, but sanity checking has
been done.
It should be possible to increase the max image units/samplers to 32 without
doing anything special. Beyond that we'll need longer bitfields in a few
places.
Eric Anholt [Wed, 31 Dec 2008 08:29:49 +0000 (00:29 -0800)]
intel: Share passthrough transform setup between glBitmap and glDrawPixels.
The DrawPixels path was missing glViewport care, so blender's toolbar icons
would go to the wrong places.
Bug #19118.
Eric Anholt [Wed, 31 Dec 2008 08:02:43 +0000 (00:02 -0800)]
intel: Add support for glBitmap as metaops using GL calls.
This lets us avoid software fallbacks when clients forget to turn some state
off (engine demo) or just do crazy things to test conformance (OGLC).
This should probably be brought into mesa generic code so other drivers can
make use of it.
Bug #19016.
Brian Paul [Wed, 31 Dec 2008 00:50:39 +0000 (17:50 -0700)]
mesa: fix bug in evaluation of structure fields
Fixes incorrect size information. See bug 19273.
Brian Paul [Wed, 31 Dec 2008 00:11:32 +0000 (17:11 -0700)]
mesa: allow variable indexing into the predefined uniform variable arrays
This allows code such as "vec4 a = gl_LightSource[i].ambient;" to work.
When a built-in uniform array is indexed with a variable index we need to
"unroll" the whole array into the parameter list (aka constant buffer) because
we don't know which elements may be accessed at compile-time. In the case of
the gl_LightSource array of size [8], we emit 64 state references into the
parameter array (8 elements times 8 vec4s per gl_LightSourceParameters
struct).
Previously, we only allowed constant-indexed references to uniform arrays
(such as gl_LightSource[2].position) which resulted in a single state reference
being added to the parameter array, not 64. We still optimize this case.
Users should be aware that using "gl_LightSource[i].ambient" in their shaders
is a bit expensive since state validation will involve updating all 64
light source entries in the parameter list.
Brian Paul [Wed, 31 Dec 2008 00:03:09 +0000 (17:03 -0700)]
mesa: better error message when running out of GLSL samplers
Brian Paul [Wed, 31 Dec 2008 00:00:36 +0000 (17:00 -0700)]
mesa: comments for some state vars
Brian Paul [Wed, 31 Dec 2008 00:00:06 +0000 (17:00 -0700)]
mesa: increase max constants/uniforms to 256 (vec4 vectors)
Brian Paul [Tue, 30 Dec 2008 14:57:16 +0000 (07:57 -0700)]
mesa: updated compilation documentation
Brian Paul [Thu, 18 Dec 2008 23:08:42 +0000 (16:08 -0700)]
demos: minor fixes to twoside.c glsl demo
Xiang, Haihao [Tue, 30 Dec 2008 03:25:45 +0000 (11:25 +0800)]
intel: disable ATI_texture_env_combine3 for i830( and related device).
Thanks to Eric for pointing it out.
Eric Anholt [Wed, 24 Dec 2008 00:08:40 +0000 (16:08 -0800)]
dri: Fix driWaitForMSC32 when divisor >= 2 and msc < 0.
We'd come up with a negative remainder, while we were looking for the positive
version of it in the loop conditional. And, since the "did we hit our target"
break was disabled for the target_msc == 0 ("Just make the divisor/remainder
work") path, we'd never exit.
Simplify the code by just using int64_t all over instead of trying to do it
in a u32 space.
Alex Deucher [Mon, 29 Dec 2008 17:28:12 +0000 (12:28 -0500)]
R300: missing semicolon
Xiang, Haihao [Mon, 29 Dec 2008 01:30:41 +0000 (09:30 +0800)]
intel: enable ATI_texture_env_combine3. Fixes #17707
Dave Airlie [Sun, 28 Dec 2008 06:48:36 +0000 (16:48 +1000)]
r300: remove the unknowns from the indx_buffer code
Xiang, Haihao [Wed, 24 Dec 2008 01:26:46 +0000 (09:26 +0800)]
i915: separate the fog term from the specular color term.
Previously fog parameter and specular color are packed into the
same dword. Note specular color should be packed in BGRA for device,
so if fog parameter and specular color all are present, fog parameter
will dirty the alpha term of specular color. This fixes rendering
issue when playing 'Yo Frankie' on 915/945.
Eric Anholt [Tue, 23 Dec 2008 22:45:37 +0000 (14:45 -0800)]
intel: Fix glBitmap clipping for DRI1.
Dave Airlie [Sat, 20 Dec 2008 01:38:23 +0000 (17:38 -0800)]
Remove third buffer support from Mesa.
This is part of the deprecated pageflipping infrastructure.
Ian Romanick [Fri, 19 Dec 2008 21:03:51 +0000 (13:03 -0800)]
Add do_row_3d for mipmapping 3D textures
Previously 3D textures were mipmapped using multiple passed through
the 2D mipmap generation code. This had 3 disadvantages. First, the
extra passes were slow. Second, this required the allocation of a
temporary buffer to hold intermediate data. Third, and most
important, the extra passes caused loss of additional bits due to
integer division / bit-shifting.
With this change, our mipmapgen conformance test passes for
non-compressed texture formats.
Ian Romanick [Fri, 19 Dec 2008 20:58:01 +0000 (12:58 -0800)]
Fix typeo in mipmap filter for GL_UNSIGNED_SHORT_1_5_5_5_REV
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