mesa.git
14 years agogallium: Clean up header file inclusion in p_defines.h.
Vinson Lee [Thu, 26 Aug 2010 08:30:07 +0000 (01:30 -0700)]
gallium: Clean up header file inclusion in p_defines.h.

Remove p_format.h.
Include p_compiler.h for boolean and uint64_t symbols.

14 years agogallium: Clean up header file inclusion in p_context.h.
Vinson Lee [Thu, 26 Aug 2010 08:21:10 +0000 (01:21 -0700)]
gallium: Clean up header file inclusion in p_context.h.

Remove p_state.h.
Include p_compiler.h for boolean symbol.
Add needed forward declarations after removing p_state.h.

14 years agograw: Include missing header in graw_dl.h.
Vinson Lee [Thu, 26 Aug 2010 08:14:28 +0000 (01:14 -0700)]
graw: Include missing header in graw_dl.h.

Include p_state.h for pipe_shader_state symbol.

14 years agoutil: Include missing header in u_simple_shaders.c.
Vinson Lee [Thu, 26 Aug 2010 08:08:30 +0000 (01:08 -0700)]
util: Include missing header in u_simple_shaders.c.

Include p_state.h for PIPE_MAX_COLOR_BUFS symbol.

14 years agotgsi: Include missing header in tgsi_sse2.h.
Vinson Lee [Thu, 26 Aug 2010 07:34:30 +0000 (00:34 -0700)]
tgsi: Include missing header in tgsi_sse2.h.

Include p_compiler.h for boolean symbol.
Clean up forward declarations.

14 years agortasm: Include missing header in rtasm_x86sse.h.
Vinson Lee [Thu, 26 Aug 2010 07:29:58 +0000 (00:29 -0700)]
rtasm: Include missing header in rtasm_x86sse.h.

Include p_compiler.h for stdint.h uint*_t symbols.

14 years agopipebuffer: Clean up header file inclusion in pb_bufmgr.h.
Vinson Lee [Thu, 26 Aug 2010 07:22:19 +0000 (00:22 -0700)]
pipebuffer: Clean up header file inclusion in pb_bufmgr.h.

Remove p_compiler.h and p_defines.h.
Include pb_buffer.h for pb_size symbol.

14 years agoglsl2: Move ir_expression_flattening to using the rvalue visitor class.
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.

14 years agoglsl: Don't consider things with a type containing a sampler as an lvalue.
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.

14 years agomesa: Disable the debug spam for x86 CPU detection with a compile-time flag.
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.

14 years agomesa: Move the x86 detection debug messages next to the detection.
Eric Anholt [Thu, 26 Aug 2010 06:24:50 +0000 (23:24 -0700)]
mesa: Move the x86 detection debug messages next to the detection.

14 years agomesa: Don't warn when the desired result of s3tc lib available occurs.
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.

14 years agoutil: Include missing header in u_blit.h.
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.

14 years agoutil: Include missing header in u_bitmask.h.
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.

14 years agoutil: Include missing header in u_dirty_surfaces.h.
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.

14 years agoutil: Add include guard in u_split_prim.h.
Vinson Lee [Thu, 26 Aug 2010 05:55:15 +0000 (22:55 -0700)]
util: Add include guard in u_split_prim.h.

14 years agoutil: Include missing headers 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.

14 years agograw: Remove graw-null.
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.

14 years agograw: Dynamically load graw libraries.
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.

14 years agoscons: Fix old script compatability logic.
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.

14 years agoutil: Include missing headers in u_tile.h.
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.

14 years agoutil: Clean up header file inclusion in u_upload_mgr.h.
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.

14 years agor300g: fix constant buffer upload once again for r3xx->r4xx
Marek Olšák [Thu, 26 Aug 2010 01:28:47 +0000 (03:28 +0200)]
r300g: fix constant buffer upload once again for r3xx->r4xx

14 years agor600: Remove unnecessary headers.
Vinson Lee [Thu, 26 Aug 2010 01:06:01 +0000 (18:06 -0700)]
r600: Remove unnecessary headers.

14 years agor300: Remove unnecessary header.
Vinson Lee [Thu, 26 Aug 2010 01:00:23 +0000 (18:00 -0700)]
r300: Remove unnecessary header.

14 years agoRevert "mesa: Don't add 1 to GL_ACTIVE_UNIFORM_MAX_LENGTH."
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

14 years agoglsl: fix crash with variable indexing into array in a struct
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>
14 years agoi965: Fix detection of implicit MOVs to message regs in brw_optimize.c.
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.

14 years agonouveau: handle early initialization errors
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>
14 years agor600g: simplify states
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>
14 years agomesa: Remove now-unused _mesa_add_sampler().
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.

14 years agoir_to_mesa: Add support for samplers in structures.
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

14 years agomesa: Remove now-unused _mesa_add_uniform.
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.

14 years agoir_to_mesa: Convert this code to using linker.cpp's uniform locations.
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.
14 years agoglsl: Make uniform linking generate separate uniforms for struct members.
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.

14 years agomesa: Remove the "Used" flag in gl_program_parameter.
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.

14 years agor300/compiler: emulate relative addressing with negative offsets in VS
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.

14 years agonvfx: Set pointer to NULL after free.
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.

14 years agor300g: fix potentially uninitialized variables in create_rs_state
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.

14 years agost/mesa: Remove unnecessary header.
Vinson Lee [Wed, 25 Aug 2010 17:05:32 +0000 (10:05 -0700)]
st/mesa: Remove unnecessary header.

14 years agollvmpipe: fix bad patch application
Keith Whitwell [Wed, 25 Aug 2010 17:01:51 +0000 (18:01 +0100)]
llvmpipe: fix bad patch application

14 years agollvmpipe: Remove unnecessary header.
Vinson Lee [Wed, 25 Aug 2010 16:55:07 +0000 (09:55 -0700)]
llvmpipe: Remove unnecessary header.

14 years agoglsl/mesa: fixes for MSVC
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>
14 years agointel: Support EGL_MESA_image_drm
Kristian Høgsberg [Mon, 7 Jun 2010 00:39:19 +0000 (20:39 -0400)]
intel: Support EGL_MESA_image_drm

14 years agointel: Take an intel_screen pointer in intel_alloc_region_* functions
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

14 years agoegl_dri2: Add support for MESA_image_drm
Kristian Høgsberg [Fri, 4 Jun 2010 01:36:40 +0000 (21:36 -0400)]
egl_dri2: Add support for MESA_image_drm

14 years agoegl: Add EGL_MESA_drm_image extension
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.

14 years agollvmpipe: track drawing region as a single u_rect
Keith Whitwell [Tue, 24 Aug 2010 19:04:08 +0000 (20:04 +0100)]
llvmpipe: track drawing region as a single u_rect

14 years agollvmpipe: better triangle debugging
Keith Whitwell [Tue, 24 Aug 2010 18:58:54 +0000 (19:58 +0100)]
llvmpipe: better triangle debugging

14 years agollvmpipe: cull zero-area triangles early
Keith Whitwell [Fri, 20 Aug 2010 15:18:23 +0000 (16:18 +0100)]
llvmpipe: cull zero-area triangles early

14 years agollvmpipe: more rasterization counters
Keith Whitwell [Fri, 20 Aug 2010 14:45:25 +0000 (15:45 +0100)]
llvmpipe: more rasterization counters

14 years agollvmpipe: move some fence functions into lp_screen.c
Keith Whitwell [Fri, 20 Aug 2010 14:25:27 +0000 (15:25 +0100)]
llvmpipe: move some fence functions into lp_screen.c

14 years agollvmpipe: wake all threads waiting on a fence
Keith Whitwell [Fri, 20 Aug 2010 14:15:36 +0000 (15:15 +0100)]
llvmpipe: wake all threads waiting on a fence

14 years agollvmpipe: fence debugging, add llvmpipe_finish
Keith Whitwell [Fri, 20 Aug 2010 14:14:19 +0000 (15:14 +0100)]
llvmpipe: fence debugging, add llvmpipe_finish

14 years agotgsi: helper for dumping tokens as hex
Keith Whitwell [Fri, 20 Aug 2010 13:51:57 +0000 (14:51 +0100)]
tgsi: helper for dumping tokens as hex

14 years agodraw: specialized cliptesting routines
Keith Whitwell [Fri, 20 Aug 2010 14:52:58 +0000 (15:52 +0100)]
draw: specialized cliptesting routines

14 years agoutil: add rectangle helpers to u_rect.h
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.

14 years agogallium/docs: notes on scissor state
Keith Whitwell [Fri, 20 Aug 2010 10:38:33 +0000 (11:38 +0100)]
gallium/docs: notes on scissor state

14 years agollvmpipe: remove dead code
Keith Whitwell [Fri, 20 Aug 2010 10:36:53 +0000 (11:36 +0100)]
llvmpipe: remove dead code

14 years agodraw: Remove UNDEFINED_VERTEX_ID checks in emit pathes.
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).

14 years agogallium: Use draw_set_index_buffer and others.
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.

14 years agosvga: Remove redundant svga_draw_range_elements.
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.

14 years agodraw: Add draw_set_index_buffer and others.
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.

14 years agonvfx: Clean up header file inclusion in nvfx_screen.h.
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.

14 years agonvfx: Include missing headers in nvfx_shader.h.
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.

14 years agoi965: Remove unnecessary header.
Vinson Lee [Wed, 25 Aug 2010 07:40:00 +0000 (00:40 -0700)]
i965: Remove unnecessary header.

14 years agor600: Include missing header in evergreen_fragprog.c.
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'

14 years agor600: Include missing header in evergreen_vertprog.c.
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'

14 years agogallivm: Include missing header in lp_bld_sample.h.
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.

14 years agogallivm: Include missing header in lp_bld_pack.h.
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.

14 years agor300/compiler: Silence uninitialized variable warning.
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

14 years agor300g: Add missing comma in SConscript.
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.

14 years agor300g: fix gl_PointCoord
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.

14 years agor600: Include missing header in evergreen_render.c.
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'

14 years agor600: Remove unused variable.
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'

14 years agoi965: Fix printf format warnings on 32-bit builds.
Vinson Lee [Wed, 25 Aug 2010 01:51:56 +0000 (18:51 -0700)]
i965: Fix printf format warnings on 32-bit builds.

14 years agor600: Remove unused variable.
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'

14 years agor600: Remove spaces between backslash and newline.
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

14 years agor300g: eliminate unused constants in FS
Marek Olšák [Tue, 24 Aug 2010 00:51:20 +0000 (02:51 +0200)]
r300g: eliminate unused constants in FS

14 years agor300g: eliminate unused constants in VS
Marek Olšák [Mon, 23 Aug 2010 03:56:48 +0000 (05:56 +0200)]
r300g: eliminate unused constants in VS

14 years agor300g: clean up some mess in set_constant_buffer
Marek Olšák [Tue, 24 Aug 2010 21:05:09 +0000 (23:05 +0200)]
r300g: clean up some mess in set_constant_buffer

14 years agor300g: fix indentation
Marek Olšák [Mon, 23 Aug 2010 03:58:08 +0000 (05:58 +0200)]
r300g: fix indentation

14 years agor300/compiler: implement elimination of unused constants
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.

14 years agor300/compiler: terminate vertex shader compilation immediately after an error
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".

14 years agor300/compiler: fail to compile if we hit hw limits or an unimplemented feature
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.

14 years agor300/compiler: handle indexable temporaries correctly in deadcode elimination
Marek Olšák [Sun, 22 Aug 2010 01:29:54 +0000 (03:29 +0200)]
r300/compiler: handle indexable temporaries correctly in deadcode elimination

14 years agor300/compiler: disable register allocation for indexable temporaries in VS
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.

14 years agor300g: reset the index bias to 0 at the end of CS
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

14 years agoir_to_mesa: set IndirectRegisterFiles
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.

14 years agonvfx: Initialize variables on error path.
Vinson Lee [Wed, 25 Aug 2010 00:40:50 +0000 (17:40 -0700)]
nvfx: Initialize variables on error path.

14 years agoglsl: Set up uniform initializers by walking the shaders after linking.
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.

14 years agoglsl: Don't dead-code eliminate a uniform initializer.
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.

14 years agor300g: rename radeong_dri.so to r300_dri.so
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.

14 years agomake: Use C++ compiler to link stdc++ library.
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.

14 years agoconfigs: Remove -lstdc++ from default.
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.

14 years agor600g: Add support for PIPE_FORMAT_R32_FLOAT.
Henri Verbeet [Tue, 24 Aug 2010 18:51:20 +0000 (20:51 +0200)]
r600g: Add support for PIPE_FORMAT_R32_FLOAT.

14 years agoprog_execute: Implement OPCODE_TXL
Ian Romanick [Wed, 18 Aug 2010 00:40:20 +0000 (17:40 -0700)]
prog_execute: Implement OPCODE_TXL

Fixes bugzilla #29628

14 years agoglsl2: rename local variable_entry class
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?

14 years agoglsl2: move constructor into .cpp file to work around compiler bug
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.

14 years agodocs: updated info about GLSL compiler
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.