mesa: Changes to 'upstream-experimental'
Android.mk | 5
CleanSpec.mk | 7
VERSION | 2
configure.ac | 60
docs/GL3.txt | 56
docs/autoconf.html | 54
docs/index.html | 6
docs/relnotes.html | 1
docs/relnotes/10.2.6.html | 118
docs/relnotes/10.3.html | 15
include/GL/gl_mangle.h | 139
include/GL/glcorearb.h | 3589 ++++++++++
include/GL/glext.h | 380 +
include/GL/glxext.h | 11
include/GL/wglext.h | 11
include/c11/threads_win32.h | 2
install-lib-links.mk | 2
scons/custom.py | 3
src/Makefile.am | 13
src/egl/drivers/dri2/Android.mk | 4
src/egl/drivers/dri2/egl_dri2.c | 39
src/egl/drivers/dri2/platform_android.c | 4
src/egl/main/Android.mk | 52
src/egl/main/Makefile.am | 40
src/egl/main/Makefile.sources | 38
src/egl/main/SConscript | 21
src/gallium/Android.mk | 22
src/gallium/Makefile.am | 174
src/gallium/SConscript | 42
src/gallium/auxiliary/Makefile.sources | 1
src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 4
src/gallium/auxiliary/os/os_misc.c | 64
src/gallium/auxiliary/os/os_misc.h | 7
src/gallium/auxiliary/os/os_process.c | 7
src/gallium/auxiliary/pipe-loader/pipe_loader.h | 2
src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c | 2
src/gallium/auxiliary/tgsi/tgsi_info.c | 4
src/gallium/auxiliary/tgsi/tgsi_ureg.c | 2
src/gallium/auxiliary/tgsi/tgsi_util.c | 2
src/gallium/auxiliary/util/u_blitter.c | 2
src/gallium/auxiliary/util/u_format.c | 4
src/gallium/auxiliary/util/u_format.csv | 6
src/gallium/auxiliary/util/u_format.h | 12
src/gallium/auxiliary/util/u_format_bptc.c | 26
src/gallium/auxiliary/util/u_format_bptc.h | 109
src/gallium/auxiliary/util/u_format_pack.py | 2
src/gallium/auxiliary/util/u_format_table.py | 3
src/gallium/auxiliary/util/u_inlines.h | 3
src/gallium/auxiliary/util/u_math.h | 62
src/gallium/docs/source/screen.rst | 12
src/gallium/docs/source/tgsi.rst | 12
src/gallium/drivers/Makefile.am | 100
src/gallium/drivers/freedreno/Android.mk | 44
src/gallium/drivers/freedreno/Makefile.am | 2
src/gallium/drivers/freedreno/freedreno_screen.c | 18
src/gallium/drivers/i915/i915_screen.c | 25
src/gallium/drivers/i915/i915_winsys.h | 5
src/gallium/drivers/ilo/Makefile.sources | 1
src/gallium/drivers/ilo/ilo_3d_pipeline_gen6.c | 34
src/gallium/drivers/ilo/ilo_blitter_blt.c | 44
src/gallium/drivers/ilo/ilo_blitter_rectlist.c | 12
src/gallium/drivers/ilo/ilo_common.h | 2
src/gallium/drivers/ilo/ilo_gpe.h | 13
src/gallium/drivers/ilo/ilo_gpe_gen6.c | 279
src/gallium/drivers/ilo/ilo_gpe_gen7.c | 70
src/gallium/drivers/ilo/ilo_layout.c | 1387 +++
src/gallium/drivers/ilo/ilo_layout.h | 292
src/gallium/drivers/ilo/ilo_resource.c | 1381 ---
src/gallium/drivers/ilo/ilo_resource.h | 54
src/gallium/drivers/ilo/ilo_screen.c | 27
src/gallium/drivers/ilo/ilo_state.c | 10
src/gallium/drivers/ilo/ilo_transfer.c | 120
src/gallium/drivers/llvmpipe/lp_screen.c | 27
src/gallium/drivers/nouveau/Android.mk | 9
src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp | 6
src/gallium/drivers/nouveau/nv30/nv30_screen.c | 22
src/gallium/drivers/nouveau/nv50/nv50_formats.c | 7
src/gallium/drivers/nouveau/nv50/nv50_screen.c | 28
src/gallium/drivers/nouveau/nvc0/nvc0_context.h | 3
src/gallium/drivers/nouveau/nvc0/nvc0_query.c | 61
src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 28
src/gallium/drivers/nouveau/nvc0/nvc0_surface.c | 2
src/gallium/drivers/r300/Android.mk | 3
src/gallium/drivers/r300/Makefile.am | 3
src/gallium/drivers/r300/compiler/radeon_emulate_loops.c | 34
src/gallium/drivers/r300/compiler/radeon_pair_regalloc.c | 2
src/gallium/drivers/r300/compiler/tests/rc_test_helpers.c | 2
src/gallium/drivers/r300/r300_screen.c | 13
src/gallium/drivers/r600/Android.mk | 2
src/gallium/drivers/r600/evergreen_compute.c | 8
src/gallium/drivers/r600/evergreen_state.c | 115
src/gallium/drivers/r600/evergreend.h | 1
src/gallium/drivers/r600/r600_blit.c | 1
src/gallium/drivers/r600/r600_isa.h | 9
src/gallium/drivers/r600/r600_pipe.c | 25
src/gallium/drivers/r600/r600_pipe.h | 7
src/gallium/drivers/r600/r600_shader.c | 21
src/gallium/drivers/r600/r600_state.c | 31
src/gallium/drivers/r600/r600_state_common.c | 155
src/gallium/drivers/r600/r600_uvd.c | 2
src/gallium/drivers/r600/r600d.h | 11
src/gallium/drivers/r600/sb/sb_bc_finalize.cpp | 119
src/gallium/drivers/r600/sb/sb_bc_parser.cpp | 13
src/gallium/drivers/r600/sb/sb_pass.h | 3
src/gallium/drivers/radeon/Android.mk | 38
src/gallium/drivers/radeon/r600_buffer_common.c | 20
src/gallium/drivers/radeon/r600_pipe_common.c | 113
src/gallium/drivers/radeon/r600_pipe_common.h | 13
src/gallium/drivers/radeonsi/Android.mk | 2
src/gallium/drivers/radeonsi/si_blit.c | 8
src/gallium/drivers/radeonsi/si_compute.c | 30
src/gallium/drivers/radeonsi/si_descriptors.c | 13
src/gallium/drivers/radeonsi/si_dma.c | 6
src/gallium/drivers/radeonsi/si_pipe.c | 22
src/gallium/drivers/radeonsi/si_pipe.h | 1
src/gallium/drivers/radeonsi/si_shader.c | 4
src/gallium/drivers/radeonsi/si_state.c | 71
src/gallium/drivers/radeonsi/si_state.h | 17
src/gallium/drivers/radeonsi/si_state_draw.c | 105
src/gallium/drivers/radeonsi/si_uvd.c | 2
src/gallium/drivers/rbug/rbug_context.c | 52
src/gallium/drivers/rbug/rbug_core.c | 5
src/gallium/drivers/rbug/rbug_objects.c | 9
src/gallium/drivers/softpipe/sp_screen.c | 27
src/gallium/drivers/svga/include/svga3d_surfacedefs.h | 5
src/gallium/drivers/svga/include/svga_reg.h | 10
src/gallium/drivers/svga/svga_resource.c | 43
src/gallium/drivers/svga/svga_resource_texture.c | 10
src/gallium/drivers/svga/svga_screen.c | 14
src/gallium/drivers/svga/svga_screen_cache.c | 4
src/gallium/drivers/svga/svga_surface.c | 2
src/gallium/drivers/svga/svga_winsys.h | 12
src/gallium/drivers/vc4/vc4_context.c | 57
src/gallium/drivers/vc4/vc4_context.h | 5
src/gallium/drivers/vc4/vc4_draw.c | 2
src/gallium/drivers/vc4/vc4_program.c | 411 -
src/gallium/drivers/vc4/vc4_qir.c | 1
src/gallium/drivers/vc4/vc4_qir.h | 11
src/gallium/drivers/vc4/vc4_qpu_emit.c | 7
src/gallium/drivers/vc4/vc4_resource.c | 14
src/gallium/drivers/vc4/vc4_screen.c | 46
src/gallium/drivers/vc4/vc4_screen.h | 3
src/gallium/drivers/vc4/vc4_simulator.c | 4
src/gallium/drivers/vc4/vc4_simulator_validate_shaders.c | 1
src/gallium/include/pipe/p_defines.h | 7
src/gallium/include/pipe/p_format.h | 5
src/gallium/include/pipe/p_shader_tokens.h | 5
src/gallium/state_trackers/Makefile.am | 66
src/gallium/state_trackers/clover/api/program.cpp | 14
src/gallium/state_trackers/clover/api/queue.cpp | 6
src/gallium/state_trackers/clover/core/kernel.cpp | 3
src/gallium/state_trackers/clover/core/kernel.hpp | 1
src/gallium/state_trackers/clover/core/program.cpp | 9
src/gallium/state_trackers/clover/core/program.hpp | 5
src/gallium/state_trackers/clover/llvm/invocation.cpp | 16
src/gallium/state_trackers/clover/util/pointer.hpp | 49
src/gallium/state_trackers/dri/Makefile.am | 5
src/gallium/state_trackers/dri/Makefile.sources | 2
src/gallium/state_trackers/dri/SConscript | 5
src/gallium/state_trackers/dri/dri2.c | 4
src/gallium/state_trackers/dri/dri_query_renderer.c | 73
src/gallium/state_trackers/dri/dri_query_renderer.h | 9
src/gallium/state_trackers/dri/drisw.c | 2
src/gallium/state_trackers/egl/android/native_android.cpp | 4
src/gallium/state_trackers/vdpau/bitmap.c | 4
src/gallium/state_trackers/vdpau/decode.c | 4
src/gallium/state_trackers/vdpau/device.c | 21
src/gallium/state_trackers/vdpau/mixer.c | 4
src/gallium/state_trackers/vdpau/output.c | 4
src/gallium/state_trackers/vdpau/presentation.c | 4
src/gallium/state_trackers/vdpau/surface.c | 4
src/gallium/state_trackers/vdpau/vdpau_private.h | 12
src/gallium/targets/Makefile.am | 71
src/gallium/targets/egl-static/Android.mk | 7
src/gallium/targets/haiku-softpipe/SConscript | 1
src/gallium/winsys/Makefile.am | 77
src/gallium/winsys/freedreno/drm/Android.mk | 37
src/gallium/winsys/i915/drm/Android.mk | 5
src/gallium/winsys/i915/drm/i915_drm_winsys.c | 12
src/gallium/winsys/intel/drm/Android.mk | 5
src/gallium/winsys/intel/drm/intel_drm_winsys.c | 6
src/gallium/winsys/intel/intel_winsys.h | 4
src/gallium/winsys/nouveau/drm/Android.mk | 5
src/gallium/winsys/radeon/drm/Android.mk | 4
src/gallium/winsys/radeon/drm/radeon_drm_cs.c | 6
src/gallium/winsys/radeon/drm/radeon_drm_winsys.c | 10
src/gallium/winsys/radeon/drm/radeon_drm_winsys.h | 1
src/gallium/winsys/svga/drm/Android.mk | 3
src/gallium/winsys/svga/drm/vmw_context.c | 19
src/gallium/winsys/svga/drm/vmw_screen.h | 1
src/gallium/winsys/svga/drm/vmw_screen_ioctl.c | 17
src/gallium/winsys/svga/drm/vmw_screen_svga.c | 24
src/glsl/Android.mk | 2
src/glsl/builtin_functions.cpp | 48
src/glsl/glcpp/glcpp-parse.y | 3
src/glsl/glcpp/tests/glcpp-test | 4
src/glsl/glcpp/tests/glcpp-test-cr-lf | 4
src/glsl/glsl_parser_extras.cpp | 1
src/glsl/glsl_parser_extras.h | 2
src/glsl/ir.cpp | 8
src/glsl/ir.h | 4
src/glsl/ir_constant_expression.cpp | 4
src/glsl/ir_set_program_inouts.cpp | 4
src/glsl/ir_validate.cpp | 4
src/glsl/link_uniform_initializers.cpp | 27
src/glsl/link_uniforms.cpp | 5
src/glsl/linker.cpp | 2
src/glsl/linker.h | 6
src/glsl/opt_vectorize.cpp | 13
src/glsl/tests/copy_constant_to_storage_tests.cpp | 28
src/glsl/tests/set_uniform_initializer_tests.cpp | 11
src/glsl/tests/uniform_initializer_utils.cpp | 7
src/glsl/tests/uniform_initializer_utils.h | 3
src/glx/dri2_query_renderer.c | 94
src/glx/drisw_glx.c | 53
src/glx/drisw_priv.h | 72
src/loader/Android.mk | 10
src/mapi/Makefile.am | 184
src/mapi/es1api/Makefile.am | 64
src/mapi/es2api/Makefile.am | 69
src/mapi/glapi/Makefile.am | 64
src/mapi/glapi/Makefile.sources | 22
src/mapi/glapi/gen/ARB_texture_barrier.xml | 13
src/mapi/glapi/gen/Makefile.am | 1
src/mapi/glapi/gen/gl_API.xml | 13
src/mapi/glapi/tests/Makefile.am | 20
src/mapi/shared-glapi/Makefile.am | 34
src/mapi/shared-glapi/tests/Makefile.am | 19
src/mesa/Android.libmesa_dricore.mk | 1
src/mesa/Makefile.am | 14
src/mesa/Makefile.sources | 1
src/mesa/drivers/common/meta.c | 142
src/mesa/drivers/common/meta.h | 17
src/mesa/drivers/dri/Android.mk | 6
src/mesa/drivers/dri/common/Android.mk | 4
src/mesa/drivers/dri/common/utils.c | 4
src/mesa/drivers/dri/i915/Android.mk | 8
src/mesa/drivers/dri/i915/Makefile.sources | 4
src/mesa/drivers/dri/i915/intel_screen.c | 3
src/mesa/drivers/dri/i965/Android.mk | 11
src/mesa/drivers/dri/i965/Makefile.sources | 15
src/mesa/drivers/dri/i965/brw_blorp.cpp | 2
src/mesa/drivers/dri/i965/brw_blorp.h | 18
src/mesa/drivers/dri/i965/brw_blorp_blit_eu.cpp | 6
src/mesa/drivers/dri/i965/brw_blorp_clear.cpp | 620 -
src/mesa/drivers/dri/i965/brw_cfg.cpp | 25
src/mesa/drivers/dri/i965/brw_cfg.h | 22
src/mesa/drivers/dri/i965/brw_clear.c | 12
src/mesa/drivers/dri/i965/brw_context.c | 71
src/mesa/drivers/dri/i965/brw_context.h | 39
src/mesa/drivers/dri/i965/brw_curbe.c | 22
src/mesa/drivers/dri/i965/brw_dead_control_flow.cpp | 3
src/mesa/drivers/dri/i965/brw_defines.h | 18
src/mesa/drivers/dri/i965/brw_disasm.c | 1
src/mesa/drivers/dri/i965/brw_draw.c | 55
src/mesa/drivers/dri/i965/brw_eu.c | 2
src/mesa/drivers/dri/i965/brw_eu.h | 10
src/mesa/drivers/dri/i965/brw_eu_compact.c | 430 +
src/mesa/drivers/dri/i965/brw_eu_emit.c | 199
src/mesa/drivers/dri/i965/brw_fs.cpp | 252
src/mesa/drivers/dri/i965/brw_fs.h | 107
src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp | 4
src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp | 96
src/mesa/drivers/dri/i965/brw_fs_cse.cpp | 4
src/mesa/drivers/dri/i965/brw_fs_dead_code_eliminate.cpp | 5
src/mesa/drivers/dri/i965/brw_fs_fp.cpp | 2
src/mesa/drivers/dri/i965/brw_fs_generator.cpp | 348
src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp | 51
src/mesa/drivers/dri/i965/brw_fs_peephole_predicated_break.cpp | 9
src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp | 2
src/mesa/drivers/dri/i965/brw_fs_saturate_propagation.cpp | 5
src/mesa/drivers/dri/i965/brw_fs_sel_peephole.cpp | 4
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 295
src/mesa/drivers/dri/i965/brw_meta_fast_clear.c | 706 +
src/mesa/drivers/dri/i965/brw_misc_state.c | 4
src/mesa/drivers/dri/i965/brw_shader.cpp | 6
src/mesa/drivers/dri/i965/brw_state.h | 3
src/mesa/drivers/dri/i965/brw_surface_formats.c | 5
src/mesa/drivers/dri/i965/brw_tex_layout.c | 62
src/mesa/drivers/dri/i965/brw_vec4.cpp | 184
src/mesa/drivers/dri/i965/brw_vec4.h | 74
src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp | 6
src/mesa/drivers/dri/i965/brw_vec4_cse.cpp | 4
src/mesa/drivers/dri/i965/brw_vec4_generator.cpp | 247
src/mesa/drivers/dri/i965/brw_vec4_gs.c | 7
src/mesa/drivers/dri/i965/brw_vec4_gs_visitor.cpp | 18
src/mesa/drivers/dri/i965/brw_vec4_live_variables.cpp | 51
src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp | 2
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 165
src/mesa/drivers/dri/i965/brw_vec4_vp.cpp | 21
src/mesa/drivers/dri/i965/brw_vs.c | 6
src/mesa/drivers/dri/i965/brw_vs_surface_state.c | 10
src/mesa/drivers/dri/i965/brw_wm.c | 5
src/mesa/drivers/dri/i965/gen6_blorp.cpp | 114
src/mesa/drivers/dri/i965/gen6_clip_state.c | 8
src/mesa/drivers/dri/i965/gen6_depth_state.c | 249
src/mesa/drivers/dri/i965/gen6_sf_state.c | 5
src/mesa/drivers/dri/i965/gen6_surface_state.c | 145
src/mesa/drivers/dri/i965/gen6_vs_state.c | 8
src/mesa/drivers/dri/i965/gen6_wm_state.c | 19
src/mesa/drivers/dri/i965/gen7_blorp.cpp | 2
src/mesa/drivers/dri/i965/gen7_sf_state.c | 6
src/mesa/drivers/dri/i965/gen7_wm_state.c | 24
src/mesa/drivers/dri/i965/gen7_wm_surface_state.c | 6
src/mesa/drivers/dri/i965/gen8_fs_generator.cpp | 1299 ---
src/mesa/drivers/dri/i965/gen8_generator.cpp | 620 -
src/mesa/drivers/dri/i965/gen8_generator.h | 196
src/mesa/drivers/dri/i965/gen8_instruction.c | 458 -
src/mesa/drivers/dri/i965/gen8_instruction.h | 418 -
src/mesa/drivers/dri/i965/gen8_ps_state.c | 20
src/mesa/drivers/dri/i965/gen8_sf_state.c | 5
src/mesa/drivers/dri/i965/gen8_vec4_generator.cpp | 921 --
src/mesa/drivers/dri/i965/intel_asm_annotation.c | 10
src/mesa/drivers/dri/i965/intel_asm_annotation.h | 2
src/mesa/drivers/dri/i965/intel_debug.c | 1
src/mesa/drivers/dri/i965/intel_debug.h | 1
src/mesa/drivers/dri/i965/intel_extensions.c | 7
src/mesa/drivers/dri/i965/intel_fbo.c | 9
src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 52
src/mesa/drivers/dri/i965/intel_mipmap_tree.h | 67
src/mesa/drivers/dri/i965/intel_screen.c | 4
src/mesa/drivers/dri/i965/intel_tex.c | 3
src/mesa/drivers/dri/i965/intel_tex_copy.c | 21
src/mesa/drivers/dri/i965/intel_tex_image.c | 3
src/mesa/drivers/dri/i965/intel_tex_subimage.c | 3
src/mesa/drivers/dri/i965/intel_tex_validate.c | 3
src/mesa/drivers/dri/nouveau/.dir-locals.el | 8
src/mesa/drivers/dri/nouveau/nouveau_bufferobj.c | 1
src/mesa/drivers/dri/nouveau/nouveau_driver.c | 34
src/mesa/drivers/dri/nouveau/nouveau_driver.h | 5
src/mesa/drivers/dri/nouveau/nouveau_screen.c | 82
src/mesa/drivers/dri/nouveau/nouveau_state.c | 1
src/mesa/drivers/dri/nouveau/nouveau_texture.c | 23
src/mesa/drivers/dri/nouveau/nouveau_util.h | 15
src/mesa/drivers/dri/radeon/radeon_common_context.c | 53
src/mesa/drivers/dri/radeon/radeon_common_context.h | 4
src/mesa/drivers/dri/radeon/radeon_screen.c | 68
src/mesa/drivers/dri/radeon/radeon_screen.h | 2
src/mesa/drivers/dri/swrast/swrast.c | 73
src/mesa/drivers/haiku/swrast/SConscript | 1
src/mesa/main/buffers.c | 2
src/mesa/main/condrender.c | 23
src/mesa/main/copyimage.c | 8
src/mesa/main/extensions.c | 7
src/mesa/main/format_info.py | 7
src/mesa/main/formats.c | 20
src/mesa/main/formats.csv | 6
src/mesa/main/formats.h | 6
src/mesa/main/glformats.c | 10
src/mesa/main/mipmap.c | 13
src/mesa/main/mtypes.h | 3
src/mesa/main/pixelstore.c | 42
src/mesa/main/pixelstore.h | 8
src/mesa/main/shared.c | 2
src/mesa/main/tests/enum_strings.cpp | 4
src/mesa/main/texcompress.c | 34
src/mesa/main/texcompress_bptc.c | 1649 ++++
src/mesa/main/texcompress_bptc.h | 44
src/mesa/main/texformat.c | 8
src/mesa/main/texgetimage.c | 9
src/mesa/main/teximage.c | 64
src/mesa/main/teximage.h | 6
src/mesa/main/texparam.c | 6
src/mesa/main/texstore.c | 40
src/mesa/main/texstore.h | 9
src/mesa/main/uniform_query.cpp | 4
src/mesa/main/varray.c | 4
src/mesa/main/varray.h | 4
src/mesa/program/ir_to_mesa.cpp | 7
src/mesa/program/register_allocate.c | 145
src/mesa/program/register_allocate.h | 5
src/mesa/state_tracker/st_cb_condrender.c | 20
src/mesa/state_tracker/st_cb_texture.c | 8
src/mesa/state_tracker/st_extensions.c | 13
src/mesa/state_tracker/st_format.c | 40
src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 68
src/mesa/swrast/s_texfetch.c | 24
src/mesa/vbo/vbo_exec_array.c | 6
378 files changed, 15439 insertions(+), 9328 deletions(-)
New commits:
commit 04c3c0368252db0000837e054ee1e995f4940381
Author: Carl Worth <cworth@cworth.org>
Date: Thu Aug 21 08:36:46 2014 -0700
Increment version to 10.3.0-rc1
diff --git a/VERSION b/VERSION
index 75a04c3..9cad0c5 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-10.3.0-devel
+10.3.0-rc1
commit 0fb221065eff3788e9bf607a5cf39bd0409740be
Author: Glenn Kennard <glenn.kennard@gmail.com>
Date: Wed Aug 20 21:55:37 2014 +0200
r600g: Fix flat/smooth shade state toggle
If only the flat/smooth shade state changed between
two render calls the prior code would miss updating the
hardware state.
Also add check for sprite coord, potentially same type
of issue otherwise for it.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=81967
Signed-off-by: Glenn Kennard <glenn.kennard@gmail.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c
index 7594d0e..028d800 100644
--- a/src/gallium/drivers/r600/r600_state_common.c
+++ b/src/gallium/drivers/r600/r600_state_common.c
@@ -1227,7 +1227,9 @@ static bool r600_update_derived_state(struct r600_context *rctx)
if (unlikely(!rctx->ps_shader->current))
return false;
- if (unlikely(ps_dirty || rctx->pixel_shader.shader != rctx->ps_shader->current)) {
+ if (unlikely(ps_dirty || rctx->pixel_shader.shader != rctx->ps_shader->current ||
+ rctx->rasterizer->sprite_coord_enable != rctx->ps_shader->current->sprite_coord_enable ||
+ rctx->rasterizer->flatshade != rctx->ps_shader->current->flatshade)) {
if (rctx->cb_misc_state.nr_ps_color_outputs != rctx->ps_shader->current->nr_ps_color_outputs) {
rctx->cb_misc_state.nr_ps_color_outputs = rctx->ps_shader->current->nr_ps_color_outputs;
commit bf7a60f41d897be4d9804ba7c46633e38501ffe7
Author: Tom Stellard <thomas.stellard@amd.com>
Date: Tue Aug 19 16:27:38 2014 -0700
r600g/compute: Don't initialize vertex_buffer_state masks to 0x2
cs_vertex_buffer_state.enabled_mask and
cs_vertex_buffer_state.dirty_mask are both updated when
r600_set_constant_buffer() is called, so we don't need to manually
update these values.
This fixes a crash with OpenCL programs that have a kernel with no
arguments.
https://bugs.freedesktop.org/show_bug.cgi?id=82671
CC: "10.2" <mesa-stable@lists.freedesktop.org>
diff --git a/src/gallium/drivers/r600/evergreen_compute.c b/src/gallium/drivers/r600/evergreen_compute.c
index 9e3404f..38b78c7 100644
--- a/src/gallium/drivers/r600/evergreen_compute.c
+++ b/src/gallium/drivers/r600/evergreen_compute.c
@@ -892,9 +892,6 @@ void evergreen_init_compute_state_functions(struct r600_context *ctx)
ctx->b.b.set_global_binding = evergreen_set_global_binding;
ctx->b.b.launch_grid = evergreen_launch_grid;
- /* We always use at least one vertex buffer for parameters (id = 1)*/
- ctx->cs_vertex_buffer_state.enabled_mask =
- ctx->cs_vertex_buffer_state.dirty_mask = 0x2;
}
struct pipe_resource *r600_compute_global_buffer_create(
commit a9f0b08bacc9422bf98ce14d97b6c60a1b80df04
Author: Tom Stellard <thomas.stellard@amd.com>
Date: Tue Aug 19 16:07:24 2014 -0700
r600g/compute: Use the first parameter in evergreen_set_global_binding()
diff --git a/src/gallium/drivers/r600/evergreen_compute.c b/src/gallium/drivers/r600/evergreen_compute.c
index acc1b71..9e3404f 100644
--- a/src/gallium/drivers/r600/evergreen_compute.c
+++ b/src/gallium/drivers/r600/evergreen_compute.c
@@ -648,6 +648,7 @@ static void evergreen_set_global_binding(
struct compute_memory_pool *pool = ctx->screen->global_pool;
struct r600_resource_global **buffers =
(struct r600_resource_global **)resources;
+ unsigned i;
COMPUTE_DBG(ctx->screen, "*** evergreen_set_global_binding first = %u n = %u\n",
first, n);
@@ -659,7 +660,7 @@ static void evergreen_set_global_binding(
/* We mark these items for promotion to the pool if they
* aren't already there */
- for (unsigned i = 0; i < n; i++) {
+ for (i = first; i < first + n; i++) {
struct compute_memory_item *item = buffers[i]->chunk;
if (!is_item_in_pool(item))
@@ -671,7 +672,7 @@ static void evergreen_set_global_binding(
return;
}
- for (unsigned i = 0; i < n; i++)
+ for (i = first; i < first + n; i++)
{
uint32_t buffer_offset;
uint32_t handle;
commit 43d954342e02a2bd719e543d567fd6c43b3e5367
Author: Tom Stellard <thomas.stellard@amd.com>
Date: Tue Aug 19 14:04:32 2014 -0700
pipe-loader: Fix memory leak v2
v2:
- Change driver_name to char*
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
CC: "10.2" <mesa-stable@lists.freedesktop.org>
diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader.h b/src/gallium/auxiliary/pipe-loader/pipe_loader.h
index 8ff00b1..6127a6a 100644
--- a/src/gallium/auxiliary/pipe-loader/pipe_loader.h
+++ b/src/gallium/auxiliary/pipe-loader/pipe_loader.h
@@ -67,7 +67,7 @@ struct pipe_loader_device {
} pci;
} u; /**< Discriminated by \a type */
- const char *driver_name;
+ char *driver_name;
const struct pipe_loader_ops *ops;
};
diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
index 1bbaf19..88056f5 100644
--- a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
+++ b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
@@ -256,7 +256,7 @@ pipe_loader_drm_release(struct pipe_loader_device **dev)
util_dl_close(ddev->lib);
close(ddev->fd);
- /* XXX: Free ddev->base.driver_name - strdup at loader_get_driver_for_fd */
+ FREE(ddev->base.driver_name);
FREE(ddev);
*dev = NULL;
}
commit 8109664dedee588dc98c9a7c25bd40c0eb56c35f
Author: Tom Stellard <thomas.stellard@amd.com>
Date: Tue Aug 19 13:18:19 2014 -0700
radeon: Add work-around for missing Hainan support in clang < 3.6 v2
v2:
- Add missing break.
https://bugs.freedesktop.org/show_bug.cgi?id=82709
CC: "10.2" <mesa-stable@lists.freedesktop.org>
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c b/src/gallium/drivers/radeon/r600_pipe_common.c
index a6bba8f..dec8063 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.c
+++ b/src/gallium/drivers/radeon/r600_pipe_common.c
@@ -499,7 +499,20 @@ static int r600_get_compute_param(struct pipe_screen *screen,
//TODO: select these params by asic
switch (param) {
case PIPE_COMPUTE_CAP_IR_TARGET: {
- const char *gpu = r600_get_llvm_processor_name(rscreen->family);
+ const char *gpu;
+ switch(rscreen->family) {
+ /* Clang < 3.6 is missing Hainan in its list of
+ * GPUs, so we need to use the name of a similar GPU.
+ */
+#if HAVE_LLVM < 0x0306
+ case CHIP_HAINAN:
+ gpu = "oland";
+ break;
+#endif
+ default:
+ gpu = r600_get_llvm_processor_name(rscreen->family);
+ break;
+ }
if (ret) {
sprintf(ret, "%s-r600--", gpu);
}
commit 3ba225c1ab3682fcba33c8b4103afed22e3b3621
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu Aug 21 06:30:22 2014 -0400
st/clover: Fix build against LLVM SVN >= r215967 v2
v2: Tom Stellard
- Properly destroy the Module
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp b/src/gallium/state_trackers/clover/llvm/invocation.cpp
index 5d2efc4..d351bc5 100644
--- a/src/gallium/state_trackers/clover/llvm/invocation.cpp
+++ b/src/gallium/state_trackers/clover/llvm/invocation.cpp
@@ -234,7 +234,11 @@ namespace {
memcpy(address_spaces, c.getTarget().getAddressSpaceMap(),
sizeof(address_spaces));
+#if HAVE_LLVM >= 0x0306
+ return act.takeModule().release();
+#else
return act.takeModule();
+#endif
}
void
@@ -415,13 +419,21 @@ clover::compile_program_llvm(const compat::string &source,
internalize_functions(mod, kernels);
+ module m;
// Build the clover::module
switch (ir) {
case PIPE_SHADER_IR_TGSI:
//XXX: Handle TGSI
assert(0);
- return module();
+ m = module();
+ break;
default:
- return build_module_llvm(mod, kernels, address_spaces);
+ m = build_module_llvm(mod, kernels, address_spaces);
+ break;
}
+#if HAVE_LLVM >= 0x0306
+ // LLVM 3.6 and newer, the user takes ownership of the module.
+ delete mod;
+#endif
+ return m;
}
commit d682ebec0bb8716dfa7747c46d5bfad732ead06c
Author: Kenneth Graunke <kenneth@whitecape.org>
Date: Mon Aug 18 17:20:21 2014 -0700
i965,meta: Stop unlocking the texture to try and prevent deadlocks.
Unlocking the texture is not safe: another thread could come in and grab
it. Now that we use a recursive mutex, this should work. This also fixes
texture lock deadlocks in the new meta fast clear path.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Tested-by: Chris Forbes <chrisf@ijw.co.nz>
diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index 4851286..90befd4 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -2773,7 +2773,6 @@ copytexsubimage_using_blit_framebuffer(struct gl_context *ctx, GLuint dims,
GLint x, GLint y,
GLsizei width, GLsizei height)
{
- struct gl_texture_object *texObj = texImage->TexObject;
GLuint fbo;
bool success = false;
GLbitfield mask;
@@ -2782,8 +2781,6 @@ copytexsubimage_using_blit_framebuffer(struct gl_context *ctx, GLuint dims,
if (!ctx->Extensions.ARB_framebuffer_object)
return false;
- _mesa_unlock_texture(ctx, texObj);
-
_mesa_meta_begin(ctx, MESA_META_ALL & ~MESA_META_DRAW_BUFFERS);
_mesa_GenFramebuffers(1, &fbo);
@@ -2834,7 +2831,6 @@ copytexsubimage_using_blit_framebuffer(struct gl_context *ctx, GLuint dims,
success = mask == 0x0;
out:
- _mesa_lock_texture(ctx, texObj);
_mesa_DeleteFramebuffers(1, &fbo);
_mesa_meta_end(ctx);
return success;
@@ -2852,7 +2848,6 @@ _mesa_meta_CopyTexSubImage(struct gl_context *ctx, GLuint dims,
GLint x, GLint y,
GLsizei width, GLsizei height)
{
- struct gl_texture_object *texObj = texImage->TexObject;
GLenum format, type;
GLint bpp;
void *buf;
@@ -2897,8 +2892,6 @@ _mesa_meta_CopyTexSubImage(struct gl_context *ctx, GLuint dims,
return;
}
- _mesa_unlock_texture(ctx, texObj); /* need to unlock first */
-
/*
* Read image from framebuffer (disable pixel transfer ops)
*/
@@ -2927,8 +2920,6 @@ _mesa_meta_CopyTexSubImage(struct gl_context *ctx, GLuint dims,
_mesa_meta_end(ctx);
- _mesa_lock_texture(ctx, texObj); /* re-lock */
-
free(buf);
}
@@ -3206,12 +3197,9 @@ _mesa_meta_GetTexImage(struct gl_context *ctx,
struct gl_texture_image *texImage)
{
if (_mesa_is_format_compressed(texImage->TexFormat)) {
- struct gl_texture_object *texObj = texImage->TexObject;
GLuint slice;
bool result;
- /* Need to unlock the texture here to prevent deadlock... */
- _mesa_unlock_texture(ctx, texObj);
for (slice = 0; slice < texImage->Depth; slice++) {
void *dst;
if (texImage->TexObject->Target == GL_TEXTURE_2D_ARRAY
@@ -3236,8 +3224,6 @@ _mesa_meta_GetTexImage(struct gl_context *ctx,
if (!result)
break;
}
- /* ... and relock it */
- _mesa_lock_texture(ctx, texObj);
if (result)
return;
@@ -3539,15 +3525,11 @@ _mesa_meta_ClearTexSubImage(struct gl_context *ctx,
{
bool res;
- _mesa_unlock_texture(ctx, texImage->TexObject);
-
res = cleartexsubimage_using_fbo(ctx, texImage,
xoffset, yoffset, zoffset,
width, height, depth,
clearValue);
- _mesa_lock_texture(ctx, texImage->TexObject);
-
if (res)
return;
diff --git a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
index 1cf2d18..92c92aa 100644
--- a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
+++ b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
@@ -266,8 +266,6 @@ brw_blorp_copytexsubimage(struct brw_context *brw,
int dst_slice = slice + dst_image->TexObject->MinLayer + dst_image->Face;
int dst_level = dst_image->Level + dst_image->TexObject->MinLevel;
- _mesa_unlock_texture(ctx, dst_image->TexObject);
-
brw_blorp_blit_miptrees(brw,
src_mt, src_irb->mt_level, src_irb->mt_layer,
dst_mt, dst_level, dst_slice,
@@ -275,8 +273,6 @@ brw_blorp_copytexsubimage(struct brw_context *brw,
dstX0, dstY0, dstX1, dstY1,
GL_NEAREST, false, mirror_y);
- _mesa_lock_texture(ctx, dst_image->TexObject);
-
/* If we're copying to a packed depth stencil texture and the source
* framebuffer has separate stencil, we need to also copy the stencil data
* over.
commit 08710281884c02d2d99a5ad447affa246de126f8
Author: Kenneth Graunke <kenneth@whitecape.org>
Date: Mon Aug 18 17:20:20 2014 -0700
mesa: Use a recursive mutex for the texture lock.
This avoids problems with things like meta operations calling functions
that want to take the lock while the lock is already held. Basically,
the point is to guard against API reentrancy across threads...not to
guard against ourselves.
Dave Airlie opposed this change, but it makes master usable again and no
one proposed a better solution. We can revert this if/when someone
does.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Tested-by: Chris Forbes <chrisf@ijw.co.nz>
diff --git a/src/mesa/main/shared.c b/src/mesa/main/shared.c
index 0189dd2..7ef932f 100644
--- a/src/mesa/main/shared.c
+++ b/src/mesa/main/shared.c
@@ -113,7 +113,7 @@ _mesa_alloc_shared_state(struct gl_context *ctx)
assert(shared->DefaultTex[TEXTURE_1D_INDEX]->RefCount == 1);
/* Mutex and timestamp for texobj state validation */
- mtx_init(&shared->TexMutex, mtx_plain);
+ mtx_init(&shared->TexMutex, mtx_recursive);
shared->TextureStateStamp = 0;
shared->FrameBuffers = _mesa_NewHashTable();
commit f90b7e0f2bee56af22edeebfea292ab960ce0628
Author: Carl Worth <cworth@cworth.org>
Date: Mon Aug 18 16:26:34 2014 -0700
glcpp: Fix glcpp-test-cr-lf "make check" test for Mac OS X
There were two problems with the way this script used sed on OS X:
1. The OS X sed doesn't interpret "\r" in a replacement list as a
carriage-return character, (instead it was inserting a literal
'r' character).
We fix this by putting an actual ^M character into the source of
the script, (rather than a two-character escape sequence hoping
for sed to do the right thing).
2. When generating the test files with LF-CR ("\n\r") newlines, the
OS X sed was adding an undesired final newline ("\n") at the end
of the file. We avoid this by first using sed to add the ^M
before the newlines, then using tr to swap the \r and \n
characters. This way, sed never sees any lines ending with
anything but \n, so it doesn't get confused and doesn't add any
bogus extra newlines.
Tested-by: Vinson Lee <vlee@freedesktop.org>
Vinson's testing confirmed that this patch fixes FreeBSD as well.
diff --git a/src/glsl/glcpp/tests/glcpp-test-cr-lf b/src/glsl/glcpp/tests/glcpp-test-cr-lf
index edaa29d..7988c05 100755
--- a/src/glsl/glcpp/tests/glcpp-test-cr-lf
+++ b/src/glsl/glcpp/tests/glcpp-test-cr-lf
@@ -111,7 +111,7 @@ rm -rf ./subtest-cr-lf
mkdir subtest-cr-lf
for file in "$testdir"/*.c; do
base=$(basename "$file")
- sed -e 's/$/\r/' < "$file" > subtest-cr-lf/"$base"
+ sed -e 's/$/
/' < "$file" > subtest-cr-lf/"$base"
cp subtest-lf/"$base".out subtest-cr-lf/"$base".expected
done
@@ -124,7 +124,7 @@ rm -rf ./subtest-lf-cr
mkdir subtest-lf-cr
for file in "$testdir"/*.c; do
base=$(basename "$file")
- tr "\n" "\r" < "$file" | sed -e 's/\r/\n\r/g' > subtest-lf-cr/"$base"
+ sed -e 's/$/
/' < "$file" | tr "\n\r" "\r\n" > subtest-lf-cr/"$base"
cp subtest-lf/"$base".out subtest-lf-cr/"$base".expected
done
commit c09a8b0e3bb93906f59fee565eb22d37b91fbfaf
Author: Carl Worth <cworth@cworth.org>
Date: Mon Aug 18 16:26:09 2014 -0700
glcpp: Use printf instead of "echo -n" in glcpp-test
I noticed that with /bin/sh on Mac OS X, "echo -n" does not work as
desired, (it actually prints "-n" rather than suppressing the final
newline). There is a /bin/echo that could be used (it actually works)
instead of the builtin echo.
But I decided it's more robust to just use printf rather than
hardcoding /bin/echo into the script.
diff --git a/src/glsl/glcpp/tests/glcpp-test b/src/glsl/glcpp/tests/glcpp-test
index 640f576..ea69edf 100755
--- a/src/glsl/glcpp/tests/glcpp-test
+++ b/src/glsl/glcpp/tests/glcpp-test
@@ -59,7 +59,7 @@ clean=0
echo "====== Testing for correctness ======"
for test in $testdir/*.c; do
- echo -n "Testing $test..."
+ printf "Testing $test..."
$glcpp $(test_specific_args $test) < $test > $test.out 2>&1
total=$((total+1))
if cmp $test.expected $test.out >/dev/null 2>&1; then
@@ -78,7 +78,7 @@ echo ""
if [ "$do_valgrind" = "yes" ]; then
echo "====== Testing for valgrind cleanliness ======"
for test in $testdir/*.c; do
- echo -n "Testing $test with valgrind..."
+ printf "Testing $test with valgrind..."
valgrind --error-exitcode=31 --log-file=$test.valgrind-errors $glcpp $(test_specific_args $test) < $test >/dev/null 2>&1
if [ "$?" = "31" ]; then
echo "ERRORS"
commit 04895f5c601b240df547739da786b7c2b65bdd1e
Author: Matt Turner <mattst88@gmail.com>
Date: Fri Aug 15 12:32:23 2014 -0700
i965/vec4: Allow reswizzling writemasks when swizzle is single-valued.
total instructions in shared programs: 4288033 -> 4266151 (-0.51%)
instructions in affected programs: 930915 -> 909033 (-2.35%)
diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp b/src/mesa/drivers/dri/i965/brw_vec4.cpp
index 5477fe6..ee61202 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp
@@ -944,24 +944,27 @@ vec4_instruction::can_reswizzle_dst(int dst_writemask,
return false;
switch (opcode) {
- case BRW_OPCODE_DP4:
- case BRW_OPCODE_DP3:
- case BRW_OPCODE_DP2:
- return true;
default:
- /* Check if there happens to be no reswizzling required. */
- for (int c = 0; c < 4; c++) {
- int bit = 1 << BRW_GET_SWZ(swizzle, c);
- /* Skip components of the swizzle not used by the dst. */
- if (!(dst_writemask & (1 << c)))
- continue;
+ if (!brw_is_single_value_swizzle(swizzle)) {
+ /* Check if there happens to be no reswizzling required. */
+ for (int c = 0; c < 4; c++) {
+ int bit = 1 << BRW_GET_SWZ(swizzle, c);
+ /* Skip components of the swizzle not used by the dst. */
+ if (!(dst_writemask & (1 << c)))
+ continue;
- /* We don't do the reswizzling yet, so just sanity check that we
- * don't have to.
- */
- if (bit != (1 << c))
- return false;
+ /* We don't do the reswizzling yet, so just sanity check that we
+ * don't have to.
+ */
+ if (bit != (1 << c))
+ return false;
+ }
+ return true;
}
+ /* fallthrough */
+ case BRW_OPCODE_DP4:
+ case BRW_OPCODE_DP3:
+ case BRW_OPCODE_DP2:
return true;
}
}
@@ -979,6 +982,21 @@ vec4_instruction::reswizzle_dst(int dst_writemask, int swizzle)
int new_writemask = 0;
switch (opcode) {
+ default:
+ if (!brw_is_single_value_swizzle(swizzle)) {
+ for (int c = 0; c < 4; c++) {
+ /* Skip components of the swizzle not used by the dst. */
+ if (!(dst_writemask & (1 << c)))
+ continue;
+
+ /* We don't do the reswizzling yet, so just sanity check that we
+ * don't have to.
+ */
+ assert((1 << BRW_GET_SWZ(swizzle, c)) == (1 << c));
+ }
+ break;
+ }
+ /* fallthrough */
case BRW_OPCODE_DP4:
case BRW_OPCODE_DP3:
case BRW_OPCODE_DP2:
@@ -995,18 +1013,6 @@ vec4_instruction::reswizzle_dst(int dst_writemask, int swizzle)
}
dst.writemask = new_writemask;
break;
- default:
- for (int c = 0; c < 4; c++) {
- /* Skip components of the swizzle not used by the dst. */
- if (!(dst_writemask & (1 << c)))
- continue;
-
- /* We don't do the reswizzling yet, so just sanity check that we
- * don't have to.
- */
- assert((1 << BRW_GET_SWZ(swizzle, c)) == (1 << c));
- }
- break;
}
}
commit bde2a62af72847f6722180d0203f5b537d1df8ab
Author: Jon TURNEY <jon.turney@dronecode.org.uk>
Date: Sun Aug 17 17:21:27 2014 +0100
Teach os_get_total_physical_memory about Cygwin
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
diff --git a/src/gallium/auxiliary/os/os_misc.c b/src/gallium/auxiliary/os/os_misc.c
index 3846a9a..ef84c79 100644
--- a/src/gallium/auxiliary/os/os_misc.c
+++ b/src/gallium/auxiliary/os/os_misc.c
@@ -47,7 +47,7 @@
#endif
-#if defined(PIPE_OS_LINUX)
+#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_CYGWIN)
# include <unistd.h>
#elif defined(PIPE_OS_APPLE) || defined(PIPE_OS_BSD)
# include <sys/sysctl.h>
Reply to: