Android.common.mk | 4 configs/current.in | 1 configs/default | 5 configure.ac | 233 - debian/changelog | 2 docs/GL3.txt | 12 docs/helpwanted.html | 7 docs/intro.html | 11 docs/relnotes-8.1.html | 70 docs/relnotes-9.0.html | 77 docs/utilities.html | 26 include/GL/internal/dri_interface.h | 12 src/egl/drivers/dri2/Makefile.am | 1 src/egl/drivers/dri2/egl_dri2.c | 2 src/egl/main/eglcontext.c | 2 src/gallium/auxiliary/draw/draw_context.c | 12 src/gallium/auxiliary/util/u_blitter.c | 68 src/gallium/auxiliary/util/u_blitter.h | 15 src/gallium/auxiliary/util/u_tile.c | 36 src/gallium/auxiliary/util/u_vbuf.c | 4 src/gallium/drivers/llvmpipe/lp_limits.h | 5 src/gallium/drivers/llvmpipe/lp_texture.c | 6 src/gallium/drivers/r300/compiler/radeon_opcodes.c | 7 src/gallium/drivers/r300/compiler/radeon_opcodes.h | 3 src/gallium/drivers/r300/compiler/radeon_program_alu.c | 31 src/gallium/drivers/r300/compiler/radeon_rename_regs.c | 31 src/gallium/drivers/r300/r300_tgsi_to_rc.c | 2 src/gallium/drivers/r600/evergreen_hw_context.c | 129 src/gallium/drivers/r600/evergreen_state.c | 281 + src/gallium/drivers/r600/evergreend.h | 97 src/gallium/drivers/r600/r600_asm.c | 13 src/gallium/drivers/r600/r600_blit.c | 138 src/gallium/drivers/r600/r600_buffer.c | 5 src/gallium/drivers/r600/r600_hw_context.c | 16 src/gallium/drivers/r600/r600_pipe.c | 22 src/gallium/drivers/r600/r600_pipe.h | 40 src/gallium/drivers/r600/r600_resource.c | 2 src/gallium/drivers/r600/r600_resource.h | 35 src/gallium/drivers/r600/r600_state.c | 412 ++ src/gallium/drivers/r600/r600_state_common.c | 154 src/gallium/drivers/r600/r600_texture.c | 146 src/gallium/drivers/r600/r600d.h | 20 src/gallium/drivers/radeon/AMDGPU.h | 2 src/gallium/drivers/radeon/AMDGPUAsmPrinter.cpp | 128 src/gallium/drivers/radeon/AMDGPUAsmPrinter.h | 43 src/gallium/drivers/radeon/AMDGPUConvertToISA.cpp | 11 src/gallium/drivers/radeon/AMDGPUISelLowering.h | 2 src/gallium/drivers/radeon/AMDGPUInstrInfo.cpp | 14 src/gallium/drivers/radeon/AMDGPUInstrInfo.h | 8 src/gallium/drivers/radeon/AMDGPUMCInstLower.cpp | 82 src/gallium/drivers/radeon/AMDGPUMCInstLower.h | 30 src/gallium/drivers/radeon/AMDGPUSubtarget.cpp | 12 src/gallium/drivers/radeon/AMDGPUTargetMachine.cpp | 31 src/gallium/drivers/radeon/AMDGPUTargetMachine.h | 4 src/gallium/drivers/radeon/AMDIL7XXDevice.cpp | 13 src/gallium/drivers/radeon/AMDIL7XXDevice.h | 2 src/gallium/drivers/radeon/AMDILDevice.h | 7 src/gallium/drivers/radeon/AMDILEvergreenDevice.cpp | 13 src/gallium/drivers/radeon/AMDILEvergreenDevice.h | 2 src/gallium/drivers/radeon/AMDILInstrInfo.td | 7 src/gallium/drivers/radeon/AMDILIntrinsicInfo.cpp | 2 src/gallium/drivers/radeon/AMDILIntrinsicInfo.h | 1 src/gallium/drivers/radeon/InstPrinter/AMDGPUInstPrinter.cpp | 34 src/gallium/drivers/radeon/InstPrinter/AMDGPUInstPrinter.h | 34 src/gallium/drivers/radeon/MCTargetDesc/AMDGPUAsmBackend.cpp | 80 src/gallium/drivers/radeon/MCTargetDesc/AMDGPUMCAsmInfo.cpp | 96 src/gallium/drivers/radeon/MCTargetDesc/AMDGPUMCAsmInfo.h | 30 src/gallium/drivers/radeon/MCTargetDesc/AMDGPUMCCodeEmitter.h | 59 src/gallium/drivers/radeon/MCTargetDesc/AMDGPUMCTargetDesc.cpp | 111 src/gallium/drivers/radeon/MCTargetDesc/AMDGPUMCTargetDesc.h | 51 src/gallium/drivers/radeon/MCTargetDesc/AMDILMCAsmInfo.cpp | 107 src/gallium/drivers/radeon/MCTargetDesc/AMDILMCAsmInfo.h | 30 src/gallium/drivers/radeon/MCTargetDesc/AMDILMCTargetDesc.cpp | 61 src/gallium/drivers/radeon/MCTargetDesc/AMDILMCTargetDesc.h | 35 src/gallium/drivers/radeon/MCTargetDesc/R600MCCodeEmitter.cpp | 689 ++++ src/gallium/drivers/radeon/MCTargetDesc/SIMCCodeEmitter.cpp | 303 + src/gallium/drivers/radeon/Makefile | 3 src/gallium/drivers/radeon/Makefile.sources | 16 src/gallium/drivers/radeon/Processors.td | 2 src/gallium/drivers/radeon/R600CodeEmitter.cpp | 649 ---- src/gallium/drivers/radeon/R600Defines.h | 23 src/gallium/drivers/radeon/R600ExpandSpecialInstrs.cpp | 163 + src/gallium/drivers/radeon/R600ISelLowering.cpp | 114 src/gallium/drivers/radeon/R600InstrInfo.cpp | 125 src/gallium/drivers/radeon/R600InstrInfo.h | 19 src/gallium/drivers/radeon/R600Instructions.td | 229 - src/gallium/drivers/radeon/R600KernelParameters.cpp | 16 src/gallium/drivers/radeon/R600RegisterInfo.cpp | 14 src/gallium/drivers/radeon/R600RegisterInfo.h | 4 src/gallium/drivers/radeon/SIAssignInterpRegs.cpp | 4 src/gallium/drivers/radeon/SICodeEmitter.cpp | 354 -- src/gallium/drivers/radeon/SIGenRegisterInfo.pl | 9 src/gallium/drivers/radeon/SIISelLowering.cpp | 57 src/gallium/drivers/radeon/SIISelLowering.h | 4 src/gallium/drivers/radeon/SIInstrInfo.cpp | 35 src/gallium/drivers/radeon/SIInstrInfo.h | 28 src/gallium/drivers/radeon/SIInstrInfo.td | 2 src/gallium/drivers/radeon/SIInstructions.td | 48 src/gallium/drivers/radeon/SIIntrinsics.td | 3 src/gallium/drivers/radeon/SIRegisterInfo.cpp | 2 src/gallium/drivers/radeon/TargetInfo/AMDGPUTargetInfo.cpp | 26 src/gallium/drivers/radeon/TargetInfo/AMDILTargetInfo.cpp | 26 src/gallium/drivers/radeon/radeon_llvm_emit.cpp | 4 src/gallium/drivers/radeonsi/r600_resource.h | 9 src/gallium/drivers/radeonsi/r600_texture.c | 275 - src/gallium/drivers/radeonsi/radeonsi_pipe.h | 7 src/gallium/drivers/radeonsi/radeonsi_pm4.c | 7 src/gallium/drivers/radeonsi/radeonsi_shader.c | 133 src/gallium/drivers/radeonsi/radeonsi_shader.h | 24 src/gallium/drivers/radeonsi/si_state.c | 357 +- src/gallium/drivers/radeonsi/si_state.h | 11 src/gallium/drivers/radeonsi/si_state_draw.c | 59 src/gallium/include/state_tracker/st_api.h | 14 src/gallium/state_trackers/clover/api/memory.cpp | 8 src/gallium/state_trackers/dri/common/dri_context.c | 11 src/gallium/state_trackers/dri/common/dri_screen.c | 11 src/gallium/state_trackers/dri/drm/dri2.c | 26 src/gallium/state_trackers/wgl/stw_framebuffer.h | 2 src/gallium/state_trackers/wgl/stw_winsys.h | 2 src/gallium/targets/dri-swrast/swrast_drm_api.c | 3 src/gbm/Makefile.am | 3 src/gbm/backends/dri/gbm_dri.c | 74 src/gbm/backends/dri/gbm_driint.h | 8 src/glsl/Android.mk | 2 src/glsl/glsl_parser_extras.h | 2 src/glsl/link_uniforms.cpp | 2 src/glu/Makefile | 2 src/glx/Makefile.am | 5 src/mapi/es1api/.gitignore | 1 src/mapi/es1api/Makefile | 137 src/mapi/es1api/Makefile.am | 60 src/mapi/es1api/glesv1_cm.pc.in | 12 src/mapi/es2api/.gitignore | 4 src/mapi/es2api/Makefile | 3 src/mapi/es2api/Makefile.am | 59 src/mapi/es2api/glesv2.pc.in | 12 src/mapi/glapi/gen/Makefile.am | 16 src/mapi/glapi/gen/es_EXT.xml | 26 src/mapi/glapi/gen/glX_proto_send.py | 35 src/mapi/glapi/gen/glapi_gen.mk | 4 src/mapi/glapi/gen/gles_api.py | 5 src/mapi/vgapi/.gitignore | 1 src/mapi/vgapi/Makefile | 94 src/mapi/vgapi/Makefile.am | 62 src/mapi/vgapi/vg.pc.in | 12 src/mesa/Android.gen.mk | 8 src/mesa/Makefile.am | 34 src/mesa/SConscript | 22 src/mesa/drivers/common/meta.c | 431 ++ src/mesa/drivers/dri/common/dri_util.c | 10 src/mesa/drivers/dri/i915/i830_state.c | 10 src/mesa/drivers/dri/i915/i915_fragprog.c | 8 src/mesa/drivers/dri/i915/i915_state.c | 10 src/mesa/drivers/dri/i965/Makefile.sources | 1 src/mesa/drivers/dri/i965/brw_clear.c | 6 src/mesa/drivers/dri/i965/brw_context.c | 33 src/mesa/drivers/dri/i965/brw_context.h | 1 src/mesa/drivers/dri/i965/brw_draw.c | 43 src/mesa/drivers/dri/i965/brw_draw_upload.c | 7 src/mesa/drivers/dri/i965/brw_fallback.c | 89 src/mesa/drivers/dri/i965/brw_fs.cpp | 47 src/mesa/drivers/dri/i965/brw_fs.h | 11 src/mesa/drivers/dri/i965/brw_fs_emit.cpp | 12 src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp | 1 src/mesa/drivers/dri/i965/brw_fs_live_variables.h | 5 src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 54 src/mesa/drivers/dri/i965/brw_program.h | 2 src/mesa/drivers/dri/i965/brw_queryobj.c | 72 src/mesa/drivers/dri/i965/brw_shader.cpp | 4 src/mesa/drivers/dri/i965/brw_state.h | 3 src/mesa/drivers/dri/i965/brw_state_cache.c | 4 src/mesa/drivers/dri/i965/brw_state_upload.c | 17 src/mesa/drivers/dri/i965/brw_vec4_emit.cpp | 3 src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 1 src/mesa/drivers/dri/i965/brw_vs.c | 82 src/mesa/drivers/dri/i965/brw_vs.h | 3 src/mesa/drivers/dri/i965/brw_vs_emit.c | 2 src/mesa/drivers/dri/i965/brw_wm.c | 84 src/mesa/drivers/dri/i965/brw_wm.h | 1 src/mesa/drivers/dri/i965/brw_wm_sampler_state.c | 48 src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 73 src/mesa/drivers/dri/i965/gen7_sampler_state.c | 37 src/mesa/drivers/dri/i965/gen7_wm_surface_state.c | 22 src/mesa/drivers/dri/intel/intel_context.c | 42 src/mesa/drivers/dri/intel/intel_context.h | 6 src/mesa/drivers/dri/intel/intel_extensions.c | 21 src/mesa/drivers/dri/intel/intel_fbo.c | 3 src/mesa/drivers/dri/intel/intel_reg.h | 2 src/mesa/drivers/dri/intel/intel_regions.h | 1 src/mesa/drivers/dri/intel/intel_resolve_map.c | 6 src/mesa/drivers/dri/intel/intel_screen.c | 86 src/mesa/drivers/dri/intel/intel_span.c | 44 src/mesa/drivers/dri/intel/intel_state.c | 16 src/mesa/drivers/dri/intel/intel_tex.c | 2 src/mesa/drivers/dri/intel/intel_tex_validate.c | 10 src/mesa/drivers/dri/nouveau/nouveau_texture.c | 3 src/mesa/drivers/dri/r200/r200_context.c | 2 src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c | 4 src/mesa/drivers/dri/radeon/radeon_texture.c | 5 src/mesa/drivers/dri/radeon/radeon_texture.h | 1 src/mesa/drivers/dri/swrast/swrast.c | 3 src/mesa/drivers/osmesa/Makefile.am | 5 src/mesa/drivers/x11/Makefile.am | 9 src/mesa/drivers/x11/xm_api.c | 2 src/mesa/drivers/x11/xm_dd.c | 25 src/mesa/drivers/x11/xmesaP.h | 2 src/mesa/libdricore/Makefile.am | 2 src/mesa/main/.gitignore | 3 src/mesa/main/APIspec.xml | 1620 ---------- src/mesa/main/api_exec.c | 300 + src/mesa/main/api_validate.c | 83 src/mesa/main/arrayobj.c | 2 src/mesa/main/attrib.c | 3 src/mesa/main/blend.c | 15 src/mesa/main/bufferobj.c | 54 src/mesa/main/clear.c | 11 src/mesa/main/compiler.h | 3 src/mesa/main/context.c | 12 src/mesa/main/dd.h | 18 src/mesa/main/dlopen.c | 112 src/mesa/main/dlopen.h | 83 src/mesa/main/enable.c | 303 + src/mesa/main/es1_conversion.c | 494 --- src/mesa/main/extensions.c | 8 src/mesa/main/fbobject.c | 276 + src/mesa/main/ff_fragment_shader.cpp | 3 src/mesa/main/fog.c | 15 src/mesa/main/get.c | 44 src/mesa/main/getstring.c | 58 src/mesa/main/glformats.c | 63 src/mesa/main/glformats.h | 3 src/mesa/main/hint.c | 31 src/mesa/main/light.c | 19 src/mesa/main/lines.c | 17 src/mesa/main/macros.h | 194 - src/mesa/main/matrix.c | 7 src/mesa/main/mipmap.c | 3 src/mesa/main/mtypes.h | 10 src/mesa/main/pixelstore.c | 39 src/mesa/main/points.c | 131 src/mesa/main/polygon.c | 8 src/mesa/main/queryobj.c | 37 src/mesa/main/readpix.c | 33 src/mesa/main/shaderapi.c | 92 src/mesa/main/texcompress.c | 26 src/mesa/main/texcompress.h | 2 src/mesa/main/texcompress_cpal.c | 231 + src/mesa/main/texcompress_cpal.h | 45 src/mesa/main/texcompress_rgtc.c | 100 src/mesa/main/texcompress_rgtc.h | 32 src/mesa/main/texcompress_s3tc.c | 60 src/mesa/main/texcompress_s3tc.h | 32 src/mesa/main/texenv.c | 41 src/mesa/main/texformat.c | 42 src/mesa/main/texformat.h | 4 src/mesa/main/texgen.c | 63 src/mesa/main/texgen.h | 3 src/mesa/main/teximage.c | 1256 ++++--- src/mesa/main/teximage.h | 8 src/mesa/main/texobj.c | 42 src/mesa/main/texobj.h | 11 src/mesa/main/texpal.c | 216 - src/mesa/main/texpal.h | 45 src/mesa/main/texparam.c | 265 + src/mesa/main/texstorage.c | 5 src/mesa/main/uniform_query.cpp | 3 src/mesa/main/varray.c | 147 src/mesa/main/version.c | 1 src/mesa/main/version.h | 6 src/mesa/main/vtxfmt.c | 14 src/mesa/sources.mak | 4 src/mesa/state_tracker/st_cb_texture.c | 12 src/mesa/state_tracker/st_context.c | 10 src/mesa/state_tracker/st_context.h | 5 src/mesa/state_tracker/st_extensions.c | 5 src/mesa/state_tracker/st_format.c | 12 src/mesa/state_tracker/st_format.h | 3 src/mesa/state_tracker/st_manager.c | 10 src/mesa/swrast/s_lines.c | 4 src/mesa/swrast/s_texfetch.c | 96 src/mesa/swrast/s_texfilter.c | 115 src/mesa/swrast/s_texture.c | 5 src/mesa/tnl/t_vertex_generic.c | 5 src/mesa/vbo/vbo_exec_api.c | 36 284 files changed, 9192 insertions(+), 7548 deletions(-)
New commits: commit c35e29e14f5912949cfc6e48c23ff7fe789e8bf5 Author: Timo Aaltonen <tjaal...@ubuntu.com> Date: Fri Aug 31 13:06:56 2012 +0300 bump the version, new snapshot diff --git a/debian/changelog b/debian/changelog index f973a3d..786bcbc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -mesa (9.0~git20120821.c1114c61-1) UNRELEASED; urgency=low +mesa (9.0~git20120830.2d2f1fd1-1) UNRELEASED; urgency=low [ Julien Cristau ] * Use xz for all binary packages not just *-dbg. commit 2d2f1fd164218eacf2b142bc808be1f25f66e72c Author: Ian Romanick <ian.d.roman...@intel.com> Date: Thu Aug 30 15:22:37 2012 -0700 docs: Add some missing features to 9.0 release notes and GL3.txt Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> Reviewed-by: Brian Paul <bri...@vmware.com> diff --git a/docs/GL3.txt b/docs/GL3.txt index 1d55282..24b70a1 100644 --- a/docs/GL3.txt +++ b/docs/GL3.txt @@ -42,13 +42,13 @@ GLX_ARB_create_context (GLX 1.4 is required) DONE GL 3.1: -GLSL 1.40 needs UBOs (in progress) -Forward compatibile context support/deprecations not started +GLSL 1.40 DONE (i965) +Forward compatibile context support/deprecations DONE (i965) Instanced drawing (GL_ARB_draw_instanced) DONE (i965, gallium, swrast) Buffer copying (GL_ARB_copy_buffer) DONE (i965, r300, r600, swrast) Primitive restart (GL_NV_primitive_restart) DONE (i965, r600) 16 vertex texture image units DONE -Texture buffer objs (GL_ARB_texture_buffer_object) needs GL3.1 enabling (i965) +Texture buffer objs (GL_ARB_texture_buffer_object) DONE for OpenGL 3.1 contexts (i965) Rectangular textures (GL_ARB_texture_rectangle) DONE (i965, r300, r600, swrast) Uniform buffer objs (GL_ARB_uniform_buffer_object) DONE (i965) Signed normalized textures (GL_EXT_texture_snorm) DONE (i965, r300, r600) @@ -56,7 +56,7 @@ Signed normalized textures (GL_EXT_texture_snorm) DONE (i965, r300, r600) GL 3.2: -Core/compatibility profiles not started +Core/compatibility profiles DONE GLSL 1.50 not started Geometry shaders (GL_ARB_geometry_shader4) partially done (Zack) BGRA vertex order (GL_ARB_vertex_array_bgra) DONE (i965, r300, r600, swrast) diff --git a/docs/relnotes-9.0.html b/docs/relnotes-9.0.html index f8b993a..164c8e9 100644 --- a/docs/relnotes-9.0.html +++ b/docs/relnotes-9.0.html @@ -43,9 +43,11 @@ Note: some of the new features are only available with certain drivers. <li>GL_ARB_invalidate_subdate - Currently a "no-op" implementation. This extension is always enabled in all drivers.</li> <li>GL_ARB_shader_bit_encoding</li> +<li>GL_ARB_texture_buffer_object</li> <li>GL_ARB_timer_query</li> <li>GL_ARB_transform_feedback3</li> <li>GL_ARB_transform_feedback_instanced</li> +<li>GL_ARB_uniform_buffer_object</li> <li>GL_EXT_unpack_subimage for ES 2.0</li> <li>GL_EXT_read_format_bgra for ES 1.1 and 2.0</li> <li>GL_EXT_texture_rg for ES 2.x</li> commit 0791484c4233f3b474b1d9ba1af2f4608fe7e962 Author: Ian Romanick <ian.d.roman...@intel.com> Date: Thu Aug 30 13:55:02 2012 -0700 mesa: Bump version to 9.0 Now that OpenGL 3.1 is supported by at least one driver, follow tradition and bump the major version number. Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> Reviewed-by: Brian Paul <bri...@vmware.com> diff --git a/configs/default b/configs/default index 1f167b5..85a863f 100644 --- a/configs/default +++ b/configs/default @@ -8,8 +8,8 @@ CONFIG_NAME = default # Version info -MESA_MAJOR=8 -MESA_MINOR=1 +MESA_MAJOR=9 +MESA_MINOR=0 MESA_TINY=0 MESA_VERSION = $(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY) diff --git a/docs/intro.html b/docs/intro.html index ef04f35..3f21b93 100644 --- a/docs/intro.html +++ b/docs/intro.html @@ -166,6 +166,17 @@ of the OpenGL specification is implemented. </p> +<h2>Version 9.x features</h2> +<p> +Version 9.x of Mesa implements the OpenGL 3.1 API. +While the driver for Intel Sandy Bridge and Ivy Bridge is the only +driver to support OpenGL 3.1, many developers across the open-source +community contributed features required for OpenGL 3.1. The primary +features added since the Mesa 8.0 release are +GL_ARB_texture_buffer_object and GL_ARB_uniform_buffer_object. +</p> + + <h2>Version 8.x features</h2> <p> Version 8.x of Mesa implements the OpenGL 3.0 API. diff --git a/docs/relnotes-8.1.html b/docs/relnotes-8.1.html deleted file mode 100644 index 8d27c66..0000000 --- a/docs/relnotes-8.1.html +++ /dev/null @@ -1,70 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -<html lang="en"> -<head> - <meta http-equiv="content-type" content="text/html; charset=utf-8"> - <title>Mesa Release Notes</title> - <link rel="stylesheet" type="text/css" href="mesa.css"> -</head> -<body> - -<h1>Mesa 8.1 Release Notes / date TBD</h1> - -<p> -Mesa 8.1 is a new development release. -</p> -<p> -Mesa 8.1 implements the OpenGL 3.0 API, but the version reported by -glGetString(GL_VERSION) depends on the particular driver being used. -Some drivers don't support all the features required in OpenGL 3.0. -</p> - - -<h2>MD5 checksums</h2> -<pre> -tbd -</pre> - - -<h2>New features</h2> - -<p> -Note: some of the new features are only available with certain drivers. -</p> - -<ul> -<li>GL_ARB_base_instance</li> -<li>GL_ARB_blend_func_extended</li> -<li>GL_ARB_debug_output</li> -<li>GL_ARB_invalidate_subdate - Currently a "no-op" implementation. This -extension is always enabled in all drivers.</li> -<li>GL_ARB_shader_bit_encoding</li> -<li>GL_ARB_timer_query</li> -<li>GL_ARB_transform_feedback3</li> -<li>GL_ARB_transform_feedback_instanced</li> -<li>GL_EXT_unpack_subimage for ES 2.0</li> -<li>GL_EXT_read_format_bgra for ES 1.1 and 2.0</li> -<li>GL_EXT_texture_rg for ES 2.x</li> -<li>GL_NV_read_buffer for ES 2.0</li> -<li>EGL_KHR_create_context</li> -<li>EGL_KHR_surfaceless_context - This replaces the -EGL_KHR_surfaceless_{gles1,gles2,opengl} extensions that were never approved -by Khronos.</li> -<li>EGL_EXT_create_context_robustness</li> -</ul> - - -<h2>Bug fixes</h2> - -<p>TBD -- This list is likely incomplete.</p> - - -<h2>Changes</h2> - -<p> -The legacy/static Makefile system (ex: 'make linux-dri') has been removed. -The two supported build methods are now autoconf/automake and SCons. -</p> - - -</body> -</html> diff --git a/docs/relnotes-9.0.html b/docs/relnotes-9.0.html new file mode 100644 index 0000000..f8b993a --- /dev/null +++ b/docs/relnotes-9.0.html @@ -0,0 +1,75 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="en"> +<head> + <meta http-equiv="content-type" content="text/html; charset=utf-8"> + <title>Mesa Release Notes</title> + <link rel="stylesheet" type="text/css" href="mesa.css"> +</head> +<body> + +<h1>Mesa 9.0 Release Notes / date TBD</h1> + +<p> +Mesa 9.0 is a new development release. +People who are concerned with stability and reliability should stick +with a previous release or wait for Mesa 9.0.1. +</p> +<p> +Mesa 9.0 implements the OpenGL 3.1 API, but the version reported by +glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) / +glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used. +Some drivers don't support all the features required in OpenGL 3.1. OpenGL +3.1 is <strong>only</strong> available if requested at context creation +because GL_ARB_compatibility is not supported. +</p> + + +<h2>MD5 checksums</h2> +<pre> +tbd +</pre> + + +<h2>New features</h2> + +<p> +Note: some of the new features are only available with certain drivers. +</p> + +<ul> +<li>GL_ARB_base_instance</li> +<li>GL_ARB_blend_func_extended</li> +<li>GL_ARB_debug_output</li> +<li>GL_ARB_invalidate_subdate - Currently a "no-op" implementation. This +extension is always enabled in all drivers.</li> +<li>GL_ARB_shader_bit_encoding</li> +<li>GL_ARB_timer_query</li> +<li>GL_ARB_transform_feedback3</li> +<li>GL_ARB_transform_feedback_instanced</li> +<li>GL_EXT_unpack_subimage for ES 2.0</li> +<li>GL_EXT_read_format_bgra for ES 1.1 and 2.0</li> +<li>GL_EXT_texture_rg for ES 2.x</li> +<li>GL_NV_read_buffer for ES 2.0</li> +<li>EGL_KHR_create_context</li> +<li>EGL_KHR_surfaceless_context - This replaces the +EGL_KHR_surfaceless_{gles1,gles2,opengl} extensions that were never approved +by Khronos.</li> +<li>EGL_EXT_create_context_robustness</li> +</ul> + + +<h2>Bug fixes</h2> + +<p>TBD -- This list is likely incomplete.</p> + + +<h2>Changes</h2> + +<p> +The legacy/static Makefile system (ex: 'make linux-dri') has been removed. +The two supported build methods are now autoconf/automake and SCons. +</p> + + +</body> +</html> diff --git a/src/mesa/main/version.h b/src/mesa/main/version.h index 94a9855..5b2e85a 100644 --- a/src/mesa/main/version.h +++ b/src/mesa/main/version.h @@ -32,10 +32,10 @@ struct gl_context; /* Mesa version */ -#define MESA_MAJOR 8 -#define MESA_MINOR 1 +#define MESA_MAJOR 9 +#define MESA_MINOR 0 #define MESA_PATCH 0 -#define MESA_VERSION_STRING "8.1-devel" +#define MESA_VERSION_STRING "9.0-devel" /* To make version comparison easy */ #define MESA_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) commit 0e470533ad0aecb58341a8935618c8cdf642bedd Author: Marek Olšák <mar...@gmail.com> Date: Thu Aug 30 16:33:36 2012 +0200 r600g: enable transform feedback on Cayman There doesn't seem to be anything wrong with it. diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c index 7856e62..286c676 100644 --- a/src/gallium/drivers/r600/r600_pipe.c +++ b/src/gallium/drivers/r600/r600_pipe.c @@ -934,14 +934,12 @@ struct pipe_screen *r600_screen_create(struct radeon_winsys *ws) switch (rscreen->chip_class) { case R600: case EVERGREEN: + case CAYMAN: rscreen->has_streamout = rscreen->info.drm_minor >= 14; break; case R700: rscreen->has_streamout = rscreen->info.drm_minor >= 17; break; - /* TODO: Cayman */ - default: - rscreen->has_streamout = debug_get_bool_option("R600_STREAMOUT", FALSE); } if (r600_init_tiling(rscreen)) { commit 64db3cc6ad2d52dec46119e5b80030393cb60bf4 Author: Marek Olšák <mar...@gmail.com> Date: Thu Aug 30 05:38:02 2012 +0200 r600g: implement MSAA for Cayman Everything works except for blitting MSAA colorbuffers, which isn't so trivial on Cayman. It's a rarely-used feature anyway. diff --git a/src/gallium/auxiliary/util/u_blitter.c b/src/gallium/auxiliary/util/u_blitter.c index 03ed91f..44295c1 100644 --- a/src/gallium/auxiliary/util/u_blitter.c +++ b/src/gallium/auxiliary/util/u_blitter.c @@ -1492,6 +1492,7 @@ void util_blitter_custom_resolve_color(struct blitter_context *blitter, unsigned dst_layer, struct pipe_resource *src, unsigned src_layer, + unsigned sample_mask, void *custom_blend) { struct blitter_context_priv *ctx = (struct blitter_context_priv*)blitter; @@ -1508,7 +1509,7 @@ void util_blitter_custom_resolve_color(struct blitter_context *blitter, pipe->bind_depth_stencil_alpha_state(pipe, ctx->dsa_keep_depth_stencil); pipe->bind_vertex_elements_state(pipe, ctx->velem_state); pipe->bind_fs_state(pipe, blitter_get_fs_col(ctx, 1, FALSE)); - pipe->set_sample_mask(pipe, (1ull << MAX2(1, src->nr_samples)) - 1); + pipe->set_sample_mask(pipe, sample_mask); memset(&surf_tmpl, 0, sizeof(surf_tmpl)); surf_tmpl.format = dst->format; diff --git a/src/gallium/auxiliary/util/u_blitter.h b/src/gallium/auxiliary/util/u_blitter.h index 2055fd6..6804073 100644 --- a/src/gallium/auxiliary/util/u_blitter.h +++ b/src/gallium/auxiliary/util/u_blitter.h @@ -329,6 +329,7 @@ void util_blitter_custom_resolve_color(struct blitter_context *blitter, unsigned dst_layer, struct pipe_resource *src, unsigned src_layer, + unsigned sampled_mask, void *custom_blend); /* The functions below should be used to save currently bound constant state diff --git a/src/gallium/drivers/r600/evergreen_hw_context.c b/src/gallium/drivers/r600/evergreen_hw_context.c index d2f0949..b2ea7e2 100644 --- a/src/gallium/drivers/r600/evergreen_hw_context.c +++ b/src/gallium/drivers/r600/evergreen_hw_context.c @@ -500,6 +500,7 @@ static const struct r600_reg cayman_context_reg_list[] = { {R_028798_CB_BLEND6_CONTROL, 0, 0}, {R_02879C_CB_BLEND7_CONTROL, 0, 0}, {R_028800_DB_DEPTH_CONTROL, 0, 0}, + {CM_R_028804_DB_EQAA}, {R_028808_CB_COLOR_CONTROL, 0, 0}, {R_02880C_DB_SHADER_CONTROL, 0, 0}, {R_028810_PA_CL_CLIP_CNTL, 0, 0}, diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c index 35bc391..28a83f2 100644 --- a/src/gallium/drivers/r600/evergreen_state.c +++ b/src/gallium/drivers/r600/evergreen_state.c @@ -635,9 +635,6 @@ boolean evergreen_is_format_supported(struct pipe_screen *screen, if (rscreen->info.drm_minor < 19) return FALSE; - if (rscreen->chip_class != EVERGREEN) - return FALSE; - switch (sample_count) { case 2: case 4: @@ -1102,8 +1099,12 @@ static struct pipe_sampler_view *evergreen_create_sampler_view(struct pipe_conte view->tex_resource_words[5] = S_030014_BASE_ARRAY(state->u.tex.first_layer) | S_030014_LAST_ARRAY(state->u.tex.last_layer); if (texture->nr_samples > 1) { + unsigned log_samples = util_logbase2(texture->nr_samples); + if (rscreen->chip_class == CAYMAN) { + view->tex_resource_words[4] |= S_030010_LOG2_NUM_FRAGMENTS(log_samples); + } /* LAST_LEVEL holds log2(nr_samples) for multisample textures */ - view->tex_resource_words[5] |= S_030014_LAST_LEVEL(util_logbase2(texture->nr_samples)); + view->tex_resource_words[5] |= S_030014_LAST_LEVEL(log_samples); } else { view->tex_resource_words[4] |= S_030010_BASE_LEVEL(state->u.tex.first_level); view->tex_resource_words[5] |= S_030014_LAST_LEVEL(state->u.tex.last_level); @@ -1324,6 +1325,12 @@ void evergreen_init_color_surface(struct r600_context *rctx, S_028C74_NON_DISP_TILING_ORDER(tile_type) | S_028C74_FMASK_BANK_HEIGHT(fmask_bankh); + if (rctx->chip_class == CAYMAN && rtex->resource.b.b.nr_samples > 1) { + unsigned log_samples = util_logbase2(rtex->resource.b.b.nr_samples); + color_attrib |= S_028C74_NUM_SAMPLES(log_samples) | + S_028C74_NUM_FRAGMENTS(log_samples); + } + ntype = V_028C70_NUMBER_UNORM; if (desc->colorspace == UTIL_FORMAT_COLORSPACE_SRGB) ntype = V_028C70_NUMBER_SRGB; @@ -1478,6 +1485,9 @@ static void evergreen_init_depth_surface(struct r600_context *rctx, S_028040_BANK_WIDTH(bankw) | S_028040_BANK_HEIGHT(bankh) | S_028040_MACRO_TILE_ASPECT(macro_aspect); + if (rscreen->chip_class == CAYMAN && rtex->resource.b.b.nr_samples > 1) { + surf->db_depth_info |= S_028040_NUM_SAMPLES(util_logbase2(rtex->resource.b.b.nr_samples)); + } surf->db_depth_base = offset; surf->db_depth_view = S_028008_SLICE_START(surf->base.u.tex.first_layer) | S_028008_SLICE_MAX(surf->base.u.tex.last_layer); @@ -1530,7 +1540,7 @@ static uint32_t evergreen_set_ms_pos(struct pipe_context *ctx, struct r600_pipe_ }; static unsigned max_dist_4x = 6; /* 8xMSAA */ - static uint32_t eg_sample_locs_8x[] = { + static uint32_t sample_locs_8x[] = { FILL_SREG(-2, -5, 3, -4, -1, 5, -6, -2), FILL_SREG( 6, 0, 0, 0, -5, 3, 4, 4), FILL_SREG(-2, -5, 3, -4, -1, 5, -6, -2), @@ -1540,7 +1550,57 @@ static uint32_t evergreen_set_ms_pos(struct pipe_context *ctx, struct r600_pipe_ FILL_SREG(-2, -5, 3, -4, -1, 5, -6, -2), FILL_SREG( 6, 0, 0, 0, -5, 3, 4, 4), }; - static uint32_t cm_sample_locs_8x[] = { + static unsigned max_dist_8x = 8; + struct r600_context *rctx = (struct r600_context *)ctx; + unsigned i; + + switch (nsample) { + case 2: + for (i = 0; i < Elements(sample_locs_2x); i++) { + r600_pipe_state_add_reg(rstate, R_028C1C_PA_SC_AA_SAMPLE_LOCS_0 + i*4, + sample_locs_2x[i]); + } + return max_dist_2x; + case 4: + for (i = 0; i < Elements(sample_locs_4x); i++) { + r600_pipe_state_add_reg(rstate, R_028C1C_PA_SC_AA_SAMPLE_LOCS_0 + i*4, + sample_locs_4x[i]); + } + return max_dist_4x; + case 8: + for (i = 0; i < Elements(sample_locs_8x); i++) { + r600_pipe_state_add_reg(rstate, R_028C1C_PA_SC_AA_SAMPLE_LOCS_0 + i*4, + sample_locs_8x[i]); + } + return max_dist_8x; + default: + R600_ERR("Invalid nr_samples %i\n", nsample); + return 0; + } +} + +static uint32_t cayman_set_ms_pos(struct pipe_context *ctx, struct r600_pipe_state *rstate, int nsample) +{ + /* 2xMSAA + * There are two locations (-4, 4), (4, -4). */ + static uint32_t sample_locs_2x[] = { + FILL_SREG(-4, 4, 4, -4, -4, 4, 4, -4), + FILL_SREG(-4, 4, 4, -4, -4, 4, 4, -4), + FILL_SREG(-4, 4, 4, -4, -4, 4, 4, -4), + FILL_SREG(-4, 4, 4, -4, -4, 4, 4, -4), + }; + static unsigned max_dist_2x = 4; + /* 4xMSAA + * There are 4 locations: (-2, -2), (2, 2), (-6, 6), (6, -6). */ + static uint32_t sample_locs_4x[] = { + FILL_SREG(-2, -2, 2, 2, -6, 6, 6, -6), + FILL_SREG(-2, -2, 2, 2, -6, 6, 6, -6), + FILL_SREG(-2, -2, 2, 2, -6, 6, 6, -6), + FILL_SREG(-2, -2, 2, 2, -6, 6, 6, -6), + }; + static unsigned max_dist_4x = 6; + /* 8xMSAA */ + static uint32_t sample_locs_8x[] = { FILL_SREG(-2, -5, 3, -4, -1, 5, -6, -2), FILL_SREG(-2, -5, 3, -4, -1, 5, -6, -2), FILL_SREG(-2, -5, 3, -4, -1, 5, -6, -2), @@ -1552,7 +1612,7 @@ static uint32_t evergreen_set_ms_pos(struct pipe_context *ctx, struct r600_pipe_ }; static unsigned max_dist_8x = 8; /* 16xMSAA */ - static uint32_t cm_sample_locs_16x[] = { + static uint32_t sample_locs_16x[] = { FILL_SREG(-7, -3, 7, 3, 1, -5, -5, 5), FILL_SREG(-7, -3, 7, 3, 1, -5, -5, 5), FILL_SREG(-7, -3, 7, 3, 1, -5, -5, 5), @@ -1572,7 +1632,7 @@ static uint32_t evergreen_set_ms_pos(struct pipe_context *ctx, struct r600_pipe_ }; static unsigned max_dist_16x = 8; struct r600_context *rctx = (struct r600_context *)ctx; - uint32_t max_dist, num_regs, *sample_locs, i; + uint32_t max_dist, num_regs, *sample_locs; switch (nsample) { case 2: @@ -1586,55 +1646,39 @@ static uint32_t evergreen_set_ms_pos(struct pipe_context *ctx, struct r600_pipe_ max_dist = max_dist_4x; break; case 8: - if (rctx->chip_class == CAYMAN) { - sample_locs = cm_sample_locs_8x; - num_regs = Elements(cm_sample_locs_8x); - } else { - sample_locs = eg_sample_locs_8x; - num_regs = Elements(eg_sample_locs_8x); - } + sample_locs = sample_locs_8x; + num_regs = Elements(sample_locs_8x); max_dist = max_dist_8x; break; case 16: - if (rctx->chip_class == CAYMAN) { - sample_locs = cm_sample_locs_16x; - num_regs = Elements(cm_sample_locs_16x); - max_dist = max_dist_16x; - break; - } - /* fall through */ + sample_locs = sample_locs_16x; + num_regs = Elements(sample_locs_16x); + max_dist = max_dist_16x; + break; default: R600_ERR("Invalid nr_samples %i\n", nsample); return 0; } - /* All the regs must be initialized. Otherwise weird rendering may occur. */ - if (rctx->chip_class == CAYMAN) { - r600_pipe_state_add_reg(rstate, CM_R_028BF8_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_0, sample_locs[0]); - r600_pipe_state_add_reg(rstate, CM_R_028C08_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_0, sample_locs[1]); - r600_pipe_state_add_reg(rstate, CM_R_028C18_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_0, sample_locs[2]); - r600_pipe_state_add_reg(rstate, CM_R_028C28_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_0, sample_locs[3]); - if (num_regs <= 8) { - r600_pipe_state_add_reg(rstate, CM_R_028BFC_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_1, sample_locs[4]); - r600_pipe_state_add_reg(rstate, CM_R_028C0C_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_1, sample_locs[5]); - r600_pipe_state_add_reg(rstate, CM_R_028C1C_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_1, sample_locs[6]); - r600_pipe_state_add_reg(rstate, CM_R_028C2C_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_1, sample_locs[7]); - } - if (num_regs <= 16) { - r600_pipe_state_add_reg(rstate, CM_R_028C00_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_2, sample_locs[8]); - r600_pipe_state_add_reg(rstate, CM_R_028C10_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_2, sample_locs[9]); - r600_pipe_state_add_reg(rstate, CM_R_028C20_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_2, sample_locs[10]); - r600_pipe_state_add_reg(rstate, CM_R_028C30_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_2, sample_locs[11]); - r600_pipe_state_add_reg(rstate, CM_R_028C04_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_3, sample_locs[12]); - r600_pipe_state_add_reg(rstate, CM_R_028C14_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_3, sample_locs[13]); - r600_pipe_state_add_reg(rstate, CM_R_028C24_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_3, sample_locs[14]); - r600_pipe_state_add_reg(rstate, CM_R_028C34_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_3, sample_locs[15]); - } - } else { - for (i = 0; i < num_regs; i++) { - r600_pipe_state_add_reg(rstate, R_028C1C_PA_SC_AA_SAMPLE_LOCS_0 + i*4, - sample_locs[i]); - } + r600_pipe_state_add_reg(rstate, CM_R_028BF8_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_0, sample_locs[0]); + r600_pipe_state_add_reg(rstate, CM_R_028C08_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_0, sample_locs[1]); + r600_pipe_state_add_reg(rstate, CM_R_028C18_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_0, sample_locs[2]); + r600_pipe_state_add_reg(rstate, CM_R_028C28_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_0, sample_locs[3]); + if (num_regs <= 8) { + r600_pipe_state_add_reg(rstate, CM_R_028BFC_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_1, sample_locs[4]); + r600_pipe_state_add_reg(rstate, CM_R_028C0C_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_1, sample_locs[5]); + r600_pipe_state_add_reg(rstate, CM_R_028C1C_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_1, sample_locs[6]); + r600_pipe_state_add_reg(rstate, CM_R_028C2C_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_1, sample_locs[7]); + } + if (num_regs <= 16) { + r600_pipe_state_add_reg(rstate, CM_R_028C00_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_2, sample_locs[8]); + r600_pipe_state_add_reg(rstate, CM_R_028C10_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_2, sample_locs[9]); + r600_pipe_state_add_reg(rstate, CM_R_028C20_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_2, sample_locs[10]); + r600_pipe_state_add_reg(rstate, CM_R_028C30_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_2, sample_locs[11]); + r600_pipe_state_add_reg(rstate, CM_R_028C04_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_3, sample_locs[12]); + r600_pipe_state_add_reg(rstate, CM_R_028C14_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_3, sample_locs[13]); + r600_pipe_state_add_reg(rstate, CM_R_028C24_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_3, sample_locs[14]); + r600_pipe_state_add_reg(rstate, CM_R_028C34_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_3, sample_locs[15]); } return max_dist; } @@ -1647,7 +1691,7 @@ static void evergreen_set_framebuffer_state(struct pipe_context *ctx, struct r600_surface *surf; struct r600_resource *res; struct r600_texture *rtex; - uint32_t tl, br, i, nr_samples; + uint32_t tl, br, i, nr_samples, log_samples; if (rstate == NULL) return; @@ -1702,7 +1746,9 @@ static void evergreen_set_framebuffer_state(struct pipe_context *ctx, r600_pipe_state_add_reg(rstate, R_028C88_CB_COLOR0_FMASK_SLICE + i * 0x3c, surf->cb_color_fmask_slice); - if (rtex->fmask_size && rtex->cmask_size) { + /* Cayman can fetch from a compressed MSAA colorbuffer, + * so it's pointless to track them. */ + if (rctx->chip_class != CAYMAN && rtex->fmask_size && rtex->cmask_size) { rctx->compressed_cb_mask |= 1 << i; } } @@ -1775,27 +1821,43 @@ static void evergreen_set_framebuffer_state(struct pipe_context *ctx, nr_samples = 0; if (nr_samples > 1) { - unsigned log_samples = util_logbase2(nr_samples); - unsigned max_dist, line_cntl, aa_config; - - max_dist = evergreen_set_ms_pos(ctx, rstate, nr_samples); - - line_cntl = S_028C00_LAST_PIXEL(1) | - S_028C00_EXPAND_LINE_WIDTH(1); - aa_config = S_028C04_MSAA_NUM_SAMPLES(log_samples) | - S_028C04_MAX_SAMPLE_DIST(max_dist); + unsigned line_cntl = S_028C00_LAST_PIXEL(1) | + S_028C00_EXPAND_LINE_WIDTH(1); + log_samples = util_logbase2(nr_samples); if (rctx->chip_class == CAYMAN) { + unsigned max_dist = cayman_set_ms_pos(ctx, rstate, nr_samples); + r600_pipe_state_add_reg(rstate, CM_R_028BDC_PA_SC_LINE_CNTL, line_cntl); - r600_pipe_state_add_reg(rstate, CM_R_028BE0_PA_SC_AA_CONFIG, aa_config); + r600_pipe_state_add_reg(rstate, CM_R_028BE0_PA_SC_AA_CONFIG, + S_028BE0_MSAA_NUM_SAMPLES(log_samples) | + S_028BE0_MAX_SAMPLE_DIST(max_dist) | + S_028BE0_MSAA_EXPOSED_SAMPLES(log_samples)); + r600_pipe_state_add_reg(rstate, CM_R_028804_DB_EQAA, + S_028804_MAX_ANCHOR_SAMPLES(log_samples) | + S_028804_PS_ITER_SAMPLES(log_samples) | + S_028804_MASK_EXPORT_NUM_SAMPLES(log_samples) | + S_028804_ALPHA_TO_MASK_NUM_SAMPLES(log_samples) | + S_028804_HIGH_QUALITY_INTERSECTIONS(1) | + S_028804_STATIC_ANCHOR_ASSOCIATIONS(1)); } else { + unsigned max_dist = evergreen_set_ms_pos(ctx, rstate, nr_samples); + r600_pipe_state_add_reg(rstate, R_028C00_PA_SC_LINE_CNTL, line_cntl); - r600_pipe_state_add_reg(rstate, R_028C04_PA_SC_AA_CONFIG, aa_config); + r600_pipe_state_add_reg(rstate, R_028C04_PA_SC_AA_CONFIG, + S_028C04_MSAA_NUM_SAMPLES(log_samples) | + S_028C04_MAX_SAMPLE_DIST(max_dist)); } } else { + log_samples = 0; + if (rctx->chip_class == CAYMAN) { r600_pipe_state_add_reg(rstate, CM_R_028BDC_PA_SC_LINE_CNTL, S_028C00_LAST_PIXEL(1)); r600_pipe_state_add_reg(rstate, CM_R_028BE0_PA_SC_AA_CONFIG, 0); + r600_pipe_state_add_reg(rstate, CM_R_028804_DB_EQAA, + S_028804_HIGH_QUALITY_INTERSECTIONS(1) | + S_028804_STATIC_ANCHOR_ASSOCIATIONS(1)); + } else { r600_pipe_state_add_reg(rstate, R_028C00_PA_SC_LINE_CNTL, S_028C00_LAST_PIXEL(1)); r600_pipe_state_add_reg(rstate, R_028C04_PA_SC_AA_CONFIG, 0); @@ -1819,6 +1881,11 @@ static void evergreen_set_framebuffer_state(struct pipe_context *ctx, rctx->alphatest_state.bypass = false; r600_atom_dirty(rctx, &rctx->alphatest_state.atom); } + + if (rctx->chip_class == CAYMAN && rctx->db_misc_state.log_samples != log_samples) { + rctx->db_misc_state.log_samples = log_samples; + r600_atom_dirty(rctx, &rctx->db_misc_state.atom); + } } static void evergreen_emit_cb_misc_state(struct r600_context *rctx, struct r600_atom *atom) @@ -1849,6 +1916,9 @@ static void evergreen_emit_db_misc_state(struct r600_context *rctx, struct r600_ if (a->occlusion_query_enabled) { db_count_control |= S_028004_PERFECT_ZPASS_COUNTS(1); + if (rctx->chip_class == CAYMAN) { + db_count_control |= S_028004_SAMPLE_RATE(a->log_samples); + } db_render_override |= S_02800C_NOOP_CULL_DISABLE(1); } @@ -2214,8 +2284,6 @@ static void cayman_init_atom_start_cs(struct r600_context *rctx) r600_store_value(cb, 0); /* CM_R_0288E8_SQ_LDS_ALLOC */ r600_store_value(cb, 0); /* R_0288EC_SQ_LDS_ALLOC_PS */ - r600_store_context_reg(cb, CM_R_028804_DB_EQAA, 0x110000); - r600_store_context_reg_seq(cb, R_028380_SQ_VTX_SEMANTIC_0, 34); r600_store_value(cb, 0); /* R_028380_SQ_VTX_SEMANTIC_0 */ r600_store_value(cb, 0); diff --git a/src/gallium/drivers/r600/evergreend.h b/src/gallium/drivers/r600/evergreend.h index 0c56aa6..91d78f8 100644 --- a/src/gallium/drivers/r600/evergreend.h +++ b/src/gallium/drivers/r600/evergreend.h @@ -378,6 +378,9 @@ #define S_028C74_BANK_HEIGHT(x) (((x) & 0x3) << 16) #define S_028C74_MACRO_TILE_ASPECT(x) (((x) & 0x3) << 19) #define S_028C74_FMASK_BANK_HEIGHT(x) (((x) & 0x3) << 22) -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1t7owi-0001q8...@vasks.debian.org