Mesa (master): radeonsi: add support for Hawaii asics (v2)
Module: Mesa Branch: master Commit: f5778f152b250cb233f4bee021baae916e504afe URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f5778f152b250cb233f4bee021baae916e504afe Author: Alex Deucher alexander.deuc...@amd.com Date: Tue Sep 24 12:12:29 2013 -0400 radeonsi: add support for Hawaii asics (v2) Update additional register fields. Reviewed-by: Michel Dänzer michel.daen...@amd.com Signed-off-by: Alex Deucher alexander.deuc...@amd.com --- src/gallium/drivers/radeonsi/radeonsi_pipe.c |2 ++ src/gallium/drivers/radeonsi/si_state.c |4 src/gallium/drivers/radeonsi/sid.h|9 + src/gallium/winsys/radeon/drm/radeon_drm_winsys.c |1 + src/gallium/winsys/radeon/drm/radeon_winsys.h |1 + 5 files changed, 17 insertions(+), 0 deletions(-) diff --git a/src/gallium/drivers/radeonsi/radeonsi_pipe.c b/src/gallium/drivers/radeonsi/radeonsi_pipe.c index b79a58e..1f92791 100644 --- a/src/gallium/drivers/radeonsi/radeonsi_pipe.c +++ b/src/gallium/drivers/radeonsi/radeonsi_pipe.c @@ -258,6 +258,7 @@ const char *r600_get_llvm_processor_name(enum radeon_family family) case CHIP_BONAIRE: return bonaire; case CHIP_KABINI: return kabini; case CHIP_KAVERI: return kaveri; + case CHIP_HAWAII: return hawaii; default: return ; #endif } @@ -274,6 +275,7 @@ static const char *r600_get_family_name(enum radeon_family family) case CHIP_BONAIRE: return AMD BONAIRE; case CHIP_KAVERI: return AMD KAVERI; case CHIP_KABINI: return AMD KABINI; + case CHIP_HAWAII: return AMD HAWAII; default: return AMD unknown; } } diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c index 72368d8..2742836 100644 --- a/src/gallium/drivers/radeonsi/si_state.c +++ b/src/gallium/drivers/radeonsi/si_state.c @@ -3136,6 +3136,10 @@ void si_init_config(struct r600_context *rctx) si_pm4_set_reg(pm4, R_028350_PA_SC_RASTER_CONFIG, 0x1612); si_pm4_set_reg(pm4, R_028354_PA_SC_RASTER_CONFIG_1, 0x); break; + case CHIP_HAWAII: + si_pm4_set_reg(pm4, R_028350_PA_SC_RASTER_CONFIG, 0x3a00161a); + si_pm4_set_reg(pm4, R_028354_PA_SC_RASTER_CONFIG_1, 0x002e); + break; case CHIP_KAVERI: /* XXX todo */ case CHIP_KABINI: diff --git a/src/gallium/drivers/radeonsi/sid.h b/src/gallium/drivers/radeonsi/sid.h index 021f4eb..aab39fc 100644 --- a/src/gallium/drivers/radeonsi/sid.h +++ b/src/gallium/drivers/radeonsi/sid.h @@ -5403,6 +5403,8 @@ #define V_02803C_X_ADDR_SURF_P8_32X32_16X16 0x0C #define V_02803C_X_ADDR_SURF_P8_32X32_16X32 0x0D #define V_02803C_X_ADDR_SURF_P8_32X64_32X32 0x0E +#define V_02803C_X_ADDR_SURF_P16_32X32_8X16 0x10 +#define V_02803C_X_ADDR_SURF_P16_32X32_16X160x11 #define S_02803C_BANK_WIDTH(x) (((x) 0x03) 13) #define G_02803C_BANK_WIDTH(x) (((x) 13) 0x03) #define C_02803C_BANK_WIDTH 0x9FFF @@ -5731,6 +5733,13 @@ #define V_028350_RASTER_CONFIG_PKR_YSEL_1 0x01 #define V_028350_RASTER_CONFIG_PKR_YSEL_2 0x02 #define V_028350_RASTER_CONFIG_PKR_YSEL_3 0x03 +#define S_028350_PKR_XSEL2(x) (((x) 0x03) 14) +#define G_028350_PKR_XSEL2(x) (((x) 14) 0x03) +#define C_028350_PKR_XSEL2 0x3FFF +#define V_028350_RASTER_CONFIG_PKR_XSEL2_0 0x00 +#define V_028350_RASTER_CONFIG_PKR_XSEL2_1 0x01 +#define V_028350_RASTER_CONFIG_PKR_XSEL2_2 0x02 +#define V_028350_RASTER_CONFIG_PKR_XSEL2_3 0x03 #define S_028350_SC_MAP(x) (((x) 0x03) 16) #define G_028350_SC_MAP(x) (((x) 16) 0x03) #define C_028350_SC_MAP 0xFFFC diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c index 8a8f180..1860810 100644 --- a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c +++ b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c @@ -330,6 +330,7 @@ static boolean do_winsys_init(struct radeon_drm_winsys *ws) case CHIP_BONAIRE: case CHIP_KAVERI: case CHIP_KABINI: +case CHIP_HAWAII: ws-info.chip_class = CIK; break; } diff --git
Mesa (master): radeonsi: add Hawaii pci ids
Module: Mesa Branch: master Commit: 469b42ee21d6bc530200c76cb0e73b0b461ab6e8 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=469b42ee21d6bc530200c76cb0e73b0b461ab6e8 Author: Alex Deucher alexander.deuc...@amd.com Date: Tue Sep 24 12:13:42 2013 -0400 radeonsi: add Hawaii pci ids Reviewed-by: Michel Dänzer michel.daen...@amd.com Signed-off-by: Alex Deucher alexander.deuc...@amd.com --- include/pci_ids/radeonsi_pci_ids.h | 13 + 1 files changed, 13 insertions(+), 0 deletions(-) diff --git a/include/pci_ids/radeonsi_pci_ids.h b/include/pci_ids/radeonsi_pci_ids.h index 0fdd1ad..7b42d5e 100644 --- a/include/pci_ids/radeonsi_pci_ids.h +++ b/include/pci_ids/radeonsi_pci_ids.h @@ -118,3 +118,16 @@ CHIPSET(0x1317, KAVERI_1317, KAVERI) CHIPSET(0x131B, KAVERI_131B, KAVERI) CHIPSET(0x131C, KAVERI_131C, KAVERI) CHIPSET(0x131D, KAVERI_131D, KAVERI) + +CHIPSET(0x67A0, HAWAII_67A0, HAWAII) +CHIPSET(0x67A1, HAWAII_67A1, HAWAII) +CHIPSET(0x67A2, HAWAII_67A2, HAWAII) +CHIPSET(0x67A8, HAWAII_67A8, HAWAII) +CHIPSET(0x67A9, HAWAII_67A9, HAWAII) +CHIPSET(0x67AA, HAWAII_67AA, HAWAII) +CHIPSET(0x67B0, HAWAII_67B0, HAWAII) +CHIPSET(0x67B1, HAWAII_67B1, HAWAII) +CHIPSET(0x67B8, HAWAII_67B8, HAWAII) +CHIPSET(0x67B9, HAWAII_67B9, HAWAII) +CHIPSET(0x67BA, HAWAII_67BA, HAWAII) +CHIPSET(0x67BE, HAWAII_67BE, HAWAII) ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): tools/trace: Several bugfixes/improvements to dump_state.py
Module: Mesa Branch: master Commit: 420ccf7b8f33c92657479462478db787c431d750 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=420ccf7b8f33c92657479462478db787c431d750 Author: José Fonseca jfons...@vmware.com Date: Fri Nov 15 15:42:02 2013 + tools/trace: Several bugfixes/improvements to dump_state.py - Don't crash with user memory pointers. - Support old bind_*_sampler_* methods. Useful when comparing dumps from old branches. - Misc. --- src/gallium/tools/trace/dump_state.py | 58 +++- 1 files changed, 49 insertions(+), 9 deletions(-) diff --git a/src/gallium/tools/trace/dump_state.py b/src/gallium/tools/trace/dump_state.py index 8c3bdab..293d609 100755 --- a/src/gallium/tools/trace/dump_state.py +++ b/src/gallium/tools/trace/dump_state.py @@ -104,7 +104,7 @@ class Struct: return obj def __repr__(self): -return repr(self.__json__) +return repr(self.__json__()) class Translator(model.Visitor): @@ -239,11 +239,12 @@ class Context(Dispatcher): self._state.vs.shader = None self._state.gs.shader = None self._state.fs.shader = None -self._state.sampler = {} self._state.vs.sampler = [] self._state.gs.sampler = [] self._state.fs.sampler = [] -self._state.sampler_views = {} +self._state.vs.sampler_views = [] +self._state.gs.sampler_views = [] +self._state.fs.sampler_views = [] self._state.vs.constant_buffer = [] self._state.gs.constant_buffer = [] self._state.fs.constant_buffer = [] @@ -280,7 +281,21 @@ class Context(Dispatcher): pass def bind_sampler_states(self, shader, start, num_states, states): -self._state.sampler[shader] = states +# FIXME: Handle non-zero start +assert start == 0 +self._get_stage_state(shader).sampler = states + +def bind_vertex_sampler_states(self, num_states, states): +# XXX: deprecated method +self._state.vs.sampler = states + +def bind_geometry_sampler_states(self, num_states, states): +# XXX: deprecated method +self._state.gs.sampler = states + +def bind_fragment_sampler_states(self, num_states, states): +# XXX: deprecated method +self._state.fs.sampler = states def create_rasterizer_state(self, state): return state @@ -399,7 +414,21 @@ class Context(Dispatcher): pass def set_sampler_views(self, shader, start, num, views): -self._state.sampler_views[shader] = views +# FIXME: Handle non-zero start +assert start == 0 +self._get_stage_state(shader).sampler_views = views + +def set_fragment_sampler_views(self, num, views): +# XXX: deprecated +self._state.fs.sampler_views = views + +def set_geometry_sampler_views(self, num, views): +# XXX: deprecated +self._state.gs.sampler_views = views + +def set_vertex_sampler_views(self, num, views): +# XXX: deprecated +self._state.vs.sampler_views = views def set_vertex_buffers(self, start_slot, num_buffers, buffers): self._update(self._state.vertex_buffers, start_slot, num_buffers, buffers) @@ -432,6 +461,10 @@ class Context(Dispatcher): assert struct.calcsize(format) == index_size +if self._state.index_buffer.buffer is None: +# Could happen with index in user memory +return 0, 0 + data = self._state.index_buffer.buffer.data max_index, min_index = 0, 0x @@ -535,8 +568,11 @@ class Context(Dispatcher): register = registers.setdefault(file_, set()) register.add(int(index)) +if 'SAMP' in registers and 'SVIEW' not in registers: +registers['SVIEW'] = registers['SAMP'] + mapping = [ -(CONST, constant_buffer), +#(CONST, constant_buffer), (SAMP, sampler), (SVIEW, sampler_views), ] @@ -599,9 +635,9 @@ class Context(Dispatcher): def transfer_inline_write(self, resource, level, usage, box, stride, layer_stride, data): if resource is not None and resource.target == PIPE_BUFFER: data = data.getValue() -assert len(data) == box.width +assert len(data) = box.width assert box.x + box.width = len(resource.data) -resource.data[box.x : box.x + box.width] = data +resource.data[box.x : box.x + box.width] = data[:box.width] def flush(self, flags): # Return a fake fence @@ -667,7 +703,11 @@ class Interpreter(parser.TraceDumper): pass def lookup_object(self, address): -return self.objects[address] +try: +return self.objects[address] +except KeyError: +# Could happen, e.g., with user memory pointers +return address def
Mesa (master): trace: Dump user_buffer members.
Module: Mesa Branch: master Commit: c5a05a6aefb0c2dd34bf8b42a7ef3051dcc891c2 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c5a05a6aefb0c2dd34bf8b42a7ef3051dcc891c2 Author: José Fonseca jfons...@vmware.com Date: Fri Nov 15 15:32:33 2013 + trace: Dump user_buffer members. --- src/gallium/drivers/trace/tr_dump_state.c |2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/src/gallium/drivers/trace/tr_dump_state.c b/src/gallium/drivers/trace/tr_dump_state.c index 22f1d27..374e32f 100644 --- a/src/gallium/drivers/trace/tr_dump_state.c +++ b/src/gallium/drivers/trace/tr_dump_state.c @@ -619,6 +619,7 @@ void trace_dump_vertex_buffer(const struct pipe_vertex_buffer *state) trace_dump_member(uint, state, stride); trace_dump_member(uint, state, buffer_offset); trace_dump_member(resource_ptr, state, buffer); + trace_dump_member(ptr, state, user_buffer); trace_dump_struct_end(); } @@ -639,6 +640,7 @@ void trace_dump_index_buffer(const struct pipe_index_buffer *state) trace_dump_member(uint, state, index_size); trace_dump_member(uint, state, offset); trace_dump_member(resource_ptr, state, buffer); + trace_dump_member(ptr, state, user_buffer); trace_dump_struct_end(); } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): mesa: Fix derived vertex state not being updated in glCallList()
Module: Mesa Branch: master Commit: ff353c218a1ab1fd3fb797a4780612ec4b0451d8 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ff353c218a1ab1fd3fb797a4780612ec4b0451d8 Author: Fredrik Höglund fred...@kde.org Date: Mon Nov 11 18:54:15 2013 +0100 mesa: Fix derived vertex state not being updated in glCallList() AEcontext::NewState is not always set when the vertex array state is changed. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71492 Cc: 10.0 mesa-sta...@lists.freedesktop.org Reviewed-by: José Fonseca jfons...@vmware.com Reviewed-by: Brian Paul bri...@vmware.com --- src/mesa/main/api_arrayelt.c | 22 -- 1 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/mesa/main/api_arrayelt.c b/src/mesa/main/api_arrayelt.c index 6822465..c9d4d03 100644 --- a/src/mesa/main/api_arrayelt.c +++ b/src/mesa/main/api_arrayelt.c @@ -1469,6 +1469,18 @@ check_vbo(AEcontext *actx, struct gl_buffer_object *vbo) } +static inline void +update_derived_client_arrays(struct gl_context *ctx) +{ + struct gl_array_object *arrayObj = ctx-Array.ArrayObj; + + if (arrayObj-NewArrays) { + _mesa_update_array_object_client_arrays(ctx, arrayObj); + arrayObj-NewArrays = 0; + } +} + + /** * Make a list of per-vertex functions to call for each glArrayElement call. * These functions access the array data (i.e. glVertex, glColor, glNormal, @@ -1486,12 +1498,6 @@ _ae_update_state(struct gl_context *ctx) actx-nr_vbos = 0; - if (arrayObj-NewArrays) { - /* update the derived client arrays */ - _mesa_update_array_object_client_arrays(ctx, arrayObj); - arrayObj-NewArrays = 0; - } - /* conventional vertex arrays */ if (arrayObj-_VertexAttrib[VERT_ATTRIB_COLOR_INDEX].Enabled) { aa-array = arrayObj-_VertexAttrib[VERT_ATTRIB_COLOR_INDEX]; @@ -1618,6 +1624,8 @@ _ae_map_vbos(struct gl_context *ctx) if (actx-mapped_vbos) return; + update_derived_client_arrays(ctx); + if (actx-NewState) _ae_update_state(ctx); @@ -1669,6 +1677,8 @@ _ae_ArrayElement(GLint elt) const struct _glapi_table * const disp = GET_DISPATCH(); GLboolean do_map; + update_derived_client_arrays(ctx); + /* If PrimitiveRestart is enabled and the index is the RestartIndex * then we call PrimitiveRestartNV and return. */ ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): glsl: Rework interface block linking.
Module: Mesa Branch: master Commit: f38ac41ed48fefe82360520c9d33ba9261a3e642 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f38ac41ed48fefe82360520c9d33ba9261a3e642 Author: Paul Berry stereotype...@gmail.com Date: Tue Oct 29 14:41:32 2013 -0700 glsl: Rework interface block linking. Previously, when doing intrastage and interstage interface block linking, we only checked the interface type; this prevented us from catching some link errors. We now check the following additional constraints: - For intrastage linking, the presence/absence of interface names must match. - For shader ins/outs, the interface names themselves must match when doing intrastage linking (note: it's not clear from the spec whether this is necessary, but Mesa's implementation currently relies on it). - Array vs. nonarray must be consistent, taking into account the special rules for vertex-geometry linkage. - Array sizes must be consistent (exception: during intrastage linking, an unsized array matches a sized array). Note: validate_interstage_interface_blocks currently handles both uniforms and in/out variables. As a result, if all three shader types are present (VS, GS, and FS), and a uniform interface block is mentioned in the VS and FS but not the GS, it won't be validated. I plan to address this in later patches. Fixes the following piglit tests in spec/glsl-1.50/linker: - interface-blocks-vs-fs-array-size-mismatch - interface-vs-array-to-fs-unnamed - interface-vs-unnamed-to-fs-array - intrastage-interface-unnamed-array v2: Simplify logic in intrastage_match() for handling array sizes. Make extra_array_level const. Use an unnamed temporary interface_block_definition in validate_interstage_interface_blocks()'s first call to definitions-store(). Cc: 10.0 mesa-sta...@lists.freedesktop.org Reviewed-by: Ian Romanick ian.d.roman...@intel.com Reviewed-by: Jordan Justen jordan.l.jus...@intel.com --- src/glsl/link_interface_blocks.cpp | 271 +--- 1 files changed, 251 insertions(+), 20 deletions(-) diff --git a/src/glsl/link_interface_blocks.cpp b/src/glsl/link_interface_blocks.cpp index 4f1c9d3..a7fceb9 100644 --- a/src/glsl/link_interface_blocks.cpp +++ b/src/glsl/link_interface_blocks.cpp @@ -30,13 +30,211 @@ #include glsl_symbol_table.h #include linker.h #include main/macros.h +#include program/hash_table.h + + +namespace { + +/** + * Information about a single interface block definition that we need to keep + * track of in order to check linkage rules. + * + * Note: this class is expected to be short lived, so it doesn't make copies + * of the strings it references; it simply borrows the pointers from the + * ir_variable class. + */ +struct interface_block_definition +{ + /** +* Extract an interface block definition from an ir_variable that +* represents either the interface instance (for named interfaces), or a +* member of the interface (for unnamed interfaces). +*/ + explicit interface_block_definition(const ir_variable *var) + : type(var-get_interface_type()), +instance_name(NULL), +array_size(-1) + { + if (var-is_interface_instance()) { + instance_name = var-name; + if (var-type-is_array()) +array_size = var-type-length; + } + } + + /** +* Interface block type +*/ + const glsl_type *type; + + /** +* For a named interface block, the instance name. Otherwise NULL. +*/ + const char *instance_name; + + /** +* For an interface block array, the array size (or 0 if unsized). +* Otherwise -1. +*/ + int array_size; +}; + + +/** + * Check if two interfaces match, according to intrastage interface matching + * rules. If they do, and the first interface uses an unsized array, it will + * be updated to reflect the array size declared in the second interface. + */ +bool +intrastage_match(interface_block_definition *a, + const interface_block_definition *b, + ir_variable_mode mode) +{ + /* Types must match. */ + if (a-type != b-type) + return false; + + /* Presence/absence of interface names must match. */ + if ((a-instance_name == NULL) != (b-instance_name == NULL)) + return false; + + /* For uniforms, instance names need not match. For shader ins/outs, +* it's not clear from the spec whether they need to match, but +* Mesa's implementation relies on them matching. +*/ + if (a-instance_name != NULL mode != ir_var_uniform + strcmp(a-instance_name, b-instance_name) != 0) { + return false; + } + + /* Array vs. nonarray must be consistent, and sizes must be +* consistent, with the exception that unsized arrays match sized +* arrays. +*/ + if ((a-array_size == -1) != (b-array_size == -1)) + return false; + if (b-array_size != 0) { + if (a-array_size == 0) + a-array_size = b-array_size; + else if (a-array_size != b-array_size)
Mesa (master): i965: Fix vertical alignment for multisampled buffers.
Module: Mesa Branch: master Commit: b4c3b833ec8ec6787658ea90365ff565cd8846c7 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b4c3b833ec8ec6787658ea90365ff565cd8846c7 Author: Paul Berry stereotype...@gmail.com Date: Tue Nov 12 10:55:18 2013 -0800 i965: Fix vertical alignment for multisampled buffers. From the Sandy Bridge PRM, Vol 1 Part 1 7.18.3.4 (Alignment Unit Size): j [vertical alignment] = 4 for any render target surface is multisampled (4x) From the Ivy Bridge PRM, Vol 4 Part 1 2.12.2.1 (SURFACE_STATE for most messages), under the Surface Vertical Alignment heading: This field is intended to be set to VALIGN_4 if the surface was rendered as a depth buffer, for a multisampled (4x) render target, or for a multisampled (8x) render target, since these surfaces support only alignment of 4. Back in 2012 when we added multisampling support to the i965 driver, we forgot to update the logic for computing the vertical alignment, so we were often using a vertical alignment of 2 for multisampled buffers, leading to subtle rendering errors. Note that the specs also require a vertical alignment of 4 for all Y-tiled render target surfaces; I plan to address that in a separate patch. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=53077 Cc: mesa-sta...@lists.freedesktop.org Reviewed-by: Kenneth Graunke kenn...@whitecape.org Reviewed-by: Eric Anholt e...@anholt.net --- src/mesa/drivers/dri/i965/brw_tex_layout.c | 11 +++ 1 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_tex_layout.c b/src/mesa/drivers/dri/i965/brw_tex_layout.c index d912862..d05dbeb 100644 --- a/src/mesa/drivers/dri/i965/brw_tex_layout.c +++ b/src/mesa/drivers/dri/i965/brw_tex_layout.c @@ -86,7 +86,7 @@ intel_horizontal_texture_alignment_unit(struct brw_context *brw, static unsigned int intel_vertical_texture_alignment_unit(struct brw_context *brw, - gl_format format) + gl_format format, bool multisampled) { /** * From the Alignment Unit Size section of various specs, namely: @@ -110,8 +110,6 @@ intel_vertical_texture_alignment_unit(struct brw_context *brw, * * On SNB+, non-special cases can be overridden by setting the SURFACE_STATE * Surface Vertical Alignment field to VALIGN_2 or VALIGN_4. -* -* We currently don't support multisampling. */ if (_mesa_is_format_compressed(format)) return 4; @@ -119,6 +117,9 @@ intel_vertical_texture_alignment_unit(struct brw_context *brw, if (format == MESA_FORMAT_S8) return brw-gen = 7 ? 8 : 4; + if (multisampled) + return 4; + GLenum base_format = _mesa_get_format_base_format(format); if (brw-gen = 6 @@ -276,8 +277,10 @@ brw_miptree_layout_texture_3d(struct brw_context *brw, void brw_miptree_layout(struct brw_context *brw, struct intel_mipmap_tree *mt) { + bool multisampled = mt-num_samples 1; mt-align_w = intel_horizontal_texture_alignment_unit(brw, mt-format); - mt-align_h = intel_vertical_texture_alignment_unit(brw, mt-format); + mt-align_h = + intel_vertical_texture_alignment_unit(brw, mt-format, multisampled); switch (mt-target) { case GL_TEXTURE_CUBE_MAP: ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): main: Fix MaxUniformComponents for geometry shaders.
Module: Mesa Branch: master Commit: 46e9f78efcb6ccc25ea59d83624aaa5077254a85 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=46e9f78efcb6ccc25ea59d83624aaa5077254a85 Author: Paul Berry stereotype...@gmail.com Date: Wed Nov 13 14:24:09 2013 -0800 main: Fix MaxUniformComponents for geometry shaders. For both vertex and fragment shaders we default MaxUniformComponents to 4 * MAX_UNIFORMS. It makes sense to do this for geometry shaders too; if back-ends have different limits they can override them as necessary. Fixes piglit test: spec/glsl-1.50/built-in constants/gl_MaxGeometryUniformComponents Cc: 10.0 mesa-sta...@lists.freedesktop.org Reviewed-by: Kenneth Graunke kenn...@whitecape.org Reviewed-by: Chad Versace chad.vers...@linux.intel.com --- src/mesa/main/context.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index d005d23..8cbc935 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -494,7 +494,7 @@ init_program_limits(struct gl_context *ctx, GLenum type, prog-MaxParameters = MAX_VERTEX_PROGRAM_PARAMS; prog-MaxAttribs = MAX_VERTEX_GENERIC_ATTRIBS; prog-MaxAddressRegs = MAX_VERTEX_PROGRAM_ADDRESS_REGS; - prog-MaxUniformComponents = MAX_GEOMETRY_UNIFORM_COMPONENTS; + prog-MaxUniformComponents = 4 * MAX_UNIFORMS; prog-MaxInputComponents = 16 * 4; /* old limit not to break tnl and swrast */ prog-MaxOutputComponents = 16 * 4; /* old limit not to break tnl and swrast */ break; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): radeon/llvm: Free libelf resources
Module: Mesa Branch: master Commit: a2b93da84bda2b92108cf3b9c253fec114b69dc2 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a2b93da84bda2b92108cf3b9c253fec114b69dc2 Author: Aaron Watry awa...@gmail.com Date: Wed Nov 6 16:49:20 2013 -0600 radeon/llvm: Free libelf resources v2: Fix indentation Reviewed-by: Tom Stellard thomas.stell...@amd.com CC: 10.0 mesa-sta...@lists.freedesktop.org --- src/gallium/drivers/radeon/radeon_llvm_emit.c |3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/src/gallium/drivers/radeon/radeon_llvm_emit.c b/src/gallium/drivers/radeon/radeon_llvm_emit.c index 8bf278b..d2e5642 100644 --- a/src/gallium/drivers/radeon/radeon_llvm_emit.c +++ b/src/gallium/drivers/radeon/radeon_llvm_emit.c @@ -173,6 +173,9 @@ unsigned radeon_llvm_compile(LLVMModuleRef M, struct radeon_llvm_binary *binary, } } + if (elf){ + elf_end(elf); + } LLVMDisposeMemoryBuffer(out_buffer); LLVMDisposeTargetMachine(tm); return 0; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): radeonsi/compute: Free program and program. kernels on shutdown
Module: Mesa Branch: master Commit: 35dad4a1e235b2bf7fb3ecdb82aed0214db69a35 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=35dad4a1e235b2bf7fb3ecdb82aed0214db69a35 Author: Aaron Watry awa...@gmail.com Date: Wed Nov 6 16:49:22 2013 -0600 radeonsi/compute: Free program and program.kernels on shutdown v2: Fix indentation Reviewed-by: Tom Stellard thomas.stell...@amd.com CC: 10.0 mesa-sta...@lists.freedesktop.org --- src/gallium/drivers/radeonsi/radeonsi_compute.c | 16 +++- 1 files changed, 15 insertions(+), 1 deletions(-) diff --git a/src/gallium/drivers/radeonsi/radeonsi_compute.c b/src/gallium/drivers/radeonsi/radeonsi_compute.c index 49caa2c..e7bf5a4 100644 --- a/src/gallium/drivers/radeonsi/radeonsi_compute.c +++ b/src/gallium/drivers/radeonsi/radeonsi_compute.c @@ -245,7 +245,21 @@ static void radeonsi_launch_grid( } -static void si_delete_compute_state(struct pipe_context *ctx, void* state){} +static void si_delete_compute_state(struct pipe_context *ctx, void* state){ + struct si_pipe_compute *program = (struct si_pipe_compute *)state; + + if (!state) { + return; + } + + if (program-kernels) { + FREE(program-kernels); + } + + //And then free the program itself. + FREE(program); +} + static void si_set_compute_resources(struct pipe_context * ctx_, unsigned start, unsigned count, struct pipe_surface ** surfaces) { } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): radeonsi/compute: Dispose of LLVM module after compiling kernels
Module: Mesa Branch: master Commit: 4c6ac9e61452ffc49f8e360fc879deec8e04bbb5 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4c6ac9e61452ffc49f8e360fc879deec8e04bbb5 Author: Aaron Watry awa...@gmail.com Date: Wed Nov 6 16:49:23 2013 -0600 radeonsi/compute: Dispose of LLVM module after compiling kernels v2: Fix indentation Reviewed-by: Tom Stellard thomas.stell...@amd.com CC: 10.0 mesa-sta...@lists.freedesktop.org --- src/gallium/drivers/radeonsi/radeonsi_compute.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/src/gallium/drivers/radeonsi/radeonsi_compute.c b/src/gallium/drivers/radeonsi/radeonsi_compute.c index e7bf5a4..5df972f 100644 --- a/src/gallium/drivers/radeonsi/radeonsi_compute.c +++ b/src/gallium/drivers/radeonsi/radeonsi_compute.c @@ -49,6 +49,7 @@ static void *radeonsi_create_compute_state( LLVMModuleRef mod = radeon_llvm_get_kernel_module(i, code, header-num_bytes); si_compile_llvm(rctx, program-kernels[i], mod); + LLVMDisposeModule(mod); } return program; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): gallium/pipe_loader: un-reference udev resources when we' re done with them.
Module: Mesa Branch: master Commit: 598f61ba28bcfd220104e18e89973768babeaac3 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=598f61ba28bcfd220104e18e89973768babeaac3 Author: Aaron Watry awa...@gmail.com Date: Wed Nov 6 16:49:24 2013 -0600 gallium/pipe_loader: un-reference udev resources when we're done with them. Reviewed-by: Tom Stellard thomas.stell...@amd.com CC: 10.0 mesa-sta...@lists.freedesktop.org --- .../auxiliary/pipe-loader/pipe_loader_drm.c|3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c index 339d7bf..927fb24 100644 --- a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c +++ b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c @@ -88,6 +88,9 @@ find_drm_pci_id(struct pipe_loader_drm_device *ddev) ddev-base.u.pci.chip_id) != 2) goto fail; + udev_device_unref(device); + udev_unref(udev); + return TRUE; fail: ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): clover: Support multiple devices in clCreateContextFromType( ) v2
Module: Mesa Branch: master Commit: 17af4dd52b0530b671fb7ae64345500f62ed7ee3 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=17af4dd52b0530b671fb7ae64345500f62ed7ee3 Author: Tom Stellard thomas.stell...@amd.com Date: Thu Apr 11 10:37:55 2013 -0400 clover: Support multiple devices in clCreateContextFromType() v2 v2: - Use clGetDeviceIDs to query devices. Reviewed-by: Francisco Jerez curroje...@riseup.net CC: 10.0 mesa-sta...@lists.freedesktop.org --- src/gallium/state_trackers/clover/api/context.cpp | 12 +--- 1 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/gallium/state_trackers/clover/api/context.cpp b/src/gallium/state_trackers/clover/api/context.cpp index 7b020a6..a78c00b 100644 --- a/src/gallium/state_trackers/clover/api/context.cpp +++ b/src/gallium/state_trackers/clover/api/context.cpp @@ -61,18 +61,24 @@ clCreateContextFromType(const cl_context_properties *d_props, void *user_data, cl_int *r_errcode) try { cl_platform_id d_platform; cl_uint num_platforms; - cl_device_id d_dev; cl_int ret; + std::vectorcl_device_id devs; + cl_uint num_devices; ret = clGetPlatformIDs(1, d_platform, num_platforms); if (ret || !num_platforms) throw error(CL_INVALID_PLATFORM); - ret = clGetDeviceIDs(d_platform, type, 1, d_dev, 0); + ret = clGetDeviceIDs(d_platform, type, 0, NULL, num_devices); + if (ret) + throw error(CL_DEVICE_NOT_FOUND); + devs.resize(num_devices); + ret = clGetDeviceIDs(d_platform, type, num_devices, devs.data(), 0); if (ret) throw error(CL_DEVICE_NOT_FOUND); - return clCreateContext(d_props, 1, d_dev, pfn_notify, user_data, r_errcode); + return clCreateContext(d_props, num_devices, devs.data(), pfn_notify, + user_data, r_errcode); } catch (error e) { ret_error(r_errcode, e); ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): radeon/llvm: Free created llvm memory buffer
Module: Mesa Branch: master Commit: d41b10f811a89c76248f195a6b4ade62322b8c3c URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d41b10f811a89c76248f195a6b4ade62322b8c3c Author: Aaron Watry awa...@gmail.com Date: Wed Nov 6 16:49:21 2013 -0600 radeon/llvm: Free created llvm memory buffer v2: Fix indentation Reviewed-by: Tom Stellard thomas.stell...@amd.com CC: 10.0 mesa-sta...@lists.freedesktop.org --- src/gallium/drivers/radeon/radeon_llvm_util.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/src/gallium/drivers/radeon/radeon_llvm_util.c b/src/gallium/drivers/radeon/radeon_llvm_util.c index 7192dee..f2b3e13 100644 --- a/src/gallium/drivers/radeon/radeon_llvm_util.c +++ b/src/gallium/drivers/radeon/radeon_llvm_util.c @@ -42,6 +42,7 @@ LLVMModuleRef radeon_llvm_parse_bitcode(const unsigned char * bitcode, buf = LLVMCreateMemoryBufferWithMemoryRangeCopy((const char*)bitcode, bitcode_len, radeon); LLVMParseBitcodeInContext(ctx, buf, module, NULL); + LLVMDisposeMemoryBuffer(buf); return module; } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): radeon/llvm: fix spelling error
Module: Mesa Branch: master Commit: df482fe02f6732fb6fe7ae0a509b3c66e655bd5b URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=df482fe02f6732fb6fe7ae0a509b3c66e655bd5b Author: Aaron Watry awa...@gmail.com Date: Wed Nov 6 16:49:19 2013 -0600 radeon/llvm: fix spelling error Reviewed-by: Tom Stellard thomas.stell...@amd.com CC: 10.0 mesa-sta...@lists.freedesktop.org --- .../drivers/radeon/radeon_setup_tgsi_llvm.c|2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c b/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c index 286ccdd..57026bf 100644 --- a/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c +++ b/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c @@ -1379,7 +1379,7 @@ void radeon_llvm_finalize_module(struct radeon_llvm_context * ctx) LLVMAddAggressiveDCEPass(gallivm-passmgr); LLVMAddCFGSimplificationPass(gallivm-passmgr); - /* Run the passs */ + /* Run the pass */ LLVMRunFunctionPassManager(gallivm-passmgr, ctx-main_fn); LLVMDisposeBuilder(gallivm-builder); ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): svga: do primitive trimming in translate_indices()
Module: Mesa Branch: master Commit: 79984b9928d665ce617a1e4551e53d415bd4 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=79984b9928d665ce617a1e4551e53d415bd4 Author: Brian Paul bri...@vmware.com Date: Wed Nov 13 11:26:15 2013 -0700 svga: do primitive trimming in translate_indices() The index translation code expects the number of indexes to be consistent with the primitive type (ex: a multiple of 3 for PIPE_PRIM_TRIANGLES). If it's not, we can write out of bounds in the destination buffer. Fixes failed assertions in the pipebuffer debug code found with Piglit primitive-restart-draw-mode test. Cc: 10.0 mesa-sta...@lists.freedesktop.org Reviewed-by: José Fonseca jfons...@vmware.com --- src/gallium/drivers/svga/svga_draw_elements.c | 15 --- 1 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/svga/svga_draw_elements.c b/src/gallium/drivers/svga/svga_draw_elements.c index fb5f1c9..f6603be 100644 --- a/src/gallium/drivers/svga/svga_draw_elements.c +++ b/src/gallium/drivers/svga/svga_draw_elements.c @@ -24,6 +24,7 @@ **/ #include util/u_inlines.h +#include util/u_prim.h #include indices/u_indices.h #include svga_cmd.h @@ -37,17 +38,25 @@ static enum pipe_error translate_indices(struct svga_hwtnl *hwtnl, struct pipe_resource *src, - unsigned offset, unsigned nr, unsigned index_size, + unsigned offset, unsigned prim, unsigned nr, + unsigned index_size, u_translate_func translate, struct pipe_resource **out_buf) { struct pipe_context *pipe = hwtnl-svga-pipe; struct pipe_transfer *src_transfer = NULL; struct pipe_transfer *dst_transfer = NULL; - unsigned size = index_size * nr; + unsigned size; const void *src_map = NULL; struct pipe_resource *dst = NULL; void *dst_map = NULL; + /* Need to trim vertex count to make sure we don't write too much data +* to the dst buffer in the translate() call. +*/ + u_trim_pipe_prim(prim, nr); + + size = index_size * nr; + dst = pipe_buffer_create(pipe-screen, PIPE_BIND_INDEX_BUFFER, PIPE_USAGE_STATIC, size); if (dst == NULL) @@ -180,7 +189,7 @@ svga_hwtnl_draw_range_elements(struct svga_hwtnl *hwtnl, ret = translate_indices(hwtnl, index_buffer, start * index_size, - gen_nr, gen_size, gen_func, gen_buf); + gen_prim, gen_nr, gen_size, gen_func, gen_buf); if (ret != PIPE_OK) goto done; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): svga: remove unused vars in svga_hwtnl_simple_draw_range_elements()
Module: Mesa Branch: master Commit: 2bc1680665473c648e8b75a98d77be7c3f07379d URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2bc1680665473c648e8b75a98d77be7c3f07379d Author: Brian Paul bri...@vmware.com Date: Fri Nov 15 10:25:19 2013 -0700 svga: remove unused vars in svga_hwtnl_simple_draw_range_elements() And simplify the code. Reviewed-by: Jose Fonseca jfons...@vmware.com --- src/gallium/drivers/svga/svga_draw_elements.c | 14 ++ 1 files changed, 2 insertions(+), 12 deletions(-) diff --git a/src/gallium/drivers/svga/svga_draw_elements.c b/src/gallium/drivers/svga/svga_draw_elements.c index f6603be..411b8d9 100644 --- a/src/gallium/drivers/svga/svga_draw_elements.c +++ b/src/gallium/drivers/svga/svga_draw_elements.c @@ -100,16 +100,14 @@ svga_hwtnl_simple_draw_range_elements(struct svga_hwtnl *hwtnl, unsigned prim, unsigned start, unsigned count) { - struct pipe_resource *upload_buffer = NULL; SVGA3dPrimitiveRange range; unsigned hw_prim; unsigned hw_count; unsigned index_offset = start * index_size; - enum pipe_error ret = PIPE_OK; hw_prim = svga_translate_prim(prim, count, hw_count); if (hw_count == 0) - goto done; + return PIPE_OK; /* nothing to draw */ /* We should never see user-space buffers in the driver. The vbuf * module should have converted them into real buffers. @@ -124,15 +122,7 @@ svga_hwtnl_simple_draw_range_elements(struct svga_hwtnl *hwtnl, range.indexWidth = index_size; range.indexBias = index_bias; - ret = svga_hwtnl_prim(hwtnl, range, min_index, max_index, index_buffer); - if (ret != PIPE_OK) - goto done; - -done: - if (upload_buffer) - pipe_resource_reference(upload_buffer, NULL); - - return ret; + return svga_hwtnl_prim(hwtnl, range, min_index, max_index, index_buffer); } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): mesa: remove duplicated prototypes in varray.h
Module: Mesa Branch: master Commit: 2253fed4a05ece30e47b32a5f450f8192dba9497 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2253fed4a05ece30e47b32a5f450f8192dba9497 Author: Brian Paul bri...@vmware.com Date: Tue Nov 12 15:09:44 2013 -0700 mesa: remove duplicated prototypes in varray.h --- src/mesa/main/varray.h |6 -- 1 files changed, 0 insertions(+), 6 deletions(-) diff --git a/src/mesa/main/varray.h b/src/mesa/main/varray.h index 3b9f39a..bc820ed 100644 --- a/src/mesa/main/varray.h +++ b/src/mesa/main/varray.h @@ -110,12 +110,6 @@ extern void GLAPIENTRY _mesa_VertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr); -extern void GLAPIENTRY -_mesa_UnlockArraysEXT( void ); - -extern void GLAPIENTRY -_mesa_LockArraysEXT(GLint first, GLsizei count); - extern void GLAPIENTRY _mesa_NormalPointer(GLenum type, GLsizei stride, const GLvoid *ptr); ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): indices: add comments, assertions in u_indices.c file
Module: Mesa Branch: master Commit: 491d6397fcbe8eabfdd69500b91dbc6efc4dd894 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=491d6397fcbe8eabfdd69500b91dbc6efc4dd894 Author: Brian Paul bri...@vmware.com Date: Wed Nov 13 11:24:41 2013 -0700 indices: add comments, assertions in u_indices.c file Reviewed-by: José Fonseca jfons...@vmware.com Reviewed-by: Roland Scheidegger srol...@vmware.com --- src/gallium/auxiliary/indices/u_indices.c | 26 ++ 1 files changed, 26 insertions(+), 0 deletions(-) diff --git a/src/gallium/auxiliary/indices/u_indices.c b/src/gallium/auxiliary/indices/u_indices.c index 30b54b9..1b33f41 100644 --- a/src/gallium/auxiliary/indices/u_indices.c +++ b/src/gallium/auxiliary/indices/u_indices.c @@ -42,6 +42,27 @@ static void translate_memcpy_uint( const void *in, } +/** + * Translate indexes when a driver can't support certain types + * of drawing. Example include: + * - Translate 1-byte indexes into 2-byte indexes + * - Translate PIPE_PRIM_QUADS into PIPE_PRIM_TRIANGLES when the hardware + * doesn't support the former. + * - Translate from first provoking vertex to last provoking vertex and + * vice versa. + * + * \param hw_mask mask of (1 PIPE_PRIM_x) flags indicating which types + * of primitives are supported by the hardware. + * \param prim incoming PIPE_PRIM_x + * \param in_index_size bytes per index value (1, 2 or 4) + * \param nr number of incoming vertices + * \param in_pv incoming provoking vertex convention (PV_FIRST or PV_LAST) + * \param out_pv desired provoking vertex convention (PV_FIRST or PV_LAST) + * \param out_prim returns new PIPE_PRIM_x we'll translate to + * \param out_index_size returns bytes per new index value (2 or 4) + * \param out_nr returns number of new vertices + * \param out_translate returns the translation function to use by the caller + */ int u_index_translator( unsigned hw_mask, unsigned prim, unsigned in_index_size, @@ -57,6 +78,10 @@ int u_index_translator( unsigned hw_mask, unsigned out_idx; int ret = U_TRANSLATE_NORMAL; + assert(in_index_size == 1 || + in_index_size == 2 || + in_index_size == 4); + u_index_init(); in_idx = in_size_idx(in_index_size); @@ -67,6 +92,7 @@ int u_index_translator( unsigned hw_mask, in_index_size == *out_index_size in_pv == out_pv) { + /* Index translation not really needed */ if (in_index_size == 4) *out_translate = translate_memcpy_uint; else ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): svga: mark dest image as defined in svga_surface_copy()
Module: Mesa Branch: master Commit: 3969330b47c5b7f7843f356db0a10962553339a6 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3969330b47c5b7f7843f356db0a10962553339a6 Author: Brian Paul bri...@vmware.com Date: Thu Nov 14 13:33:52 2013 -0700 svga: mark dest image as defined in svga_surface_copy() After we blit/copy to a dest texture image we need to mark it as being defined. This fixes broken mipmap generation for quite a few texture formats. Mipgen involves making texture views and svga_texture_view_surface() skips texture images that are undefined. Cc: 10.0 mesa-sta...@lists.freedesktop.org Reviewed-by: José Fonseca jfons...@vmware.com Reviewed-by: Roland Scheidegger srol...@vmware.com --- src/gallium/drivers/svga/svga_pipe_blit.c |2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/src/gallium/drivers/svga/svga_pipe_blit.c b/src/gallium/drivers/svga/svga_pipe_blit.c index ff1017c..dbb9f4b 100644 --- a/src/gallium/drivers/svga/svga_pipe_blit.c +++ b/src/gallium/drivers/svga/svga_pipe_blit.c @@ -148,6 +148,8 @@ static void svga_surface_copy(struct pipe_context *pipe, #endif + /* Mark the destination image as being defined */ + svga_define_texture_level(dtex, dst_face, dst_level); } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): radeon/llvm: Free elf_buffer after use
Module: Mesa Branch: master Commit: 2be85e2492b6ad7e04884525904a7ec22cde0ddc URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2be85e2492b6ad7e04884525904a7ec22cde0ddc Author: Aaron Watry awa...@gmail.com Date: Thu Nov 14 12:17:44 2013 -0600 radeon/llvm: Free elf_buffer after use Prevents a memory leak. v2: Remove null check CC: 10.0 mesa-sta...@lists.freedesktop.org --- src/gallium/drivers/radeon/radeon_llvm_emit.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/src/gallium/drivers/radeon/radeon_llvm_emit.c b/src/gallium/drivers/radeon/radeon_llvm_emit.c index d2e5642..92e7dbc 100644 --- a/src/gallium/drivers/radeon/radeon_llvm_emit.c +++ b/src/gallium/drivers/radeon/radeon_llvm_emit.c @@ -176,6 +176,7 @@ unsigned radeon_llvm_compile(LLVMModuleRef M, struct radeon_llvm_binary *binary, if (elf){ elf_end(elf); } + FREE(elf_buffer); LLVMDisposeMemoryBuffer(out_buffer); LLVMDisposeTargetMachine(tm); return 0; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): r600/llvm: Free binary.code/binary. config in r600_llvm_compile
Module: Mesa Branch: master Commit: 01f3622c740173d4001eb421b74d4d60a0c7fd12 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=01f3622c740173d4001eb421b74d4d60a0c7fd12 Author: Aaron Watry awa...@gmail.com Date: Thu Nov 14 12:17:43 2013 -0600 r600/llvm: Free binary.code/binary.config in r600_llvm_compile radeon_llvm_compile allocates memory for binary.code, binary.config, or neither depending on what's being done. We need to make sure to free that memory after it's no longer needed. v2: Don't bother checking for null before FREE() CC: 10.0 mesa-sta...@lists.freedesktop.org --- src/gallium/drivers/r600/r600_llvm.c |3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/src/gallium/drivers/r600/r600_llvm.c b/src/gallium/drivers/r600/r600_llvm.c index f6784eb..6860faa 100644 --- a/src/gallium/drivers/r600/r600_llvm.c +++ b/src/gallium/drivers/r600/r600_llvm.c @@ -864,6 +864,9 @@ unsigned r600_llvm_compile( } } + FREE(binary.code); + FREE(binary.config); + return r; } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): i915: Actually enable __DRI2rendererQueryExtensionRec
Module: Mesa Branch: master Commit: 96a3527a63eaa3c031d2b091dcf6ec8a608f3fde URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=96a3527a63eaa3c031d2b091dcf6ec8a608f3fde Author: Ian Romanick ian.d.roman...@intel.com Date: Mon Nov 11 11:12:08 2013 -0800 i915: Actually enable __DRI2rendererQueryExtensionRec More rebase fail. This code was written long before i915 and i965 were split, so most of the code in i9[16]5/intel_screen.c only needed to exist in one place. It looks like I fixed n-1 of those places after rebasing on the split. I only found this from the defined-but-not-used warning for intelRendererQueryExtension. I noticed this while fixing the other, related warnings. (Note: During review, we decided to *not* pick this back to 10.0.) Signed-off-by: Ian Romanick ian.d.roman...@intel.com Cc: Daniel Vetter dan...@ffwll.ch Reviewed-by: Kenneth Graunke kenn...@whitecape.org Acked-by: Paul Berry stereotype...@gmail.com --- src/mesa/drivers/dri/i915/intel_screen.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/src/mesa/drivers/dri/i915/intel_screen.c b/src/mesa/drivers/dri/i915/intel_screen.c index 87f53e7..7f1fc6b 100644 --- a/src/mesa/drivers/dri/i915/intel_screen.c +++ b/src/mesa/drivers/dri/i915/intel_screen.c @@ -790,6 +790,7 @@ static const __DRIextension *intelScreenExtensions[] = { intelTexBufferExtension.base, intelFlushExtension.base, intelImageExtension.base, +intelRendererQueryExtension.base, dri2ConfigQueryExtension.base, NULL }; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): i965: Move cache_used_by_gpu flag setting to brw_finish_batch.
Module: Mesa Branch: master Commit: 720d935fff1c7f49ce35369e00266cf2f333cdba URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=720d935fff1c7f49ce35369e00266cf2f333cdba Author: Kenneth Graunke kenn...@whitecape.org Date: Tue Oct 15 19:21:34 2013 -0700 i965: Move cache_used_by_gpu flag setting to brw_finish_batch. It really makes more sense here. Signed-off-by: Kenneth Graunke kenn...@whitecape.org Reviewed-by: Eric Anholt e...@anholt.net --- src/mesa/drivers/dri/i965/intel_batchbuffer.c | 12 ++-- 1 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/mesa/drivers/dri/i965/intel_batchbuffer.c b/src/mesa/drivers/dri/i965/intel_batchbuffer.c index 6d1ae79..9cdbe9e 100644 --- a/src/mesa/drivers/dri/i965/intel_batchbuffer.c +++ b/src/mesa/drivers/dri/i965/intel_batchbuffer.c @@ -198,12 +198,6 @@ brw_new_batch(struct brw_context *brw) brw-ib.type = -1; - /* Mark that the current program cache BO has been used by the GPU. -* It will be reallocated if we need to put new programs in for the -* next batch. -*/ - brw-cache.bo_used_by_gpu = true; - /* We need to periodically reap the shader time results, because rollover * happens every few seconds. We also want to see results every once in a * while, because many programs won't cleanly destroy our context, so the @@ -232,6 +226,12 @@ brw_finish_batch(struct brw_context *brw) drm_intel_bo_unreference(brw-curbe.curbe_bo); brw-curbe.curbe_bo = NULL; } + + /* Mark that the current program cache BO has been used by the GPU. +* It will be reallocated if we need to put new programs in for the +* next batch. +*/ + brw-cache.bo_used_by_gpu = true; } /* TODO: Push this whole function into bufmgr. ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): i965: Rework brw_new_batch to actually start a new batch.
Module: Mesa Branch: master Commit: 4ec982ad012a563b7acf9ee8c7fd61140f24ea9d URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4ec982ad012a563b7acf9ee8c7fd61140f24ea9d Author: Kenneth Graunke kenn...@whitecape.org Date: Tue Oct 15 19:23:53 2013 -0700 i965: Rework brw_new_batch to actually start a new batch. Previously, brw_new_batch was called just after execbuf, but before intel_batchbuffer_reset. Essentially, it prepared for the creation of a new batch, that wasn't yet available, and which it didn't create. This was a bit awkward. This patch makes brw_new_batch call intel_batchbuffer_reset as the very first operation. This means that brw_new_batch actually creates a new batchbuffer, and thus has it available. It brings the creation of the new batchbuffer and BRW_NEW_BATCH flagging together into one place. Signed-off-by: Kenneth Graunke kenn...@whitecape.org Reviewed-by: Eric Anholt e...@anholt.net --- src/mesa/drivers/dri/i965/intel_batchbuffer.c |9 + 1 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/mesa/drivers/dri/i965/intel_batchbuffer.c b/src/mesa/drivers/dri/i965/intel_batchbuffer.c index 9cdbe9e..fb0b45b 100644 --- a/src/mesa/drivers/dri/i965/intel_batchbuffer.c +++ b/src/mesa/drivers/dri/i965/intel_batchbuffer.c @@ -178,6 +178,9 @@ do_batch_dump(struct brw_context *brw) static void brw_new_batch(struct brw_context *brw) { + /* Create a new batchbuffer and reset the associated state: */ + intel_batchbuffer_reset(brw); + /* If the kernel supports hardware contexts, then most hardware state is * preserved between batches; we only need to re-emit state that is required * to be in every batch. Otherwise we need to re-emit all the state that @@ -286,7 +289,6 @@ do_flush_locked(struct brw_context *brw) fprintf(stderr, intel_do_flush_locked failed: %s\n, strerror(-ret)); exit(1); } - brw_new_batch(brw); return ret; } @@ -339,9 +341,8 @@ _intel_batchbuffer_flush(struct brw_context *brw, drm_intel_bo_wait_rendering(brw-batch.bo); } - /* Reset the buffer: -*/ - intel_batchbuffer_reset(brw); + /* Start a new batch buffer. */ + brw_new_batch(brw); return ret; } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): clover: Remove dead file from Makefile.sources.
Module: Mesa Branch: master Commit: fc51e7ac58d7aeab0b455e9d39b6547c2b954494 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fc51e7ac58d7aeab0b455e9d39b6547c2b954494 Author: Matt Turner matts...@gmail.com Date: Mon Nov 11 15:54:16 2013 -0800 clover: Remove dead file from Makefile.sources. Reviewed-by: Francisco Jerez curroje...@riseup.net Reviewed-by: Tom Stellard thomas.stell...@amd.com Reviewed-by: Emil Velikov emil.l.veli...@gmail.com --- src/gallium/state_trackers/clover/Makefile.sources |1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/src/gallium/state_trackers/clover/Makefile.sources b/src/gallium/state_trackers/clover/Makefile.sources index 520f52f..42b3345 100644 --- a/src/gallium/state_trackers/clover/Makefile.sources +++ b/src/gallium/state_trackers/clover/Makefile.sources @@ -13,7 +13,6 @@ CPP_SOURCES := \ core/object.hpp \ core/error.hpp \ core/compiler.hpp \ - core/geometry.hpp \ core/device.hpp \ core/device.cpp \ core/context.hpp \ ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): glsl: Apply the transformation 1/rsq(x) == sqrt(x) in opt_algebraic.
Module: Mesa Branch: master Commit: aa6d7bc6d601c8803b136f427b8d86aa1043450c URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=aa6d7bc6d601c8803b136f427b8d86aa1043450c Author: Eric Anholt e...@anholt.net Date: Thu Nov 7 12:15:13 2013 -0800 glsl: Apply the transformation 1/rsq(x) == sqrt(x) in opt_algebraic. The comment was stale, because the lowering in question wasn't happening in lower_instructions.cpp. Presumably if the lowering ever moves there, we can plumb the lowering mask through to opt_algebraic. total instructions in shared programs: 1618696 - 1616810 (-0.12%) instructions in affected programs: 243018 - 241132 (-0.78%) GAINED:0 LOST: 0 Reviewed-by: Jordan Justen jordan.l.jus...@intel.com --- src/glsl/opt_algebraic.cpp |7 --- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/glsl/opt_algebraic.cpp b/src/glsl/opt_algebraic.cpp index 448f27e..05a5899 100644 --- a/src/glsl/opt_algebraic.cpp +++ b/src/glsl/opt_algebraic.cpp @@ -420,10 +420,11 @@ ir_algebraic_visitor::handle_expression(ir_expression *ir) if (op_expr[0] op_expr[0]-operation == ir_unop_rcp) return op_expr[0]-operands[0]; - /* FINISHME: We should do rcp(rsq(x)) - sqrt(x) for some - * backends, except that some backends will have done sqrt - - * rcp(rsq(x)) and we don't want to undo it for them. + /* While ir_to_mesa.cpp will lower sqrt(x) to rcp(rsq(x)), it does so at + * its IR level, so we can always apply this transformation. */ + if (op_expr[0] op_expr[0]-operation == ir_unop_rsq) + return sqrt(op_expr[0]-operands[0]); /* As far as we know, all backends are OK with rsq. */ if (op_expr[0] op_expr[0]-operation == ir_unop_sqrt) { ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): glsl: Apply the transformation (a a) - a in opt_algebraic.
Module: Mesa Branch: master Commit: 58a98d32e451762934ca8c38135357f36e29654f URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=58a98d32e451762934ca8c38135357f36e29654f Author: Eric Anholt e...@anholt.net Date: Thu Oct 31 09:32:42 2013 -0700 glsl: Apply the transformation (a a) - a in opt_algebraic. Reviewed-by: Jordan Justen jordan.l.jus...@intel.com --- src/glsl/opt_algebraic.cpp |4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/src/glsl/opt_algebraic.cpp b/src/glsl/opt_algebraic.cpp index 3da27e5..ea3c386 100644 --- a/src/glsl/opt_algebraic.cpp +++ b/src/glsl/opt_algebraic.cpp @@ -357,7 +357,6 @@ ir_algebraic_visitor::handle_expression(ir_expression *ir) break; case ir_binop_logic_and: - /* FINISHME: Also simplify (a a) to (a). */ if (is_vec_one(op_const[0])) { return ir-operands[1]; } else if (is_vec_one(op_const[1])) { @@ -371,6 +370,9 @@ ir_algebraic_visitor::handle_expression(ir_expression *ir) */ return logic_not(logic_or(op_expr[0]-operands[0], op_expr[1]-operands[0])); + } else if (ir-operands[0]-equals(ir-operands[1])) { + /* (a a) == a */ + return ir-operands[0]; } break; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): glsl: Apply the transformation (a ^^ a) - false in opt_algebraic.
Module: Mesa Branch: master Commit: 477f8cd08bb8467d28fdfd6c25fe358957e3da58 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=477f8cd08bb8467d28fdfd6c25fe358957e3da58 Author: Eric Anholt e...@anholt.net Date: Thu Nov 7 12:10:25 2013 -0800 glsl: Apply the transformation (a ^^ a) - false in opt_algebraic. Reviewed-by: Jordan Justen jordan.l.jus...@intel.com --- src/glsl/opt_algebraic.cpp |4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/src/glsl/opt_algebraic.cpp b/src/glsl/opt_algebraic.cpp index ea3c386..448f27e 100644 --- a/src/glsl/opt_algebraic.cpp +++ b/src/glsl/opt_algebraic.cpp @@ -377,7 +377,6 @@ ir_algebraic_visitor::handle_expression(ir_expression *ir) break; case ir_binop_logic_xor: - /* FINISHME: Also simplify (a ^^ a) to (false). */ if (is_vec_zero(op_const[0])) { return ir-operands[1]; } else if (is_vec_zero(op_const[1])) { @@ -386,6 +385,9 @@ ir_algebraic_visitor::handle_expression(ir_expression *ir) return logic_not(ir-operands[1]); } else if (is_vec_one(op_const[1])) { return logic_not(ir-operands[0]); + } else if (ir-operands[0]-equals(ir-operands[1])) { + /* (a ^^ a) == false */ +return ir_constant::zero(mem_ctx, ir-type); } break; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): glsl: Move the CSE equality functions to the ir class.
Module: Mesa Branch: master Commit: 8957c6b887ff09f44e7b491e7a0551e94a265b8d URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8957c6b887ff09f44e7b491e7a0551e94a265b8d Author: Eric Anholt e...@anholt.net Date: Wed Oct 30 23:56:18 2013 -0700 glsl: Move the CSE equality functions to the ir class. I want to reuse them in opt_algebraic. v2: Merge in Chris Forbes's break fix. Reviewed-by: Jordan Justen jordan.l.jus...@intel.com --- src/glsl/Makefile.sources |1 + src/glsl/ir.h | 22 + src/glsl/ir_equals.cpp| 198 + src/glsl/opt_cse.cpp | 180 + 4 files changed, 222 insertions(+), 179 deletions(-) diff --git a/src/glsl/Makefile.sources b/src/glsl/Makefile.sources index 744b0ad..2e81ded 100644 --- a/src/glsl/Makefile.sources +++ b/src/glsl/Makefile.sources @@ -33,6 +33,7 @@ LIBGLSL_FILES = \ $(GLSL_SRCDIR)/ir_clone.cpp \ $(GLSL_SRCDIR)/ir_constant_expression.cpp \ $(GLSL_SRCDIR)/ir.cpp \ + $(GLSL_SRCDIR)/ir_equals.cpp \ $(GLSL_SRCDIR)/ir_expression_flattening.cpp \ $(GLSL_SRCDIR)/ir_function_can_inline.cpp \ $(GLSL_SRCDIR)/ir_function_detect_recursion.cpp \ diff --git a/src/glsl/ir.h b/src/glsl/ir.h index 2f06fb9..7859702 100644 --- a/src/glsl/ir.h +++ b/src/glsl/ir.h @@ -139,6 +139,16 @@ public: virtual class ir_jump * as_jump() { return NULL; } /*@}*/ + /** +* IR equality method: Return true if the referenced instruction would +* return the same value as this one. +* +* This intended to be used for CSE and algebraic optimizations, on rvalues +* in particular. No support for other instruction types (assignments, +* jumps, calls, etc.) is planned. +*/ + virtual bool equals(ir_instruction *ir); + protected: ir_instruction() { @@ -1405,6 +1415,8 @@ public: return this; } + virtual bool equals(ir_instruction *ir); + virtual ir_expression *clone(void *mem_ctx, struct hash_table *ht) const; /** @@ -1739,6 +1751,8 @@ public: virtual ir_visitor_status accept(ir_hierarchical_visitor *); + virtual bool equals(ir_instruction *ir); + /** * Return a string representing the ir_texture_opcode. */ @@ -1843,6 +1857,8 @@ public: virtual ir_visitor_status accept(ir_hierarchical_visitor *); + virtual bool equals(ir_instruction *ir); + bool is_lvalue() const { return val-is_lvalue() !mask.has_duplicates; @@ -1907,6 +1923,8 @@ public: return this; } + virtual bool equals(ir_instruction *ir); + /** * Get the variable that is ultimately referenced by an r-value */ @@ -1965,6 +1983,8 @@ public: return this; } + virtual bool equals(ir_instruction *ir); + /** * Get the variable that is ultimately referenced by an r-value */ @@ -2099,6 +2119,8 @@ public: virtual ir_visitor_status accept(ir_hierarchical_visitor *); + virtual bool equals(ir_instruction *ir); + /** * Get a particular component of a constant as a specific type * diff --git a/src/glsl/ir_equals.cpp b/src/glsl/ir_equals.cpp new file mode 100644 index 000..7cfe1e6 --- /dev/null +++ b/src/glsl/ir_equals.cpp @@ -0,0 +1,198 @@ +/* + * Copyright © 2013 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the Software), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include ir.h + +/** + * Helper for checking equality when one instruction might be NULL, since you + * can't access a's vtable in that case. + */ +static bool +possibly_null_equals(ir_instruction *a, ir_instruction *b) +{ + if (!a || !b) + return !a !b; + + return a-equals(b); +} + +/** + * The base equality function: Return not equal for anything we don't know + * about. + */ +bool +ir_instruction::equals(ir_instruction *ir) +{ + return false; +} + +bool
Mesa (master): glsl: Apply the transformation (a || a) - a in opt_algebraic.
Module: Mesa Branch: master Commit: ee2704826264eba22d095c3e1e03a8532b7bd1e6 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ee2704826264eba22d095c3e1e03a8532b7bd1e6 Author: Eric Anholt e...@anholt.net Date: Thu Oct 31 00:10:32 2013 -0700 glsl: Apply the transformation (a || a) - a in opt_algebraic. total instructions in shared programs: 1732385 - 1732373 (-0.00%) instructions in affected programs: 416 - 404 (-2.88%) GAINED:0 LOST: 0 (That's 4 already-short fragment shaders in dota2) Reviewed-by: Jordan Justen jordan.l.jus...@intel.com --- src/glsl/opt_algebraic.cpp |4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/src/glsl/opt_algebraic.cpp b/src/glsl/opt_algebraic.cpp index a07e153..3da27e5 100644 --- a/src/glsl/opt_algebraic.cpp +++ b/src/glsl/opt_algebraic.cpp @@ -388,7 +388,6 @@ ir_algebraic_visitor::handle_expression(ir_expression *ir) break; case ir_binop_logic_or: - /* FINISHME: Also simplify (a || a) to (a). */ if (is_vec_zero(op_const[0])) { return ir-operands[1]; } else if (is_vec_zero(op_const[1])) { @@ -407,6 +406,9 @@ ir_algebraic_visitor::handle_expression(ir_expression *ir) */ return logic_not(logic_and(op_expr[0]-operands[0], op_expr[1]-operands[0])); + } else if (ir-operands[0]-equals(ir-operands[1])) { + /* (a || a) == a */ + return ir-operands[0]; } break; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): mesa: Dynamically allocate the storage for program local parameters.
Module: Mesa Branch: master Commit: e5885c119de1e508099cce1c9f8ff00fab88 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e5885c119de1e508099cce1c9f8ff00fab88 Author: Eric Anholt e...@anholt.net Date: Fri Sep 20 10:13:32 2013 -0700 mesa: Dynamically allocate the storage for program local parameters. The array was 64kb per struct gl_program, plus we statically stored a copy of one on disk for _mesa_DummyProgram. Given that most struct gl_programs we generate are for GLSL shaders that don't have local parameters, this was a waste. Since you can store and fetch parameters beyond what the program actually uses, we do have to do a late allocation if necessary at GetProgramLocalParameter time. Reduces peak memory usage in the dota2 trace I made by 76MB (4.5%) Reviewed-by: Brian Paul bri...@vmware.com Reviewed-by: Ian Romanick ian.d.roman...@intel.com --- src/mesa/main/arbprogram.c |6 ++ src/mesa/main/mtypes.h | 11 +-- src/mesa/program/program.c | 12 +++- src/mesa/program/program_parse.y |7 +++ 4 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/mesa/main/arbprogram.c b/src/mesa/main/arbprogram.c index 51a2993..8bd3f0b 100644 --- a/src/mesa/main/arbprogram.c +++ b/src/mesa/main/arbprogram.c @@ -265,6 +265,12 @@ get_local_param_pointer(struct gl_context *ctx, const char *func, return GL_FALSE; } + if (!prog-LocalParams) { + prog-LocalParams = calloc(maxParams, sizeof(float[4])); + if (!prog-LocalParams) + return GL_FALSE; + } + *param = prog-LocalParams[index]; return GL_TRUE; } diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 0f470da..67c4996 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -2035,8 +2035,15 @@ struct gl_program /** Named parameters, constants, etc. from program text */ struct gl_program_parameter_list *Parameters; - /** Numbered local parameters */ - GLfloat LocalParams[MAX_PROGRAM_LOCAL_PARAMS][4]; + + /** +* Local parameters used by the program. +* +* It's dynamically allocated because it is rarely used (just +* assembly-style programs), and MAX_PROGRAM_LOCAL_PARAMS entries once it's +* allocated. +*/ + GLfloat (*LocalParams)[4]; /** Map from sampler unit to texture unit (set by glUniform1i()) */ GLubyte SamplerUnits[MAX_SAMPLERS]; diff --git a/src/mesa/program/program.c b/src/mesa/program/program.c index b7b5140..01f8c6f 100644 --- a/src/mesa/program/program.c +++ b/src/mesa/program/program.c @@ -349,6 +349,7 @@ _mesa_delete_program(struct gl_context *ctx, struct gl_program *prog) return; free(prog-String); + free(prog-LocalParams); if (prog-Instructions) { _mesa_free_instructions(prog-Instructions, prog-NumInstructions); @@ -477,7 +478,16 @@ _mesa_clone_program(struct gl_context *ctx, const struct gl_program *prog) if (prog-Parameters) clone-Parameters = _mesa_clone_parameter_list(prog-Parameters); - memcpy(clone-LocalParams, prog-LocalParams, sizeof(clone-LocalParams)); + if (prog-LocalParams) { + clone-LocalParams = malloc(MAX_PROGRAM_LOCAL_PARAMS * + sizeof(float[4])); + if (!clone-LocalParams) { + _mesa_reference_program(ctx, clone, NULL); + return NULL; + } + memcpy(clone-LocalParams, prog-LocalParams, + MAX_PROGRAM_LOCAL_PARAMS * sizeof(float[4])); + } clone-IndirectRegisterFiles = prog-IndirectRegisterFiles; clone-NumInstructions = prog-NumInstructions; clone-NumTemporaries = prog-NumTemporaries; diff --git a/src/mesa/program/program_parse.y b/src/mesa/program/program_parse.y index a76db4e..03c0a3d 100644 --- a/src/mesa/program/program_parse.y +++ b/src/mesa/program/program_parse.y @@ -25,6 +25,7 @@ #include stdlib.h #include string.h +#include main/macros.h #include main/mtypes.h #include main/imports.h #include program/program.h @@ -2559,6 +2560,12 @@ initialize_symbol_from_param(struct gl_program *prog, param_var-type = at_param; param_var-param_binding_type = PROGRAM_STATE_VAR; + /* Dynamically allocate LocalParams, since it's a large array to have +* statically in every gl_program otherwise. +*/ + if (state_tokens[1] == STATE_LOCAL !prog-LocalParams) + prog-LocalParams = calloc(MAX_PROGRAM_LOCAL_PARAMS, sizeof(float[4])); + /* If we are adding a STATE_ENV or STATE_LOCAL that has multiple elements, * we need to unroll it and call add_state_reference() for each row */ ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): mesa: Update a comment about valid values of a field.
Module: Mesa Branch: master Commit: fddc17ab365370f9afb6b44fb3e2bbf68d450968 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fddc17ab365370f9afb6b44fb3e2bbf68d450968 Author: Eric Anholt e...@anholt.net Date: Wed Nov 13 13:36:30 2013 -0800 mesa: Update a comment about valid values of a field. Notably, ENV and LOCAL aren't used any more (replaced by STATE_VAR), but apparently CONSTANT is. Reviewed-by: Brian Paul bri...@vmware.com Reviewed-by: Ian Romanick ian.d.roman...@intel.com --- src/mesa/program/program_parser.h |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/mesa/program/program_parser.h b/src/mesa/program/program_parser.h index ca36bb6..04c64f4 100644 --- a/src/mesa/program/program_parser.h +++ b/src/mesa/program/program_parser.h @@ -44,7 +44,7 @@ struct asm_symbol { unsigned output_binding; /** Output / result register number. */ /** -* One of PROGRAM_STATE_VAR, PROGRAM_LOCAL_PARAM, or PROGRAM_ENV_PARAM. +* One of PROGRAM_STATE_VAR or PROGRAM_CONSTANT. */ unsigned param_binding_type; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): mesa: Remove PROGRAM_ENV_PARAM enum.
Module: Mesa Branch: master Commit: bb1f0969756fbb827c4b2520c632daa15342b064 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=bb1f0969756fbb827c4b2520c632daa15342b064 Author: Eric Anholt e...@anholt.net Date: Wed Nov 13 13:41:28 2013 -0800 mesa: Remove PROGRAM_ENV_PARAM enum. This has been replaced with referring to env parameters using PROGRAM_STATE_VAR and _mesa_load_state_parameters. Reviewed-by: Brian Paul bri...@vmware.com Reviewed-by: Ian Romanick ian.d.roman...@intel.com --- src/mesa/drivers/dri/i915/i915_fragprog.c |8 src/mesa/drivers/dri/r200/r200_vertprog.c |1 - src/mesa/main/mtypes.h |8 +++- src/mesa/program/prog_execute.c|5 - src/mesa/program/prog_print.c |5 - src/mesa/program/program.c |3 --- src/mesa/state_tracker/st_glsl_to_tgsi.cpp |7 +-- src/mesa/state_tracker/st_mesa_to_tgsi.c |5 + 8 files changed, 5 insertions(+), 37 deletions(-) diff --git a/src/mesa/drivers/dri/i915/i915_fragprog.c b/src/mesa/drivers/dri/i915/i915_fragprog.c index fcdca75..dff4b9f 100644 --- a/src/mesa/drivers/dri/i915/i915_fragprog.c +++ b/src/mesa/drivers/dri/i915/i915_fragprog.c @@ -160,14 +160,6 @@ src_vector(struct i915_fragment_program *p, /* Various paramters and env values. All emitted to * hardware as program constants. */ - - case PROGRAM_ENV_PARAM: - src = - i915_emit_param4fv(p, -p-ctx-FragmentProgram.Parameters[source- - Index]); - break; - case PROGRAM_CONSTANT: case PROGRAM_STATE_VAR: case PROGRAM_UNIFORM: diff --git a/src/mesa/drivers/dri/r200/r200_vertprog.c b/src/mesa/drivers/dri/r200/r200_vertprog.c index 5f15a57..2397473 100644 --- a/src/mesa/drivers/dri/r200/r200_vertprog.c +++ b/src/mesa/drivers/dri/r200/r200_vertprog.c @@ -210,7 +210,6 @@ static unsigned long t_src_class(gl_register_file file) case PROGRAM_INPUT: return VSF_IN_CLASS_ATTR; - case PROGRAM_ENV_PARAM: case PROGRAM_CONSTANT: case PROGRAM_STATE_VAR: return VSF_IN_CLASS_PARAM; diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 82c915f..0f470da 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -1930,10 +1930,9 @@ struct gl_perf_monitor_state * NOTE: first four tokens must fit into 2 bits (see t_vb_arbprogram.c) * All values should fit in a 4-bit field. * - * NOTE: PROGRAM_ENV_PARAM, PROGRAM_STATE_VAR, - * PROGRAM_CONSTANT, and PROGRAM_UNIFORM can all be considered to - * be uniform variables since they can only be set outside glBegin/End. - * They're also all stored in the same Parameters array. + * NOTE: PROGRAM_STATE_VAR, PROGRAM_CONSTANT, and PROGRAM_UNIFORM can all be + * considered to be uniform variables since they can only be set outside + * glBegin/End. They're also all stored in the same Parameters array. */ typedef enum { @@ -1941,7 +1940,6 @@ typedef enum PROGRAM_ARRAY, /** Arrays Matrixes */ PROGRAM_INPUT, /** machine-Inputs[] */ PROGRAM_OUTPUT, /** machine-Outputs[] */ - PROGRAM_ENV_PARAM, /** gl_program-Parameters[] */ PROGRAM_STATE_VAR, /** gl_program-Parameters[] */ PROGRAM_CONSTANT,/** gl_program-Parameters[] */ PROGRAM_UNIFORM, /** gl_program-Parameters[] */ diff --git a/src/mesa/program/prog_execute.c b/src/mesa/program/prog_execute.c index 4a64147..115525e 100644 --- a/src/mesa/program/prog_execute.c +++ b/src/mesa/program/prog_execute.c @@ -118,11 +118,6 @@ get_src_register_pointer(const struct prog_src_register *source, return ZeroVec; return machine-Outputs[reg]; - case PROGRAM_ENV_PARAM: - if (reg = MAX_PROGRAM_ENV_PARAMS) - return ZeroVec; - return machine-EnvParams[reg]; - case PROGRAM_STATE_VAR: /* Fallthrough */ case PROGRAM_CONSTANT: diff --git a/src/mesa/program/prog_print.c b/src/mesa/program/prog_print.c index e503cb6..fa120cc 100644 --- a/src/mesa/program/prog_print.c +++ b/src/mesa/program/prog_print.c @@ -50,8 +50,6 @@ _mesa_register_file_name(gl_register_file f) switch (f) { case PROGRAM_TEMPORARY: return TEMP; - case PROGRAM_ENV_PARAM: - return ENV; case PROGRAM_STATE_VAR: return STATE; case PROGRAM_INPUT: @@ -380,9 +378,6 @@ reg_string(gl_register_file f, GLint index, gl_prog_print_mode mode, case PROGRAM_TEMPORARY: sprintf(str, temp%d, index); break; - case PROGRAM_ENV_PARAM: - sprintf(str, program.env[%s%d], addr, index); - break; case PROGRAM_CONSTANT: /* extension */ sprintf(str, constant[%s%d], addr, index); break; diff --git a/src/mesa/program/program.c b/src/mesa/program/program.c index e8bb7d7..b7b5140 100644 --- a/src/mesa/program/program.c +++ b/src/mesa/program/program.c @@ -909,9 +909,6 @@
Mesa (master): mesa: Remove PROGRAM_LOCAL_PARAM enum.
Module: Mesa Branch: master Commit: 33b0455211019988fe418cca5dfac62c7902c861 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=33b0455211019988fe418cca5dfac62c7902c861 Author: Eric Anholt e...@anholt.net Date: Wed Nov 13 13:38:37 2013 -0800 mesa: Remove PROGRAM_LOCAL_PARAM enum. This has been replaced with referring to local parameters using PROGRAM_STATE_VAR and _mesa_load_state_parameters. Reviewed-by: Brian Paul bri...@vmware.com Reviewed-by: Ian Romanick ian.d.roman...@intel.com --- src/mesa/drivers/dri/i915/i915_fragprog.c |3 --- src/mesa/drivers/dri/r200/r200_vertprog.c |1 - src/mesa/main/mtypes.h |1 - src/mesa/program/prog_execute.c|5 - src/mesa/program/prog_print.c |5 - src/mesa/program/program.c |3 --- src/mesa/state_tracker/st_glsl_to_tgsi.cpp |7 +-- src/mesa/state_tracker/st_mesa_to_tgsi.c |5 + 8 files changed, 2 insertions(+), 28 deletions(-) diff --git a/src/mesa/drivers/dri/i915/i915_fragprog.c b/src/mesa/drivers/dri/i915/i915_fragprog.c index 67eff76..fcdca75 100644 --- a/src/mesa/drivers/dri/i915/i915_fragprog.c +++ b/src/mesa/drivers/dri/i915/i915_fragprog.c @@ -160,9 +160,6 @@ src_vector(struct i915_fragment_program *p, /* Various paramters and env values. All emitted to * hardware as program constants. */ - case PROGRAM_LOCAL_PARAM: - src = i915_emit_param4fv(p, program-Base.LocalParams[source-Index]); - break; case PROGRAM_ENV_PARAM: src = diff --git a/src/mesa/drivers/dri/r200/r200_vertprog.c b/src/mesa/drivers/dri/r200/r200_vertprog.c index 461b7cb..5f15a57 100644 --- a/src/mesa/drivers/dri/r200/r200_vertprog.c +++ b/src/mesa/drivers/dri/r200/r200_vertprog.c @@ -210,7 +210,6 @@ static unsigned long t_src_class(gl_register_file file) case PROGRAM_INPUT: return VSF_IN_CLASS_ATTR; - case PROGRAM_LOCAL_PARAM: case PROGRAM_ENV_PARAM: case PROGRAM_CONSTANT: case PROGRAM_STATE_VAR: diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 41ffdb7..82c915f 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -1941,7 +1941,6 @@ typedef enum PROGRAM_ARRAY, /** Arrays Matrixes */ PROGRAM_INPUT, /** machine-Inputs[] */ PROGRAM_OUTPUT, /** machine-Outputs[] */ - PROGRAM_LOCAL_PARAM, /** gl_program-LocalParams[] */ PROGRAM_ENV_PARAM, /** gl_program-Parameters[] */ PROGRAM_STATE_VAR, /** gl_program-Parameters[] */ PROGRAM_CONSTANT,/** gl_program-Parameters[] */ diff --git a/src/mesa/program/prog_execute.c b/src/mesa/program/prog_execute.c index 560332a..4a64147 100644 --- a/src/mesa/program/prog_execute.c +++ b/src/mesa/program/prog_execute.c @@ -118,11 +118,6 @@ get_src_register_pointer(const struct prog_src_register *source, return ZeroVec; return machine-Outputs[reg]; - case PROGRAM_LOCAL_PARAM: - if (reg = MAX_PROGRAM_LOCAL_PARAMS) - return ZeroVec; - return machine-CurProgram-LocalParams[reg]; - case PROGRAM_ENV_PARAM: if (reg = MAX_PROGRAM_ENV_PARAMS) return ZeroVec; diff --git a/src/mesa/program/prog_print.c b/src/mesa/program/prog_print.c index fa9063f..e503cb6 100644 --- a/src/mesa/program/prog_print.c +++ b/src/mesa/program/prog_print.c @@ -50,8 +50,6 @@ _mesa_register_file_name(gl_register_file f) switch (f) { case PROGRAM_TEMPORARY: return TEMP; - case PROGRAM_LOCAL_PARAM: - return LOCAL; case PROGRAM_ENV_PARAM: return ENV; case PROGRAM_STATE_VAR: @@ -385,9 +383,6 @@ reg_string(gl_register_file f, GLint index, gl_prog_print_mode mode, case PROGRAM_ENV_PARAM: sprintf(str, program.env[%s%d], addr, index); break; - case PROGRAM_LOCAL_PARAM: - sprintf(str, program.local[%s%d], addr, index); - break; case PROGRAM_CONSTANT: /* extension */ sprintf(str, constant[%s%d], addr, index); break; diff --git a/src/mesa/program/program.c b/src/mesa/program/program.c index a102ec1..e8bb7d7 100644 --- a/src/mesa/program/program.c +++ b/src/mesa/program/program.c @@ -912,9 +912,6 @@ _mesa_valid_register_index(const struct gl_context *ctx, case PROGRAM_ENV_PARAM: return index = 0 index (GLint) c-MaxEnvParams; - case PROGRAM_LOCAL_PARAM: - return index = 0 index (GLint) c-MaxLocalParams; - case PROGRAM_UNIFORM: case PROGRAM_STATE_VAR: /* aka constant buffer */ diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp index 0eaf746..78baf89 100644 --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp @@ -70,8 +70,7 @@ extern C { } #define PROGRAM_IMMEDIATE PROGRAM_FILE_MAX -#define PROGRAM_ANY_CONST ((1 PROGRAM_LOCAL_PARAM) | \ - (1 PROGRAM_ENV_PARAM) |\ +#define PROGRAM_ANY_CONST ((1
Mesa (10.0): 51 new commits
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3fd32619d7143ed7db21fa402d38e681520f82c2 Author: Aaron Watry awa...@gmail.com Date: Thu Nov 14 12:17:44 2013 -0600 radeon/llvm: Free elf_buffer after use Prevents a memory leak. v2: Remove null check CC: 10.0 mesa-sta...@lists.freedesktop.org (cherry picked from commit 2be85e2492b6ad7e04884525904a7ec22cde0ddc) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7a87dc278e5b521ed6d4e30afa24bcc54df72d2e Author: Aaron Watry awa...@gmail.com Date: Thu Nov 14 12:17:43 2013 -0600 r600/llvm: Free binary.code/binary.config in r600_llvm_compile radeon_llvm_compile allocates memory for binary.code, binary.config, or neither depending on what's being done. We need to make sure to free that memory after it's no longer needed. v2: Don't bother checking for null before FREE() CC: 10.0 mesa-sta...@lists.freedesktop.org (cherry picked from commit 01f3622c740173d4001eb421b74d4d60a0c7fd12) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f843604b6a71a9809db8839d36750fbbdec25bc1 Author: Aaron Watry awa...@gmail.com Date: Thu Nov 14 12:17:42 2013 -0600 r600/llvm: initialize radeon_llvm_binary use memset to initialize to 0's... otherwise code_size and config_size could be uninitialized when read later in this method. It's also hard to do NULL checks on uninitialized pointers. Reviewed-by: Tom Stellard thomas.stell...@amd.com v2: Fix indentation CC: 10.0 mesa-sta...@lists.freedesktop.org (cherry picked from commit dd73b99420de17651001e0a4d937f1f66fbef14c) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e9f8b782788f4f1b27fb2015b1cf226660a17271 Author: Brian Paul bri...@vmware.com Date: Thu Nov 14 13:33:52 2013 -0700 svga: mark dest image as defined in svga_surface_copy() After we blit/copy to a dest texture image we need to mark it as being defined. This fixes broken mipmap generation for quite a few texture formats. Mipgen involves making texture views and svga_texture_view_surface() skips texture images that are undefined. Cc: 10.0 mesa-sta...@lists.freedesktop.org Reviewed-by: José Fonseca jfons...@vmware.com Reviewed-by: Roland Scheidegger srol...@vmware.com (cherry picked from commit 3969330b47c5b7f7843f356db0a10962553339a6) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=dfff838429060986a0813d74a87ca81b0406df95 Author: Brian Paul bri...@vmware.com Date: Wed Nov 13 11:26:15 2013 -0700 svga: do primitive trimming in translate_indices() The index translation code expects the number of indexes to be consistent with the primitive type (ex: a multiple of 3 for PIPE_PRIM_TRIANGLES). If it's not, we can write out of bounds in the destination buffer. Fixes failed assertions in the pipebuffer debug code found with Piglit primitive-restart-draw-mode test. Cc: 10.0 mesa-sta...@lists.freedesktop.org Reviewed-by: José Fonseca jfons...@vmware.com (cherry picked from commit 79984b9928d665ce617a1e4551e53d415bd4) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=11982ca08dd8ef5111bf2155e52c3de8d2840431 Author: Aaron Watry awa...@gmail.com Date: Wed Nov 6 16:49:24 2013 -0600 gallium/pipe_loader: un-reference udev resources when we're done with them. Reviewed-by: Tom Stellard thomas.stell...@amd.com CC: 10.0 mesa-sta...@lists.freedesktop.org (cherry picked from commit 598f61ba28bcfd220104e18e89973768babeaac3) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=713966c82f8051575d53c8da918ec9365b087dda Author: Aaron Watry awa...@gmail.com Date: Wed Nov 6 16:49:23 2013 -0600 radeonsi/compute: Dispose of LLVM module after compiling kernels v2: Fix indentation Reviewed-by: Tom Stellard thomas.stell...@amd.com CC: 10.0 mesa-sta...@lists.freedesktop.org (cherry picked from commit 4c6ac9e61452ffc49f8e360fc879deec8e04bbb5) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3a98fc6abecc7bce02b3de4861f49db38daff775 Author: Aaron Watry awa...@gmail.com Date: Wed Nov 6 16:49:22 2013 -0600 radeonsi/compute: Free program and program.kernels on shutdown v2: Fix indentation Reviewed-by: Tom Stellard thomas.stell...@amd.com CC: 10.0 mesa-sta...@lists.freedesktop.org (cherry picked from commit 35dad4a1e235b2bf7fb3ecdb82aed0214db69a35) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=531637feee3c4fa378f2fe25399cff833592b269 Author: Aaron Watry awa...@gmail.com Date: Wed Nov 6 16:49:21 2013 -0600 radeon/llvm: Free created llvm memory buffer v2: Fix indentation Reviewed-by: Tom Stellard thomas.stell...@amd.com CC: 10.0 mesa-sta...@lists.freedesktop.org (cherry picked from commit d41b10f811a89c76248f195a6b4ade62322b8c3c) URL:
Mesa (master): i965: Add missing break in SHADER_OPCODE_GEN7_SCRATCH_READ case.
Module: Mesa Branch: master Commit: b570c4229fe9c621b56bb9475d77a344039444d4 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b570c4229fe9c621b56bb9475d77a344039444d4 Author: Vinson Lee v...@freedesktop.org Date: Thu Nov 14 22:47:33 2013 -0800 i965: Add missing break in SHADER_OPCODE_GEN7_SCRATCH_READ case. Fixes Missing break in switch defect reported by Coverity. Signed-off-by: Vinson Lee v...@freedesktop.org Reviewed-by: Matt Turner matts...@gmail.com Reviewed-by: Eric Anholt e...@anholt.net Cc: 10.0 mesa-sta...@lists.freedesktop.org --- .../drivers/dri/i965/brw_schedule_instructions.cpp |2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_schedule_instructions.cpp b/src/mesa/drivers/dri/i965/brw_schedule_instructions.cpp index 39a5266..a4fae0d 100644 --- a/src/mesa/drivers/dri/i965/brw_schedule_instructions.cpp +++ b/src/mesa/drivers/dri/i965/brw_schedule_instructions.cpp @@ -335,6 +335,8 @@ schedule_node::set_latency_gen7(bool is_haswell) * then around 140. Presumably this is cache hit vs miss. */ latency = 50; + break; + case SHADER_OPCODE_UNTYPED_ATOMIC: /* Test code: * mov(8)g1121ud 0xud { align1 WE_all 1Q }; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): i965: Assert that IF with cmod is Gen6 only.
Module: Mesa Branch: master Commit: e133c0103d4336c47911e89cc8a17a1c78bfdbb8 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e133c0103d4336c47911e89cc8a17a1c78bfdbb8 Author: Matt Turner matts...@gmail.com Date: Thu Nov 14 10:36:12 2013 -0800 i965: Assert that IF with cmod is Gen6 only. Reviewed-by: Kenneth Graunke kenn...@whitecape.org Reviewed-by: Eric Anholt e...@anholt.net --- src/mesa/drivers/dri/i965/brw_fs.cpp |4 ++-- src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp |4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index f89390c..795e01e 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -193,11 +193,11 @@ fs_visitor::IF(uint32_t predicate) return inst; } -/** Gen6+ IF with embedded comparison. */ +/** Gen6 IF with embedded comparison. */ fs_inst * fs_visitor::IF(fs_reg src0, fs_reg src1, uint32_t condition) { - assert(brw-gen = 6); + assert(brw-gen == 6); fs_inst *inst = new(mem_ctx) fs_inst(BRW_OPCODE_IF, reg_null_d, src0, src1); inst-conditional_mod = condition; diff --git a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp index a036e2d..423f693 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp @@ -177,11 +177,11 @@ vec4_visitor::IF(uint32_t predicate) return inst; } -/** Gen6+ IF with embedded comparison. */ +/** Gen6 IF with embedded comparison. */ vec4_instruction * vec4_visitor::IF(src_reg src0, src_reg src1, uint32_t condition) { - assert(brw-gen = 6); + assert(brw-gen == 6); vec4_instruction *inst; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit