mesa.git
12 years agoglsl_to_tgsi: improve assignment handling
Bryan Cain [Mon, 27 Jun 2011 22:11:07 +0000 (17:11 -0500)]
glsl_to_tgsi: improve assignment handling

This is a hack, but it's better than emitting an unnecessary MOV instruction
and hoping the optimization passes clean it up.

12 years agoglsl_to_tgsi: improve eliminate_dead_code_advanced()
Bryan Cain [Sat, 25 Jun 2011 04:17:30 +0000 (23:17 -0500)]
glsl_to_tgsi: improve eliminate_dead_code_advanced()

12 years agoglsl_to_tgsi: use the correct writemask in try_emit_mad() and try_emit_sat()
Bryan Cain [Sat, 25 Jun 2011 03:32:26 +0000 (22:32 -0500)]
glsl_to_tgsi: use the correct writemask in try_emit_mad() and try_emit_sat()

12 years agoglsl_to_tgsi: use a more specific condition for gl_FragDepth hack in generating assig...
Bryan Cain [Sat, 25 Jun 2011 01:37:53 +0000 (20:37 -0500)]
glsl_to_tgsi: use a more specific condition for gl_FragDepth hack in generating assignments

This reduces the number of instructions in the fragment shader of
glsl-fs-atan-2 from 174 to 146 with EmitNoIfs enabled.

12 years agoglsl_to_tgsi: add a better, more advanced dead code elimination pass
Bryan Cain [Fri, 24 Jun 2011 23:45:04 +0000 (18:45 -0500)]
glsl_to_tgsi: add a better, more advanced dead code elimination pass

12 years agoglsl_to_tgsi: remove handling of XPD opcode in compile_tgsi_instruction()
Bryan Cain [Fri, 24 Jun 2011 00:53:37 +0000 (19:53 -0500)]
glsl_to_tgsi: remove handling of XPD opcode in compile_tgsi_instruction()

The opcode is never emitted by the glsl_to_tgsi_visitor, so its special case in
compile_tgsi_instruction() was dead code.

12 years agoglsl_to_tgsi: use swizzle_for_size for src reg in conditional moves
Bryan Cain [Fri, 24 Jun 2011 00:35:36 +0000 (19:35 -0500)]
glsl_to_tgsi: use swizzle_for_size for src reg in conditional moves

This prevents the copy propagation pass from being confused by undefined
channels and thus missing optimization opportunities.

12 years agoglsl_to_tgsi: execute merge_registers() after eliminate_dead_code()
Emil Velikov [Tue, 21 Jun 2011 20:52:19 +0000 (21:52 +0100)]
glsl_to_tgsi: execute merge_registers() after eliminate_dead_code()

Fixes a regression unintentionally introduced by "glsl_to_tgsi: fix shaders with
indirect addressing of temps" that caused missing leaves in 3dmark01 test 4 (Nature)
and missing/displaced textures on human models in Counter-Strike: Source.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Bryan Cain <bryancain3@gmail.com>
12 years agoglsl_to_tgsi: implement simplify_cmp pass needed by r300g
Bryan Cain [Thu, 16 Jun 2011 23:36:16 +0000 (18:36 -0500)]
glsl_to_tgsi: implement simplify_cmp pass needed by r300g

12 years agoglsl_to_tgsi: fix compile error with g++ 4.6
Bryan Cain [Thu, 16 Jun 2011 18:42:57 +0000 (13:42 -0500)]
glsl_to_tgsi: fix compile error with g++ 4.6

12 years agoglsl: remove glsl_type::get_vec4_type()
Bryan Cain [Wed, 15 Jun 2011 22:31:51 +0000 (17:31 -0500)]
glsl: remove glsl_type::get_vec4_type()

Thanks to Kenneth Graunke for pointing out that glsl_type::get_instance(base, 4, 1)
is the same as glsl_type::get_vec4_type(base).

The function was only used in st_glsl_to_tgsi, and this commit replaces that usage
with get_instance.

12 years agoglsl_to_tgsi: silence compiler warning
Bryan Cain [Wed, 15 Jun 2011 19:45:03 +0000 (14:45 -0500)]
glsl_to_tgsi: silence compiler warning

12 years agoglsl_to_tgsi: finish some loose ends
Bryan Cain [Tue, 14 Jun 2011 23:17:40 +0000 (18:17 -0500)]
glsl_to_tgsi: finish some loose ends

12 years agoglsl-to-tgsi: fix piglit tests
Bryan Cain [Tue, 14 Jun 2011 22:38:14 +0000 (17:38 -0500)]
glsl-to-tgsi: fix piglit tests

This commit fixes all of the piglit tests regressed by "mesa, glsl_to_tgsi: add
native support for integers in shaders" on softpipe.

12 years agomesa, glsl_to_tgsi: add native support for integers in shaders
Bryan Cain [Mon, 13 Jun 2011 23:12:56 +0000 (18:12 -0500)]
mesa, glsl_to_tgsi: add native support for integers in shaders

Disabled by default on all drivers.  To enable it, change ctx->GLSLVersion to 130
in st_extensions.c.  Currently, softpipe is the only driver with integer support.

12 years agotgsi: add support for TGSI_OPCODE_MOD in tgsi_exec
Bryan Cain [Mon, 13 Jun 2011 22:52:54 +0000 (17:52 -0500)]
tgsi: add support for TGSI_OPCODE_MOD in tgsi_exec

12 years agomesa: support boolean and integer-based parameters in prog_parameter
Bryan Cain [Tue, 17 May 2011 22:13:20 +0000 (17:13 -0500)]
mesa: support boolean and integer-based parameters in prog_parameter

The functionality is not used by anything yet, and the glUniform functions will
need to be reworked before this can reach its full usefulness.  It is
nonetheless a step towards integer support in the state tracker and classic drivers.

12 years agogallium: add PIPE_SHADER_CAP_INTEGERS
Bryan Cain [Fri, 6 May 2011 02:10:28 +0000 (21:10 -0500)]
gallium: add PIPE_SHADER_CAP_INTEGERS

12 years agoglsl_to_tgsi: fix shaders with indirect addressing of temps
Bryan Cain [Tue, 3 May 2011 04:12:18 +0000 (23:12 -0500)]
glsl_to_tgsi: fix shaders with indirect addressing of temps

Fixes several Piglit tests, although it's a step backwards for optimization.

12 years agoglsl_to_tgsi: use TGSI opcodes when converting from GLSL IR
Bryan Cain [Mon, 2 May 2011 02:49:21 +0000 (21:49 -0500)]
glsl_to_tgsi: use TGSI opcodes when converting from GLSL IR

Before, the translator used Mesa IR opcodes (a holdover from ir_to_mesa) and
converted them to TGSI opcodes during TGSI emission.

12 years agoglsl_to_tgsi: support DDY (ir_unop_dFdy)
Bryan Cain [Sun, 1 May 2011 16:55:03 +0000 (11:55 -0500)]
glsl_to_tgsi: support DDY (ir_unop_dFdy)

12 years agoglsl_to_tgsi: lower noise opcodes when converting from GLSL IR, not when generating...
Bryan Cain [Sun, 1 May 2011 04:17:11 +0000 (23:17 -0500)]
glsl_to_tgsi: lower noise opcodes when converting from GLSL IR, not when generating TGSI

12 years agoglsl_to_tgsi: define the sampler objects used
Bryan Cain [Sun, 1 May 2011 02:17:38 +0000 (21:17 -0500)]
glsl_to_tgsi: define the sampler objects used

Fixes the Nexuiz title screen and the water in 0 A.D.

12 years agoglsl_to_tgsi: remove a bad assertion
Bryan Cain [Sat, 30 Apr 2011 18:44:32 +0000 (13:44 -0500)]
glsl_to_tgsi: remove a bad assertion

It was triggered by Alien Arena.

12 years agoglsl_to_tgsi: remove reads to output registers
Bryan Cain [Sat, 30 Apr 2011 18:03:33 +0000 (13:03 -0500)]
glsl_to_tgsi: remove reads to output registers

Fixes a regression in 0 A.D. introduced by 809a11c77073e999fd47.

12 years agoglsl_to_tgsi: stop generating Mesa IR
Bryan Cain [Sat, 30 Apr 2011 00:24:57 +0000 (19:24 -0500)]
glsl_to_tgsi: stop generating Mesa IR

Before, it was still generating unused Mesa IR as a remnant of ir_to_mesa, and
depended on some of the information from it.

12 years agomesa: fix segfault when no Mesa IR is generated
Bryan Cain [Sat, 30 Apr 2011 00:00:24 +0000 (19:00 -0500)]
mesa: fix segfault when no Mesa IR is generated

12 years agost/mesa: Add a GLSL IR to TGSI translator.
Bryan Cain [Tue, 26 Apr 2011 04:37:47 +0000 (23:37 -0500)]
st/mesa: Add a GLSL IR to TGSI translator.

It is still a work in progress at this point, but it produces working and
reasonably well-optimized code.

Originally based on ir_to_mesa and st_mesa_to_tgsi, but does not directly use
Mesa IR instructions in TGSI generation, instead generating TGSI from the
intermediate class glsl_to_tgsi_instruction.  It also has new optimization
passes to replace _mesa_optimize_program.

12 years agor600g: disable render condition for some blitter operations
Marek Olšák [Wed, 15 Jun 2011 12:26:41 +0000 (14:26 +0200)]
r600g: disable render condition for some blitter operations

12 years agor600g: fix TXD src regs needing fetching.
Mike Kaplinskiy [Wed, 15 Jun 2011 06:56:10 +0000 (16:56 +1000)]
r600g: fix TXD src regs needing fetching.

[airlied: final chunk of Mike's patch from bug 37476
this uses a loop to emit the GRADIENTS and does a check to
see if we need to fetch to a temporary register. It also
increases the context src gpr to 4 which is needed here.]

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: use inlines for some common tex instr setup code.
Mike Kaplinskiy [Wed, 15 Jun 2011 06:26:17 +0000 (16:26 +1000)]
r600g: use inlines for some common tex instr setup code.

[airlied: taken from Mike's patch in bug 37476]

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agoglsl/builtins: Actually implement int/ivec variants of abs().
Kenneth Graunke [Wed, 15 Jun 2011 04:36:43 +0000 (21:36 -0700)]
glsl/builtins: Actually implement int/ivec variants of abs().

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
NOTE: This is a candidate for stable release branches (and don't forget
      to re-run "make builtins" after cherry-picking.)

12 years agor600g: fix TXD when shadowing is enabled.
Mike Kaplinskiy [Wed, 15 Jun 2011 05:54:21 +0000 (15:54 +1000)]
r600g: fix TXD when shadowing is enabled.

Mike had actually done a lot of the TXD support in a patch in bug
37476 which I see now, I'll add the bits of his work that I didn't think
to add to my work.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: add TXD support.
Dave Airlie [Wed, 15 Jun 2011 05:15:41 +0000 (15:15 +1000)]
r600g: add TXD support.

This at least passes the piglit arb_shader_texture_lod-texgrad test,
the AMD shader analyzer seems to multiply the V component by an unspecified
constant value no idea why.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agoi915g: add const qualifier to silence warning
Brian Paul [Wed, 15 Jun 2011 02:47:47 +0000 (20:47 -0600)]
i915g: add const qualifier to silence warning

12 years agor600g: also set TILE_MODE of the base level
Marek Olšák [Wed, 15 Jun 2011 02:16:05 +0000 (04:16 +0200)]
r600g: also set TILE_MODE of the base level

12 years agor600g: force OpenGL's BASE_LEVEL behavior on r600-r700
Marek Olšák [Wed, 15 Jun 2011 00:24:03 +0000 (02:24 +0200)]
r600g: force OpenGL's BASE_LEVEL behavior on r600-r700

This sets the base level as the zero level, which fixes
piglit/texturing/tex-miplevel-selection*.

The r600 hardware ignores the BASE_LEVEL field in some cases, so we can't
use it.

Evergreen might need this too.

12 years agoglsl/generate_builtins.py: Remove regexp to kill pointer addresses.
Kenneth Graunke [Tue, 14 Jun 2011 00:43:32 +0000 (17:43 -0700)]
glsl/generate_builtins.py: Remove regexp to kill pointer addresses.

Commit 56ef62d9885f805bbfb2243dc860ff425d5b4d3b
"glsl: Generate readable unique names at print time."
changed ir_print_visitor to not generate @0x1234567 suffixes except
where necessary.  So there's no need to manually remove them.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoglapi: _glapi_create_table_from_handle: Set missing pointers to NoOp rather than...
Jeremy Huddleston [Tue, 14 Jun 2011 19:34:49 +0000 (12:34 -0700)]
glapi: _glapi_create_table_from_handle: Set missing pointers to NoOp rather than NULL

This change to _glapi_create_table_from_handle causes it to fill the dispatch
table with NoOps for unimplemented functionality.  This matches what is done
in indirect_init.c and also allows us to enable logging (when built with
-DDEBUG and the MESA_DEBUG or LIBGL_DEBUG environment variables are set) to
catch cases where clients are trying to use these unimplemented extentions.

Additionally, this fixes some gcc -pedantic warnings.

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
12 years agost/mesa: fix indentation, whitespace
Brian Paul [Tue, 14 Jun 2011 15:24:50 +0000 (09:24 -0600)]
st/mesa: fix indentation, whitespace

12 years agost/mesa: replace st->ctx with ctx
Brian Paul [Tue, 14 Jun 2011 15:15:36 +0000 (09:15 -0600)]
st/mesa: replace st->ctx with ctx

12 years agost/mesa: fix comments, whitespace
Brian Paul [Tue, 14 Jun 2011 14:40:43 +0000 (08:40 -0600)]
st/mesa: fix comments, whitespace

12 years agodocs: 7.10.3 updates
Brian Paul [Tue, 14 Jun 2011 00:32:39 +0000 (18:32 -0600)]
docs: 7.10.3 updates

12 years agost/mesa: improved is_interleaved_arrays() checking
Brian Paul [Mon, 13 Jun 2011 23:34:20 +0000 (17:34 -0600)]
st/mesa: improved is_interleaved_arrays() checking

Check that the difference in array pointers/offsets from the 0th
array are less than the stride, for both VBOs and user-space arrays.
Previously, we were only doing this for the later.

This tightens up the interleaved array test and fixes a problem with
the llvmpipe driver where we were creating way too many vertex fetch
variants only because the pipe_vertex_element::src_offset values were
changing frequently.  This change results in a 5x speed-up for one of
the viewperf tests.

Also, clean up the function to make it easier to understand.

12 years agor600c: add tiling support for evergreen+
Alex Deucher [Tue, 14 Jun 2011 22:39:59 +0000 (18:39 -0400)]
r600c: add tiling support for evergreen+

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
12 years agor600g: fix RGB32F texturing
Marek Olšák [Tue, 14 Jun 2011 18:47:57 +0000 (20:47 +0200)]
r600g: fix RGB32F texturing

12 years agor600g: fix indentation and comments
Marek Olšák [Tue, 14 Jun 2011 18:25:00 +0000 (20:25 +0200)]
r600g: fix indentation and comments

12 years agomesa: Switch generate_mipmaps_compressed() to using TexImage2D to upload.
Eric Anholt [Fri, 10 Jun 2011 19:58:56 +0000 (12:58 -0700)]
mesa: Switch generate_mipmaps_compressed() to using TexImage2D to upload.

The code was playing fast and loose with rowstrides, which meant that
if a driver chose anything different for its alignment requirements,
the generated mipmaps came out garbage.  Unlike the uncompressed case,
we can't generate mipmaps directly into image->Data, so by using
TexImage2D we cut out most of the weird logic that existed to generate
in-place into ->Data.  The up/downside is that the driver recovery
code for the fact that _mesa_generate_mipmaps whacked ->Data has to be
turned off for compressed now.

Fixes 6 piglit tests about compressed mipmap gen.

12 years agomesa: Remove uncompressed code from generate_mipmaps_compressed().
Eric Anholt [Fri, 10 Jun 2011 19:10:33 +0000 (12:10 -0700)]
mesa: Remove uncompressed code from generate_mipmaps_compressed().

12 years agomesa: Remove compressed code from generate_mipmaps_uncompressed().
Eric Anholt [Fri, 10 Jun 2011 19:04:19 +0000 (12:04 -0700)]
mesa: Remove compressed code from generate_mipmaps_uncompressed().

12 years agomesa: Split _mesa_generate_mipmap along compressed/uncompressed lines.
Eric Anholt [Fri, 10 Jun 2011 19:00:23 +0000 (12:00 -0700)]
mesa: Split _mesa_generate_mipmap along compressed/uncompressed lines.

The path taken is wildly different based on this (do we generate from
a temporary image, or from level-1's data), and we appear to have
stride bugs in the compressed case that are tough to disentangle.

This just duplicates the code for the moment, the followon commit will
do the actual changes.  Only real code change here is handling
maxLevel in one common place.

12 years agointel: Fix miptree height alignment for compressed NPOT textures.
Eric Anholt [Fri, 10 Jun 2011 00:04:12 +0000 (17:04 -0700)]
intel: Fix miptree height alignment for compressed NPOT textures.

This is effectively just "round up when dividing by 4" compared to the
previous code.  Fixes the broken stripe at the top of
fbo-generatemipmap-formats GL_EXT_texture_compression_rgtc.

12 years agointel: Drop dead preinitialization of align_w, align_h.
Eric Anholt [Fri, 10 Jun 2011 00:01:57 +0000 (17:01 -0700)]
intel: Drop dead preinitialization of align_w, align_h.

12 years agointel: Drop the cpp argument to intel_miptree_create().
Eric Anholt [Thu, 9 Jun 2011 17:23:17 +0000 (10:23 -0700)]
intel: Drop the cpp argument to intel_miptree_create().

12 years agointel: Calculate compress_byte in intel_miptree_create.
Eric Anholt [Thu, 9 Jun 2011 17:18:36 +0000 (10:18 -0700)]
intel: Calculate compress_byte in intel_miptree_create.

One less argument and thing to get wrong.

12 years agointel: Use the gl_format to get the base_format for miptree create.
Eric Anholt [Thu, 9 Jun 2011 17:07:56 +0000 (10:07 -0700)]
intel: Use the gl_format to get the base_format for miptree create.

One less argument to this insanely long function call.

12 years agointel: Drop the internal_format field of the mipmap tree.
Eric Anholt [Thu, 9 Jun 2011 17:00:44 +0000 (10:00 -0700)]
intel: Drop the internal_format field of the mipmap tree.

This has been replaced with the gl_format now.

12 years agointel: Make the intel_miptree_match_image format check more specific.
Eric Anholt [Thu, 9 Jun 2011 17:00:59 +0000 (10:00 -0700)]
intel: Make the intel_miptree_match_image format check more specific.

We don't care just about the internalFormat/cpp/compressed, but about
the specific format chosen.  We have no support for format
translations as part of texture validation, and furthermore it has
restrictions in the GL specification.  However, we should be making
consistent decisions for this check anyway.

12 years agoi915: Drop dead argument to translate_texture_format().
Eric Anholt [Thu, 9 Jun 2011 16:58:38 +0000 (09:58 -0700)]
i915: Drop dead argument to translate_texture_format().

12 years agointel: Add block alignment for RGTC textures.
Eric Anholt [Thu, 9 Jun 2011 16:28:19 +0000 (09:28 -0700)]
intel: Add block alignment for RGTC textures.

We were using the default 4x2 alignment instead of the 4x4 required
for RGTC textures.

12 years agointel: Add the MESA_FORMAT as a field of the miptree.
Eric Anholt [Thu, 9 Jun 2011 16:16:47 +0000 (09:16 -0700)]
intel: Add the MESA_FORMAT as a field of the miptree.

We only had internal_format before, which is way more irritating to
work with.

12 years agointel: Fix 2x2 and 1x1 compressed teximages from _mesa_generate_mipmap()
Eric Anholt [Wed, 8 Jun 2011 23:38:01 +0000 (16:38 -0700)]
intel: Fix 2x2 and 1x1 compressed teximages from _mesa_generate_mipmap()

Generally image uploads to a the region occur at TexImage time, but
that's not the case for fallback _mesa_generate_mipmap(), and in this
path we were forgetting to align the width when dividing height.  We
were just leaving out parts of the compressed block at 2x2 and 1x1
levels.

Fixes gen-compressed-teximage.

12 years agor600g: disable shader_texture_lod until there is driver support
Marek Olšák [Tue, 14 Jun 2011 18:03:04 +0000 (20:03 +0200)]
r600g: disable shader_texture_lod until there is driver support

12 years agollvmpipe: SSE2 fastpaths for b8g8r8x8 {un,}swizzle
Adam Jackson [Fri, 10 Jun 2011 16:56:51 +0000 (12:56 -0400)]
llvmpipe: SSE2 fastpaths for b8g8r8x8 {un,}swizzle

Copy-and-paste from the bgra cases.  The C paths attempt to avoid
copying the 'x' channel, but it's harmless, you might as well.  Good for
about 5% in glxgears (740 to 780 fps).

Signed-off-by: Adam Jackson <ajax@redhat.com>
12 years agonv50: fix copy/paste error in nv50_gmtyprog_validate
Christoph Bumiller [Tue, 14 Jun 2011 15:15:08 +0000 (17:15 +0200)]
nv50: fix copy/paste error in nv50_gmtyprog_validate

Used the vertprog instead of gmtyprog.

12 years agoapple: Set the glapi dispatch table on context bind
Jeremy Huddleston [Tue, 14 Jun 2011 07:45:12 +0000 (00:45 -0700)]
apple: Set the glapi dispatch table on context bind

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
12 years agoconfigure.ac: cleanup the gallium-r300 option
Marek Olšák [Tue, 14 Jun 2011 02:03:17 +0000 (04:03 +0200)]
configure.ac: cleanup the gallium-r300 option

12 years agost/xorg: remove unused variable
Marek Olšák [Tue, 14 Jun 2011 01:48:06 +0000 (03:48 +0200)]
st/xorg: remove unused variable

12 years agor600g: do not link with softpipe
Marek Olšák [Mon, 13 Jun 2011 23:41:39 +0000 (01:41 +0200)]
r600g: do not link with softpipe

12 years agor300g: do not link with softpipe
Marek Olšák [Mon, 13 Jun 2011 23:41:11 +0000 (01:41 +0200)]
r300g: do not link with softpipe

12 years agoxorg-radeon: rename to xorg-r300
Marek Olšák [Mon, 13 Jun 2011 23:00:36 +0000 (01:00 +0200)]
xorg-radeon: rename to xorg-r300

12 years agotarget-helpers: remove copy-pasted function inline_noop_helper
Marek Olšák [Mon, 13 Jun 2011 23:23:20 +0000 (01:23 +0200)]
target-helpers: remove copy-pasted function inline_noop_helper

12 years agor600g: skip SPI setup for position and face inputs
Vadim Girlin [Mon, 13 Jun 2011 01:43:47 +0000 (05:43 +0400)]
r600g: skip SPI setup for position and face inputs

fixes fdo bug 38145

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: move depth texture flushing out of line.
Dave Airlie [Tue, 7 Jun 2011 05:41:30 +0000 (15:41 +1000)]
r600g: move depth texture flushing out of line.

this needs a piglit run.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agometa: Fix glCopyTexImage(GL_LUMINANCE) from non-GL_LUMINANCE source.
Eric Anholt [Wed, 8 Jun 2011 20:00:51 +0000 (13:00 -0700)]
meta: Fix glCopyTexImage(GL_LUMINANCE) from non-GL_LUMINANCE source.

glReadPixels() was performing RGB -> L conversion differently from the
glTexImage() style conversion appropriate for glCopyTexImage().

Fixes gles2conform copy_texture.

12 years agointel: Fix mipmap and format handling of blit glCopyPixels().
Eric Anholt [Wed, 8 Jun 2011 19:06:43 +0000 (12:06 -0700)]
intel: Fix mipmap and format handling of blit glCopyPixels().

Fixes fbo-mipmap-copypix.

12 years agointel: Do the drawable x/y offset in intel_renderbuffer_map() for spans.
Eric Anholt [Tue, 31 May 2011 22:38:17 +0000 (15:38 -0700)]
intel: Do the drawable x/y offset in intel_renderbuffer_map() for spans.

We were mapping the renderbuffer once, then walking over all the
buffers to map just the texture ones using the other texture mapping
function that handled the x/y offset to the image in the region.  But
then we would go and overwrite *those* mappings with the original
mappings for depth/stencil, which was wrong.

Instead, just walk over the attachments once and map the attachments.
Wasn't that easy?

12 years agointel: Use rb->Data and rb->RowStride to handle spans Y flipping.
Eric Anholt [Tue, 31 May 2011 22:33:36 +0000 (15:33 -0700)]
intel: Use rb->Data and rb->RowStride to handle spans Y flipping.

This is already pointing at 0 or Height - 1 and with an appropriate
pitch, so no need to recompute those values per customization of the
spans code.  Cuts 3 out of 21kb of the compiled size.

Reviewed-by: Chad Versace <chad@chad-versace.us>
12 years agointel: Clean up intel_render_texture with a rename and a helper function.
Eric Anholt [Tue, 31 May 2011 22:07:56 +0000 (15:07 -0700)]
intel: Clean up intel_render_texture with a rename and a helper function.

The "newImage" isn't particularly new -- it might be the same texture
that was attached to the same attachment point before.  This function
also gets called when just rebinding back to an FBO with a texture
attachment.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chad Versace <chad@chad-versace.us>
12 years agointel: Move the draw_x/draw_y to the renderbuffer where it belongs.
Eric Anholt [Tue, 31 May 2011 21:27:18 +0000 (14:27 -0700)]
intel: Move the draw_x/draw_y to the renderbuffer where it belongs.

It was originally located in the region because the tracking of
depth/color buffers was on the regions, and getting back to the irb
would have been tricky.  Now, we're keying off of the renderbuffer in
more places, which means we can move these fields where they belong.

This could fix potential rendering failure with a single texture
having multiple images attached to different renderbuffers across
shareCtx (as far as I can tell, this was the only failure we could
cause, since anything else should trigger intel_render_texture in
between, for example a BindFramebuffer).

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chad Versace <chad@chad-versace.us>
12 years agodri: include swrast.h, not s_texrender.h
Brian Paul [Mon, 13 Jun 2011 22:07:32 +0000 (16:07 -0600)]
dri: include swrast.h, not s_texrender.h

12 years agoglx: Remove check for gc->vtable->destroy
Jeremy Huddleston [Mon, 13 Jun 2011 19:13:44 +0000 (12:13 -0700)]
glx: Remove check for gc->vtable->destroy

gc->vtable->destroy is always set and is used unconditionally
in other places, so don't bother checking for it first.

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
12 years agoapple: applegl_destroy_context: Pass along the correct display
Jeremy Huddleston [Mon, 13 Jun 2011 19:00:55 +0000 (12:00 -0700)]
apple: applegl_destroy_context: Pass along the correct display

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
12 years agoapple: Dead code removal
Jeremy Huddleston [Mon, 13 Jun 2011 19:10:38 +0000 (12:10 -0700)]
apple: Dead code removal

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
12 years agoglapi: Add check for NULL symbol_prefix in gentable and fix warnings
Jeremy Huddleston [Mon, 13 Jun 2011 18:35:18 +0000 (11:35 -0700)]
glapi: Add check for NULL symbol_prefix in gentable and fix warnings

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
12 years agoi915g: add a few more render target formats
Daniel Vetter [Mon, 13 Jun 2011 21:03:00 +0000 (23:03 +0200)]
i915g: add a few more render target formats

Snatched from xvmc.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
12 years agomesa: move texrender.c to swrast
Brian Paul [Mon, 13 Jun 2011 19:44:35 +0000 (13:44 -0600)]
mesa: move texrender.c to swrast

This stuff is really for software rendering, it's not core Mesa.
A small step toward pushing the FetchTexel() stuff down into swrast.

Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agovbo: minor simplification in print_draw_arrays() debug function
Brian Paul [Mon, 13 Jun 2011 19:42:53 +0000 (13:42 -0600)]
vbo: minor simplification in print_draw_arrays() debug function

12 years agomesa: move invariant code out of loop in get_tex_rgba()
Brian Paul [Mon, 13 Jun 2011 14:18:11 +0000 (08:18 -0600)]
mesa: move invariant code out of loop in get_tex_rgba()

12 years agor600g: Put shaders into immutable buffers.
Mathias Fröhlich [Fri, 3 Jun 2011 22:21:29 +0000 (00:21 +0200)]
r600g: Put shaders into immutable buffers.

Put the shader programs into an immutable buffer object.
Also make sure that those object can be taken from the user
space buffer object pool.

12 years agor600g: Allow VRAM for the initial domain for every buffer binding.
Mathias Fröhlich [Sun, 12 Jun 2011 12:32:03 +0000 (14:32 +0200)]
r600g: Allow VRAM for the initial domain for every buffer binding.

12 years agor600g: Set the domains value also for recycled buffer objects.
Mathias Fröhlich [Sun, 12 Jun 2011 12:25:26 +0000 (14:25 +0200)]
r600g: Set the domains value also for recycled buffer objects.

12 years agor600g: Fix typo.
Mathias Fröhlich [Wed, 8 Jun 2011 15:33:57 +0000 (17:33 +0200)]
r600g: Fix typo.

Fix an obvious typo in the yet unused part of the shader setup.

12 years agor600g: remove useless call to u_upload_flush
Pierre-Eric Pelloux-Prayer [Fri, 10 Jun 2011 13:45:01 +0000 (15:45 +0200)]
r600g: remove useless call to u_upload_flush

No regressions found with :
- piglit (quick.tests)
- Unigine Heaven
- Lightsmark
- openarena
- Imprudence (Second Life fork)

agd5f Note: this patch was previously reverted due to piglit
regressions, but I'm not able to reproduce them here.
See this bug:
https://bugs.freedesktop.org/show_bug.cgi?id=34008
and discussion:
http://lists.freedesktop.org/archives/dri-devel/2011-June/011996.html

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
12 years agost/mesa: rebind vertex arrays if _NEW_BUFFER_OBJECT is dirty
Marek Olšák [Sun, 12 Jun 2011 21:21:41 +0000 (23:21 +0200)]
st/mesa: rebind vertex arrays if _NEW_BUFFER_OBJECT is dirty

This fixes piglit/vbo-bufferdata. It's a regression in 7.11.

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agor600g: fixed bo memory leak issue
Pierre-Eric Pelloux-Prayer [Fri, 10 Jun 2011 11:57:21 +0000 (13:57 +0200)]
r600g: fixed bo memory leak issue

pipe_resource_reference call was miossing, thus creating massive memory under certain conditions.
Fix : https://bugs.freedesktop.org/show_bug.cgi?id=37168

12 years agomapi: declare x86_entry_start/end static
Chia-I Wu [Mon, 13 Jun 2011 03:41:41 +0000 (11:41 +0800)]
mapi: declare x86_entry_start/end static

x86_entry_start and x86_entry_end are defined by the inline assembly.
Declaring them static saves one instruction in entry_get_public.

12 years agomapi: Fix tls with shared/es-glapi on x86-64
Benjamin Franzke [Wed, 8 Jun 2011 13:50:25 +0000 (15:50 +0200)]
mapi: Fix tls with shared/es-glapi on x86-64

x86_64_entry_start needs to be declared static in the C code,
in order to have the correct address in entry_get_public
(seems not to be needed on x86).

The compiler needs to lookup a local not a global object.

Otherwise addresses needed for _glapi_proc_address will be computed
from some random offset (0x6400229a61058b48 in my case).

12 years agowayland-drm: remove depend on "make clean"
Chia-I Wu [Mon, 13 Jun 2011 03:35:21 +0000 (11:35 +0800)]
wayland-drm: remove depend on "make clean"

12 years agoegl_dri2: try swrastg_dri if swrast_dri fails
Chia-I Wu [Wed, 8 Jun 2011 08:33:56 +0000 (16:33 +0800)]
egl_dri2: try swrastg_dri if swrast_dri fails

Per libGL.