Re: [Mesa-dev] [PATCH 1/2] i965/gen7: Prefer vertical alignment of 4 when possible.
On 15 November 2013 19:26, Kenneth Graunke kenn...@whitecape.org wrote: On 11/15/2013 01:18 PM, Paul Berry wrote: Gen6+ allows for color buffers to use a vertical alignment of either 4 or 2. Previously we defaulted to 2. This may have caused problems on Gen7 because Y-tiled render targets are not allowed to use a vertical alignment of 2. This patch changes the vertical alignment to 4 on Gen7, except for the few formats where a vertical alignment of 2 is required. --- src/mesa/drivers/dri/i965/brw_tex_layout.c | 25 ++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_tex_layout.c b/src/mesa/drivers/dri/i965/brw_tex_layout.c index d05dbeb..2c81eed 100644 --- a/src/mesa/drivers/dri/i965/brw_tex_layout.c +++ b/src/mesa/drivers/dri/i965/brw_tex_layout.c @@ -105,11 +105,11 @@ intel_vertical_texture_alignment_unit(struct brw_context *brw, * | Depth Buffer | 2 | 2 | 2 | 4 | 4 | * | Separate Stencil Buffer| N/A | N/A | N/A | 4 | 8 | * | Multisampled (4x or 8x) render target | N/A | N/A | N/A | 4 | 4 | -* | All Others | 2 | 2 | 2 | 2 | 2 | +* | All Others | 2 | 2 | 2 | * | * | * +--+ * -* On SNB+, non-special cases can be overridden by setting the SURFACE_STATE -* Surface Vertical Alignment field to VALIGN_2 or VALIGN_4. +* Where * means either VALIGN_2 or VALIGN_4 depending on the setting of +* the SURFACE_STATE Surface Vertical Alignment field. */ if (_mesa_is_format_compressed(format)) return 4; @@ -128,6 +128,25 @@ intel_vertical_texture_alignment_unit(struct brw_context *brw, return 4; } + if (brw-gen == 7) { + /* On Gen7, we prefer a vertical alignment of 4 when possible, because + * that allows Y tiled render targets. + * + * From the Ivy Bridge PRM, Vol4 Part1 2.12.2.1 (SURFACE_STATE for most + * messages), on p64, under the heading Surface Vertical Alignment: + * + * Value of 1 [VALIGN_4] is not supported for format YCRCB_NORMAL + * (0x182), YCRCB_SWAPUVY (0x183), YCRCB_SWAPUV (0x18f), YCRCB_SWAPY + * (0x190) + * + * VALIGN_4 is not supported for surface format R32G32B32_FLOAT. + */ + if (base_format == GL_YCBCR_MESA || format == MESA_FORMAT_RGB_FLOAT32) + return 2; + + return 4; + } + return 2; } We use Y-tiling on Gen6 as well. Yes, but the restriction that Y-tiled render targets must use a vertical alignment of 4 is not present on Gen6, so there would be no benefit to applying this logic to Gen6. ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [Bug 71665] glu.pc.in missing -I for glu itself
https://bugs.freedesktop.org/show_bug.cgi?id=71665 Matt Turner matts...@gmail.com changed: What|Removed |Added CC||matts...@gmail.com -- You are receiving this mail because: You are the assignee for the bug. ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH] svga: dynamically allocate svga_texture::rendered_to array
Needs to be larger than 6 to accomodate 3D textures and array textures. Fixes a few piglit tests (fbo-3d, copyteximage 3D). --- src/gallium/drivers/svga/svga_resource_texture.c |9 + src/gallium/drivers/svga/svga_resource_texture.h | 41 -- 2 files changed, 32 insertions(+), 18 deletions(-) diff --git a/src/gallium/drivers/svga/svga_resource_texture.c b/src/gallium/drivers/svga/svga_resource_texture.c index 17c87ef..88ab451 100644 --- a/src/gallium/drivers/svga/svga_resource_texture.c +++ b/src/gallium/drivers/svga/svga_resource_texture.c @@ -238,6 +238,7 @@ svga_texture_destroy(struct pipe_screen *screen, ss-total_resource_bytes -= tex-size; + FREE(tex-rendered_to); FREE(tex); } @@ -735,9 +736,15 @@ svga_texture_create(struct pipe_screen *screen, tex-size = util_resource_size(template); svgascreen-total_resource_bytes += tex-size; + tex-rendered_to = calloc(template-depth0 * template-array_size, + sizeof(tex-rendered_to[0])); + if (!tex-rendered_to) + goto error2; + return tex-b.b; error2: + FREE(tex-rendered_to); FREE(tex); error1: return NULL; @@ -796,5 +803,7 @@ svga_texture_from_handle(struct pipe_screen *screen, tex-key.cachable = 0; tex-handle = srf; + tex-rendered_to = malloc(sizeof(tex-rendered_to[0])); + return tex-b.b; } diff --git a/src/gallium/drivers/svga/svga_resource_texture.h b/src/gallium/drivers/svga/svga_resource_texture.h index 6c7a754..1ff42fa 100644 --- a/src/gallium/drivers/svga/svga_resource_texture.h +++ b/src/gallium/drivers/svga/svga_resource_texture.h @@ -79,7 +79,8 @@ struct svga_texture unsigned size; /** Approximate size in bytes */ - unsigned rendered_to[6]; /** six cube faces, one bit per mipmap level */ + /** array indexed by cube face or 3D/array slice, one bit per mipmap level */ + ushort *rendered_to; }; @@ -157,16 +158,30 @@ svga_is_texture_level_defined(const struct svga_texture *tex, } -static INLINE void -svga_set_texture_rendered_to(struct svga_texture *tex, - unsigned face, unsigned level) +/** For debugging, check that face and level are legal */ +static inline void +check_face_level(const struct svga_texture *tex, + unsigned face, unsigned level) { if (tex-b.b.target == PIPE_TEXTURE_CUBE) { - assert(face Elements(tex-rendered_to)); + assert(face 6); + } + else if (tex-b.b.target == PIPE_TEXTURE_3D) { + assert(face tex-b.b.depth0); } else { - assert(face == 0); + assert(face tex-b.b.array_size); } + + assert(level 8 * sizeof(tex-rendered_to[0])); +} + + +static INLINE void +svga_set_texture_rendered_to(struct svga_texture *tex, + unsigned face, unsigned level) +{ + check_face_level(tex, face, level); tex-rendered_to[face] |= 1 level; } @@ -175,12 +190,7 @@ static INLINE void svga_clear_texture_rendered_to(struct svga_texture *tex, unsigned face, unsigned level) { - if (tex-b.b.target == PIPE_TEXTURE_CUBE) { - assert(face Elements(tex-rendered_to)); - } - else { - assert(face == 0); - } + check_face_level(tex, face, level); tex-rendered_to[face] = ~(1 level); } @@ -189,12 +199,7 @@ static INLINE boolean svga_was_texture_rendered_to(const struct svga_texture *tex, unsigned face, unsigned level) { - if (tex-b.b.target == PIPE_TEXTURE_CUBE) { - assert(face Elements(tex-rendered_to)); - } - else { - assert(face == 0); - } + check_face_level(tex, face, level); return !!(tex-rendered_to[face] (1 level)); } -- 1.7.10.4 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] Automake subdir-objects v2
On 11/11/13 18:53, Emil Velikov wrote: Hello list, Here is an updated version of the subdir-objects series sent earlier. As a reminder the series aims to * make mesa build system subdir-objects compliant * minimise flags duplication across gallium Changes since previous version: * Resolved git-rebase mess in patch 5. * Dropped patches 6, 8 per Matt's request. * Dropped patch 10, 11 - libprogram is gone. * Dropped patches 17, 18 per Christian's request. * Dropped patch 22 - x86{,-64} is handled alot better now. * Dropped patches 33, 34, 35 - st/xorg no longer exists. * Resolved minor git rebase conflicts. The branch can be found over at subdir-objects-v3 https://github.com/evelikov/Mesa.git As always comments and review is greatly appreciated :) Cheers, Emil Hello list, Just pushed the series after giving it a few automake compile and scons runs. As previously mentioned only nouveau and swrast are runtime tested. If you've notice any build or runtime issues let me know and I'll address them ASAP. Cheers, Emil ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 1/6] postprocess: simplify pp_free() code
--- src/gallium/auxiliary/postprocess/pp_init.c | 27 +-- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/gallium/auxiliary/postprocess/pp_init.c b/src/gallium/auxiliary/postprocess/pp_init.c index a49a23d..bbebb5c 100644 --- a/src/gallium/auxiliary/postprocess/pp_init.c +++ b/src/gallium/auxiliary/postprocess/pp_init.c @@ -169,11 +169,12 @@ pp_free(struct pp_queue_t *ppq) { unsigned int i, j; - if (ppq) { - pp_free_fbos(ppq); - } + if (!ppq) + return; - if (ppq ppq-p) { + pp_free_fbos(ppq); + + if (ppq-p) { if (ppq-p-pipe ppq-filters ppq-shaders) { for (i = 0; i ppq-n_filters; i++) { unsigned int filter = ppq-filters[i]; @@ -221,17 +222,15 @@ pp_free(struct pp_queue_t *ppq) FREE(ppq-p); } - if (ppq) { - /* - * Handle partial initialization for common resource destruction - * in the create path. - */ - FREE(ppq-filters); - FREE(ppq-shaders); - FREE(ppq-pp_queue); + /* +* Handle partial initialization for common resource destruction +* in the create path. +*/ + FREE(ppq-filters); + FREE(ppq-shaders); + FREE(ppq-pp_queue); - FREE(ppq); - } + FREE(ppq); pp_debug(Queue taken down.\n); } -- 1.7.10.4 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 3/6] postprocess: refactor header files, etc
Move private data structures and function prototypes out of the public postprocess.h header file. Create a pp_private.h for the shared, private data structures, functions. Remove pp_program.h header. --- src/gallium/auxiliary/postprocess/postprocess.h | 45 ++ src/gallium/auxiliary/postprocess/pp_celshade.c |1 + src/gallium/auxiliary/postprocess/pp_colors.c |1 + src/gallium/auxiliary/postprocess/pp_init.c |1 + src/gallium/auxiliary/postprocess/pp_mlaa.c |2 + src/gallium/auxiliary/postprocess/pp_private.h | 109 +++ src/gallium/auxiliary/postprocess/pp_program.c |2 + src/gallium/auxiliary/postprocess/pp_program.h | 62 - src/gallium/auxiliary/postprocess/pp_run.c |4 +- 9 files changed, 125 insertions(+), 102 deletions(-) create mode 100644 src/gallium/auxiliary/postprocess/pp_private.h delete mode 100644 src/gallium/auxiliary/postprocess/pp_program.h diff --git a/src/gallium/auxiliary/postprocess/postprocess.h b/src/gallium/auxiliary/postprocess/postprocess.h index e0ab43e..c4b2030 100644 --- a/src/gallium/auxiliary/postprocess/postprocess.h +++ b/src/gallium/auxiliary/postprocess/postprocess.h @@ -28,42 +28,19 @@ #ifndef POSTPROCESS_H #define POSTPROCESS_H -#include postprocess/pp_program.h +#include pipe/p_state.h #define PP_FILTERS 6/* Increment this if you add filters */ #define PP_MAX_PASSES 6 +struct cso_context; + struct pp_queue_t; /* Forward definition */ +struct pp_program; /* Less typing later on */ typedef void (*pp_func) (struct pp_queue_t *, struct pipe_resource *, struct pipe_resource *, unsigned int); -/** -* The main post-processing queue. -*/ -struct pp_queue_t -{ - pp_func *pp_queue; /* An array of pp_funcs */ - unsigned int n_filters; /* Number of enabled filters */ - - struct pipe_resource *tmp[2];/* Two temp FBOs for the queue */ - struct pipe_resource *inner_tmp[3]; /* Three for filter use */ - - unsigned int n_tmp, n_inner_tmp; - - struct pipe_resource *depth; /* depth of original input */ - struct pipe_resource *stencil; /* stencil shared by inner_tmps */ - struct pipe_resource *constbuf; /* MLAA constant buffer */ - struct pipe_resource *areamaptex;/* MLAA area map texture */ - - struct pipe_surface *tmps[2], *inner_tmps[3], *stencils; - - void ***shaders; /* Shaders in TGSI form */ - unsigned int *filters; /* Active filter to filters.h mapping. */ - struct pp_program *p; - - bool fbos_init; -}; /* Main functions */ @@ -72,19 +49,9 @@ struct pp_queue_t *pp_init(struct pipe_context *pipe, const unsigned int *, void pp_run(struct pp_queue_t *, struct pipe_resource *, struct pipe_resource *, struct pipe_resource *); void pp_free(struct pp_queue_t *); -void pp_free_fbos(struct pp_queue_t *); -void pp_debug(const char *, ...); -struct pp_program *pp_init_prog(struct pp_queue_t *, struct pipe_context *pipe, - struct cso_context *); + void pp_init_fbos(struct pp_queue_t *, unsigned int, unsigned int); -void pp_blit(struct pipe_context *pipe, - struct pipe_resource *src_tex, - int srcX0, int srcY0, - int srcX1, int srcY1, - int srcZ0, - struct pipe_surface *dst, - int dstX0, int dstY0, - int dstX1, int dstY1); + /* The filters */ diff --git a/src/gallium/auxiliary/postprocess/pp_celshade.c b/src/gallium/auxiliary/postprocess/pp_celshade.c index 471ec38..9b19fdd 100644 --- a/src/gallium/auxiliary/postprocess/pp_celshade.c +++ b/src/gallium/auxiliary/postprocess/pp_celshade.c @@ -28,6 +28,7 @@ #include postprocess/postprocess.h #include postprocess/pp_celshade.h #include postprocess/pp_filters.h +#include postprocess/pp_private.h /** Init function */ bool diff --git a/src/gallium/auxiliary/postprocess/pp_colors.c b/src/gallium/auxiliary/postprocess/pp_colors.c index a0b9d28..247e4df 100644 --- a/src/gallium/auxiliary/postprocess/pp_colors.c +++ b/src/gallium/auxiliary/postprocess/pp_colors.c @@ -28,6 +28,7 @@ #include postprocess/postprocess.h #include postprocess/pp_colors.h #include postprocess/pp_filters.h +#include postprocess/pp_private.h /** The run function of the color filters */ void diff --git a/src/gallium/auxiliary/postprocess/pp_init.c b/src/gallium/auxiliary/postprocess/pp_init.c index edd54ce..05a0830 100644 --- a/src/gallium/auxiliary/postprocess/pp_init.c +++ b/src/gallium/auxiliary/postprocess/pp_init.c @@ -28,6 +28,7 @@ #include pipe/p_compiler.h #include postprocess/filters.h +#include postprocess/pp_private.h #include pipe/p_screen.h #include util/u_inlines.h diff --git a/src/gallium/auxiliary/postprocess/pp_mlaa.c b/src/gallium/auxiliary/postprocess/pp_mlaa.c index 656283f..92bd11c 100644 --- a/src/gallium/auxiliary/postprocess/pp_mlaa.c +++
[Mesa-dev] [PATCH 4/6] postprocess: move #defines to filters.h
They're not needed in postprocess.h --- src/gallium/auxiliary/postprocess/filters.h |4 src/gallium/auxiliary/postprocess/postprocess.h |3 --- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gallium/auxiliary/postprocess/filters.h b/src/gallium/auxiliary/postprocess/filters.h index 1aa1e3a..321f333 100644 --- a/src/gallium/auxiliary/postprocess/filters.h +++ b/src/gallium/auxiliary/postprocess/filters.h @@ -30,6 +30,10 @@ #include postprocess/postprocess.h +#define PP_FILTERS 6/* Increment this if you add filters */ +#define PP_MAX_PASSES 6 + + typedef bool (*pp_init_func) (struct pp_queue_t *, unsigned int, unsigned int); typedef void (*pp_free_func) (struct pp_queue_t *, unsigned int); diff --git a/src/gallium/auxiliary/postprocess/postprocess.h b/src/gallium/auxiliary/postprocess/postprocess.h index c4b2030..1db581c 100644 --- a/src/gallium/auxiliary/postprocess/postprocess.h +++ b/src/gallium/auxiliary/postprocess/postprocess.h @@ -30,9 +30,6 @@ #include pipe/p_state.h -#define PP_FILTERS 6/* Increment this if you add filters */ -#define PP_MAX_PASSES 6 - struct cso_context; struct pp_queue_t; /* Forward definition */ -- 1.7.10.4 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 2/6] postprocess: rename program to pp_program
To match the pp_ namespace convention. --- src/gallium/auxiliary/postprocess/postprocess.h |4 ++-- src/gallium/auxiliary/postprocess/pp_colors.c |2 +- src/gallium/auxiliary/postprocess/pp_filters.h | 14 +++--- src/gallium/auxiliary/postprocess/pp_init.c |2 +- src/gallium/auxiliary/postprocess/pp_mlaa.c |2 +- src/gallium/auxiliary/postprocess/pp_program.c |6 +++--- src/gallium/auxiliary/postprocess/pp_program.h |2 +- src/gallium/auxiliary/postprocess/pp_run.c | 14 +++--- 8 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/gallium/auxiliary/postprocess/postprocess.h b/src/gallium/auxiliary/postprocess/postprocess.h index 04b6c75..e0ab43e 100644 --- a/src/gallium/auxiliary/postprocess/postprocess.h +++ b/src/gallium/auxiliary/postprocess/postprocess.h @@ -60,7 +60,7 @@ struct pp_queue_t void ***shaders; /* Shaders in TGSI form */ unsigned int *filters; /* Active filter to filters.h mapping. */ - struct program *p; + struct pp_program *p; bool fbos_init; }; @@ -74,7 +74,7 @@ void pp_run(struct pp_queue_t *, struct pipe_resource *, void pp_free(struct pp_queue_t *); void pp_free_fbos(struct pp_queue_t *); void pp_debug(const char *, ...); -struct program *pp_init_prog(struct pp_queue_t *, struct pipe_context *pipe, +struct pp_program *pp_init_prog(struct pp_queue_t *, struct pipe_context *pipe, struct cso_context *); void pp_init_fbos(struct pp_queue_t *, unsigned int, unsigned int); void pp_blit(struct pipe_context *pipe, diff --git a/src/gallium/auxiliary/postprocess/pp_colors.c b/src/gallium/auxiliary/postprocess/pp_colors.c index c30e92e..a0b9d28 100644 --- a/src/gallium/auxiliary/postprocess/pp_colors.c +++ b/src/gallium/auxiliary/postprocess/pp_colors.c @@ -35,7 +35,7 @@ pp_nocolor(struct pp_queue_t *ppq, struct pipe_resource *in, struct pipe_resource *out, unsigned int n) { - struct program *p = ppq-p; + struct pp_program *p = ppq-p; pp_filter_setup_in(p, in); pp_filter_setup_out(p, out); diff --git a/src/gallium/auxiliary/postprocess/pp_filters.h b/src/gallium/auxiliary/postprocess/pp_filters.h index ada21cc..eaebe4c 100644 --- a/src/gallium/auxiliary/postprocess/pp_filters.h +++ b/src/gallium/auxiliary/postprocess/pp_filters.h @@ -43,15 +43,15 @@ /* Helper functions for the filters */ -void pp_filter_setup_in(struct program *, struct pipe_resource *); -void pp_filter_setup_out(struct program *, struct pipe_resource *); -void pp_filter_end_pass(struct program *); +void pp_filter_setup_in(struct pp_program *, struct pipe_resource *); +void pp_filter_setup_out(struct pp_program *, struct pipe_resource *); +void pp_filter_end_pass(struct pp_program *); void *pp_tgsi_to_state(struct pipe_context *, const char *, bool, const char *); -void pp_filter_misc_state(struct program *); -void pp_filter_draw(struct program *); -void pp_filter_set_fb(struct program *); -void pp_filter_set_clear_fb(struct program *); +void pp_filter_misc_state(struct pp_program *); +void pp_filter_draw(struct pp_program *); +void pp_filter_set_fb(struct pp_program *); +void pp_filter_set_clear_fb(struct pp_program *); #endif diff --git a/src/gallium/auxiliary/postprocess/pp_init.c b/src/gallium/auxiliary/postprocess/pp_init.c index bbebb5c..edd54ce 100644 --- a/src/gallium/auxiliary/postprocess/pp_init.c +++ b/src/gallium/auxiliary/postprocess/pp_init.c @@ -255,7 +255,7 @@ pp_init_fbos(struct pp_queue_t *ppq, unsigned int w, unsigned int h) { - struct program *p = ppq-p; /* The lazy will inherit the earth */ + struct pp_program *p = ppq-p; /* The lazy will inherit the earth */ unsigned int i; struct pipe_resource tmp_res; diff --git a/src/gallium/auxiliary/postprocess/pp_mlaa.c b/src/gallium/auxiliary/postprocess/pp_mlaa.c index b299c66..656283f 100644 --- a/src/gallium/auxiliary/postprocess/pp_mlaa.c +++ b/src/gallium/auxiliary/postprocess/pp_mlaa.c @@ -75,7 +75,7 @@ pp_jimenezmlaa_run(struct pp_queue_t *ppq, struct pipe_resource *in, struct pipe_resource *out, unsigned int n, bool iscolor) { - struct program *p = ppq-p; + struct pp_program *p = ppq-p; struct pipe_depth_stencil_alpha_state mstencil; struct pipe_sampler_view v_tmp, *arr[3]; diff --git a/src/gallium/auxiliary/postprocess/pp_program.c b/src/gallium/auxiliary/postprocess/pp_program.c index 61a0323..916d6fc 100644 --- a/src/gallium/auxiliary/postprocess/pp_program.c +++ b/src/gallium/auxiliary/postprocess/pp_program.c @@ -37,17 +37,17 @@ #include util/u_memory.h /** Initialize the internal details */ -struct program * +struct pp_program * pp_init_prog(struct pp_queue_t *ppq, struct pipe_context *pipe, struct cso_context *cso) { - struct program *p; + struct pp_program *p; pp_debug(Initializing program\n); if (!pipe) return NULL; -
[Mesa-dev] [PATCH 5/6] postprocess: document the pp_init() function.
--- src/gallium/auxiliary/postprocess/postprocess.h |9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/postprocess/postprocess.h b/src/gallium/auxiliary/postprocess/postprocess.h index 1db581c..c72f2c4 100644 --- a/src/gallium/auxiliary/postprocess/postprocess.h +++ b/src/gallium/auxiliary/postprocess/postprocess.h @@ -41,8 +41,15 @@ typedef void (*pp_func) (struct pp_queue_t *, struct pipe_resource *, /* Main functions */ -struct pp_queue_t *pp_init(struct pipe_context *pipe, const unsigned int *, +/** + * Note enabled is an array of values, one per filter stage. + * Zero indicates the stage is disabled. Non-zero indicates the + * stage is enabled. For some stages, the value controls quality. + */ +struct pp_queue_t *pp_init(struct pipe_context *pipe, + const unsigned int *enabled, struct cso_context *); + void pp_run(struct pp_queue_t *, struct pipe_resource *, struct pipe_resource *, struct pipe_resource *); void pp_free(struct pp_queue_t *); -- 1.7.10.4 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 6/6] osmesa: add support for postprocess filters
Add new OSMesaPostprocess() function to allow using the gallium postprocessing filters. This only works for OSMesa with gallium drivers, not the legacy swrast OSMesa. Bump OSMESA_MAJOR/MINOR_VERSION numbers to 10.0 --- include/GL/osmesa.h| 19 +- src/gallium/state_trackers/osmesa/osmesa.c | 87 src/mesa/drivers/osmesa/osmesa.c | 11 3 files changed, 115 insertions(+), 2 deletions(-) diff --git a/include/GL/osmesa.h b/include/GL/osmesa.h index 10c472d..16ee89a 100644 --- a/include/GL/osmesa.h +++ b/include/GL/osmesa.h @@ -60,8 +60,8 @@ extern C { #include GL/gl.h -#define OSMESA_MAJOR_VERSION 6 -#define OSMESA_MINOR_VERSION 5 +#define OSMESA_MAJOR_VERSION 10 +#define OSMESA_MINOR_VERSION 0 #define OSMESA_PATCH_VERSION 0 @@ -270,6 +270,21 @@ OSMesaGetProcAddress( const char *funcName ); GLAPI void GLAPIENTRY OSMesaColorClamp(GLboolean enable); + +/** + * Enable/disable Gallium post-process filters. + * This should be called after a context is created, but before it is + * made current for the first time. After a context has been made + * current, this function has no effect. + * If the enable_value param is zero, the filter is disabled. Otherwise + * the filter is enabled, and the value may control the filter's quality. + * New in Mesa 10.0 + */ +GLAPI void GLAPIENTRY +OSMesaPostprocess(OSMesaContext osmesa, const char *filter, + unsigned enable_value); + + #ifdef __cplusplus } #endif diff --git a/src/gallium/state_trackers/osmesa/osmesa.c b/src/gallium/state_trackers/osmesa/osmesa.c index 3546183..8b30025 100644 --- a/src/gallium/state_trackers/osmesa/osmesa.c +++ b/src/gallium/state_trackers/osmesa/osmesa.c @@ -59,9 +59,13 @@ #include util/u_atomic.h #include util/u_box.h +#include util/u_debug.h #include util/u_format.h #include util/u_memory.h +#include postprocess/filters.h +#include postprocess/postprocess.h + #include state_tracker/st_api.h #include state_tracker/st_gl_api.h @@ -90,6 +94,8 @@ struct osmesa_context { struct st_context_iface *stctx; + boolean ever_used; /* Has this context ever been current? */ + struct osmesa_buffer *current_buffer; enum pipe_format depth_stencil_format, accum_format; @@ -99,6 +105,10 @@ struct osmesa_context GLint user_row_length; /* user-specified number of pixels per row */ GLboolean y_up;/* TRUE - Y increases upward */ /* FALSE - Y increases downward */ + + /** Which postprocessing filters are enabled. */ + unsigned pp_enabled[PP_FILTERS]; + struct pp_queue_t *pp; }; @@ -264,6 +274,12 @@ osmesa_init_st_visual(struct st_visual *vis, enum pipe_format accum_format) { vis-buffer_mask = ST_ATTACHMENT_FRONT_LEFT_MASK; + + if (ds_format != PIPE_FORMAT_NONE) + vis-buffer_mask |= ST_ATTACHMENT_DEPTH_STENCIL_MASK; + if (accum_format != PIPE_FORMAT_NONE) + vis-buffer_mask |= ST_ATTACHMENT_ACCUM; + vis-color_format = color_format; vis-depth_stencil_format = ds_format; vis-accum_format = accum_format; @@ -302,6 +318,28 @@ osmesa_st_framebuffer_flush_front(struct st_context_iface *stctx, unsigned y, bytes, bpp; int dst_stride; + if (osmesa-pp) { + struct pipe_resource *zsbuf = NULL; + unsigned i; + + /* Find the z/stencil buffer if there is one */ + for (i = 0; i Elements(osbuffer-textures); i++) { + struct pipe_resource *res = osbuffer-textures[i]; + if (res) { +const struct util_format_description *desc = + util_format_description(res-format); + +if (util_format_has_depth(desc)) { + zsbuf = res; + break; +} + } + } + + /* run the postprocess stage(s) */ + pp_run(osmesa-pp, res, res, zsbuf); + } + u_box_2d(0, 0, res-width0, res-height0, box); map = pipe-transfer_map(pipe, res, 0, PIPE_TRANSFER_READ, box, @@ -581,6 +619,7 @@ GLAPI void GLAPIENTRY OSMesaDestroyContext(OSMesaContext osmesa) { if (osmesa) { + pp_free(osmesa-pp); osmesa-stctx-destroy(osmesa-stctx); FREE(osmesa); } @@ -654,6 +693,29 @@ OSMesaMakeCurrent(OSMesaContext osmesa, void *buffer, GLenum type, stapi-make_current(stapi, osmesa-stctx, osbuffer-stfb, osbuffer-stfb); + if (!osmesa-ever_used) { + /* one-time init, just postprocessing for now */ + boolean any_pp_enabled = FALSE; + unsigned i; + + for (i = 0; i Elements(osmesa-pp_enabled); i++) { + if (osmesa-pp_enabled[i]) { +any_pp_enabled = TRUE; +break; + } + } + + if (any_pp_enabled) { + osmesa-pp = pp_init(osmesa-stctx-pipe, + osmesa-pp_enabled, + osmesa-stctx-cso_context); + + pp_init_fbos(osmesa-pp, width, height); + } + + osmesa-ever_used = TRUE;
[Mesa-dev] [PATCH 1/2] drivers/radeon: remove unused CXXFLAGS, LLVM_CPP_FILES
The above two variables are unused as of commit commit 024fe6852a76f33d7e2afc5621340e387c381bb0 Author: Tom Stellard thomas.stell...@amd.com Date: Tue Apr 2 10:42:50 2013 -0700 radeon/llvm: Use LLVM C API for compiling LLVM IR to ISA v2 which removed the only cpp file from drivers/radeon, but missed to remove the CXXFLAGS. The sequential commit reintroduced and empty LLVM_CPP_FILES. Lets cleanup and remove both. Signed-off-by: Emil Velikov emil.l.veli...@gmail.com --- src/gallium/drivers/radeon/Makefile.am | 4 1 file changed, 4 deletions(-) diff --git a/src/gallium/drivers/radeon/Makefile.am b/src/gallium/drivers/radeon/Makefile.am index 457fee9..7971191 100644 --- a/src/gallium/drivers/radeon/Makefile.am +++ b/src/gallium/drivers/radeon/Makefile.am @@ -15,15 +15,11 @@ if NEED_RADEON_LLVM noinst_LTLIBRARIES += libllvmradeon.la -libllvmradeon_la_CXXFLAGS = \ - $(GALLIUM_DRIVER_CXXFLAGS) - libllvmradeon_la_CFLAGS = \ $(GALLIUM_DRIVER_CFLAGS) \ $(LLVM_CFLAGS) libllvmradeon_la_SOURCES = \ - $(LLVM_CPP_FILES) \ $(LLVM_C_FILES) libllvmradeon_la_LIBADD = \ -- 1.8.4.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 2/2] targets/xvmc: export only necessary symbols
Export only XvMC* symbols for the xvmc targets. Signed-off-by: Emil Velikov emil.l.veli...@gmail.com --- src/gallium/Automake.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/Automake.inc b/src/gallium/Automake.inc index b6b9b36..1e4a34f 100644 --- a/src/gallium/Automake.inc +++ b/src/gallium/Automake.inc @@ -65,11 +65,11 @@ GALLIUM_VDPAU_LINKER_FLAGS = \ -shared \ -no-undefined -# TODO: add -export-symbols-regex GALLIUM_XVMC_LINKER_FLAGS = \ -module \ -version-number $(XVMC_MAJOR):$(XVMC_MINOR) \ -shared \ + -export-symbols-regex '^XvMC' \ -no-undefined GALLIUM_VDPAU_LIB_DEPS = \ -- 1.8.4.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 2/2] targets/xvmc: export only necessary symbols
On Sat, Nov 16, 2013 at 4:39 PM, Emil Velikov emil.l.veli...@gmail.com wrote: Export only XvMC* symbols for the xvmc targets. Signed-off-by: Emil Velikov emil.l.veli...@gmail.com Tested-by: Ilia Mirkin imir...@alum.mit.edu Works fine on my NV42, the vl_screen* and nouveau_drm_screen_create symbols are indeed gone. --- src/gallium/Automake.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/Automake.inc b/src/gallium/Automake.inc index b6b9b36..1e4a34f 100644 --- a/src/gallium/Automake.inc +++ b/src/gallium/Automake.inc @@ -65,11 +65,11 @@ GALLIUM_VDPAU_LINKER_FLAGS = \ -shared \ -no-undefined -# TODO: add -export-symbols-regex GALLIUM_XVMC_LINKER_FLAGS = \ -module \ -version-number $(XVMC_MAJOR):$(XVMC_MINOR) \ -shared \ + -export-symbols-regex '^XvMC' \ -no-undefined GALLIUM_VDPAU_LIB_DEPS = \ -- 1.8.4.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] svga: dynamically allocate svga_texture::rendered_to array
Reviewed-by: Jakob Bornecrantz ja...@vmware.com On Sat, Nov 16, 2013 at 4:49 PM, Brian Paul bri...@vmware.com wrote: Needs to be larger than 6 to accomodate 3D textures and array textures. Fixes a few piglit tests (fbo-3d, copyteximage 3D). --- src/gallium/drivers/svga/svga_resource_texture.c |9 + src/gallium/drivers/svga/svga_resource_texture.h | 41 -- 2 files changed, 32 insertions(+), 18 deletions(-) diff --git a/src/gallium/drivers/svga/svga_resource_texture.c b/src/gallium/drivers/svga/svga_resource_texture.c index 17c87ef..88ab451 100644 --- a/src/gallium/drivers/svga/svga_resource_texture.c +++ b/src/gallium/drivers/svga/svga_resource_texture.c @@ -238,6 +238,7 @@ svga_texture_destroy(struct pipe_screen *screen, ss-total_resource_bytes -= tex-size; + FREE(tex-rendered_to); FREE(tex); } @@ -735,9 +736,15 @@ svga_texture_create(struct pipe_screen *screen, tex-size = util_resource_size(template); svgascreen-total_resource_bytes += tex-size; + tex-rendered_to = calloc(template-depth0 * template-array_size, + sizeof(tex-rendered_to[0])); + if (!tex-rendered_to) + goto error2; + return tex-b.b; error2: + FREE(tex-rendered_to); FREE(tex); error1: return NULL; @@ -796,5 +803,7 @@ svga_texture_from_handle(struct pipe_screen *screen, tex-key.cachable = 0; tex-handle = srf; + tex-rendered_to = malloc(sizeof(tex-rendered_to[0])); + return tex-b.b; } diff --git a/src/gallium/drivers/svga/svga_resource_texture.h b/src/gallium/drivers/svga/svga_resource_texture.h index 6c7a754..1ff42fa 100644 --- a/src/gallium/drivers/svga/svga_resource_texture.h +++ b/src/gallium/drivers/svga/svga_resource_texture.h @@ -79,7 +79,8 @@ struct svga_texture unsigned size; /** Approximate size in bytes */ - unsigned rendered_to[6]; /** six cube faces, one bit per mipmap level */ + /** array indexed by cube face or 3D/array slice, one bit per mipmap level */ + ushort *rendered_to; }; @@ -157,16 +158,30 @@ svga_is_texture_level_defined(const struct svga_texture *tex, } -static INLINE void -svga_set_texture_rendered_to(struct svga_texture *tex, - unsigned face, unsigned level) +/** For debugging, check that face and level are legal */ +static inline void +check_face_level(const struct svga_texture *tex, + unsigned face, unsigned level) { if (tex-b.b.target == PIPE_TEXTURE_CUBE) { - assert(face Elements(tex-rendered_to)); + assert(face 6); + } + else if (tex-b.b.target == PIPE_TEXTURE_3D) { + assert(face tex-b.b.depth0); } else { - assert(face == 0); + assert(face tex-b.b.array_size); } + + assert(level 8 * sizeof(tex-rendered_to[0])); +} + + +static INLINE void +svga_set_texture_rendered_to(struct svga_texture *tex, + unsigned face, unsigned level) +{ + check_face_level(tex, face, level); tex-rendered_to[face] |= 1 level; } @@ -175,12 +190,7 @@ static INLINE void svga_clear_texture_rendered_to(struct svga_texture *tex, unsigned face, unsigned level) { - if (tex-b.b.target == PIPE_TEXTURE_CUBE) { - assert(face Elements(tex-rendered_to)); - } - else { - assert(face == 0); - } + check_face_level(tex, face, level); tex-rendered_to[face] = ~(1 level); } @@ -189,12 +199,7 @@ static INLINE boolean svga_was_texture_rendered_to(const struct svga_texture *tex, unsigned face, unsigned level) { - if (tex-b.b.target == PIPE_TEXTURE_CUBE) { - assert(face Elements(tex-rendered_to)); - } - else { - assert(face == 0); - } + check_face_level(tex, face, level); return !!(tex-rendered_to[face] (1 level)); } -- 1.7.10.4 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 2/3] i965: Make invalidate_live_intervals() a virtual method of backend_visitor.
Reviewed-by: Paul Berry stereotype...@gmail.com --- src/mesa/drivers/dri/i965/brw_shader.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/mesa/drivers/dri/i965/brw_shader.h b/src/mesa/drivers/dri/i965/brw_shader.h index aba24c5..ae7823e 100644 --- a/src/mesa/drivers/dri/i965/brw_shader.h +++ b/src/mesa/drivers/dri/i965/brw_shader.h @@ -88,6 +88,8 @@ public: void dump_instructions(); void assign_common_binding_table_offsets(uint32_t next_binding_table_offset); + + virtual void invalidate_live_intervals() = 0; }; uint32_t brw_texture_offset(struct gl_context *ctx, ir_constant *offset); -- 1.8.3.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 1/3] i965/vec4: Add invalidate_live_intervals method.
Reviewed-by: Paul Berry stereotype...@gmail.com --- src/mesa/drivers/dri/i965/brw_schedule_instructions.cpp | 2 +- src/mesa/drivers/dri/i965/brw_vec4.cpp | 8 src/mesa/drivers/dri/i965/brw_vec4.h| 1 + src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp | 2 +- src/mesa/drivers/dri/i965/brw_vec4_live_variables.cpp | 6 ++ src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_schedule_instructions.cpp b/src/mesa/drivers/dri/i965/brw_schedule_instructions.cpp index befea0a..66a5ed8 100644 --- a/src/mesa/drivers/dri/i965/brw_schedule_instructions.cpp +++ b/src/mesa/drivers/dri/i965/brw_schedule_instructions.cpp @@ -1443,5 +1443,5 @@ vec4_visitor::opt_schedule_instructions() printf(vec4 estimated execution time: %d cycles\n, sched.time); } - this-live_intervals_valid = false; + invalidate_live_intervals(); } diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp b/src/mesa/drivers/dri/i965/brw_vec4.cpp index 20fbd45..e7cfab2 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp @@ -343,7 +343,7 @@ vec4_visitor::dead_code_eliminate() } if (progress) - live_intervals_valid = false; + invalidate_live_intervals(); return progress; } @@ -554,7 +554,7 @@ vec4_visitor::opt_algebraic() } if (progress) - this-live_intervals_valid = false; + invalidate_live_intervals(); return progress; } @@ -1017,7 +1017,7 @@ vec4_visitor::opt_register_coalesce() } if (progress) - live_intervals_valid = false; + invalidate_live_intervals(); return progress; } @@ -1100,7 +1100,7 @@ vec4_visitor::split_virtual_grfs() } } } - this-live_intervals_valid = false; + invalidate_live_intervals(); } void diff --git a/src/mesa/drivers/dri/i965/brw_vec4.h b/src/mesa/drivers/dri/i965/brw_vec4.h index 1f29e57..5cec9f9 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4.h +++ b/src/mesa/drivers/dri/i965/brw_vec4.h @@ -352,6 +352,7 @@ public: void split_uniform_registers(); void pack_uniform_registers(); void calculate_live_intervals(); + void invalidate_live_intervals(); void split_virtual_grfs(); bool dead_code_eliminate(); bool virtual_grf_interferes(int a, int b); diff --git a/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp b/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp index d009a08..033c642 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp @@ -362,7 +362,7 @@ vec4_visitor::opt_copy_propagation() } if (progress) - live_intervals_valid = false; + invalidate_live_intervals(); return progress; } diff --git a/src/mesa/drivers/dri/i965/brw_vec4_live_variables.cpp b/src/mesa/drivers/dri/i965/brw_vec4_live_variables.cpp index 3adda09..5bc2f9f 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_live_variables.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_live_variables.cpp @@ -266,6 +266,12 @@ vec4_visitor::calculate_live_intervals() this-live_intervals_valid = true; } +void +vec4_visitor::invalidate_live_intervals() +{ + live_intervals_valid = false; +} + bool vec4_visitor::virtual_grf_interferes(int a, int b) { diff --git a/src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp b/src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp index 387e3c4..95c8d9f 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp @@ -359,7 +359,7 @@ vec4_visitor::spill_reg(int spill_reg_nr) } } - this-live_intervals_valid = false; + invalidate_live_intervals(); } } /* namespace brw */ -- 1.8.3.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH] i965/fs: Use source's original type in register_coalesce().
Previously, register_coalesce() would modify mov vgrf1:f vgrf2:f cmp null vgrf3:d vgrf1:d to be cmp null vgrf3:d vgrf2:f and incorrectly use vgrf2's type in the instruction that the mov was coalesced into. --- My in progress value-numbering pass exposes this bug, but without it I didn't find anything fixed by the patch in piglit. src/mesa/drivers/dri/i965/brw_fs.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index 795e01e..800a7b4 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -2442,6 +2442,7 @@ fs_visitor::register_coalesce() scan_inst-src[i].reg == inst-dst.reg scan_inst-src[i].reg_offset == inst-dst.reg_offset) { fs_reg new_src = inst-src[0]; + new_src.type = scan_inst-src[i].type; if (scan_inst-src[i].abs) { new_src.negate = 0; new_src.abs = 1; -- 1.8.3.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 3/3] i965: Add a pass to remove dead control flow.
Removes IF/ENDIF and IF/ELSE/ENDIF with no intervening instructions. total instructions in shared programs: 1360393 - 1360387 (-0.00%) instructions in affected programs: 157 - 151 (-3.82%) (no change in vertex shaders) Reviewed-by: Paul Berry stereotype...@gmail.com Reviewed-by: Eric Anholt e...@anholt.net --- src/mesa/drivers/dri/i965/Makefile.sources | 1 + .../drivers/dri/i965/brw_dead_control_flow.cpp | 83 ++ src/mesa/drivers/dri/i965/brw_dead_control_flow.h | 26 +++ src/mesa/drivers/dri/i965/brw_fs.cpp | 2 + src/mesa/drivers/dri/i965/brw_vec4.cpp | 2 + 5 files changed, 114 insertions(+) create mode 100644 src/mesa/drivers/dri/i965/brw_dead_control_flow.cpp create mode 100644 src/mesa/drivers/dri/i965/brw_dead_control_flow.h diff --git a/src/mesa/drivers/dri/i965/Makefile.sources b/src/mesa/drivers/dri/i965/Makefile.sources index 5724458..ac1363c 100644 --- a/src/mesa/drivers/dri/i965/Makefile.sources +++ b/src/mesa/drivers/dri/i965/Makefile.sources @@ -44,6 +44,7 @@ i965_FILES = \ brw_context.c \ brw_cubemap_normalize.cpp \ brw_curbe.c \ + brw_dead_control_flow.cpp \ brw_device_info.c \ brw_disasm.c \ brw_draw.c \ diff --git a/src/mesa/drivers/dri/i965/brw_dead_control_flow.cpp b/src/mesa/drivers/dri/i965/brw_dead_control_flow.cpp new file mode 100644 index 000..8bdf094 --- /dev/null +++ b/src/mesa/drivers/dri/i965/brw_dead_control_flow.cpp @@ -0,0 +1,83 @@ +/* + * 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. + */ + +/** @file brw_dead_control_flow.cpp + * + * This file implements the dead control flow elimination optimization pass. + */ + +#include brw_shader.h +#include brw_cfg.h + +/* Look for and eliminate dead control flow: + * + * - if/endif + * - if/else/endif + */ +bool +dead_control_flow_eliminate(backend_visitor *v) +{ + bool progress = false; + + cfg_t cfg(v); + + for (int b = 0; b cfg.num_blocks; b++) { + bblock_t *block = cfg.blocks[b]; + bool found = false; + + /* ENDIF instructions, by definition, can only be found at the ends of + * basic blocks. + */ + backend_instruction *endif_inst = block-end; + if (endif_inst-opcode != BRW_OPCODE_ENDIF) + continue; + + backend_instruction *if_inst = NULL, *else_inst = NULL; + backend_instruction *prev_inst = (backend_instruction *) endif_inst-prev; + if (prev_inst-opcode == BRW_OPCODE_IF) { + if_inst = prev_inst; + found = true; + } else if (prev_inst-opcode == BRW_OPCODE_ELSE) { + else_inst = prev_inst; + + prev_inst = (backend_instruction *) prev_inst-prev; + if (prev_inst-opcode == BRW_OPCODE_IF) { +if_inst = prev_inst; +found = true; + } + } + + if (found) { + if_inst-remove(); + if (else_inst) +else_inst-remove(); + endif_inst-remove(); + progress = true; + } + } + + if (progress) + v-invalidate_live_intervals(); + + return progress; +} diff --git a/src/mesa/drivers/dri/i965/brw_dead_control_flow.h b/src/mesa/drivers/dri/i965/brw_dead_control_flow.h new file mode 100644 index 000..57a4dab --- /dev/null +++ b/src/mesa/drivers/dri/i965/brw_dead_control_flow.h @@ -0,0 +1,26 @@ +/* + * 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
[Mesa-dev] [PATCH 2/3] i965/fs: Emit compressed 3-source instructions on Haswell.
For commit 4df56177 Paul discovered that the hardware restriction that Align16 instructions cannot be compressed was lifted on Haswell. This has prevented us from emitting compressed three-source instructions. For added confirmation, the bspec lists a work around called WaBreakSimd16TernaryInstructionsIntoSimd8 that hasn't been applicable since very early Haswell silicon. --- Don't do it for BFI2 (see next patch). src/mesa/drivers/dri/i965/brw_fs_generator.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp index 63ac530..1e5422c 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp @@ -1404,7 +1404,7 @@ fs_generator::generate_code(exec_list *instructions) case BRW_OPCODE_MAD: assert(brw-gen = 6); brw_set_access_mode(p, BRW_ALIGN_16); -if (dispatch_width == 16) { + if (dispatch_width == 16 brw-gen == 7 !brw-is_haswell) { brw_set_compression_control(p, BRW_COMPRESSION_NONE); brw_MAD(p, dst, src[0], src[1], src[2]); brw_set_compression_control(p, BRW_COMPRESSION_2NDHALF); @@ -1419,7 +1419,7 @@ fs_generator::generate_code(exec_list *instructions) case BRW_OPCODE_LRP: assert(brw-gen = 6); brw_set_access_mode(p, BRW_ALIGN_16); -if (dispatch_width == 16) { + if (dispatch_width == 16 brw-gen == 7 !brw-is_haswell) { brw_set_compression_control(p, BRW_COMPRESSION_NONE); brw_LRP(p, dst, src[0], src[1], src[2]); brw_set_compression_control(p, BRW_COMPRESSION_2NDHALF); @@ -1516,7 +1516,7 @@ fs_generator::generate_code(exec_list *instructions) case BRW_OPCODE_BFE: assert(brw-gen = 7); brw_set_access_mode(p, BRW_ALIGN_16); - if (dispatch_width == 16) { + if (dispatch_width == 16 brw-gen == 7 !brw-is_haswell) { brw_set_compression_control(p, BRW_COMPRESSION_NONE); brw_BFE(p, dst, src[0], src[1], src[2]); brw_set_compression_control(p, BRW_COMPRESSION_2NDHALF); -- 1.7.12.4 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 1/3] i965: Fix disassembled names of BFI1 and BFI2 instructions.
--- src/mesa/drivers/dri/i965/brw_disasm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_disasm.c b/src/mesa/drivers/dri/i965/brw_disasm.c index 22b37d7..128e717 100644 --- a/src/mesa/drivers/dri/i965/brw_disasm.c +++ b/src/mesa/drivers/dri/i965/brw_disasm.c @@ -75,8 +75,8 @@ const struct opcode_desc opcode_descs[128] = { [BRW_OPCODE_CMP] = { .name = cmp, .nsrc = 2, .ndst = 1 }, [BRW_OPCODE_CMPN] = { .name = cmpn, .nsrc = 2, .ndst = 1 }, [BRW_OPCODE_BFE] = { .name = bfe, .nsrc = 3, .ndst = 1}, -[BRW_OPCODE_BFI1] = { .name = bfe1, .nsrc = 2, .ndst = 1}, -[BRW_OPCODE_BFI2] = { .name = bfe2, .nsrc = 3, .ndst = 1}, +[BRW_OPCODE_BFI1] = { .name = bfi1, .nsrc = 2, .ndst = 1}, +[BRW_OPCODE_BFI2] = { .name = bfi2, .nsrc = 3, .ndst = 1}, [BRW_OPCODE_ADDC] = { .name = addc, .nsrc = 2, .ndst = 1}, [BRW_OPCODE_SUBB] = { .name = subb, .nsrc = 2, .ndst = 1}, -- 1.7.12.4 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 3/3] i965/fs: Don't emit SIMD16 BFI instructions.
--- src/mesa/drivers/dri/i965/brw_fs_generator.cpp | 23 ++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp index 1e5422c..bf38db6 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp @@ -1530,11 +1530,32 @@ fs_generator::generate_code(exec_list *instructions) case BRW_OPCODE_BFI1: assert(brw-gen = 7); - brw_BFI1(p, dst, src[0], src[1]); + /* The Haswell WaForceSIMD8ForBFIInstruction workaround says that we + * should + * + *Force BFI instructions to be executed always in SIMD8. + */ + if (dispatch_width == 16 brw-is_haswell) { +brw_set_compression_control(p, BRW_COMPRESSION_NONE); +brw_BFI1(p, dst, src[0], src[1]); +brw_set_compression_control(p, BRW_COMPRESSION_2NDHALF); +brw_BFI1(p, sechalf(dst), sechalf(src[0]), sechalf(src[1])); +brw_set_compression_control(p, BRW_COMPRESSION_COMPRESSED); + } else { +brw_BFI1(p, dst, src[0], src[1]); + } break; case BRW_OPCODE_BFI2: assert(brw-gen = 7); brw_set_access_mode(p, BRW_ALIGN_16); + /* The Haswell WaForceSIMD8ForBFIInstruction workaround says that we + * should + * + *Force BFI instructions to be executed always in SIMD8. + * + * Otherwise we would be able to emit compressed instructions like we + * do for the other three-source instructions. + */ if (dispatch_width == 16) { brw_set_compression_control(p, BRW_COMPRESSION_NONE); brw_BFI2(p, dst, src[0], src[1], src[2]); -- 1.7.12.4 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 3/4] docs: update nv50, nvc0 current status
Signed-off-by: Emil Velikov emil.l.veli...@gmail.com --- docs/GL3.txt | 36 ++-- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/docs/GL3.txt b/docs/GL3.txt index 9b9d38b..5f6fa7e 100644 --- a/docs/GL3.txt +++ b/docs/GL3.txt @@ -18,7 +18,7 @@ are exposed in the 3.0 context as extensions. Feature Status - -GL 3.0 --- all DONE: i965, r600, radeonsi +GL 3.0 --- all DONE: i965, nv50, nvc0, r600, radeonsi GLSL 1.30 DONE () glBindFragDataLocation, glGetFragDataLocation DONE @@ -47,7 +47,7 @@ GL 3.0 --- all DONE: i965, r600, radeonsi GLX_ARB_create_context (GLX 1.4 is required) DONE -GL 3.1 --- all DONE: i965, r600, radeonsi +GL 3.1 --- all DONE: i965, nv50, nvc0, r600, radeonsi GLSL 1.40 DONE () Forward compatible context support/deprecations DONE () @@ -66,29 +66,29 @@ GL 3.2 --- all DONE: i965 Core/compatibility profiles DONE GLSL 1.50 DONE () Geometry shaders DONE () - BGRA vertex order (GL_ARB_vertex_array_bgra) DONE (r300, r600, radeonsi, swrast) - Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE (r300, r600, radeonsi, swrast) - Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (r300, r600, radeonsi, swrast) - Provoking vertex (GL_ARB_provoking_vertex)DONE (r300, r600, radeonsi, swrast) - Seamless cubemaps (GL_ARB_seamless_cube_map) DONE (r600, radeonsi) - Multisample textures (GL_ARB_texture_multisample) DONE (r600, radeonsi) - Frag depth clamp (GL_ARB_depth_clamp) DONE (r600, swrast, radeonsi) - Fence objects (GL_ARB_sync) DONE (r300, r600, radeonsi, swrast) + BGRA vertex order (GL_ARB_vertex_array_bgra) DONE (nv50, nvc0, r300, r600, radeonsi, swrast) + Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE (nv50, nvc0, r300, r600, radeonsi, swrast) + Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (nv50, nvc0, r300, r600, radeonsi, swrast) + Provoking vertex (GL_ARB_provoking_vertex)DONE (nv50, nvc0, r300, r600, radeonsi, swrast) + Seamless cubemaps (GL_ARB_seamless_cube_map) DONE (nvc0, r600, radeonsi) + Multisample textures (GL_ARB_texture_multisample) DONE (nvc0, r600, radeonsi) + Frag depth clamp (GL_ARB_depth_clamp) DONE (nv50, nvc0, r600, swrast, radeonsi) + Fence objects (GL_ARB_sync) DONE (nv50, nvc0, r300, r600, radeonsi, swrast) GLX_ARB_create_context_profileDONE GL 3.3 --- all DONE: i965 GLSL 3.30 DONE () - GL_ARB_blend_func_extendedDONE (r600, radeonsi, softpipe) - GL_ARB_explicit_attrib_location DONE (i915, r300, r600, radeonsi, swrast) - GL_ARB_occlusion_query2 DONE (r300, r600, radeonsi, swrast) - GL_ARB_sampler_objectsDONE (r300, r600, radeonsi) - GL_ARB_shader_bit_encodingDONE (r600, radeonsi) + GL_ARB_blend_func_extendedDONE (nv50, nvc0, r600, radeonsi, softpipe) + GL_ARB_explicit_attrib_location DONE (i915, nv50, nvc0, r300, r600, radeonsi, swrast) + GL_ARB_occlusion_query2 DONE (nv50, nvc0, r300, r600, radeonsi, swrast) + GL_ARB_sampler_objectsDONE (nv50, nvc0, r300, r600, radeonsi) + GL_ARB_shader_bit_encodingDONE (nv50, nvc0, r600, radeonsi) GL_ARB_texture_rgb10_a2ui DONE (r600, radeonsi) - GL_ARB_texture_swizzleDONE (r300, r600, radeonsi, swrast) - GL_ARB_timer_queryDONE (r600, radeonsi) - GL_ARB_instanced_arrays DONE (r300, r600, radeonsi) + GL_ARB_texture_swizzleDONE (nv50, nvc0, r300, r600, radeonsi, swrast) + GL_ARB_timer_queryDONE (nv50, nvc0, r600, radeonsi) + GL_ARB_instanced_arrays DONE (nv50, nvc0, r300, r600, radeonsi) GL_ARB_vertex_type_2_10_10_10_rev DONE (r600, radeonsi) -- 1.8.4.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 2/4] - Indent items under a GL version to allow context diffs to do their work. - Move complete drivers into the GL version line - this should make the stuff a little bit easier to r
From: Joerg Mayer jma...@loplof.de v2: keep the fd.o link (Emil Velikov) Signed-off-by: Joerg Mayer jma...@loplof.de Signed-off-by: Emil Velikov emil.l.veli...@gmail.com --- docs/GL3.txt | 276 +-- 1 file changed, 138 insertions(+), 138 deletions(-) diff --git a/docs/GL3.txt b/docs/GL3.txt index a8cffab..9b9d38b 100644 --- a/docs/GL3.txt +++ b/docs/GL3.txt @@ -18,164 +18,164 @@ are exposed in the 3.0 context as extensions. Feature Status - -GL 3.0: - -GLSL 1.30 DONE (i965, r600, radeonsi) -glBindFragDataLocation, glGetFragDataLocation DONE -Conditional rendering (GL_NV_conditional_render) DONE (i965, r300, r600, radeonsi, swrast) -Map buffer subranges (GL_ARB_map_buffer_range)DONE (i965, r300, r600, radeonsi, swrast) -Clamping controls (GL_ARB_color_buffer_float) DONE (i965, r300, r600, radeonsi) -Float textures, renderbuffers (GL_ARB_texture_float) DONE (i965, r300, r600, radeonsi) -GL_EXT_packed_float DONE (i965, r600, radeonsi) -GL_EXT_texture_shared_exponentDONE (i965, r600, radeonsi, swrast) -Float depth buffers (GL_ARB_depth_buffer_float) DONE (i965, r600, radeonsi) -Framebuffer objects (GL_ARB_framebuffer_object) DONE (i965, r300, r600, radeonsi, swrast) -Half-floatDONE (i965, r300, r600, radeonsi, swrast) -Non-normalized Integer texture/framebuffer formatsDONE (i965, r600, radeonsi) -1D/2D Texture arrays DONE (i965, r600, radeonsi) -Per-buffer blend and masks (GL_EXT_draw_buffers2) DONE (i965, r600, radeonsi, swrast) -GL_EXT_texture_compression_rgtc DONE (i965, r300, r600, radeonsi, swrast) -Red and red/green texture formats DONE (i965, r300, r600, radeonsi, swrast) -Transform feedback (GL_EXT_transform_feedback)DONE (i965, r600, radeonsi) -Vertex array objects (GL_APPLE_vertex_array_object) DONE (all drivers) -sRGB framebuffer format (GL_EXT_framebuffer_sRGB) DONE (i965, r600, radeonsi) -glClearBuffer commandsDONE -glGetStringi command DONE -glTexParameterI, glGetTexParameterI commands DONE -glVertexAttribI commands DONE -Depth format cube texturesDONE (i965, r600, radeonsi) -GLX_ARB_create_context (GLX 1.4 is required) DONE - - -GL 3.1: - -GLSL 1.40 DONE (i965, r600, radeonsi) -Forward compatible context support/deprecations DONE (i965, r600, radeonsi) -Instanced drawing (GL_ARB_draw_instanced) DONE (i965, r600, radeonsi, swrast) -Buffer copying (GL_ARB_copy_buffer) DONE (i965, r300, r600, radeonsi, swrast) -Primitive restart (GL_NV_primitive_restart) DONE (i965, r300, r600, radeonsi) -16 vertex texture image units DONE (i965, r600, radeonsi) -Texture buffer objs (GL_ARB_texture_buffer_object)DONE for OpenGL 3.1 contexts (i965, r600, radeonsi) -Rectangular textures (GL_ARB_texture_rectangle) DONE (i965, r300, r600, radeonsi, swrast) -Uniform buffer objs (GL_ARB_uniform_buffer_object)DONE (i965, r600, radeonsi, swrast) -Signed normalized textures (GL_EXT_texture_snorm) DONE (i965, r300, r600, radeonsi) - - -GL 3.2: - -Core/compatibility profiles DONE -GLSL 1.50 DONE (i965) -Geometry shaders DONE (i965) -BGRA vertex order (GL_ARB_vertex_array_bgra) DONE (i965, r300, r600, radeonsi, swrast) -Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE (i965, r300, r600, radeonsi, swrast) -Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (i965, r300, r600, radeonsi, swrast) -Provoking vertex (GL_ARB_provoking_vertex)DONE (i965, r300, r600, radeonsi, swrast) -Seamless cubemaps (GL_ARB_seamless_cube_map) DONE (i965, r600, radeonsi) -Multisample textures (GL_ARB_texture_multisample) DONE (i965, r600, radeonsi) -Frag depth clamp (GL_ARB_depth_clamp) DONE (i965, r600, swrast, radeonsi) -Fence objects (GL_ARB_sync) DONE (i965, r300, r600, radeonsi, swrast) -GLX_ARB_create_context_profileDONE - - -GL 3.3: - -GLSL 3.30 DONE (i965) -GL_ARB_blend_func_extendedDONE (i965, r600, radeonsi, softpipe) -GL_ARB_explicit_attrib_location DONE (i915, i965, r300, r600, radeonsi, swrast) -GL_ARB_occlusion_query2 DONE
[Mesa-dev] [PATCH 1/4] docs: add a note about removed state tracker/targets
The X.Org state tracker is gone, as well as the xvmc/vdpau r300 and softpipe targets. Cc: 10.0 mesa-sta...@lists.freedesktop.org Signed-off-by: Emil Velikov emil.l.veli...@gmail.com --- docs/relnotes/10.0.html | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/relnotes/10.0.html b/docs/relnotes/10.0.html index eabe77f..f06d068 100644 --- a/docs/relnotes/10.0.html +++ b/docs/relnotes/10.0.html @@ -64,7 +64,11 @@ TBD. h2Changes/h2 -TBD. +ul +liRemoved X.Org state tracker (unmaintained and broken)/li +liRemoved the video-accel r300 targets/li +liRemoved the video-accel softpipe targets/li +/ul /div /body -- 1.8.4.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 4/4] docs: indicate GLX_MESA_query_renderer's completion
Cc: 10.0 mesa-sta...@lists.freedesktop.org Signed-off-by: Emil Velikov emil.l.veli...@gmail.com --- docs/relnotes/10.0.html | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/relnotes/10.0.html b/docs/relnotes/10.0.html index f06d068..1e4f771 100644 --- a/docs/relnotes/10.0.html +++ b/docs/relnotes/10.0.html @@ -55,6 +55,7 @@ Note: some of the new features are only available with certain drivers. liGL_ARB_vertex_attrib_binding/li liGL_ARB_vertex_type_10f_11f_11f_rev on i965 and r600g/li liGL_KHR_debug/li +liGLX_MESA_query_renderer/li /ul -- 1.8.4.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 2/4] docs: restructure GL3.txt
From: Joerg Mayer jma...@loplof.de - Indent items under a GL version to allow context diffs to do their work. - Move complete drivers into the GL version line - this should make the stuff a little bit easier to read. v2: keep the fd.o link (Emil Velikov) Signed-off-by: Joerg Mayer jma...@loplof.de Signed-off-by: Emil Velikov emil.l.veli...@gmail.com --- docs/GL3.txt | 276 +-- 1 file changed, 138 insertions(+), 138 deletions(-) diff --git a/docs/GL3.txt b/docs/GL3.txt index a8cffab..9b9d38b 100644 --- a/docs/GL3.txt +++ b/docs/GL3.txt @@ -18,164 +18,164 @@ are exposed in the 3.0 context as extensions. Feature Status - -GL 3.0: - -GLSL 1.30 DONE (i965, r600, radeonsi) -glBindFragDataLocation, glGetFragDataLocation DONE -Conditional rendering (GL_NV_conditional_render) DONE (i965, r300, r600, radeonsi, swrast) -Map buffer subranges (GL_ARB_map_buffer_range)DONE (i965, r300, r600, radeonsi, swrast) -Clamping controls (GL_ARB_color_buffer_float) DONE (i965, r300, r600, radeonsi) -Float textures, renderbuffers (GL_ARB_texture_float) DONE (i965, r300, r600, radeonsi) -GL_EXT_packed_float DONE (i965, r600, radeonsi) -GL_EXT_texture_shared_exponentDONE (i965, r600, radeonsi, swrast) -Float depth buffers (GL_ARB_depth_buffer_float) DONE (i965, r600, radeonsi) -Framebuffer objects (GL_ARB_framebuffer_object) DONE (i965, r300, r600, radeonsi, swrast) -Half-floatDONE (i965, r300, r600, radeonsi, swrast) -Non-normalized Integer texture/framebuffer formatsDONE (i965, r600, radeonsi) -1D/2D Texture arrays DONE (i965, r600, radeonsi) -Per-buffer blend and masks (GL_EXT_draw_buffers2) DONE (i965, r600, radeonsi, swrast) -GL_EXT_texture_compression_rgtc DONE (i965, r300, r600, radeonsi, swrast) -Red and red/green texture formats DONE (i965, r300, r600, radeonsi, swrast) -Transform feedback (GL_EXT_transform_feedback)DONE (i965, r600, radeonsi) -Vertex array objects (GL_APPLE_vertex_array_object) DONE (all drivers) -sRGB framebuffer format (GL_EXT_framebuffer_sRGB) DONE (i965, r600, radeonsi) -glClearBuffer commandsDONE -glGetStringi command DONE -glTexParameterI, glGetTexParameterI commands DONE -glVertexAttribI commands DONE -Depth format cube texturesDONE (i965, r600, radeonsi) -GLX_ARB_create_context (GLX 1.4 is required) DONE - - -GL 3.1: - -GLSL 1.40 DONE (i965, r600, radeonsi) -Forward compatible context support/deprecations DONE (i965, r600, radeonsi) -Instanced drawing (GL_ARB_draw_instanced) DONE (i965, r600, radeonsi, swrast) -Buffer copying (GL_ARB_copy_buffer) DONE (i965, r300, r600, radeonsi, swrast) -Primitive restart (GL_NV_primitive_restart) DONE (i965, r300, r600, radeonsi) -16 vertex texture image units DONE (i965, r600, radeonsi) -Texture buffer objs (GL_ARB_texture_buffer_object)DONE for OpenGL 3.1 contexts (i965, r600, radeonsi) -Rectangular textures (GL_ARB_texture_rectangle) DONE (i965, r300, r600, radeonsi, swrast) -Uniform buffer objs (GL_ARB_uniform_buffer_object)DONE (i965, r600, radeonsi, swrast) -Signed normalized textures (GL_EXT_texture_snorm) DONE (i965, r300, r600, radeonsi) - - -GL 3.2: - -Core/compatibility profiles DONE -GLSL 1.50 DONE (i965) -Geometry shaders DONE (i965) -BGRA vertex order (GL_ARB_vertex_array_bgra) DONE (i965, r300, r600, radeonsi, swrast) -Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE (i965, r300, r600, radeonsi, swrast) -Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (i965, r300, r600, radeonsi, swrast) -Provoking vertex (GL_ARB_provoking_vertex)DONE (i965, r300, r600, radeonsi, swrast) -Seamless cubemaps (GL_ARB_seamless_cube_map) DONE (i965, r600, radeonsi) -Multisample textures (GL_ARB_texture_multisample) DONE (i965, r600, radeonsi) -Frag depth clamp (GL_ARB_depth_clamp) DONE (i965, r600, swrast, radeonsi) -Fence objects (GL_ARB_sync) DONE (i965, r300, r600, radeonsi, swrast) -GLX_ARB_create_context_profileDONE - - -GL 3.3: - -GLSL 3.30 DONE (i965) -GL_ARB_blend_func_extendedDONE (i965, r600,
Re: [Mesa-dev] [PATCH 2/3] i965/fs: Emit compressed 3-source instructions on Haswell.
On 11/16/2013 03:24 PM, Matt Turner wrote: For commit 4df56177 Paul discovered that the hardware restriction that Align16 instructions cannot be compressed was lifted on Haswell. This has prevented us from emitting compressed three-source instructions. For added confirmation, the bspec lists a work around called WaBreakSimd16TernaryInstructionsIntoSimd8 that hasn't been applicable since very early Haswell silicon. --- Don't do it for BFI2 (see next patch). src/mesa/drivers/dri/i965/brw_fs_generator.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp index 63ac530..1e5422c 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp @@ -1404,7 +1404,7 @@ fs_generator::generate_code(exec_list *instructions) case BRW_OPCODE_MAD: assert(brw-gen = 6); brw_set_access_mode(p, BRW_ALIGN_16); - if (dispatch_width == 16) { + if (dispatch_width == 16 brw-gen == 7 !brw-is_haswell) { brw_set_compression_control(p, BRW_COMPRESSION_NONE); brw_MAD(p, dst, src[0], src[1], src[2]); brw_set_compression_control(p, BRW_COMPRESSION_2NDHALF); @@ -1419,7 +1419,7 @@ fs_generator::generate_code(exec_list *instructions) case BRW_OPCODE_LRP: assert(brw-gen = 6); brw_set_access_mode(p, BRW_ALIGN_16); - if (dispatch_width == 16) { + if (dispatch_width == 16 brw-gen == 7 !brw-is_haswell) { brw_set_compression_control(p, BRW_COMPRESSION_NONE); brw_LRP(p, dst, src[0], src[1], src[2]); brw_set_compression_control(p, BRW_COMPRESSION_2NDHALF); @@ -1516,7 +1516,7 @@ fs_generator::generate_code(exec_list *instructions) case BRW_OPCODE_BFE: assert(brw-gen = 7); brw_set_access_mode(p, BRW_ALIGN_16); - if (dispatch_width == 16) { + if (dispatch_width == 16 brw-gen == 7 !brw-is_haswell) { brw_set_compression_control(p, BRW_COMPRESSION_NONE); brw_BFE(p, dst, src[0], src[1], src[2]); brw_set_compression_control(p, BRW_COMPRESSION_2NDHALF); Ehh. These checks look wrong; won't they make us stop breaking these into two 8-wide halves on Sandybridge? MAD and LRP are supported there. I think you just want: if (dispatch_width == 16 !brw-is_haswell) { ...break in two... } else { ...emit a single instruction... } Then, Sandybridge, Ivybridge, and Baytrail will properly break 16-wide in two, while Haswell won't. Broadwell doesn't use this code, so gen 7 doesn't matter. --Ken ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 1/3] i965: Fix disassembled names of BFI1 and BFI2 instructions.
On 11/16/2013 03:24 PM, Matt Turner wrote: --- src/mesa/drivers/dri/i965/brw_disasm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_disasm.c b/src/mesa/drivers/dri/i965/brw_disasm.c index 22b37d7..128e717 100644 --- a/src/mesa/drivers/dri/i965/brw_disasm.c +++ b/src/mesa/drivers/dri/i965/brw_disasm.c @@ -75,8 +75,8 @@ const struct opcode_desc opcode_descs[128] = { [BRW_OPCODE_CMP] = { .name = cmp, .nsrc = 2, .ndst = 1 }, [BRW_OPCODE_CMPN] = { .name = cmpn, .nsrc = 2, .ndst = 1 }, [BRW_OPCODE_BFE] = { .name = bfe, .nsrc = 3, .ndst = 1}, -[BRW_OPCODE_BFI1] = { .name = bfe1, .nsrc = 2, .ndst = 1}, -[BRW_OPCODE_BFI2] = { .name = bfe2, .nsrc = 3, .ndst = 1}, +[BRW_OPCODE_BFI1] = { .name = bfi1, .nsrc = 2, .ndst = 1}, +[BRW_OPCODE_BFI2] = { .name = bfi2, .nsrc = 3, .ndst = 1}, [BRW_OPCODE_ADDC] = { .name = addc, .nsrc = 2, .ndst = 1}, [BRW_OPCODE_SUBB] = { .name = subb, .nsrc = 2, .ndst = 1}, This patch is: Reviewed-by: Kenneth Graunke kenn...@whitecape.org ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 3/3] i965/fs: Don't emit SIMD16 BFI instructions.
On 11/16/2013 03:24 PM, Matt Turner wrote: --- src/mesa/drivers/dri/i965/brw_fs_generator.cpp | 23 ++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp index 1e5422c..bf38db6 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp @@ -1530,11 +1530,32 @@ fs_generator::generate_code(exec_list *instructions) case BRW_OPCODE_BFI1: assert(brw-gen = 7); - brw_BFI1(p, dst, src[0], src[1]); + /* The Haswell WaForceSIMD8ForBFIInstruction workaround says that we + * should + * + *Force BFI instructions to be executed always in SIMD8. + */ + if (dispatch_width == 16 brw-is_haswell) { +brw_set_compression_control(p, BRW_COMPRESSION_NONE); +brw_BFI1(p, dst, src[0], src[1]); +brw_set_compression_control(p, BRW_COMPRESSION_2NDHALF); +brw_BFI1(p, sechalf(dst), sechalf(src[0]), sechalf(src[1])); +brw_set_compression_control(p, BRW_COMPRESSION_COMPRESSED); + } else { +brw_BFI1(p, dst, src[0], src[1]); + } break; case BRW_OPCODE_BFI2: assert(brw-gen = 7); brw_set_access_mode(p, BRW_ALIGN_16); + /* The Haswell WaForceSIMD8ForBFIInstruction workaround says that we + * should + * + *Force BFI instructions to be executed always in SIMD8. + * + * Otherwise we would be able to emit compressed instructions like we + * do for the other three-source instructions. + */ if (dispatch_width == 16) { brw_set_compression_control(p, BRW_COMPRESSION_NONE); brw_BFI2(p, dst, src[0], src[1], src[2]); I'm skeptical that BFI needs to be broken in two on Haswell but not on Ivybridge or Baytrail. I'd guess it just always needs to be broken down. Is there some way I can test that for you? ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 3/3] i965: Add a pass to remove dead control flow.
On 11/16/2013 03:23 PM, Matt Turner wrote: Removes IF/ENDIF and IF/ELSE/ENDIF with no intervening instructions. total instructions in shared programs: 1360393 - 1360387 (-0.00%) instructions in affected programs: 157 - 151 (-3.82%) (no change in vertex shaders) Reviewed-by: Paul Berry stereotype...@gmail.com Reviewed-by: Eric Anholt e...@anholt.net This series is also: Reviewed-by: Kenneth Graunke kenn...@whitecape.org ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 2/3] i965/fs: Emit compressed 3-source instructions on Haswell.
On Sat, Nov 16, 2013 at 3:53 PM, Kenneth Graunke kenn...@whitecape.org wrote: On 11/16/2013 03:24 PM, Matt Turner wrote: For commit 4df56177 Paul discovered that the hardware restriction that Align16 instructions cannot be compressed was lifted on Haswell. This has prevented us from emitting compressed three-source instructions. For added confirmation, the bspec lists a work around called WaBreakSimd16TernaryInstructionsIntoSimd8 that hasn't been applicable since very early Haswell silicon. --- Don't do it for BFI2 (see next patch). src/mesa/drivers/dri/i965/brw_fs_generator.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp index 63ac530..1e5422c 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp @@ -1404,7 +1404,7 @@ fs_generator::generate_code(exec_list *instructions) case BRW_OPCODE_MAD: assert(brw-gen = 6); brw_set_access_mode(p, BRW_ALIGN_16); - if (dispatch_width == 16) { + if (dispatch_width == 16 brw-gen == 7 !brw-is_haswell) { brw_set_compression_control(p, BRW_COMPRESSION_NONE); brw_MAD(p, dst, src[0], src[1], src[2]); brw_set_compression_control(p, BRW_COMPRESSION_2NDHALF); @@ -1419,7 +1419,7 @@ fs_generator::generate_code(exec_list *instructions) case BRW_OPCODE_LRP: assert(brw-gen = 6); brw_set_access_mode(p, BRW_ALIGN_16); - if (dispatch_width == 16) { + if (dispatch_width == 16 brw-gen == 7 !brw-is_haswell) { brw_set_compression_control(p, BRW_COMPRESSION_NONE); brw_LRP(p, dst, src[0], src[1], src[2]); brw_set_compression_control(p, BRW_COMPRESSION_2NDHALF); @@ -1516,7 +1516,7 @@ fs_generator::generate_code(exec_list *instructions) case BRW_OPCODE_BFE: assert(brw-gen = 7); brw_set_access_mode(p, BRW_ALIGN_16); - if (dispatch_width == 16) { + if (dispatch_width == 16 brw-gen == 7 !brw-is_haswell) { brw_set_compression_control(p, BRW_COMPRESSION_NONE); brw_BFE(p, dst, src[0], src[1], src[2]); brw_set_compression_control(p, BRW_COMPRESSION_2NDHALF); Ehh. These checks look wrong; won't they make us stop breaking these into two 8-wide halves on Sandybridge? MAD and LRP are supported there. I think you just want: if (dispatch_width == 16 !brw-is_haswell) { Yes. Silly mistake. ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 2/3] i965/fs: Emit compressed 3-source instructions on Haswell.
For commit 4df56177 Paul discovered that the hardware restriction that Align16 instructions cannot be compressed was lifted on Haswell. This has prevented us from emitting compressed three-source instructions. For added confirmation, the bspec lists a work around called WaBreakSimd16TernaryInstructionsIntoSimd8 that hasn't been applicable since very early Haswell silicon. --- src/mesa/drivers/dri/i965/brw_fs_generator.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp index cc58ff2..a97a016 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp @@ -1404,7 +1404,7 @@ fs_generator::generate_code(exec_list *instructions) case BRW_OPCODE_MAD: assert(brw-gen = 6); brw_set_access_mode(p, BRW_ALIGN_16); -if (dispatch_width == 16) { + if (dispatch_width == 16 !brw-is_haswell) { brw_set_compression_control(p, BRW_COMPRESSION_NONE); brw_MAD(p, dst, src[0], src[1], src[2]); brw_set_compression_control(p, BRW_COMPRESSION_2NDHALF); @@ -1419,7 +1419,7 @@ fs_generator::generate_code(exec_list *instructions) case BRW_OPCODE_LRP: assert(brw-gen = 6); brw_set_access_mode(p, BRW_ALIGN_16); -if (dispatch_width == 16) { + if (dispatch_width == 16 !brw-is_haswell) { brw_set_compression_control(p, BRW_COMPRESSION_NONE); brw_LRP(p, dst, src[0], src[1], src[2]); brw_set_compression_control(p, BRW_COMPRESSION_2NDHALF); @@ -1516,7 +1516,7 @@ fs_generator::generate_code(exec_list *instructions) case BRW_OPCODE_BFE: assert(brw-gen = 7); brw_set_access_mode(p, BRW_ALIGN_16); - if (dispatch_width == 16) { + if (dispatch_width == 16 !brw-is_haswell) { brw_set_compression_control(p, BRW_COMPRESSION_NONE); brw_BFE(p, dst, src[0], src[1], src[2]); brw_set_compression_control(p, BRW_COMPRESSION_2NDHALF); -- 1.8.3.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 3/3] i965: Fix broken asserts
These would never fire. Signed-off-by: Chris Forbes chr...@ijw.co.nz --- src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp | 2 +- src/mesa/drivers/dri/i965/brw_vec4_vp.cpp| 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp b/src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp index 5024bed..e154441 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp @@ -418,7 +418,7 @@ ir_channel_expressions_visitor::visit_leave(ir_assignment *ir) case ir_unop_unpack_half_2x16_split_x: case ir_unop_unpack_half_2x16_split_y: case ir_binop_pack_half_2x16_split: - assert(!not reached: expression operates on scalars only); + assert(!not reached: expression operates on scalars only); break; } diff --git a/src/mesa/drivers/dri/i965/brw_vec4_vp.cpp b/src/mesa/drivers/dri/i965/brw_vec4_vp.cpp index 1f3d75c..d98bad1 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_vp.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_vp.cpp @@ -493,7 +493,7 @@ vec4_vs_visitor::get_vp_dst_reg(const prog_dst_register dst) return dst_null_f(); default: - assert(vec4_vp: bad destination register file); + assert(!vec4_vp: bad destination register file); return dst_reg(this, glsl_type::vec4_type); } -- 1.8.4.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 1/3] r600/sb: Fix broken assert
This would never fire. Signed-off-by: Chris Forbes chr...@ijw.co.nz --- src/gallium/drivers/r600/sb/sb_sched.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/r600/sb/sb_sched.cpp b/src/gallium/drivers/r600/sb/sb_sched.cpp index 2792315..1413916 100644 --- a/src/gallium/drivers/r600/sb/sb_sched.cpp +++ b/src/gallium/drivers/r600/sb/sb_sched.cpp @@ -527,7 +527,7 @@ bool alu_group_tracker::try_reserve(alu_node* n) { forced_swz_slots |= (1 i); a-bc.bank_swizzle = VEC_210; if (!gpr.try_reserve(a)) - assert(!internal reservation error); + assert(!internal reservation error); } else { if (first_nf == ~0) first_nf = i; -- 1.8.4.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 2/3] st/vega: Fix broken assert
This would never fire. Signed-off-by: Chris Forbes chr...@ijw.co.nz --- src/gallium/state_trackers/vega/paint.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/state_trackers/vega/paint.c b/src/gallium/state_trackers/vega/paint.c index 79b7a27..fea9fc1 100644 --- a/src/gallium/state_trackers/vega/paint.c +++ b/src/gallium/state_trackers/vega/paint.c @@ -516,7 +516,7 @@ void paint_set_pattern_tiling(struct vg_paint *paint, paint-pattern.sampler.wrap_t = PIPE_TEX_WRAP_MIRROR_REPEAT; break; default: - debug_assert(!Unknown tiling mode); + debug_assert(!Unknown tiling mode); } } -- 1.8.4.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 3/3] i965: Fix broken asserts
On 11/16/2013 06:00 PM, Chris Forbes wrote: These would never fire. Signed-off-by: Chris Forbes chr...@ijw.co.nz --- src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp | 2 +- src/mesa/drivers/dri/i965/brw_vec4_vp.cpp| 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp b/src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp index 5024bed..e154441 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp @@ -418,7 +418,7 @@ ir_channel_expressions_visitor::visit_leave(ir_assignment *ir) case ir_unop_unpack_half_2x16_split_x: case ir_unop_unpack_half_2x16_split_y: case ir_binop_pack_half_2x16_split: - assert(!not reached: expression operates on scalars only); + assert(!not reached: expression operates on scalars only); break; } diff --git a/src/mesa/drivers/dri/i965/brw_vec4_vp.cpp b/src/mesa/drivers/dri/i965/brw_vec4_vp.cpp index 1f3d75c..d98bad1 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_vp.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_vp.cpp @@ -493,7 +493,7 @@ vec4_vs_visitor::get_vp_dst_reg(const prog_dst_register dst) return dst_null_f(); default: - assert(vec4_vp: bad destination register file); + assert(!vec4_vp: bad destination register file); return dst_reg(this, glsl_type::vec4_type); } All three are: Reviewed-by: Kenneth Graunke kenn...@whitecape.org ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH] mesa: bump version to 10.1 (devel)
Now that branch 10.0 is created, bump the minor version in master. Signed-off-by: Chris Forbes chr...@ijw.co.nz --- VERSION | 2 +- docs/relnotes.html | 1 + docs/relnotes/10.1.html | 60 + 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 docs/relnotes/10.1.html diff --git a/VERSION b/VERSION index 8e92e83..7432bee 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -10.0.0-devel +10.1.0-devel diff --git a/docs/relnotes.html b/docs/relnotes.html index c232456..13de49a 100644 --- a/docs/relnotes.html +++ b/docs/relnotes.html @@ -21,6 +21,7 @@ The release notes summarize what's new or changed in each Mesa release. /p ul +lia href=relnotes/10.1.html10.1 release notes/a lia href=relnotes/10.0.html10.0 release notes/a lia href=relnotes/9.2.3.html9.2.3 release notes/a lia href=relnotes/9.2.2.html9.2.2 release notes/a diff --git a/docs/relnotes/10.1.html b/docs/relnotes/10.1.html new file mode 100644 index 000..55d810f --- /dev/null +++ b/docs/relnotes/10.1.html @@ -0,0 +1,60 @@ +!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 + titleMesa Release Notes/title + link rel=stylesheet type=text/css href=../mesa.css +/head +body + +div class=header + h1The Mesa 3D Graphics Library/h1 +/div + +iframe src=../contents.html/iframe +div class=content + +h1Mesa 10.1 Release Notes / TBD/h1 + +p +Mesa 10.1 is a new development release. +People who are concerned with stability and reliability should stick +with a previous release or wait for Mesa 10.1.1. +/p +p +Mesa 10.1 implements the OpenGL 3.3 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.3. OpenGL +3.3 is strongonly/strong available if requested at context creation +because compatibility contexts are not supported. +/p + + +h2MD5 checksums/h2 +pre +TBD. +/pre + + +h2New features/h2 + +p +Note: some of the new features are only available with certain drivers. +/p + +ul +/ul + + +h2Bug fixes/h2 + +TBD. + +h2Changes/h2 + +TBD. + +/div +/body +/html -- 1.8.4.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 1/4] docs: add a note about removed state tracker/targets
For the series: Acked-by: Chris Forbes chr...@ijw.co.nz On Sun, Nov 17, 2013 at 12:27 PM, Emil Velikov emil.l.veli...@gmail.com wrote: The X.Org state tracker is gone, as well as the xvmc/vdpau r300 and softpipe targets. Cc: 10.0 mesa-sta...@lists.freedesktop.org Signed-off-by: Emil Velikov emil.l.veli...@gmail.com --- docs/relnotes/10.0.html | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/relnotes/10.0.html b/docs/relnotes/10.0.html index eabe77f..f06d068 100644 --- a/docs/relnotes/10.0.html +++ b/docs/relnotes/10.0.html @@ -64,7 +64,11 @@ TBD. h2Changes/h2 -TBD. +ul +liRemoved X.Org state tracker (unmaintained and broken)/li +liRemoved the video-accel r300 targets/li +liRemoved the video-accel softpipe targets/li +/ul /div /body -- 1.8.4.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] mesa: bump version to 10.1 (devel)
On 11/16/2013 10:38 PM, Chris Forbes wrote: Now that branch 10.0 is created, bump the minor version in master. Signed-off-by: Chris Forbes chr...@ijw.co.nz We always forget this for some reason... Reviewed-by: Kenneth Graunke kenn...@whitecape.org ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev