Oliver McFadden [Tue, 11 Sep 2012 08:10:55 +0000 (11:10 +0300)]
mesa: remove FEATURE_EXT_framebuffer_blit define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 08:09:35 +0000 (11:09 +0300)]
mesa: remove FEATURE_ARB_sync define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 08:08:21 +0000 (11:08 +0300)]
mesa: remove FEATURE_ARB_sampler_objects define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 08:07:11 +0000 (11:07 +0300)]
mesa: remove FEATURE_ARB_pixel_buffer_object define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 08:05:05 +0000 (11:05 +0300)]
mesa: remove FEATURE_ARB_map_buffer_range define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 08:02:27 +0000 (11:02 +0300)]
mesa: remove FEATURE_ARB_framebuffer_object define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 07:56:33 +0000 (10:56 +0300)]
mesa: remove FEATURE_ARB_(fragment|vertex)_program defines.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 07:41:46 +0000 (10:41 +0300)]
mesa: remove FEATURE_NV_(fragment|vertex)_program defines.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 07:25:30 +0000 (10:25 +0300)]
mesa: remove unused FEATURE_NV_fence define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 07:24:58 +0000 (10:24 +0300)]
mesa: remove unused FEATURE_OES_framebuffer_object define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 07:24:40 +0000 (10:24 +0300)]
mesa: remove unused FEATURE_OES_mapbuffer define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 07:23:20 +0000 (10:23 +0300)]
mesa: remove FEATURE_OES_EGL_image define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 07:18:21 +0000 (10:18 +0300)]
mesa: remove FEATURE_EXT_pixel_buffer_object define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 07:17:07 +0000 (10:17 +0300)]
mesa: remove FEATURE_EXT_framebuffer_object define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 07:09:18 +0000 (10:09 +0300)]
mesa: remove FEATURE_ARB_shader_objects and related defines.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:55:24 +0000 (09:55 +0300)]
mesa: remove FEATURE_ARB_fragment_shader define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:54:00 +0000 (09:54 +0300)]
mesa: remove FEATURE_ARB_vertex_shader define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:49:44 +0000 (09:49 +0300)]
mesa: remove FEATURE_OES_draw_texture define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:43:08 +0000 (09:43 +0300)]
mesa: remove FEATURE_es2_glsl and related defines.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:41:59 +0000 (09:41 +0300)]
mesa: remove FEATURE_point_size_array define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:40:36 +0000 (09:40 +0300)]
mesa: remove unused FEATURE_extra_context_init define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:39:12 +0000 (09:39 +0300)]
mesa: remove FEATURE_texture_s3tc define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:38:11 +0000 (09:38 +0300)]
mesa: remove FEATURE_texture_fxt1 define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:21:38 +0000 (09:21 +0300)]
mesa: remove FEATURE_rastpos define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:19:19 +0000 (09:19 +0300)]
mesa: remove FEATURE_queryobj define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:17:44 +0000 (09:17 +0300)]
mesa: remove FEATURE_pixel_transfer define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:16:33 +0000 (09:16 +0300)]
mesa: remove FEATURE_feedback define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:15:32 +0000 (09:15 +0300)]
mesa: remove FEATURE_evaluators define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:14:31 +0000 (09:14 +0300)]
mesa: remove FEATURE_drawpix define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:11:55 +0000 (09:11 +0300)]
mesa: remove FEATURE_draw_read_buffer define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:10:34 +0000 (09:10 +0300)]
mesa: remove FEATURE_dlist define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:08:56 +0000 (09:08 +0300)]
mesa: remove FEATURE_convolve define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:08:15 +0000 (09:08 +0300)]
mesa: remove FEATURE_colortable define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:06:56 +0000 (09:06 +0300)]
mesa: remove FEATURE_beginend define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:05:06 +0000 (09:05 +0300)]
mesa: remove FEATURE_attrib_stack define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:04:02 +0000 (09:04 +0300)]
mesa: remove FEATURE_arrayelt define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:02:42 +0000 (09:02 +0300)]
mesa: remove FEATURE_accum define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 06:00:23 +0000 (09:00 +0300)]
mesa: remove FEATURE_userclip define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 05:59:27 +0000 (08:59 +0300)]
mesa: remove FEATURE_texgen define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Oliver McFadden [Tue, 11 Sep 2012 05:58:24 +0000 (08:58 +0300)]
mesa: remove FEATURE_dispatch define.
Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Dave Airlie [Sat, 15 Sep 2012 03:22:30 +0000 (13:22 +1000)]
vbo: add a prefix to count_tessellated_primitives
Just to make it consistent with the rest of vbo, since it would
be an exported symbol anyways.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Sat, 15 Sep 2012 03:16:47 +0000 (13:16 +1000)]
mesa/fxt1: make fxt1_decode_1 static
No users outside this file.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Sat, 15 Sep 2012 03:14:27 +0000 (13:14 +1000)]
mesa/ati_fragshader: no need for opcodes to be global.
I can't see these in use anywhere outside this file.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Sat, 15 Sep 2012 03:14:02 +0000 (13:14 +1000)]
glsl: make tex_opcode_strs static
No reason for this to be global from what I can see
Reviewed-by: Matt Turner <mattst88@gmail.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Sat, 15 Sep 2012 03:09:42 +0000 (13:09 +1000)]
mesa/dxtn: make function pointers static
These aren't used outside thie file from what I can see.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Sat, 15 Sep 2012 03:09:05 +0000 (13:09 +1000)]
meta: make mem_ctx non-global.
I can't see any external users, and this is a global symbol,
Reviewed-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Sat, 15 Sep 2012 03:02:51 +0000 (13:02 +1000)]
glsl: make builtin_mem_ctx a static
This isn't used outside the generated file.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Sat, 15 Sep 2012 03:00:35 +0000 (13:00 +1000)]
ir_to_mesa: make some global variable static
nothing outside this file uses these.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Sat, 15 Sep 2012 02:55:49 +0000 (12:55 +1000)]
mesa: make global perm variable static const
this array doesn't look like it needs to be global or unconst.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Mike Frysinger [Tue, 11 Sep 2012 05:57:25 +0000 (01:57 -0400)]
mklib: clean up abi flags for x86 targets
The current code is duplicated in two places and relies on `uname` to
detect the flags. This is no good for cross-compiling, and the current
logic uses -m64 for the x32 ABI which breaks things.
Unify the code in one place, avoid `uname` completely, and add support
for the new x32 ABI.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Dave Airlie [Fri, 14 Sep 2012 00:13:01 +0000 (10:13 +1000)]
mesa/glsl: rename preprocess to glcpp_preprocess
This symbol with dricore escapes into the namespace, its too generic,
we should prefix it with something just to be nice.
Should be applied to stable + 9.0
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Fri, 14 Sep 2012 09:59:54 +0000 (19:59 +1000)]
glcpp: fix abuse of yylex
So glcpp tried to workaround yylex its own way, but failed,
do it properly.
This fixes another crash found after fixing the first crash.
this is a candidate for 9.0 and stable branches
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Fri, 14 Sep 2012 00:05:53 +0000 (10:05 +1000)]
mesa: use a prefix for the program lex
This avoids us making a global yylex symbol which will interfere will
all sorts of apps.
with libdricore which can't do symbol visibility currently we pollute
the namespace with this.
This is a candidate for 9.0 & stable branches.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Paul Berry [Thu, 13 Sep 2012 17:20:07 +0000 (10:20 -0700)]
meta: Refactor handling of GL_MULTISAMPLE.
In commit
055093e (meta: remove call to _meta_in_progress(), fix
multisample enable/disable), we created a meta_set_enable() function
that could be used by meta ops to enable and disable GL_MULTISAMPLE
even when the GLES API was in use (the GLES API doesn't support
GL_MULTISAMPLE; it behaves as if it is always enabled). This created
some unfortunate code duplication between meta_set_enable() and the
existing _mesa_set_enable() function.
This patch eliminates the duplication by creating a
_mesa_set_multisample() function, which is used by both meta ops and
_mesa_set_enable() to enable/disable GL_MULTISAMPLE.
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Anuj Phogat [Wed, 12 Sep 2012 00:32:49 +0000 (17:32 -0700)]
_mesa_meta_GenerateMipmap: Generate separate shaders for glsl 120 / 130
glsl version of _mesa_meta_GenerateMipmap() would require separate
shaders for glsl 120 and 130.
V2: Removed the code for integer textures as ARB is planning to
disallow automatic mipmap generation for integer textures.
NOTE: This is a candidate for stable branches.
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Anuj Phogat [Fri, 31 Aug 2012 20:51:39 +0000 (13:51 -0700)]
_mesa_meta_GenerateMipmap: Support all texture targets by generating shaders at runtime
glsl path of _mesa_meta_GenerateMipmap() function would require different fragment
shaders depending on the texture target. This patch adds the code to generate
appropriate fragment shader programs at run time.
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=54296
V2: Removed the code for integer textures as ARB is planning to
disallow automatic mipmap generation for integer textures.
Now using ralloc_asprintf in setup_glsl_generate_mipmap().
NOTE: This is a candidate for stable branches.
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Christian König [Fri, 14 Sep 2012 14:32:43 +0000 (16:32 +0200)]
radeon/llvm: Support frint on SI
Gets VDPAUs shaders working again.
Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Marek Olšák [Wed, 12 Sep 2012 22:41:26 +0000 (00:41 +0200)]
r600g: consolidate decompression code for the blitter
Marek Olšák [Sat, 8 Sep 2012 13:50:30 +0000 (15:50 +0200)]
r600g: do not require MSAA renderbuffer support if not asked for
to allow stencil-only sampler-only formats (like X24S8)
NOTE: This is a candidate for the stable branches.
Marek Olšák [Sat, 8 Sep 2012 13:30:24 +0000 (15:30 +0200)]
gallium/u_blitter: fix stencil-only blits
NOTE: This is a candidate for the stable branches.
Marek Olšák [Fri, 14 Sep 2012 03:34:23 +0000 (05:34 +0200)]
r300g: fix colormask with non-BGRA formats
NOTE: This is a candidate for the stable branches.
Alex Deucher [Thu, 13 Sep 2012 21:25:42 +0000 (17:25 -0400)]
r600g: reduce quant mode on evergreen+
Seems to have an affect on the allowable range of
values. Set evergreen+ to 1/256 to match 6xx/7xx.
fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=54877
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Marek Olšák [Thu, 13 Sep 2012 18:20:46 +0000 (20:20 +0200)]
radeonsi: don't use a staging resource for large transfers
It kills performance if the resource is linear.
Marek Olšák [Thu, 13 Sep 2012 18:20:46 +0000 (20:20 +0200)]
r600g: don't use a staging resource for large transfers
It kills performance if the resource is linear.
Marek Olšák [Mon, 10 Sep 2012 23:16:32 +0000 (01:16 +0200)]
r600g: convert the remnants of VGT state into immediate register writes/atoms v4
v2: Group vgt register together to avoid lockup
v3: Split multi primitive register and index bias register
v4: Bump R600_NUM_ATOMS
Signed-off-by: Marek Olšák <maraeo@gmail.com>
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Marek Olšák [Mon, 10 Sep 2012 19:59:38 +0000 (21:59 +0200)]
r600g: emit the primitive type and associated regs only if the type is changed
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Marek Olšák [Mon, 10 Sep 2012 19:38:09 +0000 (21:38 +0200)]
r600g: add clip_misc_state for clip registers emitted in draw_vbo
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Marek Olšák [Mon, 10 Sep 2012 18:38:03 +0000 (20:38 +0200)]
r600g: fix computing how much space is needed for a draw command
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Marek Olšák [Mon, 10 Sep 2012 18:04:19 +0000 (20:04 +0200)]
r600g: fix the number of CS dwords of cb_misc_state
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Marek Olšák [Mon, 10 Sep 2012 18:03:09 +0000 (20:03 +0200)]
r600g: atomize clip state
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Marek Olšák [Mon, 10 Sep 2012 17:41:39 +0000 (19:41 +0200)]
r600g: atomize blend color
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Marek Olšák [Mon, 10 Sep 2012 17:28:34 +0000 (19:28 +0200)]
r600g: atomize viewport state
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Marek Olšák [Mon, 10 Sep 2012 17:10:46 +0000 (19:10 +0200)]
r600g: atomize stencil ref state
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Marek Olšák [Mon, 10 Sep 2012 16:40:52 +0000 (18:40 +0200)]
r600g: remove unused state ID definitions
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Marek Olšák [Mon, 10 Sep 2012 03:56:46 +0000 (05:56 +0200)]
r600g: initialize the first CS just like any other CS
by reusing the CS initialization in r600_context_flush.
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Marek Olšák [Mon, 10 Sep 2012 03:43:12 +0000 (05:43 +0200)]
r600g: add support for geometry shader samplers and constant buffers
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Marek Olšák [Mon, 10 Sep 2012 02:53:33 +0000 (04:53 +0200)]
r600g: put sampler states and views into an array indexed by shader type
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Marek Olšák [Mon, 10 Sep 2012 02:06:20 +0000 (04:06 +0200)]
r600g: do fine-grained sampler state updates
Update only those sampler states which are changed in a shader stage,
instead of always updating all sampler states in the shader stage.
That requires keeping a bitmask of those states which are enabled, and those
states which are dirty at a given point (subset of enabled states).
This is similar to how sampler views, constant buffers, and vertex buffers
are handled.
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Marek Olšák [Sun, 9 Sep 2012 23:08:10 +0000 (01:08 +0200)]
r600g: consolidate set_viewport_state functions
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Marek Olšák [Sun, 9 Sep 2012 23:04:47 +0000 (01:04 +0200)]
r600g: consolidate set_sampler_views functions
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Marek Olšák [Sun, 9 Sep 2012 22:56:45 +0000 (00:56 +0200)]
r600g: put constant buffer state into an array indexed by shader type
to easily and robustly handle multiple shader stages
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Marek Olšák [Sun, 9 Sep 2012 22:34:37 +0000 (00:34 +0200)]
r600g: cleanup state function names
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Marek Olšák [Sun, 9 Sep 2012 22:28:46 +0000 (00:28 +0200)]
r600g: consolidate initialization of common state functions
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Marek Olšák [Sun, 9 Sep 2012 04:08:39 +0000 (06:08 +0200)]
r600g: simplify flushing
Based on the patch called "simplify and fix flushing and synchronization"
by Jerome Glisse.
Rebased, removed unneded code, simplified more and cleaned up.
Also, SH_ACTION_ENA is not set when changing shaders (hw doesn't seem
to need it). It's only used to flush constant buffers.
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Tom Stellard [Tue, 11 Sep 2012 19:24:32 +0000 (15:24 -0400)]
radeon/llvm: Fix lowering of vbuild
Some of the old AMDIL code was hard-coding subreg indices when creating
the VBUILD node, which was making it difficult to match the
vector_insert patterns.
Tom Stellard [Tue, 11 Sep 2012 19:21:09 +0000 (15:21 -0400)]
radeon/llvm: Support fmul on SI
Kenneth Graunke [Wed, 12 Sep 2012 05:14:59 +0000 (22:14 -0700)]
i965: Fix out-of-order sampler unit usage in ARB fragment programs.
ARB fragment programs use texture unit numbers directly, unlike GLSL
which has an extra indirection. If a fragment program only uses one
texture assigned to GL_TEXTURE1, SamplersUsed will only contain a single
bit, which would make us only upload a single surface/sampler state
entry. However, it needs to be the second entry.
Using _mesa_fls() instead of _mesa_bitcount() solves this. For ARB
programs, this makes num_samplers the ID of the highest texture unit
used. Since GLSL uses consecutive integers assigned by the linker,
_mesa_fls() should give the same result as _mesa_bitcount()..
Fixes a regression since
85e8e9e000732908b259a7e2cbc1724a1be2d447,
which caused GPU hangs in ETQW (and probably others), as well as
breaking piglit test fp-fragment-position.
v2: Add a comment, as suggested by Matt.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54098
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54179
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Tested-by: meng <mengmeng.meng@intel.com>
Kenneth Graunke [Wed, 12 Sep 2012 05:14:58 +0000 (22:14 -0700)]
mesa: Add a _mesa_fls() function to find the last bit set in a word.
ffs() finds the least significant bit set; _mesa_fls() finds the /most/
significant bit.
v2: Make it an inline function in imports.h, per Brian's suggestion.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Paul Berry [Thu, 30 Aug 2012 15:01:54 +0000 (08:01 -0700)]
i965/blorp: Fix offsets and width/height for stencil blits.
Fixes piglit test "framebuffer-blit-levels draw stencil".
NOTE: This is a candidate for stable release branches.
Acked-by: Eric Anholt <eric@anholt.net>
Paul Berry [Wed, 29 Aug 2012 21:26:48 +0000 (14:26 -0700)]
i965/blorp: Reduce alignment restrictions for stencil blits.
Previously, we aligned all stencil blit operations to multiples of the
size of a tile, since stencil buffers use W-tiling, and blorp has to
approximate this by configuring the 3D pipeline for Y-tiling and
swizzling coordinates.
However, this was unnecessarily conservative; it turns out that the
differences between W-tiling and Y-tiling are confined to 32-byte
sub-tiles within the 4k tiling pattern; the layout of these 32-byte
sub-tiles within the larger 4k tile is the same (8 sub-tiles across by
16 sub-tiles down, in column-major order). Therefore we only need to
align stencil blit operations to multiples of the sub-tile size.
Note: although the performance improvement of this change is probably
quite small, the fact that W-tiling and Y-tiling formats only differ
within 32-byte sub-tiles will be essential in a future patch to ensure
that stencil blits work correctly between parts of the miptree other
than level/layer 0. Making this change provides handy documentation
(and validation) of this fact.
NOTE: This is a candidate for stable release branches.
Acked-by: Eric Anholt <eric@anholt.net>
Paul Berry [Wed, 29 Aug 2012 22:11:49 +0000 (15:11 -0700)]
i965/blorp: don't reduce stencil alignment restrictions when multisampling.
When blitting to a stencil buffer, we need to align the rectangle we
send down the rendering pipeline, to account for the fact that the
stencil buffer uses a W-tiled layout, but we are configuring its
surface state as Y-tiled.
Previously, when the stencil buffer was multisampled, we assumed that
we could reduce the amount of alignment that was necessary, since each
pixel occupies a block of 2x2 or 4x2 samples in the stencil buffer.
That would have been correct if the coordinates we were adjusting were
measured in pixels. However, the conversion from pixel coordinates to
coordinates within the interleaved buffer has already been done;
therefore the full alignment restriction applies.
Note: the reason this mistake wasn't previously uncovered by piglit
tests is because it is being masked by another mistake: the blorp
engine is using overly conservative alignment restrictions when doing
stencil blits. The overly conservative alignment restrictions will be
removed in the patch that follows. Doing this fix now will prevent
the subsequent patch from introducing regressions.
NOTE: This is a candidate for stable release branches.
Acked-by: Eric Anholt <eric@anholt.net>
Paul Berry [Thu, 30 Aug 2012 18:16:44 +0000 (11:16 -0700)]
intel: Add map_stencil_as_y_tiled to intel_region_get_aligned_offset.
This patch modifies intel_region_get_aligned_offset() to make the
appropriate calculation when the blorp engine sets up a W-tiled
stencil buffer using a Y-tiled SURFACE_STATE.
NOTE: This is a candidate for stable release branches.
Acked-by: Eric Anholt <eric@anholt.net>
Paul Berry [Thu, 30 Aug 2012 17:57:03 +0000 (10:57 -0700)]
intel: Add map_stencil_as_y_tiled to intel_region_get_tile_masks.
When the blorp engine is performing a blit from one stencil buffer to
another, it sets up the surface state for these buffers as Y-tiled, so
it needs to be able to force intel_region_get_tile_masks() to return
the appropriate masks for a Y-tiled region.
NOTE: This is a candidate for stable release branches.
Acked-by: Eric Anholt <eric@anholt.net>
Paul Berry [Wed, 29 Aug 2012 23:04:15 +0000 (16:04 -0700)]
i965/blorp: Account for offsets when emitting SURFACE_STATE.
Fixes piglit tests "framebuffer-blit-levels {read,draw} depth".
NOTE: This is a candidate for stable release branches.
Reviewed-by: Eric Anholt <eric@anholt.net>
Paul Berry [Thu, 16 Aug 2012 17:06:08 +0000 (10:06 -0700)]
i965/blorp: Thread level and layer through brw_blorp_blit_miptrees().
Previously, when performing a blit using the blorp engine, we failed
to account for the level and layer of the source and destination. As
a result, all blits would occur between miplevel 0 and layer 0 of the
corresponding textures, regardless of which level/layer was bound to
the framebuffer.
This patch passes the correct level and layer through
brw_blorp_miptrees() into the brw_blorp_blit_params data structure.
Further patches in the series will adapt
gen{6,7}_blorp_emit_surface_state to make use of these parameters.
NOTE: This is a candidate for stable release branches.
Reviewed-by: Eric Anholt <eric@anholt.net>
Paul Berry [Mon, 10 Sep 2012 18:30:14 +0000 (11:30 -0700)]
i965/blorp: Don't create a dummy renderbuffer just to fetch image offsets.
This is unnecessary--the image offsets can be read directly out of the
miptree using intel_miptree_get_image_offset.
Paul Berry [Wed, 29 Aug 2012 19:16:06 +0000 (12:16 -0700)]
i965/blorp: store x and y offsets in brw_blorp_mip_info.
Currently, gen{6,7}_blorp_emit_surface_state assumes that the src and
dst surfaces are mapped to miplevel 0 and layer 0 (thus no surface
offset is required). This is a bug, since the user might try to blit
to and from levels/layers other than 0.
To fix this bug, it will not be sufficient to have
gen6_{6,7}_blorp_emit_surface_state look up the surface offset at the
time they set up the surface state, since these offsets will need to
be tweaked when blitting stencil buffers (due to the fact that stencil
buffer blits have to swizzle between W and Y tiling formats).
So, to pave the way for the bug fix, this patch causes the x and y
offsets to be computed during blit setup and stored in
brw_blorp_mip_info.
As a result of this change, brw_blorp_mip_info doesn't need to store
the level and layer anymore.
For consistency, this patch makes a similar change to the handling of
depth buffers when doing HiZ operations.
NOTE: This is a candidate for stable release branches.
Reviewed-by: Eric Anholt <eric@anholt.net>
Paul Berry [Wed, 29 Aug 2012 18:51:14 +0000 (11:51 -0700)]
i965/blorp: store surface width/height in brw_blorp_mip_info.
Previously, gen{6,7}_blorp_emit_surface_state would look up the width
and height of the surface at the time they set up the surface state,
and then tweak it if necessary (it's necessary when a W-tiled surface
is being mapped as Y-tiled). With this patch, we look up the width
and height when setting up the blit, and store them in
brw_blorp_mip_info. This allows us to do the necessary tweak in the
brw_blorp_blit_params constructor (where it makes more sense). It
also reduces the need to keep track of level and layer in
brw_blorp_mip_info, so that a future patch can eliminate them
entirely.
For consistency, this patch makes a similar change to the handling of
depth buffers when doing HiZ operations.
NOTE: This is a candidate for stable release branches.
Reviewed-by: Eric Anholt <eric@anholt.net>
Paul Berry [Wed, 15 Aug 2012 21:51:56 +0000 (14:51 -0700)]
i965/blorp: Change gl_renderbuffer* params to intel_renderbuffer*.
This makes it more convenient for blorp functions to get access to
Intel-specific data inside the renderbuffer objects.
NOTE: This is a candidate for stable release branches.
Reviewed-by: Eric Anholt <eric@anholt.net>
Paul Berry [Wed, 29 Aug 2012 19:04:30 +0000 (12:04 -0700)]
i965/blorp: Clarify why width/height must be adjusted for Gen6 IMS surfaces.
Also add a clarifying comment for why the width/height doesn't need
adjustment for Gen7.
NOTE: This is a candidate for stable release branches.
Reviewed-by: Eric Anholt <eric@anholt.net>