Eric Anholt [Thu, 26 Aug 2010 07:07:58 +0000 (00:07 -0700)]
glsl2: Move ir_expression_flattening to using the rvalue visitor class.
The previous implementation was missing handling of some rvalues, such
as "if" conditions, leading to glsl-mat-int-from-ctor-* not getting
caught.
Eric Anholt [Thu, 26 Aug 2010 06:27:56 +0000 (23:27 -0700)]
glsl: Don't consider things with a type containing a sampler as an lvalue.
We had ad-hoc handled some common cases by flagging sampler-typed
variables as read_only, and rejected initializers of samplers.
However, people could sneak them in in all sorts of surprising ways,
like using whole-array or structure assignment.
Fixes:
glslparsertest/glsl2/sampler-01.frag
glslparsertest/glsl2/sampler-03.frag
glslparsertest/glsl2/sampler-04.frag
glslparsertest/glsl2/sampler-06.frag
Bug #27403.
Eric Anholt [Thu, 26 Aug 2010 06:26:29 +0000 (23:26 -0700)]
mesa: Disable the debug spam for x86 CPU detection with a compile-time flag.
I don't know of any problems with CPU detection in years. Don't spam
the user that was just looking to enable assertions with this stuff.
Eric Anholt [Thu, 26 Aug 2010 06:24:50 +0000 (23:24 -0700)]
mesa: Move the x86 detection debug messages next to the detection.
Eric Anholt [Thu, 26 Aug 2010 06:14:45 +0000 (23:14 -0700)]
mesa: Don't warn when the desired result of s3tc lib available occurs.
Vinson Lee [Thu, 26 Aug 2010 06:37:27 +0000 (23:37 -0700)]
util: Include missing header in u_blit.h.
Include p_compiler.h for uint symbol.
Clean up forward declarations.
Vinson Lee [Thu, 26 Aug 2010 06:31:04 +0000 (23:31 -0700)]
util: Include missing header in u_bitmask.h.
Include p_compiler.h for boolean symbol.
Vinson Lee [Thu, 26 Aug 2010 06:04:39 +0000 (23:04 -0700)]
util: Include missing header in u_dirty_surfaces.h.
Include p_state.h for pipe_surface symbol.
Vinson Lee [Thu, 26 Aug 2010 05:55:15 +0000 (22:55 -0700)]
util: Add include guard in u_split_prim.h.
Vinson Lee [Thu, 26 Aug 2010 05:50:15 +0000 (22:50 -0700)]
util: Include missing headers in u_split_prim.h.
Include p_compiler.h for boolean symbol.
Include u_debug.h for assert symbol.
José Fonseca [Thu, 26 Aug 2010 05:47:24 +0000 (06:47 +0100)]
graw: Remove graw-null.
Pointless now that the graw tests can be built independently of any graw
implementation.
José Fonseca [Thu, 26 Aug 2010 05:44:02 +0000 (06:44 +0100)]
graw: Dynamically load graw libraries.
This allows to build multiple graws libs simultaneously and avoid
unnecessary rebuilds of the tests.
Also remove graw_util.c from inside the graw implementation -- it was
only being provided by one implementation, and graw tests were linking
against gallium anyway.
José Fonseca [Thu, 26 Aug 2010 05:40:49 +0000 (06:40 +0100)]
scons: Fix old script compatability logic.
Sconscript could be invoked twice if specified in the command line.
Vinson Lee [Thu, 26 Aug 2010 05:41:20 +0000 (22:41 -0700)]
util: Include missing headers in u_tile.h.
Include p_format.h for enum pipe_format symbol.
Include p_state.h for pipe_box symbol.
Vinson Lee [Thu, 26 Aug 2010 05:34:31 +0000 (22:34 -0700)]
util: Clean up header file inclusion in u_upload_mgr.h.
Remove p_defines.h.
Remove unnecessary forward declarations.
Add forward declaration for pipe_context.
Marek Olšák [Thu, 26 Aug 2010 01:28:47 +0000 (03:28 +0200)]
r300g: fix constant buffer upload once again for r3xx->r4xx
Vinson Lee [Thu, 26 Aug 2010 01:06:01 +0000 (18:06 -0700)]
r600: Remove unnecessary headers.
Vinson Lee [Thu, 26 Aug 2010 01:00:23 +0000 (18:00 -0700)]
r300: Remove unnecessary header.
Eric Anholt [Wed, 25 Aug 2010 23:38:37 +0000 (16:38 -0700)]
Revert "mesa: Don't add 1 to GL_ACTIVE_UNIFORM_MAX_LENGTH."
This reverts commit
001a7bfdfc8b3c8930d5ced21982dbdfb8cd35b3. I
hadn't found the section of the spec clarifying that the old behavior
was right. Reverting fixes the new version of the testcase, and the
Humus demos that could no longer find their uniforms.
Bug #29782
Bug #29783
Aras Pranckevicius [Wed, 25 Aug 2010 19:42:13 +0000 (22:42 +0300)]
glsl: fix crash with variable indexing into array in a struct
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Eric Anholt [Wed, 25 Aug 2010 23:00:09 +0000 (16:00 -0700)]
i965: Fix detection of implicit MOVs to message regs in brw_optimize.c.
Texcoords in AmbientApertureLighting were getting trashed since the
move of math arguments to implied moves, due to the logic for
detecting ALU message reg writes overriding the logic for SEND
implicit message reg writes.
Marcin Slusarz [Mon, 23 Aug 2010 20:40:58 +0000 (22:40 +0200)]
nouveau: handle early initialization errors
handle very early errors in pipe_screen creation (failure of
nouveau_screen_init in nv50_screen_create)
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Jerome Glisse [Tue, 24 Aug 2010 21:46:31 +0000 (17:46 -0400)]
r600g: simplify states
Directly build PM4 packet, avoid using malloc (no states are
bigger than 128 dwords), remove unecessary informations,
remove pm4 building in favor of prebuild pm4 packet.
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Eric Anholt [Wed, 25 Aug 2010 04:45:40 +0000 (21:45 -0700)]
mesa: Remove now-unused _mesa_add_sampler().
We do the generation of "what sampler number within Parameters are we"
right in ir_to_mesa.cpp, instead of repeatedly walking the existing
list to find out.
Eric Anholt [Wed, 25 Aug 2010 04:43:07 +0000 (21:43 -0700)]
ir_to_mesa: Add support for samplers in structures.
Fixes:
glsl-fs-uniform-sampler-struct
glsl-fs-sampler-numbering-3
Bug #29690
Eric Anholt [Wed, 25 Aug 2010 04:02:22 +0000 (21:02 -0700)]
mesa: Remove now-unused _mesa_add_uniform.
We had to inline it to avoid doing a double-lookup in the process of
adding assertion checks.
Eric Anholt [Tue, 24 Aug 2010 21:27:27 +0000 (14:27 -0700)]
ir_to_mesa: Convert this code to using linker.cpp's uniform locations.
Fixes: glsl-fs-uniform-array-4.
Eric Anholt [Tue, 24 Aug 2010 20:51:35 +0000 (13:51 -0700)]
glsl: Make uniform linking generate separate uniforms for struct members.
This is a step towards making the linker code usable as our uniform
setup, instead of having it wedged into ir_to_mesa.cpp.
Eric Anholt [Tue, 24 Aug 2010 23:47:09 +0000 (16:47 -0700)]
mesa: Remove the "Used" flag in gl_program_parameter.
This was in place for uniform handling, but nothing actually needs the
value now, since presence in a parameter list indicates that the
uniform was used as far as the linker was concerned.
Marek Olšák [Wed, 25 Aug 2010 18:23:29 +0000 (20:23 +0200)]
r300/compiler: emulate relative addressing with negative offsets in VS
3 more piglits, cool.
Vinson Lee [Wed, 25 Aug 2010 18:22:55 +0000 (11:22 -0700)]
nvfx: Set pointer to NULL after free.
Guard against potential use after free.
Marek Olšák [Wed, 25 Aug 2010 18:02:24 +0000 (20:02 +0200)]
r300g: fix potentially uninitialized variables in create_rs_state
It had no impact on correctness, though.
Reported by Vinson Lee.
Vinson Lee [Wed, 25 Aug 2010 17:05:32 +0000 (10:05 -0700)]
st/mesa: Remove unnecessary header.
Keith Whitwell [Wed, 25 Aug 2010 17:01:51 +0000 (18:01 +0100)]
llvmpipe: fix bad patch application
Vinson Lee [Wed, 25 Aug 2010 16:55:07 +0000 (09:55 -0700)]
llvmpipe: Remove unnecessary header.
Aras Pranckevicius [Wed, 25 Aug 2010 07:07:14 +0000 (10:07 +0300)]
glsl/mesa: fixes for MSVC
Signed-off-by: Brian Paul <brianp@vmware.com>
Kristian Høgsberg [Mon, 7 Jun 2010 00:39:19 +0000 (20:39 -0400)]
intel: Support EGL_MESA_image_drm
Kristian Høgsberg [Fri, 4 Jun 2010 01:56:21 +0000 (21:56 -0400)]
intel: Take an intel_screen pointer in intel_alloc_region_* functions
Kristian Høgsberg [Fri, 4 Jun 2010 01:36:40 +0000 (21:36 -0400)]
egl_dri2: Add support for MESA_image_drm
Kristian Høgsberg [Fri, 4 Jun 2010 18:28:59 +0000 (14:28 -0400)]
egl: Add EGL_MESA_drm_image extension
Create EGLImages from DRM buffer handles.
Keith Whitwell [Tue, 24 Aug 2010 19:04:08 +0000 (20:04 +0100)]
llvmpipe: track drawing region as a single u_rect
Keith Whitwell [Tue, 24 Aug 2010 18:58:54 +0000 (19:58 +0100)]
llvmpipe: better triangle debugging
Keith Whitwell [Fri, 20 Aug 2010 15:18:23 +0000 (16:18 +0100)]
llvmpipe: cull zero-area triangles early
Keith Whitwell [Fri, 20 Aug 2010 14:45:25 +0000 (15:45 +0100)]
llvmpipe: more rasterization counters
Keith Whitwell [Fri, 20 Aug 2010 14:25:27 +0000 (15:25 +0100)]
llvmpipe: move some fence functions into lp_screen.c
Keith Whitwell [Fri, 20 Aug 2010 14:15:36 +0000 (15:15 +0100)]
llvmpipe: wake all threads waiting on a fence
Keith Whitwell [Fri, 20 Aug 2010 14:14:19 +0000 (15:14 +0100)]
llvmpipe: fence debugging, add llvmpipe_finish
Keith Whitwell [Fri, 20 Aug 2010 13:51:57 +0000 (14:51 +0100)]
tgsi: helper for dumping tokens as hex
Keith Whitwell [Fri, 20 Aug 2010 14:52:58 +0000 (15:52 +0100)]
draw: specialized cliptesting routines
Keith Whitwell [Fri, 20 Aug 2010 10:40:26 +0000 (11:40 +0100)]
util: add rectangle helpers to u_rect.h
This begins a process of repurposing this file. The existing usage is
as a header file for some software blit fallbacks, which should be
moved to a more appropriately named header.
Keith Whitwell [Fri, 20 Aug 2010 10:38:33 +0000 (11:38 +0100)]
gallium/docs: notes on scissor state
Keith Whitwell [Fri, 20 Aug 2010 10:36:53 +0000 (11:36 +0100)]
llvmpipe: remove dead code
Chia-I Wu [Sat, 7 Aug 2010 13:08:23 +0000 (21:08 +0800)]
draw: Remove UNDEFINED_VERTEX_ID checks in emit pathes.
UNDEFINED_VERTEX_ID is used by draw_pipe_vbuf to decide whether a vertex
has been emitted or not. The non-pipeline pathes do not use it (they
tell the frontend the max vertex count when prepare() is called).
Chia-I Wu [Wed, 25 Aug 2010 07:11:03 +0000 (15:11 +0800)]
gallium: Use draw_set_index_buffer and others.
Update all drivers to use draw_set_index_buffer,
draw_set_mapped_index_buffer, and draw_vbo. Remove
draw_set_mapped_element_buffer and draw_set_mapped_element_buffer_range.
Chia-I Wu [Sun, 1 Aug 2010 06:27:56 +0000 (14:27 +0800)]
svga: Remove redundant svga_draw_range_elements.
That is, implement draw_vbo directly. As a result,
svga_swtnl_draw_range_elements is also replaced by svga_swtnl_draw_vbo.
This commit should not have any functional change.
Chia-I Wu [Wed, 25 Aug 2010 06:02:12 +0000 (14:02 +0800)]
draw: Add draw_set_index_buffer and others.
This commit adds draw_set_index_buffer, draw_set_mapped_index_buffer,
and draw_vbo. The idea behind the new functions is that an index buffer
should be a state.
draw_arrays and draw_set_mapped_element_buffer are preserved, but the
latter will be removed soon.
Vinson Lee [Wed, 25 Aug 2010 07:52:34 +0000 (00:52 -0700)]
nvfx: Clean up header file inclusion in nvfx_screen.h.
Remove nvfx_context.h.
Include p_compiler.h for INLINE symbol.
Fixes nvfx_context.h -> nvfx_screen.h -> nvfx_context.h include recursion.
Vinson Lee [Wed, 25 Aug 2010 07:44:28 +0000 (00:44 -0700)]
nvfx: Include missing headers in nvfx_shader.h.
Include stdint.h for uint8_t symbol.
Include p_compiler.h for INLINE symbol.
Vinson Lee [Wed, 25 Aug 2010 07:40:00 +0000 (00:40 -0700)]
i965: Remove unnecessary header.
Vinson Lee [Wed, 25 Aug 2010 07:29:19 +0000 (00:29 -0700)]
r600: Include missing header in evergreen_fragprog.c.
Include r600_emit.h for r600EmitShader and r600EmitShaderConsts symbols.
Fixes the following GCC warnings.
evergreen_fragprog.c: In function 'evergreenSetupFragmentProgram':
evergreen_fragprog.c:521: warning: implicit declaration of function 'r600EmitShader'
evergreen_fragprog.c:778: warning: implicit declaration of function 'r600EmitShaderConsts'
Vinson Lee [Wed, 25 Aug 2010 07:19:45 +0000 (00:19 -0700)]
r600: Include missing header in evergreen_vertprog.c.
Include r600_emit.h for r600EmitShader and r600EmitShaderConsts symbols.
Fixes the following GCC warnings.
evergreen_vertprog.c:614: warning: implicit declaration of function 'r600EmitShader'
evergreen_vertprog.c:701: warning: implicit declaration of function 'r600EmitShaderConsts'
Vinson Lee [Wed, 25 Aug 2010 06:53:26 +0000 (23:53 -0700)]
gallivm: Include missing header in lp_bld_sample.h.
Include p_format.h for enum pipe_format symbol.
Vinson Lee [Wed, 25 Aug 2010 06:50:45 +0000 (23:50 -0700)]
gallivm: Include missing header in lp_bld_pack.h.
Include p_compiler.h for boolean symbol.
Vinson Lee [Wed, 25 Aug 2010 06:04:20 +0000 (23:04 -0700)]
r300/compiler: Silence uninitialized variable warning.
The variable loops would be used uninitialized if it ever processed a
RC_OPCODE_ENDLOOP case first.
This patch initalizes the loops variable to NULL and adds an assert at
the RC_OPCODE_ENDLOOP case that loops isn't NULL.
Silence the following GCC warning.
r3xx_vertprog.c: In function 'translate_vertex_program':
r3xx_vertprog.c:469: warning: 'loops' may be used uninitialized in this function
Vinson Lee [Wed, 25 Aug 2010 05:28:21 +0000 (22:28 -0700)]
r300g: Add missing comma in SConscript.
This is a follow-on patch to commit
574ba4b5f50bfe661427327cd792a8a200559376.
Fixes r300g SCons build.
Marek Olšák [Wed, 25 Aug 2010 02:55:01 +0000 (04:55 +0200)]
r300g: fix gl_PointCoord
Is this hackish or is this the correct way to use point_quad_rasterization?
Copied from nvfx.
Vinson Lee [Wed, 25 Aug 2010 02:08:47 +0000 (19:08 -0700)]
r600: Include missing header in evergreen_render.c.
Fixes the following GCC warning.
evergreen_render.c: In function 'evergreenTryDrawPrims':
evergreen_render.c:836: error: implicit declaration of function 'evergreenSetupFragmentProgram'
Vinson Lee [Wed, 25 Aug 2010 02:04:19 +0000 (19:04 -0700)]
r600: Remove unused variable.
Silences the following GCC warning.
evergreen_state.c: In function 'evergreenSetBlendState':
evergreen_state.c:341: warning: unused variable 'id'
Vinson Lee [Wed, 25 Aug 2010 01:51:56 +0000 (18:51 -0700)]
i965: Fix printf format warnings on 32-bit builds.
Vinson Lee [Wed, 25 Aug 2010 01:32:51 +0000 (18:32 -0700)]
r600: Remove unused variable.
Fixes the following GCC warning.
r600_emit.c In function 'r600AllocShaderConsts':
r600_emit.c:59: warning: unused variable 'out'
Vinson Lee [Wed, 25 Aug 2010 01:20:26 +0000 (18:20 -0700)]
r600: Remove spaces between backslash and newline.
Fixes the following GCC warnings.
r600_cmdbuf.h:201: warning: backslash and newline separated by space
r600_cmdbuf.h:202: warning: backslash and newline separated by space
Marek Olšák [Tue, 24 Aug 2010 00:51:20 +0000 (02:51 +0200)]
r300g: eliminate unused constants in FS
Marek Olšák [Mon, 23 Aug 2010 03:56:48 +0000 (05:56 +0200)]
r300g: eliminate unused constants in VS
Marek Olšák [Tue, 24 Aug 2010 21:05:09 +0000 (23:05 +0200)]
r300g: clean up some mess in set_constant_buffer
Marek Olšák [Mon, 23 Aug 2010 03:58:08 +0000 (05:58 +0200)]
r300g: fix indentation
Marek Olšák [Mon, 23 Aug 2010 03:48:39 +0000 (05:48 +0200)]
r300/compiler: implement elimination of unused constants
Wine likes to create a *lot* of constants, exceeding the size of the constant
file in hw.
Marek Olšák [Sun, 22 Aug 2010 23:24:01 +0000 (01:24 +0200)]
r300/compiler: terminate vertex shader compilation immediately after an error
Also rename "compiler" to "c".
Marek Olšák [Sun, 22 Aug 2010 18:45:50 +0000 (20:45 +0200)]
r300/compiler: fail to compile if we hit hw limits or an unimplemented feature
i.e. relative addressing (mainly FS), saturate modifiers, exceeding
the maximum number of constants.
Marek Olšák [Sun, 22 Aug 2010 01:29:54 +0000 (03:29 +0200)]
r300/compiler: handle indexable temporaries correctly in deadcode elimination
Marek Olšák [Sun, 22 Aug 2010 01:20:19 +0000 (03:20 +0200)]
r300/compiler: disable register allocation for indexable temporaries in VS
If there is relative addressing of temporaries, we cannot change register
indices, so skip register allocation entirely. To utilize register allocation
at least partially, we need separate indexable and non-indexable register
files in both TGSI and Mesa IR.
Marek Olšák [Tue, 24 Aug 2010 15:16:44 +0000 (17:16 +0200)]
r300g: reset the index bias to 0 at the end of CS
Marek Olšák [Sun, 22 Aug 2010 01:15:00 +0000 (03:15 +0200)]
ir_to_mesa: set IndirectRegisterFiles
This fixes relative addressing of temporaries (and maybe others)
in all gallium drivers.
Acked on irc by Eric Anholt.
Vinson Lee [Wed, 25 Aug 2010 00:40:50 +0000 (17:40 -0700)]
nvfx: Initialize variables on error path.
Eric Anholt [Tue, 24 Aug 2010 22:43:56 +0000 (15:43 -0700)]
glsl: Set up uniform initializers by walking the shaders after linking.
Previously, uniform initializers were handled by ir_to_mesa as it made
its Parameters list. However, uniform values are global to all
shaders, and the value set in one Parameters list wasn't propagated to
the other gl_program->Parameters lists. By going back through the
general Mesa uniform handling, we make sure that all gl_programs get
updated values, and also successfully separate uniform initializer
handling from ir_to_mesa gl_program generation.
Fixes:
glsl-uniform-initializer-5.
Eric Anholt [Tue, 24 Aug 2010 22:30:42 +0000 (15:30 -0700)]
glsl: Don't dead-code eliminate a uniform initializer.
Partial fix for glsl-uniform-initializer-5.
Dave Airlie [Sun, 22 Aug 2010 07:28:20 +0000 (17:28 +1000)]
r300g: rename radeong_dri.so to r300_dri.so
acked on irc by Corbin + Marek.
Brian Paul [Tue, 24 Aug 2010 19:18:09 +0000 (12:18 -0700)]
make: Use C++ compiler to link stdc++ library.
glxinfo and glxgears run on swrast and softpipe without undefined symbol
errors.
Vinson Lee [Tue, 24 Aug 2010 19:14:14 +0000 (12:14 -0700)]
configs: Remove -lstdc++ from default.
This patch undoes commit
9b7480cd95c2d1259e23bfb5549cefaa94ebaca1.
A follow-on patch will provide the proper fix.
Henri Verbeet [Tue, 24 Aug 2010 18:51:20 +0000 (20:51 +0200)]
r600g: Add support for PIPE_FORMAT_R32_FLOAT.
Ian Romanick [Wed, 18 Aug 2010 00:40:20 +0000 (17:40 -0700)]
prog_execute: Implement OPCODE_TXL
Fixes bugzilla #29628
Brian Paul [Tue, 24 Aug 2010 16:21:25 +0000 (10:21 -0600)]
glsl2: rename local variable_entry class
With MSVC it seems that this class and its constructor is colliding
with the one in ir_variable_refcount.cpp. Rename the class here to
avoid the collision.
This is a bit of a hack. Can the two variable_entry classes be merged
and shared?
Brian Paul [Tue, 24 Aug 2010 16:01:40 +0000 (10:01 -0600)]
glsl2: move constructor into .cpp file to work around compiler bug
Fixes fd.o bug 29770
The refcount==0 assertion only failed on some systems. One example
being 32-bit Linux with gcc 4.4.4.
Brian Paul [Tue, 24 Aug 2010 15:02:05 +0000 (09:02 -0600)]
docs: updated info about GLSL compiler
Ian or Eric should review this and add/edit as needed.
Brian Paul [Tue, 24 Aug 2010 15:01:54 +0000 (09:01 -0600)]
docs: list the new GLSL compiler
Brian Paul [Tue, 24 Aug 2010 14:04:37 +0000 (08:04 -0600)]
mesa: added isblank() for MSVC
Brian Paul [Tue, 24 Aug 2010 13:51:52 +0000 (07:51 -0600)]
mesa: remove non-existant files from tarball list
Vinson Lee [Tue, 24 Aug 2010 08:16:46 +0000 (01:16 -0700)]
glsl: Add assert to check variable_entry referenced_count after construction.
A variable_entry after construction should have its referenced_count
member set to 0. However, occassionally this isn't the case and
entry->referenced_count has been observed to be a garbage value. This
leads to crashes of several tests in the Piglit test suite.
This patch adds an assert to check that a variable_entry instance has
its referenced_count member initialized to 0 after construction.
Vinson Lee [Tue, 24 Aug 2010 06:58:57 +0000 (23:58 -0700)]
nvfx: Remove unnecessary headers.
Dave Airlie [Tue, 24 Aug 2010 06:10:28 +0000 (16:10 +1000)]
glsl: make 'make clean' work properly.
this has make clean remove all the objects.
Vinson Lee [Tue, 24 Aug 2010 05:27:49 +0000 (22:27 -0700)]
glsl: Silence unused variable warning.
The variable is used but only in the body of an assert.