Mesa (master): virgl: add support for passing render condition flags to host.
Module: Mesa Branch: master Commit: ac222626adfc7a03bf537deba66bad5e57b2c91d URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ac222626adfc7a03bf537deba66bad5e57b2c91d Author: Dave Airlie Date: Tue Mar 1 15:48:44 2016 +1000 virgl: add support for passing render condition flags to host. This just passes the extra blit info to fix the render condition tests. Cc: "11.2" Signed-off-by: Dave Airlie --- src/gallium/drivers/virgl/virgl_encode.c | 4 +++- src/gallium/drivers/virgl/virgl_protocol.h | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/virgl/virgl_encode.c b/src/gallium/drivers/virgl/virgl_encode.c index 22fb529..1a1c40b 100644 --- a/src/gallium/drivers/virgl/virgl_encode.c +++ b/src/gallium/drivers/virgl/virgl_encode.c @@ -741,7 +741,9 @@ int virgl_encode_blit(struct virgl_context *ctx, virgl_encoder_write_cmd_dword(ctx, VIRGL_CMD0(VIRGL_CCMD_BLIT, 0, VIRGL_CMD_BLIT_SIZE)); tmp = VIRGL_CMD_BLIT_S0_MASK(blit->mask) | VIRGL_CMD_BLIT_S0_FILTER(blit->filter) | - VIRGL_CMD_BLIT_S0_SCISSOR_ENABLE(blit->scissor_enable); + VIRGL_CMD_BLIT_S0_SCISSOR_ENABLE(blit->scissor_enable) | + VIRGL_CMD_BLIT_S0_RENDER_CONDITION_ENABLE(blit->render_condition_enable) | + VIRGL_CMD_BLIT_S0_ALPHA_BLEND(blit->alpha_blend); virgl_encoder_write_dword(ctx->cbuf, tmp); virgl_encoder_write_dword(ctx->cbuf, (blit->scissor.minx | blit->scissor.miny << 16)); virgl_encoder_write_dword(ctx->cbuf, (blit->scissor.maxx | blit->scissor.maxy << 16)); diff --git a/src/gallium/drivers/virgl/virgl_protocol.h b/src/gallium/drivers/virgl/virgl_protocol.h index ca3142f..a2f1e81 100644 --- a/src/gallium/drivers/virgl/virgl_protocol.h +++ b/src/gallium/drivers/virgl/virgl_protocol.h @@ -388,6 +388,8 @@ enum virgl_context_cmd { #define VIRGL_CMD_BLIT_S0_MASK(x) (((x) & 0xff) << 0) #define VIRGL_CMD_BLIT_S0_FILTER(x) (((x) & 0x3) << 8) #define VIRGL_CMD_BLIT_S0_SCISSOR_ENABLE(x) (((x) & 0x1) << 10) +#define VIRGL_CMD_BLIT_S0_RENDER_CONDITION_ENABLE(x) (((x) & 0x1) << 11) +#define VIRGL_CMD_BLIT_S0_ALPHA_BLEND(x) (((x) & 0x1) << 12) #define VIRGL_CMD_BLIT_SCISSOR_MINX_MINY 2 #define VIRGL_CMD_BLIT_SCISSOR_MAXX_MAXY 3 #define VIRGL_CMD_BLIT_DST_RES_HANDLE 4 ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): i965: Push most TES inputs in vec4 mode.
Module: Mesa Branch: master Commit: 24994ae926629ac8521df3cab4a02eb81de15907 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=24994ae926629ac8521df3cab4a02eb81de15907 Author: Kenneth Graunke Date: Wed Feb 17 00:37:04 2016 -0800 i965: Push most TES inputs in vec4 mode. (This is commit 4a1c8a3037cd29938b2a6e2c680c341e9903cfbe for vec4 mode.) Using the push model for inputs is much more efficient than pulling inputs - the hardware can simply copy a large chunk into URB registers at thread creation time, rather than having the thread send messages to request data from the L3 cache. Unfortunately, it's possible to have more TES inputs than fit in registers, so we have to fall back to the pull model in some cases. However, it turns out that most tessellation evaluation shaders are fairly simple, and don't use many inputs. An arbitrary cut-off of 24 vec4 slots (12 registers) should suffice. (I chose this instead of the 32 vec4 slots used in the scalar backend to avoid regressing a few Piglit tests due to the vec4 register allocator being too stupid to figure out what to do. We probably ought to fix that, but it's a separate issue.) Improves performance in GPUTest's tessmark_x64 microbenchmark by 41.5394% +/- 0.288519% (n = 115) at 1024x768 on my Clevo W740SU (with Iris Pro 5200). Improves performance in Synmark's Gl40TerrainFlyTess microbenchmark by 38.3576% +/- 0.759748% (n = 42). v2: Simplify abs/negate handling, as requested by Matt. Signed-off-by: Kenneth Graunke Reviewed-by: Chris Forbes Reviewed-by: Matt Turner --- src/mesa/drivers/dri/i965/brw_vec4_nir.cpp | 4 +- src/mesa/drivers/dri/i965/brw_vec4_tes.cpp | 84 +++--- 2 files changed, 54 insertions(+), 34 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp b/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp index 74ec4f0..9b721e5 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp @@ -685,9 +685,7 @@ vec4_visitor::nir_emit_intrinsic(nir_intrinsic_instr *instr) case nir_intrinsic_load_instance_id: case nir_intrinsic_load_base_instance: case nir_intrinsic_load_draw_id: - case nir_intrinsic_load_invocation_id: - case nir_intrinsic_load_tess_level_inner: - case nir_intrinsic_load_tess_level_outer: { + case nir_intrinsic_load_invocation_id: { gl_system_value sv = nir_system_value_from_intrinsic(instr->intrinsic); src_reg val = src_reg(nir_system_values[sv]); assert(val.file != BAD_FILE); diff --git a/src/mesa/drivers/dri/i965/brw_vec4_tes.cpp b/src/mesa/drivers/dri/i965/brw_vec4_tes.cpp index ce5fefc..e3c23f1 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_tes.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_tes.cpp @@ -28,6 +28,7 @@ */ #include "brw_vec4_tes.h" +#include "brw_cfg.h" namespace brw { @@ -53,39 +54,10 @@ vec4_tes_visitor::make_reg_for_system_value(int location, const glsl_type *type) void vec4_tes_visitor::nir_setup_system_value_intrinsic(nir_intrinsic_instr *instr) { - const struct brw_tes_prog_data *tes_prog_data = - (const struct brw_tes_prog_data *) prog_data; - switch (instr->intrinsic) { - case nir_intrinsic_load_tess_level_outer: { - dst_reg dst(this, glsl_type::vec4_type); - nir_system_values[SYSTEM_VALUE_TESS_LEVEL_OUTER] = dst; - - dst_reg temp(this, glsl_type::vec4_type); - vec4_instruction *read = - emit(VEC4_OPCODE_URB_READ, temp, input_read_header); - read->offset = 1; - read->urb_write_flags = BRW_URB_WRITE_PER_SLOT_OFFSET; - emit(MOV(dst, swizzle(src_reg(temp), BRW_SWIZZLE_WZYX))); - break; - } - case nir_intrinsic_load_tess_level_inner: { - dst_reg dst(this, glsl_type::vec2_type); - nir_system_values[SYSTEM_VALUE_TESS_LEVEL_INNER] = dst; - - /* Set up the message header to reference the proper parts of the URB */ - dst_reg temp(this, glsl_type::vec4_type); - vec4_instruction *read = - emit(VEC4_OPCODE_URB_READ, temp, input_read_header); - read->urb_write_flags = BRW_URB_WRITE_PER_SLOT_OFFSET; - if (tes_prog_data->domain == BRW_TESS_DOMAIN_QUAD) { - emit(MOV(dst, swizzle(src_reg(temp), BRW_SWIZZLE_WZYX))); - } else { - read->offset = 1; - emit(MOV(dst, src_reg(temp))); - } + case nir_intrinsic_load_tess_level_outer: + case nir_intrinsic_load_tess_level_inner: break; - } default: vec4_visitor::nir_setup_system_value_intrinsic(instr); } @@ -105,6 +77,25 @@ vec4_tes_visitor::setup_payload() reg = setup_uniforms(reg); + foreach_block_and_inst(block, vec4_instruction, inst, cfg) { + for (int i = 0; i < 3; i++) { + if (inst->src[i].file != ATTR) +continue; + + struct brw_reg grf = +brw_vec4_grf(reg + inst->src[i].nr / 2, 4 * (inst->src[i].nr % 2)); + grf = stride(grf, 0, 4, 1); + grf.swizzle = inst->src[i].swizzle; + grf.
Mesa (master): tgsi/scan: count memory instructions
Module: Mesa Branch: master Commit: 09bfbd43a0818c67cb0a6dd4437cc4946e0af5dc URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=09bfbd43a0818c67cb0a6dd4437cc4946e0af5dc Author: Marek Olšák Date: Mon Feb 22 00:23:10 2016 +0100 tgsi/scan: count memory instructions for radeonsi Reviewed-by: Brian Paul --- src/gallium/auxiliary/tgsi/tgsi_scan.c | 19 +++ src/gallium/auxiliary/tgsi/tgsi_scan.h | 1 + 2 files changed, 20 insertions(+) diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.c b/src/gallium/auxiliary/tgsi/tgsi_scan.c index 4f85d2f..8e24cc6 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_scan.c +++ b/src/gallium/auxiliary/tgsi/tgsi_scan.c @@ -43,6 +43,15 @@ #include "tgsi/tgsi_scan.h" +static bool +is_memory_file(unsigned file) +{ + return file == TGSI_FILE_SAMPLER || + file == TGSI_FILE_SAMPLER_VIEW || + file == TGSI_FILE_IMAGE || + file == TGSI_FILE_BUFFER; +} + static void scan_instruction(struct tgsi_shader_info *info, @@ -50,6 +59,7 @@ scan_instruction(struct tgsi_shader_info *info, unsigned *current_depth) { unsigned i; + bool is_mem_inst = false; assert(fullinst->Instruction.Opcode < TGSI_OPCODE_LAST); info->opcode_count[fullinst->Instruction.Opcode]++; @@ -181,6 +191,9 @@ scan_instruction(struct tgsi_shader_info *info, info->is_msaa_sampler[src->Register.Index] = TRUE; } } + + if (is_memory_file(src->Register.File)) + is_mem_inst = true; } /* check for indirect register writes */ @@ -190,8 +203,14 @@ scan_instruction(struct tgsi_shader_info *info, info->indirect_files |= (1 << dst->Register.File); info->indirect_files_written |= (1 << dst->Register.File); } + + if (is_memory_file(dst->Register.File)) + is_mem_inst = true; } + if (is_mem_inst) + info->num_memory_instructions++; + info->num_instructions++; } diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.h b/src/gallium/auxiliary/tgsi/tgsi_scan.h index 0541255..d65dec7 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_scan.h +++ b/src/gallium/auxiliary/tgsi/tgsi_scan.h @@ -74,6 +74,7 @@ struct tgsi_shader_info uint immediate_count; /**< number of immediates declared */ uint num_instructions; + uint num_memory_instructions; /**< sampler, buffer, and image instructions */ uint opcode_count[TGSI_OPCODE_LAST]; /**< opcode histogram */ ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): r600g: remove support for DRM < 2.12.0
Module: Mesa Branch: master Commit: c54f38494cb58f13a9a6cc6d0e2d75a7603ba105 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c54f38494cb58f13a9a6cc6d0e2d75a7603ba105 Author: Marek Olšák Date: Tue Feb 23 23:32:44 2016 +0100 r600g: remove support for DRM < 2.12.0 --- src/gallium/drivers/r600/evergreen_compute.c | 21 - src/gallium/drivers/r600/evergreen_state.c | 44 +--- src/gallium/drivers/r600/r600_hw_context.c | 4 +-- src/gallium/drivers/r600/r600_pipe.c | 3 +- src/gallium/drivers/r600/r600_pipe.h | 1 - src/gallium/drivers/r600/r600_state_common.c | 11 --- 6 files changed, 16 insertions(+), 68 deletions(-) diff --git a/src/gallium/drivers/r600/evergreen_compute.c b/src/gallium/drivers/r600/evergreen_compute.c index 997e5f0..2a1b251 100644 --- a/src/gallium/drivers/r600/evergreen_compute.c +++ b/src/gallium/drivers/r600/evergreen_compute.c @@ -447,24 +447,15 @@ static void compute_emit_cs(struct r600_context *ctx, const uint *block_layout, radeon_emit(cs, PKT3(PKT3_NOP, 0, 0)); /* R_028C60_CB_COLOR0_BASE */ radeon_emit(cs, reloc); - if (!ctx->keep_tiling_flags) { - radeon_emit(cs, PKT3(PKT3_NOP, 0, 0)); /* R_028C70_CB_COLOR0_INFO */ - radeon_emit(cs, reloc); - } - radeon_emit(cs, PKT3(PKT3_NOP, 0, 0)); /* R_028C74_CB_COLOR0_ATTRIB */ radeon_emit(cs, reloc); } - if (ctx->keep_tiling_flags) { - for (; i < 8 ; i++) { - radeon_compute_set_context_reg(cs, R_028C70_CB_COLOR0_INFO + i * 0x3C, - S_028C70_FORMAT(V_028C70_COLOR_INVALID)); - } - for (; i < 12; i++) { - radeon_compute_set_context_reg(cs, R_028E50_CB_COLOR8_INFO + (i - 8) * 0x1C, - S_028C70_FORMAT(V_028C70_COLOR_INVALID)); - } - } + for (; i < 8 ; i++) + radeon_compute_set_context_reg(cs, R_028C70_CB_COLOR0_INFO + i * 0x3C, + S_028C70_FORMAT(V_028C70_COLOR_INVALID)); + for (; i < 12; i++) + radeon_compute_set_context_reg(cs, R_028E50_CB_COLOR8_INFO + (i - 8) * 0x1C, + S_028C70_FORMAT(V_028C70_COLOR_INVALID)); /* Set CB_TARGET_MASK XXX: Use cb_misc_state */ radeon_compute_set_context_reg(cs, R_028238_CB_TARGET_MASK, diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c index 61d32c0..a12638a 100644 --- a/src/gallium/drivers/r600/evergreen_state.c +++ b/src/gallium/drivers/r600/evergreen_state.c @@ -1466,15 +1466,13 @@ static void evergreen_set_framebuffer_state(struct pipe_context *ctx, /* Colorbuffers. */ rctx->framebuffer.atom.num_dw += state->nr_cbufs * 23; - if (rctx->keep_tiling_flags) - rctx->framebuffer.atom.num_dw += state->nr_cbufs * 2; + rctx->framebuffer.atom.num_dw += state->nr_cbufs * 2; rctx->framebuffer.atom.num_dw += (12 - state->nr_cbufs) * 3; /* ZS buffer. */ if (state->zsbuf) { rctx->framebuffer.atom.num_dw += 24; - if (rctx->keep_tiling_flags) - rctx->framebuffer.atom.num_dw += 2; + rctx->framebuffer.atom.num_dw += 2; } else if (rctx->screen->b.info.drm_minor >= 18) { rctx->framebuffer.atom.num_dw += 4; } @@ -1656,11 +1654,6 @@ static void evergreen_emit_framebuffer_state(struct r600_context *rctx, struct r radeon_emit(cs, PKT3(PKT3_NOP, 0, 0)); /* R_028C60_CB_COLOR0_BASE */ radeon_emit(cs, reloc); - if (!rctx->keep_tiling_flags) { - radeon_emit(cs, PKT3(PKT3_NOP, 0, 0)); /* R_028C70_CB_COLOR0_INFO */ - radeon_emit(cs, reloc); - } - radeon_emit(cs, PKT3(PKT3_NOP, 0, 0)); /* R_028C74_CB_COLOR0_ATTRIB */ radeon_emit(cs, reloc); @@ -1674,27 +1667,12 @@ static void evergreen_emit_framebuffer_state(struct r600_context *rctx, struct r if (i == 1 && state->cbufs[0]) { radeon_set_context_reg(cs, R_028C70_CB_COLOR0_INFO + 1 * 0x3C, cb->cb_color_info | tex->cb_color_info); - - if (!rctx->keep_tiling_flags) { - unsigned reloc = radeon_add_to_buffer_list(&rctx->b, - &rctx->b.gfx, - (struct r600_resource*)state->cbufs[0]->texture, - RADEON_USAGE_READWRITE, -
Mesa (master): winsys/radeon: drop support for DRM 2.12.0 (kernel < 3.2)
Module: Mesa Branch: master Commit: a5e2a173ddd6766650afe779de08b4585f132c18 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a5e2a173ddd6766650afe779de08b4585f132c18 Author: Marek Olšák Date: Tue Feb 23 23:24:12 2016 +0100 winsys/radeon: drop support for DRM 2.12.0 (kernel < 3.2) in order to make some winsys interface changes easier This distros should use new DRM if they want to use new Mesa: Distrokernel mesaeol SLES 10 2.6.16 6.4.2 2016-07 SLED 11 3.0 9.0.3 2022-03 RHEL 52.6.18 6.5.1 2017-03 RHEL 62.6.32 10.4.3 2020-11 Debian 6 2.6.32 7.7.1 2016-02 Reviewed-by: Michel Dänzer --- src/gallium/drivers/radeon/radeon_winsys.h| 16 + src/gallium/winsys/radeon/drm/radeon_drm_winsys.c | 42 +-- 2 files changed, 18 insertions(+), 40 deletions(-) diff --git a/src/gallium/drivers/radeon/radeon_winsys.h b/src/gallium/drivers/radeon/radeon_winsys.h index 7329cee..1160d23 100644 --- a/src/gallium/drivers/radeon/radeon_winsys.h +++ b/src/gallium/drivers/radeon/radeon_winsys.h @@ -26,24 +26,10 @@ /* The public winsys interface header for the radeon driver. */ -/* R300 features in DRM. - * - * 2.6.0: - * - Hyper-Z - * - GB_Z_PEQ_CONFIG on rv350->r4xx - * - R500 FG_ALPHA_VALUE - * - * 2.8.0: - * - R500 US_FORMAT regs - * - R500 ARGB2101010 colorbuffer - * - CMask and AA regs - * - R16F/RG16F - */ - #include "pipebuffer/pb_buffer.h" #define RADEON_FLUSH_ASYNC (1 << 0) -#define RADEON_FLUSH_KEEP_TILING_FLAGS (1 << 1) /* needs DRM 2.12.0 */ +#define RADEON_FLUSH_KEEP_TILING_FLAGS (1 << 1) #define RADEON_FLUSH_END_OF_FRAME (1 << 2) /* Tiling flags. */ diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c index 8151c44..1accc6a 100644 --- a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c +++ b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c @@ -174,9 +174,9 @@ static boolean do_winsys_init(struct radeon_drm_winsys *ws) /* Get DRM version. */ version = drmGetVersion(ws->fd); if (version->version_major != 2 || -version->version_minor < 3) { +version->version_minor < 12) { fprintf(stderr, "%s: DRM version is %d.%d.%d but this driver is " -"only compatible with 2.3.x (kernel 2.6.34) or later.\n", +"only compatible with 2.12.0 (kernel 3.2) or later.\n", __FUNCTION__, version->version_major, version->version_minor, @@ -374,8 +374,7 @@ static boolean do_winsys_init(struct radeon_drm_winsys *ws) else if (ws->gen >= DRV_R600) { uint32_t tiling_config = 0; -if (ws->info.drm_minor >= 9 && -!radeon_get_drm_value(ws->fd, RADEON_INFO_NUM_BACKENDS, +if (!radeon_get_drm_value(ws->fd, RADEON_INFO_NUM_BACKENDS, "num backends", &ws->info.num_render_backends)) return FALSE; @@ -401,27 +400,20 @@ static boolean do_winsys_init(struct radeon_drm_winsys *ws) ws->info.pipe_interleave_bytes = ws->info.chip_class >= EVERGREEN ? 512 : 256; -if (ws->info.drm_minor >= 11) { -radeon_get_drm_value(ws->fd, RADEON_INFO_NUM_TILE_PIPES, NULL, - &ws->info.num_tile_pipes); - -/* "num_tiles_pipes" must be equal to the number of pipes (Px) in the - * pipe config field of the GB_TILE_MODE array. Only one card (Tahiti) - * reports a different value (12). Fix it by setting what's in the - * GB_TILE_MODE array (8). - */ -if (ws->gen == DRV_SI && ws->info.num_tile_pipes == 12) -ws->info.num_tile_pipes = 8; - -if (radeon_get_drm_value(ws->fd, RADEON_INFO_BACKEND_MAP, NULL, - &ws->info.r600_gb_backend_map)) -ws->info.r600_gb_backend_map_valid = TRUE; -} else { -ws->info.num_tile_pipes = -ws->info.chip_class >= EVERGREEN ? -1 << (tiling_config & 0xf) : -1 << ((tiling_config & 0xe) >> 1); -} +radeon_get_drm_value(ws->fd, RADEON_INFO_NUM_TILE_PIPES, NULL, + &ws->info.num_tile_pipes); + +/* "num_tiles_pipes" must be equal to the number of pipes (Px) in the + * pipe config field of the GB_TILE_MODE array. Only one card (Tahiti) + * reports a different value (12). Fix it by setting what's in the + * GB_TILE_MODE array (8). + */ +if (ws->gen == DRV_SI && ws->info.num_tile_pipes == 12) +ws->info.num_tile_pipes = 8; + +if (radeon_get_drm_value(ws->fd, RADEON_INFO_BACKEND_MAP, NULL, + &ws->info.r600_gb_backend_map)) +ws->info.r600_gb_backend_map_valid = TRUE;
Mesa (master): radeonsi: dump full shader disassemblies into ddebug logs
Module: Mesa Branch: master Commit: 18df72b50b6adc0290d1f3f04a2b209dd12bf41b URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=18df72b50b6adc0290d1f3f04a2b209dd12bf41b Author: Marek Olšák Date: Thu Feb 25 17:12:15 2016 +0100 radeonsi: dump full shader disassemblies into ddebug logs including prolog and epilog disassemblies Reviewed-by: Michel Dänzer --- src/gallium/drivers/radeonsi/si_debug.c | 18 +- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_debug.c b/src/gallium/drivers/radeonsi/si_debug.c index e16ebbd..7c2b745 100644 --- a/src/gallium/drivers/radeonsi/si_debug.c +++ b/src/gallium/drivers/radeonsi/si_debug.c @@ -34,15 +34,15 @@ DEBUG_GET_ONCE_OPTION(replace_shaders, "RADEON_REPLACE_SHADERS", NULL) -static void si_dump_shader(struct si_shader_ctx_state *state, const char *name, - FILE *f) +static void si_dump_shader(struct si_screen *sscreen, + struct si_shader_ctx_state *state, FILE *f) { if (!state->cso || !state->current) return; - fprintf(f, "%s shader disassembly:\n", name); si_dump_shader_key(state->cso->type, &state->current->key, f); - fprintf(f, "%s\n\n", state->current->binary.disasm_string); + si_shader_dump(sscreen, state->current, NULL, + state->cso->info.processor, f); } /** @@ -670,11 +670,11 @@ static void si_dump_debug_state(struct pipe_context *ctx, FILE *f, si_dump_debug_registers(sctx, f); si_dump_framebuffer(sctx, f); - si_dump_shader(&sctx->vs_shader, "Vertex", f); - si_dump_shader(&sctx->tcs_shader, "Tessellation control", f); - si_dump_shader(&sctx->tes_shader, "Tessellation evaluation", f); - si_dump_shader(&sctx->gs_shader, "Geometry", f); - si_dump_shader(&sctx->ps_shader, "Fragment", f); + si_dump_shader(sctx->screen, &sctx->vs_shader, f); + si_dump_shader(sctx->screen, &sctx->tcs_shader, f); + si_dump_shader(sctx->screen, &sctx->tes_shader, f); + si_dump_shader(sctx->screen, &sctx->gs_shader, f); + si_dump_shader(sctx->screen, &sctx->ps_shader, f); si_dump_last_bo_list(sctx, f); si_dump_last_ib(sctx, f); ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): radeonsi: use re-Z
Module: Mesa Branch: master Commit: d0f3b524cdb8489a6872ba3639a13813de221fc2 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d0f3b524cdb8489a6872ba3639a13813de221fc2 Author: Marek Olšák Date: Mon Feb 22 00:40:04 2016 +0100 radeonsi: use re-Z This can increase perf for shaders that kill pixels (kill, alpha-test, alpha-to-coverage). v2: add comments Reviewed-by: Michel Dänzer --- src/gallium/drivers/radeonsi/si_shader.h| 1 + src/gallium/drivers/radeonsi/si_state.c | 6 +++--- src/gallium/drivers/radeonsi/si_state_shaders.c | 20 +--- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.h b/src/gallium/drivers/radeonsi/si_shader.h index ff5c24d..637d264 100644 --- a/src/gallium/drivers/radeonsi/si_shader.h +++ b/src/gallium/drivers/radeonsi/si_shader.h @@ -365,6 +365,7 @@ struct si_shader { struct r600_resource*scratch_bo; union si_shader_key key; boolis_binary_shared; + unsignedz_order; /* The following data is all that's needed for binary shaders. */ struct radeon_shader_binary binary; diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c index 2dfdbeb..b23b17a 100644 --- a/src/gallium/drivers/radeonsi/si_state.c +++ b/src/gallium/drivers/radeonsi/si_state.c @@ -1339,10 +1339,10 @@ static void si_emit_db_render_state(struct si_context *sctx, struct r600_atom *s sctx->ps_db_shader_control; /* Bug workaround for smoothing (overrasterization) on SI. */ - if (sctx->b.chip_class == SI && sctx->smoothing_enabled) + if (sctx->b.chip_class == SI && sctx->smoothing_enabled) { + db_shader_control &= C_02880C_Z_ORDER; db_shader_control |= S_02880C_Z_ORDER(V_02880C_LATE_Z); - else - db_shader_control |= S_02880C_Z_ORDER(V_02880C_EARLY_Z_THEN_LATE_Z); + } /* Disable the gl_SampleMask fragment shader output if MSAA is disabled. */ if (sctx->framebuffer.nr_samples <= 1 || (rs && !rs->multisample_enable)) diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c index a6753a7..321b87d 100644 --- a/src/gallium/drivers/radeonsi/si_state_shaders.c +++ b/src/gallium/drivers/radeonsi/si_state_shaders.c @@ -789,6 +789,17 @@ static void si_shader_ps(struct si_shader *shader) S_00B02C_EXTRA_LDS_SIZE(shader->config.lds_size) | S_00B02C_USER_SGPR(num_user_sgprs) | S_00B32C_SCRATCH_EN(shader->config.scratch_bytes_per_wave > 0)); + + /* Prefer RE_Z if the shader is complex enough. The requirement is either: +* - the shader uses at least 2 VMEM instructions, or +* - the code size is at least 50 2-dword instructions or 100 1-dword +* instructions. +*/ + if (info->num_memory_instructions >= 2 || + shader->binary.code_size > 100*4) + shader->z_order = V_02880C_EARLY_Z_THEN_RE_Z; + else + shader->z_order = V_02880C_EARLY_Z_THEN_LATE_Z; } static void si_shader_init_pm4_state(struct si_shader *shader) @@ -1985,15 +1996,18 @@ bool si_update_shaders(struct si_context *sctx) si_update_vgt_shader_config(sctx); if (sctx->ps_shader.cso) { - unsigned db_shader_control = - sctx->ps_shader.cso->db_shader_control | - S_02880C_KILL_ENABLE(si_get_alpha_test_func(sctx) != PIPE_FUNC_ALWAYS); + unsigned db_shader_control; r = si_shader_select(ctx, &sctx->ps_shader); if (r) return false; si_pm4_bind_state(sctx, ps, sctx->ps_shader.current->pm4); + db_shader_control = + sctx->ps_shader.cso->db_shader_control | + S_02880C_KILL_ENABLE(si_get_alpha_test_func(sctx) != PIPE_FUNC_ALWAYS) | + S_02880C_Z_ORDER(sctx->ps_shader.current->z_order); + if (si_pm4_state_changed(sctx, ps) || si_pm4_state_changed(sctx, vs) || sctx->sprite_coord_enable != rs->sprite_coord_enable || sctx->flatshade != rs->flatshade) { ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): r300g: remove support for DRM < 2.12.0
Module: Mesa Branch: master Commit: b7da8fa11d5c6ec71113350eed1959191a7d5990 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b7da8fa11d5c6ec71113350eed1959191a7d5990 Author: Marek Olšák Date: Tue Feb 23 23:32:44 2016 +0100 r300g: remove support for DRM < 2.12.0 --- src/gallium/drivers/r300/r300_context.c | 9 +++ src/gallium/drivers/r300/r300_emit.c| 3 +-- src/gallium/drivers/r300/r300_flush.c | 6 ++--- src/gallium/drivers/r300/r300_screen.c | 19 +- src/gallium/drivers/r300/r300_state.c | 46 - 5 files changed, 7 insertions(+), 76 deletions(-) diff --git a/src/gallium/drivers/r300/r300_context.c b/src/gallium/drivers/r300/r300_context.c index 82ba043..6fa8920 100644 --- a/src/gallium/drivers/r300/r300_context.c +++ b/src/gallium/drivers/r300/r300_context.c @@ -156,7 +156,6 @@ static boolean r300_setup_atoms(struct r300_context* r300) boolean is_rv350 = r300->screen->caps.is_rv350; boolean is_r500 = r300->screen->caps.is_r500; boolean has_tcl = r300->screen->caps.has_tcl; -boolean drm_2_6_0 = r300->screen->info.drm_minor >= 6; /* Create the actual atom list. * @@ -175,11 +174,11 @@ static boolean r300_setup_atoms(struct r300_context* r300) R300_INIT_ATOM(gpu_flush, 9); R300_INIT_ATOM(aa_state, 4); R300_INIT_ATOM(fb_state, 0); -R300_INIT_ATOM(hyperz_state, is_r500 || (is_rv350 && drm_2_6_0) ? 10 : 8); +R300_INIT_ATOM(hyperz_state, is_r500 || is_rv350 ? 10 : 8); /* ZB (unpipelined), SC. */ R300_INIT_ATOM(ztop_state, 2); /* ZB, FG. */ -R300_INIT_ATOM(dsa_state, is_r500 ? (drm_2_6_0 ? 10 : 8) : 6); +R300_INIT_ATOM(dsa_state, is_r500 ? 10 : 6); /* RB3D. */ R300_INIT_ATOM(blend_state, 8); R300_INIT_ATOM(blend_color_state, is_r500 ? 3 : 2); @@ -353,9 +352,7 @@ static void r300_init_states(struct pipe_context *pipe) OUT_CB_REG(R300_ZB_DEPTHCLEARVALUE, 0); OUT_CB_REG(R300_SC_HYPERZ, R300_SC_HYPERZ_ADJ_2); -if (r300->screen->caps.is_r500 || -(r300->screen->caps.is_rv350 && - r300->screen->info.drm_minor >= 6)) { +if (r300->screen->caps.is_r500 || r300->screen->caps.is_rv350) { OUT_CB_REG(R300_GB_Z_PEQ_CONFIG, 0); } END_CB; diff --git a/src/gallium/drivers/r300/r300_emit.c b/src/gallium/drivers/r300/r300_emit.c index 9eb9c17..95971de 100644 --- a/src/gallium/drivers/r300/r300_emit.c +++ b/src/gallium/drivers/r300/r300_emit.c @@ -1434,8 +1434,7 @@ unsigned r300_get_num_cs_end_dwords(struct r300_context *r300) dwords += r300->hyperz_state.size + 2; /* emit_hyperz_end + zcache flush */ if (r300->screen->caps.is_r500) dwords += 2; /* emit_index_bias */ -if (r300->screen->info.drm_minor >= 6) -dwords += 3; /* MSPOS */ +dwords += 3; /* MSPOS */ return dwords; } diff --git a/src/gallium/drivers/r300/r300_flush.c b/src/gallium/drivers/r300/r300_flush.c index 46b2366..7a75b43 100644 --- a/src/gallium/drivers/r300/r300_flush.c +++ b/src/gallium/drivers/r300/r300_flush.c @@ -45,7 +45,7 @@ static void r300_flush_and_cleanup(struct r300_context *r300, unsigned flags, r500_emit_index_bias(r300, 0); /* The DDX doesn't set these regs. */ -if (r300->screen->info.drm_minor >= 6) { +{ CS_LOCALS(r300); OUT_CS_REG_SEQ(R300_GB_MSPOS0, 2); OUT_CS(0x); @@ -78,9 +78,7 @@ void r300_flush(struct pipe_context *pipe, { struct r300_context *r300 = r300_context(pipe); -if (r300->screen->info.drm_minor >= 12) { -flags |= RADEON_FLUSH_KEEP_TILING_FLAGS; -} +flags |= RADEON_FLUSH_KEEP_TILING_FLAGS; if (r300->dirty_hw) { r300_flush_and_cleanup(r300, flags, fence); diff --git a/src/gallium/drivers/r300/r300_screen.c b/src/gallium/drivers/r300/r300_screen.c index 15a94d9..7fad7ad 100644 --- a/src/gallium/drivers/r300/r300_screen.c +++ b/src/gallium/drivers/r300/r300_screen.c @@ -529,7 +529,6 @@ static boolean r300_is_format_supported(struct pipe_screen* screen, unsigned usage) { uint32_t retval = 0; -boolean drm_2_8_0 = r300_screen(screen)->info.drm_minor >= 8; boolean is_r500 = r300_screen(screen)->caps.is_r500; boolean is_r400 = r300_screen(screen)->caps.is_r400; boolean is_color2101010 = format == PIPE_FORMAT_R10G10B10A2_UNORM || @@ -545,13 +544,6 @@ static boolean r300_is_format_supported(struct pipe_screen* screen, format == PIPE_FORMAT_RGTC2_SNORM || format == PIPE_FORMAT_LATC2_UNORM || format == PIPE_FORMAT_LATC2_SNORM; -boolean is_x16f_xy16f = format == PIPE_FORMAT_R16_FLOAT || -format == PIPE_FORMAT_R16G16_FLOAT || -format == PIPE_FORMAT_A16_FLOAT || -format == PIPE_FORMAT_L16_FLOAT || -
Mesa (master): radeonsi: allow dumping shader disassemblies to a file
Module: Mesa Branch: master Commit: 74b4ce81fbbb513198b8d2cae0460aa779574964 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=74b4ce81fbbb513198b8d2cae0460aa779574964 Author: Marek Olšák Date: Thu Feb 25 17:11:20 2016 +0100 radeonsi: allow dumping shader disassemblies to a file Reviewed-by: Michel Dänzer --- src/gallium/drivers/radeonsi/si_compute.c | 2 +- src/gallium/drivers/radeonsi/si_shader.c | 46 +-- src/gallium/drivers/radeonsi/si_shader.h | 3 +- 3 files changed, 29 insertions(+), 22 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_compute.c b/src/gallium/drivers/radeonsi/si_compute.c index 9f5f4c6..1ec695e 100644 --- a/src/gallium/drivers/radeonsi/si_compute.c +++ b/src/gallium/drivers/radeonsi/si_compute.c @@ -115,7 +115,7 @@ static void *si_create_compute_state( si_shader_binary_read_config(&program->shader.binary, &program->shader.config, 0); si_shader_dump(sctx->screen, &program->shader, &sctx->b.debug, - TGSI_PROCESSOR_COMPUTE); + TGSI_PROCESSOR_COMPUTE, stderr); si_shader_binary_upload(sctx->screen, &program->shader); program->input_buffer = si_resource_create_custom(sctx->b.b.screen, diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 57458ae..8c1151a 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -4406,14 +4406,14 @@ int si_shader_binary_upload(struct si_screen *sscreen, struct si_shader *shader) static void si_shader_dump_disassembly(const struct radeon_shader_binary *binary, struct pipe_debug_callback *debug, - const char *name) + const char *name, FILE *file) { char *line, *p; unsigned i, count; if (binary->disasm_string) { - fprintf(stderr, "Shader %s disassembly:\n", name); - fprintf(stderr, "%s", binary->disasm_string); + fprintf(file, "Shader %s disassembly:\n", name); + fprintf(file, "%s", binary->disasm_string); if (debug && debug->debug_message) { /* Very long debug messages are cut off, so send the @@ -4443,9 +4443,9 @@ static void si_shader_dump_disassembly(const struct radeon_shader_binary *binary "Shader Disassembly End"); } } else { - fprintf(stderr, "Shader %s binary:\n", name); + fprintf(file, "Shader %s binary:\n", name); for (i = 0; i < binary->code_size; i += 4) { - fprintf(stderr, "@0x%x: %02x%02x%02x%02x\n", i, + fprintf(file, "@0x%x: %02x%02x%02x%02x\n", i, binary->code[i + 3], binary->code[i + 2], binary->code[i + 1], binary->code[i]); } @@ -4457,7 +4457,8 @@ static void si_shader_dump_stats(struct si_screen *sscreen, unsigned num_inputs, unsigned code_size, struct pipe_debug_callback *debug, -unsigned processor) +unsigned processor, +FILE *file) { unsigned lds_increment = sscreen->b.chip_class >= CIK ? 512 : 256; unsigned lds_per_wave = 0; @@ -4493,15 +4494,16 @@ static void si_shader_dump_stats(struct si_screen *sscreen, if (lds_per_wave) max_simd_waves = MIN2(max_simd_waves, 16384 / lds_per_wave); - if (r600_can_dump_shader(&sscreen->b, processor)) { + if (file != stderr || + r600_can_dump_shader(&sscreen->b, processor)) { if (processor == TGSI_PROCESSOR_FRAGMENT) { - fprintf(stderr, "*** SHADER CONFIG ***\n" + fprintf(file, "*** SHADER CONFIG ***\n" "SPI_PS_INPUT_ADDR = 0x%04x\n" "SPI_PS_INPUT_ENA = 0x%04x\n", conf->spi_ps_input_addr, conf->spi_ps_input_ena); } - fprintf(stderr, "*** SHADER STATS ***\n" + fprintf(file, "*** SHADER STATS ***\n" "SGPRS: %d\n" "VGPRS: %d\n" "Code Size: %d bytes\n" @@ -4555,27 +4557,30 @@ static const char *si_get_shader_name(struct si_shader *shader, } void si_shader_dump(struct si_screen *sscreen, struct si_shader *shader, - struct pipe_debug_callback *debug, unsigned processor) + struct pipe_debug_callback *debug, unsigned processor, + FILE *file) { - if (r600_can_dump_shader(&sscreen->b,
Mesa (master): radeonsi: also dump shaders on a VM fault
Module: Mesa Branch: master Commit: 69a8e435ce2615a77e721b26117b43e408b9ed5d URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=69a8e435ce2615a77e721b26117b43e408b9ed5d Author: Marek Olšák Date: Thu Feb 25 17:54:01 2016 +0100 radeonsi: also dump shaders on a VM fault Reviewed-by: Christian König --- src/gallium/drivers/radeonsi/si_debug.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_debug.c b/src/gallium/drivers/radeonsi/si_debug.c index 7c2b745..eb0cabb 100644 --- a/src/gallium/drivers/radeonsi/si_debug.c +++ b/src/gallium/drivers/radeonsi/si_debug.c @@ -781,8 +781,7 @@ void si_check_vm_faults(struct si_context *sctx) fprintf(f, "Device name: %s\n\n", screen->get_name(screen)); fprintf(f, "Failing VM page: 0x%08x\n\n", addr); - si_dump_last_bo_list(sctx, f); - si_dump_last_ib(sctx, f); + si_dump_debug_state(&sctx->b.b, f, 0); fclose(f); fprintf(stderr, "Detected a VM fault, exiting...\n"); ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (vulkan): anv/cmd_buffer: Dirty push constants when changing pipelines.
Module: Mesa Branch: vulkan Commit: 097564bb8e30e3c13674a2aa113c373657628eb1 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=097564bb8e30e3c13674a2aa113c373657628eb1 Author: Jason Ekstrand Date: Mon Feb 29 14:27:34 2016 -0800 anv/cmd_buffer: Dirty push constants when changing pipelines. --- src/intel/vulkan/gen7_cmd_buffer.c | 11 +++ src/intel/vulkan/gen8_cmd_buffer.c | 11 +++ 2 files changed, 22 insertions(+) diff --git a/src/intel/vulkan/gen7_cmd_buffer.c b/src/intel/vulkan/gen7_cmd_buffer.c index b0456ae..d2c4297 100644 --- a/src/intel/vulkan/gen7_cmd_buffer.c +++ b/src/intel/vulkan/gen7_cmd_buffer.c @@ -470,6 +470,17 @@ genX(cmd_buffer_flush_state)(struct anv_cmd_buffer *cmd_buffer) gen7_cmd_buffer_emit_state_base_address(cmd_buffer); anv_batch_emit_batch(&cmd_buffer->batch, &pipeline->batch); + + /* From the BDW PRM for 3DSTATE_PUSH_CONSTANT_ALLOC_VS: + * + *"The 3DSTATE_CONSTANT_VS must be reprogrammed prior to + *the next 3DPRIMITIVE command after programming the + *3DSTATE_PUSH_CONSTANT_ALLOC_VS" + * + * Since 3DSTATE_PUSH_CONSTANT_ALLOC_VS is programmed as part of + * pipeline setup, we need to dirty push constants. + */ + cmd_buffer->state.push_constants_dirty |= VK_SHADER_STAGE_ALL_GRAPHICS; } if (cmd_buffer->state.descriptors_dirty & VK_SHADER_STAGE_VERTEX_BIT || diff --git a/src/intel/vulkan/gen8_cmd_buffer.c b/src/intel/vulkan/gen8_cmd_buffer.c index 2e979d9..9dc2abd 100644 --- a/src/intel/vulkan/gen8_cmd_buffer.c +++ b/src/intel/vulkan/gen8_cmd_buffer.c @@ -286,6 +286,17 @@ genX(cmd_buffer_flush_state)(struct anv_cmd_buffer *cmd_buffer) anv_cmd_buffer_emit_state_base_address(cmd_buffer); anv_batch_emit_batch(&cmd_buffer->batch, &pipeline->batch); + + /* From the BDW PRM for 3DSTATE_PUSH_CONSTANT_ALLOC_VS: + * + *"The 3DSTATE_CONSTANT_VS must be reprogrammed prior to + *the next 3DPRIMITIVE command after programming the + *3DSTATE_PUSH_CONSTANT_ALLOC_VS" + * + * Since 3DSTATE_PUSH_CONSTANT_ALLOC_VS is programmed as part of + * pipeline setup, we need to dirty push constants. + */ + cmd_buffer->state.push_constants_dirty |= VK_SHADER_STAGE_ALL_GRAPHICS; } /* We emit the binding tables and sampler tables first, then emit push ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (vulkan): anv/pipeline: Use dynamic checks for max push constants
Module: Mesa Branch: vulkan Commit: 51b618285d846295ef90fa49364d39eea4843801 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=51b618285d846295ef90fa49364d39eea4843801 Author: Jason Ekstrand Date: Fri Feb 26 22:47:59 2016 -0800 anv/pipeline: Use dynamic checks for max push constants The GEN_GEN macros aren't available in anv_pipeline since it only gets compiled once for the whold driver. --- src/intel/vulkan/anv_pipeline.c | 15 --- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c index 81d0d9c..df26584 100644 --- a/src/intel/vulkan/anv_pipeline.c +++ b/src/intel/vulkan/anv_pipeline.c @@ -783,13 +783,14 @@ gen7_compute_urb_partition(struct anv_pipeline *pipeline) unsigned urb_chunks = devinfo->urb.size * 1024 / chunk_size_bytes; /* Reserve space for push constants */ -#if GEN_GEN >= 8 - unsigned push_constant_kb = 32; -#elif GEN_IS_HASWELL - unsigned push_constant_kb = pipeline->device->info.gt == 3 ? 32 : 16; -#else - unsigned push_constant_kb = 16; -#endif + unsigned push_constant_kb; + if (pipeline->device->info.gen >= 8) + push_constant_kb = 32; + else if (pipeline->device->info.is_haswell) + push_constant_kb = pipeline->device->info.gt == 3 ? 32 : 16; + else + push_constant_kb = 16; + unsigned push_constant_bytes = push_constant_kb * 1024; unsigned push_constant_chunks = push_constant_bytes / chunk_size_bytes; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (vulkan): anv/cmd_buffer: Re-emit push constants packets for all stages
Module: Mesa Branch: vulkan Commit: d29fd1c7cba7775298fb5a5e23d2c5026b3997af URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d29fd1c7cba7775298fb5a5e23d2c5026b3997af Author: Jason Ekstrand Date: Mon Feb 29 14:27:10 2016 -0800 anv/cmd_buffer: Re-emit push constants packets for all stages --- src/intel/vulkan/gen7_cmd_buffer.c | 24 src/intel/vulkan/gen8_cmd_buffer.c | 24 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/intel/vulkan/gen7_cmd_buffer.c b/src/intel/vulkan/gen7_cmd_buffer.c index 26339bb..b0456ae 100644 --- a/src/intel/vulkan/gen7_cmd_buffer.c +++ b/src/intel/vulkan/gen7_cmd_buffer.c @@ -52,20 +52,20 @@ cmd_buffer_flush_push_constants(struct anv_cmd_buffer *cmd_buffer) struct anv_state state = anv_cmd_buffer_push_constants(cmd_buffer, stage); - if (state.offset == 0) - continue; - - anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_CONSTANT_VS), - ._3DCommandSubOpcode = push_constant_opcodes[stage], - .ConstantBody = { -.PointerToConstantBuffer0 = { .offset = state.offset }, -.ConstantBuffer0ReadLength = DIV_ROUND_UP(state.alloc_size, 32), - }); - - flushed |= mesa_to_vk_shader_stage(stage); + if (state.offset == 0) { + anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_CONSTANT_VS), +._3DCommandSubOpcode = push_constant_opcodes[stage]); + } else { + anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_CONSTANT_VS), +._3DCommandSubOpcode = push_constant_opcodes[stage], +.ConstantBody = { + .PointerToConstantBuffer0 = { .offset = state.offset }, + .ConstantBuffer0ReadLength = DIV_ROUND_UP(state.alloc_size, 32), +}); + } } - cmd_buffer->state.push_constants_dirty &= ~flushed; + cmd_buffer->state.push_constants_dirty &= ~VK_SHADER_STAGE_ALL_GRAPHICS; return flushed; } diff --git a/src/intel/vulkan/gen8_cmd_buffer.c b/src/intel/vulkan/gen8_cmd_buffer.c index 3221f5e..2e979d9 100644 --- a/src/intel/vulkan/gen8_cmd_buffer.c +++ b/src/intel/vulkan/gen8_cmd_buffer.c @@ -52,20 +52,20 @@ cmd_buffer_flush_push_constants(struct anv_cmd_buffer *cmd_buffer) struct anv_state state = anv_cmd_buffer_push_constants(cmd_buffer, stage); - if (state.offset == 0) - continue; - - anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_CONSTANT_VS), - ._3DCommandSubOpcode = push_constant_opcodes[stage], - .ConstantBody = { -.PointerToConstantBuffer2 = { &cmd_buffer->device->dynamic_state_block_pool.bo, state.offset }, -.ConstantBuffer2ReadLength = DIV_ROUND_UP(state.alloc_size, 32), - }); - - flushed |= mesa_to_vk_shader_stage(stage); + if (state.offset == 0) { + anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_CONSTANT_VS), +._3DCommandSubOpcode = push_constant_opcodes[stage]); + } else { + anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_CONSTANT_VS), +._3DCommandSubOpcode = push_constant_opcodes[stage], +.ConstantBody = { + .PointerToConstantBuffer2 = { &cmd_buffer->device->dynamic_state_block_pool.bo, state.offset }, + .ConstantBuffer2ReadLength = DIV_ROUND_UP(state.alloc_size, 32), +}); + } } - cmd_buffer->state.push_constants_dirty &= ~flushed; + cmd_buffer->state.push_constants_dirty &= ~VK_SHADER_STAGE_ALL_GRAPHICS; return flushed; } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (vulkan): anv/pipeline: Avoid a division by zero
Module: Mesa Branch: vulkan Commit: 6986ae35adbd83ff4f3c84946e998db488416b72 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6986ae35adbd83ff4f3c84946e998db488416b72 Author: Jason Ekstrand Date: Mon Feb 29 14:13:07 2016 -0800 anv/pipeline: Avoid a division by zero --- src/intel/vulkan/anv_pipeline.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c index df26584..cbd3a21 100644 --- a/src/intel/vulkan/anv_pipeline.c +++ b/src/intel/vulkan/anv_pipeline.c @@ -894,7 +894,7 @@ gen7_compute_urb_partition(struct anv_pipeline *pipeline) const unsigned stages = _mesa_bitcount(pipeline->active_stages & VK_SHADER_STAGE_ALL_GRAPHICS); - const unsigned size_per_stage = push_constant_kb / stages; + const unsigned size_per_stage = stages ? (push_constant_kb / stages) : 0; unsigned used_kb = 0; for (int i = MESA_SHADER_VERTEX; i < MESA_SHADER_FRAGMENT; i++) { ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (vulkan): anv/pipeline: Follow push constant alignment restrictions on BDW+ and HSW gt3
Module: Mesa Branch: vulkan Commit: 9715724015b49278fa3d110221ab39e1ed00c8c2 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9715724015b49278fa3d110221ab39e1ed00c8c2 Author: Jason Ekstrand Date: Mon Feb 29 14:13:56 2016 -0800 anv/pipeline: Follow push constant alignment restrictions on BDW+ and HSW gt3 --- src/intel/vulkan/anv_pipeline.c | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c index cbd3a21..3dab205 100644 --- a/src/intel/vulkan/anv_pipeline.c +++ b/src/intel/vulkan/anv_pipeline.c @@ -894,9 +894,16 @@ gen7_compute_urb_partition(struct anv_pipeline *pipeline) const unsigned stages = _mesa_bitcount(pipeline->active_stages & VK_SHADER_STAGE_ALL_GRAPHICS); - const unsigned size_per_stage = stages ? (push_constant_kb / stages) : 0; + unsigned size_per_stage = stages ? (push_constant_kb / stages) : 0; unsigned used_kb = 0; + /* Broadwell+ and Haswell gt3 require that the push constant sizes be in +* units of 2KB. Incidentally, these are the same platforms that have +* 32KB worth of push constant space. +*/ + if (push_constant_kb == 32) + size_per_stage &= ~1u; + for (int i = MESA_SHADER_VERTEX; i < MESA_SHADER_FRAGMENT; i++) { pipeline->urb.push_size[i] = (pipeline->active_stages & (1 << i)) ? size_per_stage : 0; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): mesa/fbobject: propogate Layered when reusing attachments.
Module: Mesa Branch: master Commit: 35859d5bbba998aa41ec87bc53d946add4662dea URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=35859d5bbba998aa41ec87bc53d946add4662dea Author: Dave Airlie Date: Mon Feb 29 17:16:10 2016 +1000 mesa/fbobject: propogate Layered when reusing attachments. When reusing a depth attachment as a stencil, we need to propogate the layered bit, otherwise we fail to complete the framebuffer. discovered running ./bin/fbo-depth-array depth-layered-clear on virgl on haswell. Reviewed-by: Marek Olšák Cc: "11.1 11.2" Signed-off-by: Dave Airlie --- src/mesa/main/fbobject.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c index 1f10050..621f84f 100644 --- a/src/mesa/main/fbobject.c +++ b/src/mesa/main/fbobject.c @@ -2815,6 +2815,7 @@ reuse_framebuffer_texture_attachment(struct gl_framebuffer *fb, dst_att->Complete = src_att->Complete; dst_att->TextureLevel = src_att->TextureLevel; dst_att->Zoffset = src_att->Zoffset; + dst_att->Layered = src_att->Layered; } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (vulkan): isl/surface_state: Fix array spacing on Gen7
Module: Mesa Branch: vulkan Commit: 74b7b59db5d3ce986f92599b14feaaade63f7b12 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=74b7b59db5d3ce986f92599b14feaaade63f7b12 Author: Nanley Chery Date: Mon Feb 29 11:24:34 2016 -0800 isl/surface_state: Fix array spacing on Gen7 v2: Don't cast the enum to a boolean (Jason) Signed-off-by: Nanley Chery Reviewed-by: Jason Ekstrand --- src/intel/isl/isl_surface_state.c | 5 + 1 file changed, 5 insertions(+) diff --git a/src/intel/isl/isl_surface_state.c b/src/intel/isl/isl_surface_state.c index 12f4fb6..0f45100 100644 --- a/src/intel/isl/isl_surface_state.c +++ b/src/intel/isl/isl_surface_state.c @@ -227,6 +227,11 @@ isl_genX(surf_fill_state_s)(const struct isl_device *dev, void *state, .VerticalLineStride = 0, .VerticalLineStrideOffset = 0, +#if (GEN_GEN == 7) + .SurfaceArraySpacing = info->surf->array_pitch_span == + ISL_ARRAY_PITCH_SPAN_COMPACT, +#endif + #if GEN_GEN >= 8 .SamplerL2BypassModeDisable = true, #endif ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (vulkan): anv: Don't advertise pipelineStatisticsQuery
Module: Mesa Branch: vulkan Commit: 9d8bae613779e0cc7382c9252ccd7f5e7cd5cada URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9d8bae613779e0cc7382c9252ccd7f5e7cd5cada Author: Kristian Høgsberg Kristensen Date: Mon Feb 29 10:55:39 2016 -0800 anv: Don't advertise pipelineStatisticsQuery We don't support that just yet. Reported-by: Jacek Konieczny --- src/intel/vulkan/anv_device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 857c4b1..c68280f 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -373,7 +373,7 @@ void anv_GetPhysicalDeviceFeatures( .textureCompressionASTC_LDR = true, .textureCompressionBC = true, .occlusionQueryPrecise= true, - .pipelineStatisticsQuery = true, + .pipelineStatisticsQuery = false, .vertexPipelineStoresAndAtomics = pdevice->info->gen >= 8, .fragmentStoresAndAtomics = true, .shaderTessellationAndGeometryPointSize = true, ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): st/nine: Use Position input helper for ps3 declared inputs
Module: Mesa Branch: master Commit: 8a8affdfdace486f4e416e66e2dd0ed122505a90 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8a8affdfdace486f4e416e66e2dd0ed122505a90 Author: Axel Davy Date: Sun Feb 21 16:35:31 2016 +0100 st/nine: Use Position input helper for ps3 declared inputs When the semantic is Position (which can happen with index 0 only), use the helper to get Position input. Cc: "11.2" Signed-off-by: Axel Davy --- src/gallium/state_trackers/nine/nine_shader.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/src/gallium/state_trackers/nine/nine_shader.c b/src/gallium/state_trackers/nine/nine_shader.c index f0c5236..eb6479b 100644 --- a/src/gallium/state_trackers/nine/nine_shader.c +++ b/src/gallium/state_trackers/nine/nine_shader.c @@ -2052,9 +2052,16 @@ DECL_SPECIAL(DCL) unsigned interp_location = 0; /* SM3 only, SM2 input semantic determined by file */ assert(sem.reg.idx < Elements(tx->regs.v)); + +if (tgsi.Name == TGSI_SEMANTIC_POSITION) { +tx->regs.v[sem.reg.idx] = nine_get_position_input(tx); +return D3D_OK; +} + if (sem.reg.mod & NINED3DSPDM_CENTROID || (tgsi.Name == TGSI_SEMANTIC_COLOR && tx->info->force_color_in_centroid)) interp_location = TGSI_INTERPOLATE_LOC_CENTROID; + tx->regs.v[sem.reg.idx] = ureg_DECL_fs_input_cyl_centroid( ureg, tgsi.Name, tgsi.Index, nine_tgsi_to_interp_mode(&tgsi), ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): st/nine: Handle READONLY for buffer MANAGED pool
Module: Mesa Branch: master Commit: 35c858c42c818d5bf5b4bfee03a342df52acface URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=35c858c42c818d5bf5b4bfee03a342df52acface Author: Axel Davy Date: Wed Feb 24 23:44:40 2016 +0100 st/nine: Handle READONLY for buffer MANAGED pool READONLY won't trigger an upload. Cc: "11.2" Signed-off-by: Axel Davy --- src/gallium/state_trackers/nine/buffer9.c | 17 ++--- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/gallium/state_trackers/nine/buffer9.c b/src/gallium/state_trackers/nine/buffer9.c index e066fc5..8efb4ce 100644 --- a/src/gallium/state_trackers/nine/buffer9.c +++ b/src/gallium/state_trackers/nine/buffer9.c @@ -174,13 +174,16 @@ NineBuffer9_Lock( struct NineBuffer9 *This, u_box_1d(OffsetToLock, SizeToLock, &box); if (This->base.pool == D3DPOOL_MANAGED) { -if (!This->managed.dirty) { -assert(LIST_IS_EMPTY(&This->managed.list)); -list_add(&This->managed.list, &This->base.base.device->update_buffers); -This->managed.dirty = TRUE; -This->managed.dirty_box = box; -} else { -u_box_union_2d(&This->managed.dirty_box, &This->managed.dirty_box, &box); +/* READONLY doesn't dirty the buffer */ +if (!(Flags & D3DLOCK_READONLY)) { +if (!This->managed.dirty) { +assert(LIST_IS_EMPTY(&This->managed.list)); +list_add(&This->managed.list, &This->base.base.device->update_buffers); +This->managed.dirty = TRUE; +This->managed.dirty_box = box; +} else { +u_box_union_2d(&This->managed.dirty_box, &This->managed.dirty_box, &box); +} } *ppbData = (char *)This->managed.data + OffsetToLock; DBG("returning pointer %p\n", *ppbData); ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): st/nine: Fix second Multithreading issue with MANAGED buffers
Module: Mesa Branch: master Commit: 83bc2acfe90fd2e503bab4b5a586c1e2822863f5 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=83bc2acfe90fd2e503bab4b5a586c1e2822863f5 Author: Axel Davy Date: Sat Feb 27 11:02:21 2016 +0100 st/nine: Fix second Multithreading issue with MANAGED buffers Here is another threading issue with MANAGED buffers: Thread 1: buffer creation Thread 1: buffer lock Thread 2: Draw call Thread 1: writes data Thread 1: Unlock Without this patch, the buffer is initially dirty and in the list of things to upload after its creation. The draw call will then upload the data and unset the dirty flag, and the Unlock won't trigger a second upload. Fixes regression introduced by cc0114f30b587a10766ec212afb3ad356099ef23: "st/nine: Implement Managed vertex/index buffers" Cc: "11.2" Signed-off-by: Axel Davy --- src/gallium/state_trackers/nine/buffer9.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gallium/state_trackers/nine/buffer9.c b/src/gallium/state_trackers/nine/buffer9.c index 6d5d9d6..1103741 100644 --- a/src/gallium/state_trackers/nine/buffer9.c +++ b/src/gallium/state_trackers/nine/buffer9.c @@ -182,6 +182,9 @@ NineBuffer9_Lock( struct NineBuffer9 *This, This->managed.dirty_box = box; } else { u_box_union_2d(&This->managed.dirty_box, &This->managed.dirty_box, &box); +/* Do not upload while we are locking, we'll add it back later */ +if (!LIST_IS_EMPTY(&This->managed.list)) +list_delinit(&This->managed.list); } } *ppbData = (char *)This->managed.data + OffsetToLock; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): st/nine: Introduce helper for Position shader input
Module: Mesa Branch: master Commit: f08c990af53e91114257b19e5679e2dbbc277e45 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f08c990af53e91114257b19e5679e2dbbc277e45 Author: Axel Davy Date: Sun Feb 21 16:30:15 2016 +0100 st/nine: Introduce helper for Position shader input Cc: "11.2" Signed-off-by: Axel Davy --- src/gallium/state_trackers/nine/nine_shader.c | 31 +-- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/src/gallium/state_trackers/nine/nine_shader.c b/src/gallium/state_trackers/nine/nine_shader.c index a7a7da2..f0c5236 100644 --- a/src/gallium/state_trackers/nine/nine_shader.c +++ b/src/gallium/state_trackers/nine/nine_shader.c @@ -830,6 +830,18 @@ nine_ureg_dst_register(unsigned file, int index) return ureg_dst(ureg_src_register(file, index)); } +static inline struct ureg_src +nine_get_position_input(struct shader_translator *tx) +{ +struct ureg_program *ureg = tx->ureg; + +if (tx->wpos_is_sysval) +return ureg_DECL_system_value(ureg, TGSI_SEMANTIC_POSITION, 0); +else +return ureg_DECL_fs_input(ureg, TGSI_SEMANTIC_POSITION, + 0, TGSI_INTERPOLATE_LINEAR); +} + static struct ureg_src tx_src_param(struct shader_translator *tx, const struct sm1_src_param *param) { @@ -955,16 +967,8 @@ tx_src_param(struct shader_translator *tx, const struct sm1_src_param *param) case D3DSPR_MISCTYPE: switch (param->idx) { case D3DSMO_POSITION: - if (ureg_src_is_undef(tx->regs.vPos)) { - if (tx->wpos_is_sysval) { - tx->regs.vPos = - ureg_DECL_system_value(ureg, TGSI_SEMANTIC_POSITION, 0); - } else { - tx->regs.vPos = - ureg_DECL_fs_input(ureg, TGSI_SEMANTIC_POSITION, 0, - TGSI_INTERPOLATE_LINEAR); - } - } + if (ureg_src_is_undef(tx->regs.vPos)) + tx->regs.vPos = nine_get_position_input(tx); if (tx->shift_wpos) { /* TODO: do this only once */ struct ureg_dst wpos = tx_scratch(tx); @@ -3269,12 +3273,7 @@ shader_add_ps_fog_stage(struct shader_translator *tx, struct ureg_src src_col) } if (tx->info->fog_mode != D3DFOG_NONE) { -if (tx->wpos_is_sysval) { -depth = ureg_DECL_system_value(ureg, TGSI_SEMANTIC_POSITION, 0); -} else { -depth = ureg_DECL_fs_input(ureg, TGSI_SEMANTIC_POSITION, 0, - TGSI_INTERPOLATE_LINEAR); -} +depth = nine_get_position_input(tx); depth = ureg_scalar(depth, TGSI_SWIZZLE_Z); } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): st/nine: Fix Multithreading issue with MANAGED buffers
Module: Mesa Branch: master Commit: 44246fe99d4c880b70a58043624bf023237009f5 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=44246fe99d4c880b70a58043624bf023237009f5 Author: Axel Davy Date: Thu Feb 25 19:07:37 2016 +0100 st/nine: Fix Multithreading issue with MANAGED buffers d3d calls are protected by mutexes, however if app is doing in two threads: Thread 1: buffer Lock Thread 2: Draw call Thread 1: writes data Thread 1: Unlock Then before this patch, the Draw call would begin to upload the buffer. Solves this by moving the moment we add the buffer to the queue of things to upload (We move it from Lock time to Unlock time). Cc: "11.2" Signed-off-by: Axel Davy --- src/gallium/state_trackers/nine/buffer9.c | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/gallium/state_trackers/nine/buffer9.c b/src/gallium/state_trackers/nine/buffer9.c index 8efb4ce..6d5d9d6 100644 --- a/src/gallium/state_trackers/nine/buffer9.c +++ b/src/gallium/state_trackers/nine/buffer9.c @@ -178,7 +178,6 @@ NineBuffer9_Lock( struct NineBuffer9 *This, if (!(Flags & D3DLOCK_READONLY)) { if (!This->managed.dirty) { assert(LIST_IS_EMPTY(&This->managed.list)); -list_add(&This->managed.list, &This->base.base.device->update_buffers); This->managed.dirty = TRUE; This->managed.dirty_box = box; } else { @@ -232,8 +231,13 @@ NineBuffer9_Unlock( struct NineBuffer9 *This ) user_assert(This->nmaps > 0, D3DERR_INVALIDCALL); if (This->base.pool != D3DPOOL_MANAGED) This->pipe->transfer_unmap(This->pipe, This->maps[--(This->nmaps)]); -else +else { This->nmaps--; +/* TODO: Fix this to upload at the first draw call needing the data, + * instead of at the next draw call */ +if (!This->nmaps && This->managed.dirty && LIST_IS_EMPTY(&This->managed.list)) +list_add(&This->managed.list, &This->base.base.device->update_buffers); +} return D3D_OK; } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa: tag mesa-11.2.0-rc2: Mesa 11.2.0-rc2 release candidate
Module: Mesa Branch: refs/tags/mesa-11.2.0-rc2 Tag:7f513a3380a569399de8bc0ab6a956035eaa5730 URL: http://cgit.freedesktop.org/mesa/mesa/tag/?id=7f513a3380a569399de8bc0ab6a956035eaa5730 Tagger: Emil Velikov Date: Mon Feb 29 12:37:55 2016 + Mesa 11.2.0-rc2 release candidate ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (11.2): 30 new commits
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=33b045688ddf70f69243e1b792b81b0f4180be0f Author: Emil Velikov Date: Mon Feb 29 11:46:35 2016 + Update version to 11.2.0-rc2 Signed-off-by: Emil Velikov URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7d056d2ec9b3717cad09d6694d920033fa30edad Author: Thomas Hindoe Paaboel Andersen Date: Mon Feb 22 15:58:00 2016 -0700 mesa: use sizeof on the correct type Before the luminance stride was based on the size of GL_FLOAT which is just the type constant (0x1406). Change it to use the size of GLfloat. Reviewed-by: Brian Paul (cherry picked from commit 1807806add36327ba1e713c49554b61b2855d5f9) Nominated-by: Emil Velikov URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=188e698e1a6f0d7c822e13e67ff6c1ea973c3ec4 Author: Marc-André Lureau Date: Fri Feb 12 22:11:05 2016 +0100 virtio_gpu: Add virtio 1.0 PCI ID to driver map Add the virtio-gpu PCI ID for virtio 1.0 (according to the specification, "the PCI Device ID is calculated by adding 0x1040 to the Virtio Device ID") Support for virtio 1.0 was added in qemu 2.4 (same time virtio-gpu landed). Cc: "11.1 11.2" Signed-off-by: Marc-André Lureau Reviewed-by: Emil Velikov (cherry picked from commit f1d12e7392896f45a76df87b6ad0bf18647922df) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6f561c535db35e4895d72e155e391a9fc7824e7f Author: Koop Mast Date: Mon Dec 28 20:26:48 2015 +0100 st/clover: Add libelf cflags to the build Otherwise the build will fail, when the library is in a non default location. v2 [Emil Velikov] - drop the unneeded cflags from targets/opencl. Cc: "11.1 11.2" Fixes: 7f585a6a98d "configure.ac: use pkg-config for libelf" Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93524 Signed-off-by: Emil Velikov (cherry picked from commit 04bc09fdf9e353fbb1303635236da551785373c9) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5fb53ff66adc05500057543868cc0da33003591f Author: Emil Velikov Date: Wed Sep 2 17:36:22 2015 +0100 mesa; add get-extra-pick-list.sh script into bin/ This is a very rudimentary script that checks if any of the applied cherry-picks have been referenced (fixed?) by another patch. With the latter either missing the stable tag or hasn't yet been picked. Cc: "11.1 11.2" Signed-off-by: Emil Velikov (cherry picked from commit c212a70cd9d5f5731841e4194c57e8a77e0b4e41) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=aeacc8633652879063e3079a8d90607b8df0f05b Author: Emil Velikov Date: Thu Feb 25 15:20:04 2016 + automake: add more missing options for make distcheck Namely - opencl, osmesa (only the gallium flavour as it conflicts with the classic one), surfaceless egl platform and a couple gallium drivers (virgl and vc4). Cc: "11.1 11.2" Signed-off-by: Emil Velikov (cherry picked from commit 325bc6fb4a045b4643f284a6b76c336e418064c2) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=06bc8e251555b5aa38eccaeded9f625c8394164e Author: Emil Velikov Date: Thu Feb 25 16:53:06 2016 + install-gallium-links: port changes from install-lib-links Namely: b662d5282f7 mesa: Add clean-local rule to remove .lib links. 5c1aac17adf install-lib-links: don't depend on .libs directory fece147be53 install-lib-links: remove the .install-lib-links file With these in place, make distcheck now passes and a race condition has been avoided. Cc: "11.1 11.2" Signed-off-by: Emil Velikov (cherry picked from commit 0b6157e9713c662a6635fc0d79a393d95550c4ad) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c1e82fcf967dddcb8cc7f737fae7bdd674292bc1 Author: Rob Herring Date: Wed Feb 24 12:56:31 2016 -0600 r600: Make enum alu_op_flags unsigned In builds with clang, there are several errors related to the enum alu_op_flags like this: src/gallium/drivers/r600/sb/sb_expr.cpp:887:8: error: case value evaluates to -1610612736, which cannot be narrowed to type 'unsigned int' [-Wc++11-narrowing] These are due to the MSB being set in the enum. Fix these errors by making the enum values unsigned as needed. The flags field that stores this enum also needs to be unsigned. Cc: "11.1 11.2" Cc: Marek Olšák Signed-off-by: Rob Herring Reviewed-by: Michel Dänzer (cherry picked from commit 51b22bd46888c972eb8c80ee5524d94f6f0b8996) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c00a89eb16b1e3b7ad866ad9e9641dc61f424acf Author: Rob Herring Date: Wed Feb 24 12:56:30 2016 -0600 gallium/radeon: Add space between string literal and identifier Fix compiles with clang that have this C++11 error: src/gallium/drivers/radeon/r600_pipe_c
Mesa (master): virtio_gpu: Add virtio 1.0 PCI ID to driver map
Module: Mesa Branch: master Commit: f1d12e7392896f45a76df87b6ad0bf18647922df URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f1d12e7392896f45a76df87b6ad0bf18647922df Author: Marc-André Lureau Date: Fri Feb 12 22:11:05 2016 +0100 virtio_gpu: Add virtio 1.0 PCI ID to driver map Add the virtio-gpu PCI ID for virtio 1.0 (according to the specification, "the PCI Device ID is calculated by adding 0x1040 to the Virtio Device ID") Support for virtio 1.0 was added in qemu 2.4 (same time virtio-gpu landed). Cc: "11.1 11.2" Signed-off-by: Marc-André Lureau Reviewed-by: Emil Velikov --- include/pci_ids/virtio_gpu_pci_ids.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/pci_ids/virtio_gpu_pci_ids.h b/include/pci_ids/virtio_gpu_pci_ids.h index 2e6ecaf..9232cd2 100644 --- a/include/pci_ids/virtio_gpu_pci_ids.h +++ b/include/pci_ids/virtio_gpu_pci_ids.h @@ -1 +1,2 @@ CHIPSET(0x0010, VIRTGL, VIRTGL) +CHIPSET(0x1050, VIRTGL, VIRTGL) ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): mesa; add get-extra-pick-list.sh script into bin/
Module: Mesa Branch: master Commit: c212a70cd9d5f5731841e4194c57e8a77e0b4e41 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c212a70cd9d5f5731841e4194c57e8a77e0b4e41 Author: Emil Velikov Date: Wed Sep 2 17:36:22 2015 +0100 mesa; add get-extra-pick-list.sh script into bin/ This is a very rudimentary script that checks if any of the applied cherry-picks have been referenced (fixed?) by another patch. With the latter either missing the stable tag or hasn't yet been picked. Cc: "11.1 11.2" Signed-off-by: Emil Velikov --- bin/get-extra-pick-list.sh | 35 +++ 1 file changed, 35 insertions(+) diff --git a/bin/get-extra-pick-list.sh b/bin/get-extra-pick-list.sh new file mode 100755 index 000..a9d25b9 --- /dev/null +++ b/bin/get-extra-pick-list.sh @@ -0,0 +1,35 @@ +#!/bin/sh + +# Script for generating a list of candidates which fix commits that have been +# previously cherry-picked to a stable branch. +# +# Usage examples: +# +# $ bin/get-extra-pick-list.sh +# $ bin/get-extra-pick-list.sh > picklist +# $ bin/get-extra-pick-list.sh | tee picklist + +# Use the last branchpoint as our limit for the search +# XXX: there should be a better way for this +latest_branchpoint=`git branch | grep \* | cut -c 3-`-branchpoint + +# Grep for commits with "cherry picked from commit" in the commit message. +git log --reverse --grep="cherry picked from commit" $latest_branchpoint..HEAD |\ + grep "cherry picked from commit" |\ + sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' |\ + cut -c -8 |\ +while read sha +do + # Check if the original commit is referenced in master + git log -n1 --pretty=oneline --grep=$sha $latest_branchpoint..origin/master |\ + cut -c -8 |\ + while read candidate + do + # Check if the potential fix, hasn't landed in branch yet. + found=`git log -n1 --pretty=oneline --reverse --grep=$candidate $latest_branchpoint..HEAD |wc -l` + if test $found = 0 + then + echo Commit $candidate might need to be picked, as it references $sha + fi + done +done ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): st/clover: Add libelf cflags to the build
Module: Mesa Branch: master Commit: 04bc09fdf9e353fbb1303635236da551785373c9 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=04bc09fdf9e353fbb1303635236da551785373c9 Author: Koop Mast Date: Mon Dec 28 20:26:48 2015 +0100 st/clover: Add libelf cflags to the build Otherwise the build will fail, when the library is in a non default location. v2 [Emil Velikov] - drop the unneeded cflags from targets/opencl. Cc: "11.1 11.2" Fixes: 7f585a6a98d "configure.ac: use pkg-config for libelf" Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93524 Signed-off-by: Emil Velikov --- src/gallium/state_trackers/clover/Makefile.am | 1 + src/gallium/targets/opencl/Makefile.am| 3 --- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/gallium/state_trackers/clover/Makefile.am b/src/gallium/state_trackers/clover/Makefile.am index 3c94216..4c9d7d9 100644 --- a/src/gallium/state_trackers/clover/Makefile.am +++ b/src/gallium/state_trackers/clover/Makefile.am @@ -41,6 +41,7 @@ libclllvm_la_CXXFLAGS = \ $(VISIBILITY_CXXFLAGS) \ $(LLVM_CXXFLAGS) \ $(DEFINES) \ + $(LIBELF_CFLAGS) \ -DLIBCLC_INCLUDEDIR=\"$(LIBCLC_INCLUDEDIR)/\" \ -DLIBCLC_LIBEXECDIR=\"$(LIBCLC_LIBEXECDIR)/\" \ -DCLANG_RESOURCE_DIR=\"$(CLANG_RESOURCE_DIR)\" diff --git a/src/gallium/targets/opencl/Makefile.am b/src/gallium/targets/opencl/Makefile.am index f3ba1e3..99532f0 100644 --- a/src/gallium/targets/opencl/Makefile.am +++ b/src/gallium/targets/opencl/Makefile.am @@ -2,9 +2,6 @@ include $(top_srcdir)/src/gallium/Automake.inc lib_LTLIBRARIES = lib@OPENCL_LIBNAME@.la -AM_CPPFLAGS = \ -$(LIBELF_CFLAGS) - lib@OPENCL_LIBNAME@_la_LDFLAGS = \ $(LLVM_LDFLAGS) \ -no-undefined \ ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): Android: remove dependence on .SECONDEXPANSION
Module: Mesa Branch: master Commit: 794221fbb7e9ecdd67cb209237c6f0f2c80e7a71 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=794221fbb7e9ecdd67cb209237c6f0f2c80e7a71 Author: Rob Herring Date: Wed Feb 24 12:56:24 2016 -0600 Android: remove dependence on .SECONDEXPANSION With the Android build system changes to ninja/kati, the use of .SECONDEXPANSION is no longer supported. Fix this by avoiding rule specific variables and using $(transform-generated-source). Cc: "11.1 11.2" Signed-off-by: Rob Herring Reviewed-by: Emil Velikov --- src/mesa/drivers/dri/common/Android.mk | 22 +- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/mesa/drivers/dri/common/Android.mk b/src/mesa/drivers/dri/common/Android.mk index f1a7330..8a21e63 100644 --- a/src/mesa/drivers/dri/common/Android.mk +++ b/src/mesa/drivers/dri/common/Android.mk @@ -74,20 +74,24 @@ $(intermediates)/xmlpool/%.po: $(LOCAL_PATH)/xmlpool/%.po $(POT) sed -i -e 's/charset=.*\\n/charset=UTF-8\\n/' $@; \ fi -$(intermediates)/xmlpool/%/LC_MESSAGES/options.mo: $(intermediates)/xmlpool/%.po +PRIVATE_SCRIPT := $(LOCAL_PATH)/xmlpool/gen_xmlpool.py +PRIVATE_LOCALEDIR := $(intermediates)/xmlpool +PRIVATE_TEMPLATE_HEADER := $(LOCAL_PATH)/xmlpool/t_options.h +PRIVATE_MO_FILES := $(MESA_DRI_OPTIONS_LANGS:%=$(intermediates)/xmlpool/%/LC_MESSAGES/options.mo) + +LOCAL_GENERATED_SOURCES += $(PRIVATE_MO_FILES) + +$(PRIVATE_MO_FILES): $(intermediates)/xmlpool/%/LC_MESSAGES/options.mo: $(intermediates)/xmlpool/%.po mkdir -p $(dir $@) msgfmt -o $@ $< -$(MESA_DRI_OPTIONS_H): PRIVATE_SCRIPT := $(LOCAL_PATH)/xmlpool/gen_xmlpool.py -$(MESA_DRI_OPTIONS_H): PRIVATE_LOCALEDIR := $(intermediates)/xmlpool -$(MESA_DRI_OPTIONS_H): PRIVATE_TEMPLATE_HEADER := $(LOCAL_PATH)/xmlpool/t_options.h -$(MESA_DRI_OPTIONS_H): PRIVATE_MO_FILES := $(MESA_DRI_OPTIONS_LANGS:%=$(intermediates)/xmlpool/%/LC_MESSAGES/options.mo) -.SECONDEXPANSION: -$(MESA_DRI_OPTIONS_H): $$(PRIVATE_SCRIPT) $$(PRIVATE_TEMPLATE_HEADER) $$(PRIVATE_MO_FILES) - @mkdir -p $(dir $@) - $(hide) $(MESA_PYTHON2) $(PRIVATE_SCRIPT) $(PRIVATE_TEMPLATE_HEADER) \ +$(LOCAL_GENERATED_SOURCES): PRIVATE_PYTHON := $(MESA_PYTHON2) +$(LOCAL_GENERATED_SOURCES): PRIVATE_CUSTOM_TOOL = $(PRIVATE_PYTHON) $^ $(PRIVATE_TEMPLATE_HEADER) \ $(PRIVATE_LOCALEDIR) $(MESA_DRI_OPTIONS_LANGS) > $@ +$(MESA_DRI_OPTIONS_H): $(PRIVATE_SCRIPT) $(PRIVATE_TEMPLATE_HEADER) $(PRIVATE_MO_FILES) + $(transform-generated-source) + include $(MESA_COMMON_MK) include $(BUILD_STATIC_LIBRARY) ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): Android: add -Wno-date-time flag for clang
Module: Mesa Branch: master Commit: 6dae9176d60d12de61aa03906c44f81e20ef7622 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6dae9176d60d12de61aa03906c44f81e20ef7622 Author: Rob Herring Date: Wed Feb 24 12:56:26 2016 -0600 Android: add -Wno-date-time flag for clang clang complains about date/time macros: src/mesa/main/context.c:403:25: error: expansion of date or time macro is not reproducible [-Werror,-Wdate-time] Disable this warning. Cc: "11.1 11.2" Signed-off-by: Rob Herring Reviewed-by: Emil Velikov --- Android.common.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/Android.common.mk b/Android.common.mk index c4823f7..7ca989c 100644 --- a/Android.common.mk +++ b/Android.common.mk @@ -33,6 +33,7 @@ MESA_VERSION := $(shell cat $(MESA_TOP)/VERSION) # define ANDROID_VERSION (e.g., 4.0.x => 0x0400) LOCAL_CFLAGS += \ -Wno-unused-parameter \ + -Wno-date-time \ -DPACKAGE_VERSION=\"$(MESA_VERSION)\" \ -DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\"; \ -DANDROID_VERSION=0x0$(MESA_ANDROID_MAJOR_VERSION)0$(MESA_ANDROID_MINOR_VERSION) ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): r600: Make enum alu_op_flags unsigned
Module: Mesa Branch: master Commit: 51b22bd46888c972eb8c80ee5524d94f6f0b8996 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=51b22bd46888c972eb8c80ee5524d94f6f0b8996 Author: Rob Herring Date: Wed Feb 24 12:56:31 2016 -0600 r600: Make enum alu_op_flags unsigned In builds with clang, there are several errors related to the enum alu_op_flags like this: src/gallium/drivers/r600/sb/sb_expr.cpp:887:8: error: case value evaluates to -1610612736, which cannot be narrowed to type 'unsigned int' [-Wc++11-narrowing] These are due to the MSB being set in the enum. Fix these errors by making the enum values unsigned as needed. The flags field that stores this enum also needs to be unsigned. Cc: "11.1 11.2" Cc: Marek Olšák Signed-off-by: Rob Herring Reviewed-by: Michel Dänzer --- src/gallium/drivers/r600/r600_isa.h | 16 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/gallium/drivers/r600/r600_isa.h b/src/gallium/drivers/r600/r600_isa.h index 27fc1e8..b3f49bd 100644 --- a/src/gallium/drivers/r600/r600_isa.h +++ b/src/gallium/drivers/r600/r600_isa.h @@ -102,13 +102,13 @@ enum alu_op_flags /* condition codes - 3 bits */ AF_CC_SHIFT = 29, - AF_CC_MASK = (7 << AF_CC_SHIFT), - AF_CC_E = (0 << AF_CC_SHIFT), - AF_CC_GT= (1 << AF_CC_SHIFT), - AF_CC_GE= (2 << AF_CC_SHIFT), - AF_CC_NE= (3 << AF_CC_SHIFT), - AF_CC_LT= (4 << AF_CC_SHIFT), - AF_CC_LE= (5 << AF_CC_SHIFT), + AF_CC_MASK = (7U << AF_CC_SHIFT), + AF_CC_E = (0U << AF_CC_SHIFT), + AF_CC_GT= (1U << AF_CC_SHIFT), + AF_CC_GE= (2U << AF_CC_SHIFT), + AF_CC_NE= (3U << AF_CC_SHIFT), + AF_CC_LT= (4U << AF_CC_SHIFT), + AF_CC_LE= (5U << AF_CC_SHIFT), }; /* flags for FETCH instructions (TEX/VTX) */ @@ -165,7 +165,7 @@ struct alu_op_info * (0 if instruction doesn't exist for chip class) */ int slots[4]; /* flags (mostly autogenerated from instruction name) */ - int flags; + unsigned int flags; }; /* FETCH instruction info */ ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): install-gallium-links: port changes from install-lib-links
Module: Mesa Branch: master Commit: 0b6157e9713c662a6635fc0d79a393d95550c4ad URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0b6157e9713c662a6635fc0d79a393d95550c4ad Author: Emil Velikov Date: Thu Feb 25 16:53:06 2016 + install-gallium-links: port changes from install-lib-links Namely: b662d5282f7 mesa: Add clean-local rule to remove .lib links. 5c1aac17adf install-lib-links: don't depend on .libs directory fece147be53 install-lib-links: remove the .install-lib-links file With these in place, make distcheck now passes and a race condition has been avoided. Cc: "11.1 11.2" Signed-off-by: Emil Velikov --- install-gallium-links.mk | 15 +-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/install-gallium-links.mk b/install-gallium-links.mk index f45f1b4..4010cad 100644 --- a/install-gallium-links.mk +++ b/install-gallium-links.mk @@ -3,9 +3,9 @@ if BUILD_SHARED if HAVE_COMPAT_SYMLINKS -all-local : .libs/install-gallium-links +all-local : .install-gallium-links -.libs/install-gallium-links : $(dri_LTLIBRARIES) $(egl_LTLIBRARIES) $(lib_LTLIBRARIES) +.install-gallium-links : $(dri_LTLIBRARIES) $(egl_LTLIBRARIES) $(lib_LTLIBRARIES) $(AM_V_GEN)$(MKDIR_P) $(top_builddir)/$(LIB_DIR); \ link_dir=$(top_builddir)/$(LIB_DIR)/gallium;\ if test x$(egl_LTLIBRARIES) != x; then \ @@ -23,4 +23,15 @@ all-local : .libs/install-gallium-links fi; \ done && touch $@ endif + +clean-local: + for f in $(notdir $(dri_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*)) \ +$(notdir $(egl_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*)) \ +$(notdir $(lib_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*)); do \ + echo $$f; \ + $(RM) $(top_builddir)/$(LIB_DIR)/gallium/$$f; \ + done; + rmdir $(top_builddir)/$(LIB_DIR)/gallium || true + $(RM) .install-gallium-links + endif ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): Android: fix build break from nir/glsl move to compiler/
Module: Mesa Branch: master Commit: 574a92b048ae2b482982c3f156182970d551ca94 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=574a92b048ae2b482982c3f156182970d551ca94 Author: Rob Herring Date: Wed Feb 10 16:02:11 2016 -0600 Android: fix build break from nir/glsl move to compiler/ Commits a39a8fbbaa12 ("nir: move to compiler/") and eb63640c1d38 ("glsl: move to compiler/") broke Android builds. Fix them. There is also a missing dependency between generated NIR headers and several libraries. This isn't a new issue, but seems to have been exposed by the NIR move. Built with i915, i965, freedreno, r300g, r600g, vc4, and virgl enabled. Cc: "11.2" Cc: Mauro Rossi Signed-off-by: Rob Herring Reviewed-by: Emil Velikov --- Android.mk | 2 +- src/compiler/Android.gen.mk | 4 src/compiler/glsl/Android.gen.mk | 2 +- src/compiler/glsl/Android.mk | 3 +-- src/gallium/auxiliary/Android.mk | 6 -- src/gallium/drivers/freedreno/Android.mk | 4 +++- src/gallium/drivers/r300/Android.mk | 1 - src/gallium/drivers/vc4/Android.mk | 6 -- src/gallium/targets/dri/Android.mk | 2 ++ src/mesa/Android.libmesa_dricore.mk | 1 - src/mesa/Android.libmesa_glsl_utils.mk | 2 -- src/mesa/Android.libmesa_st_mesa.mk | 1 - src/mesa/Android.mesa_gen_matypes.mk | 3 +-- src/mesa/drivers/dri/Android.mk | 2 ++ src/mesa/drivers/dri/i915/Android.mk | 3 ++- src/mesa/drivers/dri/i965/Android.mk | 3 ++- src/mesa/program/Android.mk | 5 +++-- 17 files changed, 30 insertions(+), 20 deletions(-) diff --git a/Android.mk b/Android.mk index 908078a..2c56b73 100644 --- a/Android.mk +++ b/Android.mk @@ -87,7 +87,7 @@ SUBDIRS := \ src/loader \ src/mapi \ src/compiler \ - src/glsl \ + src/compiler/glsl \ src/mesa \ src/util \ src/egl \ diff --git a/src/compiler/Android.gen.mk b/src/compiler/Android.gen.mk index fcd5f94..96fc750 100644 --- a/src/compiler/Android.gen.mk +++ b/src/compiler/Android.gen.mk @@ -42,6 +42,10 @@ LOCAL_EXPORT_C_INCLUDE_DIRS += \ LOCAL_GENERATED_SOURCES += $(addprefix $(intermediates)/, \ $(NIR_GENERATED_FILES)) +# Modules using libmesa_nir must set LOCAL_GENERATED_SOURCES to this +MESA_GEN_NIR_H := $(addprefix $(call local-generated-sources-dir)/, \ + nir/nir_opcodes.h \ + nir/nir_builder_opcodes.h) nir_builder_opcodes_gen := $(LOCAL_PATH)/nir/nir_builder_opcodes_h.py nir_builder_opcodes_deps := \ diff --git a/src/compiler/glsl/Android.gen.mk b/src/compiler/glsl/Android.gen.mk index c5741b4..c0902b2 100644 --- a/src/compiler/glsl/Android.gen.mk +++ b/src/compiler/glsl/Android.gen.mk @@ -33,7 +33,7 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) LOCAL_C_INCLUDES += \ $(intermediates)/glcpp \ - $(MESA_TOP)/src/glsl/glcpp \ + $(LOCAL_PATH)/glcpp \ LOCAL_GENERATED_SOURCES += $(addprefix $(intermediates)/, \ $(LIBGLCPP_GENERATED_FILES) \ diff --git a/src/compiler/glsl/Android.mk b/src/compiler/glsl/Android.mk index 9cbb9a3..f5d96b3 100644 --- a/src/compiler/glsl/Android.mk +++ b/src/compiler/glsl/Android.mk @@ -36,7 +36,6 @@ include $(CLEAR_VARS) LOCAL_SRC_FILES := \ $(LIBGLCPP_FILES) \ $(LIBGLSL_FILES) \ - $(NIR_FILES) LOCAL_C_INCLUDES := \ $(MESA_TOP)/src/mapi \ @@ -67,7 +66,7 @@ LOCAL_C_INCLUDES := \ $(MESA_TOP)/src/gallium/include \ $(MESA_TOP)/src/gallium/auxiliary -LOCAL_STATIC_LIBRARIES := libmesa_glsl libmesa_glsl_utils libmesa_util +LOCAL_STATIC_LIBRARIES := libmesa_glsl libmesa_glsl_utils libmesa_util libmesa_compiler LOCAL_MODULE_TAGS := eng LOCAL_MODULE := glsl_compiler diff --git a/src/gallium/auxiliary/Android.mk b/src/gallium/auxiliary/Android.mk index 86430eb..f5b5a0c 100644 --- a/src/gallium/auxiliary/Android.mk +++ b/src/gallium/auxiliary/Android.mk @@ -44,9 +44,9 @@ LOCAL_SRC_FILES += \ LOCAL_CPPFLAGS := -std=c++11 endif -# We need libmesa_glsl to get NIR's generated include directories. +# We need libmesa_nir to get NIR's generated include directories. LOCAL_MODULE := libmesa_gallium -LOCAL_STATIC_LIBRARIES += libmesa_glsl +LOCAL_STATIC_LIBRARIES += libmesa_nir # generate sources LOCAL_MODULE_CLASS := STATIC_LIBRARIES @@ -64,5 +64,7 @@ $(intermediates)/util/u_format_srgb.c: $(intermediates)/%.c: $(LOCAL_PATH)/%.py $(intermediates)/util/u_format_table.c: $(intermediates)/%.c: $(LOCAL_PATH)/%.py $(LOCAL_PATH)/util/u_format.csv $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(MESA_GEN_NIR_H) + include $(GALLIUM_COMMON_MK) include $(BUILD_STATIC_LIBRARY) diff --git a/src/gallium/drivers/freedreno/Android.mk b/src/gallium/drivers/freedreno/Android.mk index ed51835..8c1ab08 100644 --- a/src/gallium/drivers/freedreno/Android.mk +++ b/src/gallium/drivers/freedreno/Android.mk @@ -38,8 +38,10 @@ LOCAL_CFLAGS := \ LOCAL_C_INCLUDES := \ $(LOCAL_PATH
Mesa (master): gallium/radeon: Add space between string literal and identifier
Module: Mesa Branch: master Commit: 92dd38df5a25ca57a23500576169b190be3b26cb URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=92dd38df5a25ca57a23500576169b190be3b26cb Author: Rob Herring Date: Wed Feb 24 12:56:30 2016 -0600 gallium/radeon: Add space between string literal and identifier Fix compiles with clang that have this C++11 error: src/gallium/drivers/radeon/r600_pipe_common.h:662:34: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal] Cc: "11.1 11.2" Cc: Marek Olšák Signed-off-by: Rob Herring Reviewed-by: Michel Dänzer --- src/gallium/drivers/radeon/r600_pipe_common.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h b/src/gallium/drivers/radeon/r600_pipe_common.h index 7df6177..b77b132 100644 --- a/src/gallium/drivers/radeon/r600_pipe_common.h +++ b/src/gallium/drivers/radeon/r600_pipe_common.h @@ -659,7 +659,7 @@ r600_get_sampler_view_priority(struct r600_resource *res) } while (0); #define R600_ERR(fmt, args...) \ - fprintf(stderr, "EE %s:%d %s - "fmt, __FILE__, __LINE__, __func__, ##args) + fprintf(stderr, "EE %s:%d %s - " fmt, __FILE__, __LINE__, __func__, ##args) /* For MSAA sample positions. */ #define FILL_SREG(s0x, s0y, s1x, s1y, s2x, s2y, s3x, s3y) \ ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): automake: explicitly set distcheck configure flags
Module: Mesa Branch: master Commit: 64500f21f3b11986a72822244ea83efb16af3fca URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=64500f21f3b11986a72822244ea83efb16af3fca Author: Emil Velikov Date: Thu Feb 25 15:48:41 2016 + automake: explicitly set distcheck configure flags Pretty much all of these are enabled by default. Considering the recent updates (see previous commits) one might as well list most/all of these here. Signed-off-by: Emil Velikov --- Makefile.am | 5 + 1 file changed, 5 insertions(+) diff --git a/Makefile.am b/Makefile.am index 2c06e3a..f9bad14 100644 --- a/Makefile.am +++ b/Makefile.am @@ -22,15 +22,20 @@ SUBDIRS = src AM_DISTCHECK_CONFIGURE_FLAGS = \ + --enable-dri \ --enable-dri3 \ + --enable-egl \ --enable-gallium-tests \ --enable-gallium-osmesa \ + --enable-gallium-llvm \ --enable-gbm \ --enable-gles1 \ --enable-gles2 \ + --enable-glx \ --enable-glx-tls \ --enable-nine \ --enable-opencl \ + --enable-opengl \ --enable-va \ --enable-vdpau \ --enable-xa \ ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): automake: add more missing options for make distcheck
Module: Mesa Branch: master Commit: 325bc6fb4a045b4643f284a6b76c336e418064c2 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=325bc6fb4a045b4643f284a6b76c336e418064c2 Author: Emil Velikov Date: Thu Feb 25 15:20:04 2016 + automake: add more missing options for make distcheck Namely - opencl, osmesa (only the gallium flavour as it conflicts with the classic one), surfaceless egl platform and a couple gallium drivers (virgl and vc4). Cc: "11.1 11.2" Signed-off-by: Emil Velikov --- Makefile.am | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index 5df8bc3..2c06e3a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -24,19 +24,21 @@ SUBDIRS = src AM_DISTCHECK_CONFIGURE_FLAGS = \ --enable-dri3 \ --enable-gallium-tests \ + --enable-gallium-osmesa \ --enable-gbm \ --enable-gles1 \ --enable-gles2 \ --enable-glx-tls \ --enable-nine \ + --enable-opencl \ --enable-va \ --enable-vdpau \ --enable-xa \ --enable-xvmc \ --disable-llvm-shared-libs \ - --with-egl-platforms=x11,wayland,drm \ + --with-egl-platforms=x11,wayland,drm,surfaceless \ --with-dri-drivers=i915,i965,nouveau,radeon,r200,swrast \ - --with-gallium-drivers=i915,ilo,nouveau,r300,r600,radeonsi,freedreno,svga,swrast + --with-gallium-drivers=i915,ilo,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,vc4,virgl ACLOCAL_AMFLAGS = -I m4 ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): Android: clean-up and fix DRI module path handling
Module: Mesa Branch: master Commit: 8949edf01863ade9c87a02e1256bba083f14317a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8949edf01863ade9c87a02e1256bba083f14317a Author: Rob Herring Date: Wed Feb 24 12:56:28 2016 -0600 Android: clean-up and fix DRI module path handling MESA_DRI_MODULE_PATH is only getting set for classic DRI drivers and may or may not be set correctly for gallium_dri.so depending on the makefile include ordering. For Android 6 and earlier it is fine, but with build system changes in AOSP master, it is not. Move the path variables to a single place at the top level and introduce MESA_DRI_MODULE_REL_PATH for Android 5 and later which require relative paths. With this, there is a single variable to change. Cc: "11.1 11.2" Signed-off-by: Rob Herring Reviewed-by: Emil Velikov --- Android.mk | 4 src/egl/Android.mk | 6 +++--- src/gallium/targets/dri/Android.mk | 3 ++- src/mesa/drivers/dri/Android.mk | 3 --- src/mesa/drivers/dri/i915/Android.mk | 2 +- src/mesa/drivers/dri/i965/Android.mk | 2 +- 6 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Android.mk b/Android.mk index 2c56b73..67d894f 100644 --- a/Android.mk +++ b/Android.mk @@ -42,6 +42,10 @@ $(call local-intermediates-dir) endef endif +MESA_DRI_MODULE_REL_PATH := dri +MESA_DRI_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/$(MESA_DRI_MODULE_REL_PATH) +MESA_DRI_MODULE_UNSTRIPPED_PATH := $(TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED)/$(MESA_DRI_MODULE_REL_PATH) + MESA_COMMON_MK := $(MESA_TOP)/Android.common.mk MESA_PYTHON2 := python diff --git a/src/egl/Android.mk b/src/egl/Android.mk index cf71251..51a9202 100644 --- a/src/egl/Android.mk +++ b/src/egl/Android.mk @@ -44,10 +44,10 @@ LOCAL_CFLAGS := \ -DHAVE_ANDROID_PLATFORM ifeq ($(MESA_LOLLIPOP_BUILD),true) -LOCAL_CFLAGS_32 := -DDEFAULT_DRIVER_DIR=\"/system/lib/dri\" -LOCAL_CFLAGS_64 := -DDEFAULT_DRIVER_DIR=\"/system/lib64/dri\" +LOCAL_CFLAGS_32 := -DDEFAULT_DRIVER_DIR=\"/system/lib/$(MESA_DRI_MODULE_REL_PATH)\" +LOCAL_CFLAGS_64 := -DDEFAULT_DRIVER_DIR=\"/system/lib64/$(MESA_DRI_MODULE_REL_PATH)\" else -LOCAL_CFLAGS += -DDEFAULT_DRIVER_DIR=\"/system/lib/dri\" +LOCAL_CFLAGS += -DDEFAULT_DRIVER_DIR=\"/system/lib/$(MESA_DRI_MODULE_REL_PATH)\" endif LOCAL_C_INCLUDES := \ diff --git a/src/gallium/targets/dri/Android.mk b/src/gallium/targets/dri/Android.mk index 4acd093..7da0e8a 100644 --- a/src/gallium/targets/dri/Android.mk +++ b/src/gallium/targets/dri/Android.mk @@ -28,9 +28,10 @@ include $(CLEAR_VARS) LOCAL_MODULE := gallium_dri ifeq ($(MESA_LOLLIPOP_BUILD),true) -LOCAL_MODULE_RELATIVE_PATH := $(notdir $(MESA_DRI_MODULE_PATH)) +LOCAL_MODULE_RELATIVE_PATH := $(MESA_DRI_MODULE_REL_PATH) else LOCAL_MODULE_PATH := $(MESA_DRI_MODULE_PATH) +LOCAL_UNSTRIPPED_PATH := $(MESA_DRI_MODULE_UNSTRIPPED_PATH) endif LOCAL_SRC_FILES := target.c diff --git a/src/mesa/drivers/dri/Android.mk b/src/mesa/drivers/dri/Android.mk index 1789762..7e7587b 100644 --- a/src/mesa/drivers/dri/Android.mk +++ b/src/mesa/drivers/dri/Android.mk @@ -28,9 +28,6 @@ include $(LOCAL_PATH)/common/Makefile.sources #--- # Variables common to all DRI drivers -MESA_DRI_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/dri -MESA_DRI_MODULE_UNSTRIPPED_PATH := $(TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED)/dri - MESA_DRI_CFLAGS := \ -DHAVE_ANDROID_PLATFORM diff --git a/src/mesa/drivers/dri/i915/Android.mk b/src/mesa/drivers/dri/i915/Android.mk index b95d5c1..97359fa 100644 --- a/src/mesa/drivers/dri/i915/Android.mk +++ b/src/mesa/drivers/dri/i915/Android.mk @@ -27,7 +27,7 @@ include $(CLEAR_VARS) LOCAL_MODULE := i915_dri ifeq ($(MESA_LOLLIPOP_BUILD),true) -LOCAL_MODULE_RELATIVE_PATH := $(notdir $(MESA_DRI_MODULE_PATH)) +LOCAL_MODULE_RELATIVE_PATH := $(MESA_DRI_MODULE_REL_PATH) else LOCAL_MODULE_PATH := $(MESA_DRI_MODULE_PATH) LOCAL_UNSTRIPPED_PATH := $(MESA_DRI_MODULE_UNSTRIPPED_PATH) diff --git a/src/mesa/drivers/dri/i965/Android.mk b/src/mesa/drivers/dri/i965/Android.mk index 4f2e6db..056b223 100644 --- a/src/mesa/drivers/dri/i965/Android.mk +++ b/src/mesa/drivers/dri/i965/Android.mk @@ -27,7 +27,7 @@ include $(CLEAR_VARS) LOCAL_MODULE := i965_dri ifeq ($(MESA_LOLLIPOP_BUILD),true) -LOCAL_MODULE_RELATIVE_PATH := $(notdir $(MESA_DRI_MODULE_PATH)) +LOCAL_MODULE_RELATIVE_PATH := $(MESA_DRI_MODULE_REL_PATH) else LOCAL_MODULE_PATH := $(MESA_DRI_MODULE_PATH) LOCAL_UNSTRIPPED_PATH := $(MESA_DRI_MODULE_UNSTRIPPED_PATH) ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): freedreno: drop unnecessary -Wno-packed-bitfield-compat
Module: Mesa Branch: master Commit: 0156a33aa39db6ebe15666fce8f1e073cb737b34 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0156a33aa39db6ebe15666fce8f1e073cb737b34 Author: Rob Herring Date: Wed Feb 24 12:56:29 2016 -0600 freedreno: drop unnecessary -Wno-packed-bitfield-compat Enabling this warning doesn't generate any warnings with gcc, but is an unknown option for clang, so drop it. Signed-off-by: Rob Herring Acked-by: Rob Clark (v1) Cc: "11.1 11.2" v2: keep the warning around, commented out Signed-off-by: Emil Velikov --- src/gallium/drivers/freedreno/Android.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/freedreno/Android.mk b/src/gallium/drivers/freedreno/Android.mk index 8c1ab08..d25adb4 100644 --- a/src/gallium/drivers/freedreno/Android.mk +++ b/src/gallium/drivers/freedreno/Android.mk @@ -32,8 +32,8 @@ LOCAL_SRC_FILES := \ $(a4xx_SOURCES) \ $(ir3_SOURCES) -LOCAL_CFLAGS := \ - -Wno-packed-bitfield-compat +#LOCAL_CFLAGS := \ +# -Wno-packed-bitfield-compat LOCAL_C_INCLUDES := \ $(LOCAL_PATH)/ir3 ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): Android: glsl: fix dependence on YACC_HEADER_SUFFIX from build system
Module: Mesa Branch: master Commit: a2f16db19b18bcb0e00702b17adc84483c17c590 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a2f16db19b18bcb0e00702b17adc84483c17c590 Author: Rob Herring Date: Wed Feb 24 12:56:25 2016 -0600 Android: glsl: fix dependence on YACC_HEADER_SUFFIX from build system The makefile was implicitly picking up YACC_HEADER_SUFFIX from the Android build system, but this variable is now gone. Add it locally to fix the build with AOSP master. Cc: "11.1 11.2" Signed-off-by: Rob Herring Reviewed-by: Emil Velikov --- src/compiler/glsl/Android.gen.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/compiler/glsl/Android.gen.mk b/src/compiler/glsl/Android.gen.mk index c0902b2..de5cd0f 100644 --- a/src/compiler/glsl/Android.gen.mk +++ b/src/compiler/glsl/Android.gen.mk @@ -51,6 +51,8 @@ define glsl_local-y-to-c-and-h $(hide) $(YACC) -o $@ -p "glcpp_parser_" $< endef +YACC_HEADER_SUFFIX := .hpp + define local-yy-to-cpp-and-h @mkdir -p $(dir $@) @echo "Mesa Yacc: $(PRIVATE_MODULE) <= $<" ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): Android: remove headers from LOCAL_SRC_FILES
Module: Mesa Branch: master Commit: 0663edf85b8e055dfecf290afab1a15c68da961a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0663edf85b8e055dfecf290afab1a15c68da961a Author: Rob Herring Date: Wed Feb 24 12:56:27 2016 -0600 Android: remove headers from LOCAL_SRC_FILES The Android build system now spits out warnings for header files listed in LOCAL_SRC_FILES, so strip them out. Cc: "11.1 11.2" Signed-off-by: Rob Herring Reviewed-by: Emil Velikov --- Android.common.mk | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Android.common.mk b/Android.common.mk index 7ca989c..610b213 100644 --- a/Android.common.mk +++ b/Android.common.mk @@ -89,3 +89,6 @@ LOCAL_CPPFLAGS += \ ifeq ($(strip $(LOCAL_MODULE_TAGS)),) LOCAL_MODULE_TAGS := optional endif + +# Quiet down the build system and remove any .h files from the sources +LOCAL_SRC_FILES := $(patsubst %.h, , $(LOCAL_SRC_FILES)) ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): gallium/radeon: remove separate BE path in r600_translate_colorswap
Module: Mesa Branch: master Commit: 9559071ed602e62c3619b8b8b02ac7e47a7eff8c URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9559071ed602e62c3619b8b8b02ac7e47a7eff8c Author: Oded Gabbay Date: Thu Feb 25 22:35:00 2016 +0200 gallium/radeon: remove separate BE path in r600_translate_colorswap After further testing, it appears there is no need for separate BE path in r600_translate_colorswap() The only fix remaining is the change of the last if statement, in the 4 channels case. Originally, it contained an invalid swizzle configuration that never got hit, in LE or BE. So the fix is relevant for both systems. This patch adds an additional 120 available visuals for LE and BE, as seen in glxinfo v2: Tested for regressions by running piglit gpu.py with CAICOS (r600g) on x86-64 machine. No regressions found. Signed-off-by: Oded Gabbay Cc: "11.1 11.2" Reviewed-by: Marek Olšák --- src/gallium/drivers/radeon/r600_texture.c | 13 + 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/src/gallium/drivers/radeon/r600_texture.c b/src/gallium/drivers/radeon/r600_texture.c index 9a3ccb5..454d0f1 100644 --- a/src/gallium/drivers/radeon/r600_texture.c +++ b/src/gallium/drivers/radeon/r600_texture.c @@ -1293,25 +1293,14 @@ unsigned r600_translate_colorswap(enum pipe_format format) break; case 4: /* check the middle channels, the 1st and 4th channel can be NONE */ -#ifdef PIPE_ARCH_LITTLE_ENDIAN if (HAS_SWIZZLE(1,Y) && HAS_SWIZZLE(2,Z)) return V_0280A0_SWAP_STD; /* XYZW */ else if (HAS_SWIZZLE(1,Z) && HAS_SWIZZLE(2,Y)) return V_0280A0_SWAP_STD_REV; /* WZYX */ else if (HAS_SWIZZLE(1,Y) && HAS_SWIZZLE(2,X)) return V_0280A0_SWAP_ALT; /* ZYXW */ - else if (HAS_SWIZZLE(1,X) && HAS_SWIZZLE(2,Y)) - return V_0280A0_SWAP_ALT_REV; /* WXYZ */ -#else - if (HAS_SWIZZLE(1,W) && HAS_SWIZZLE(2,X)) - return V_0280A0_SWAP_STD_REV; /* ZWXY */ - else if (HAS_SWIZZLE(1,X) && HAS_SWIZZLE(2,W)) - return V_0280A0_SWAP_STD; /* YXWZ */ - else if (HAS_SWIZZLE(1,W) && HAS_SWIZZLE(2,Z)) - return V_0280A0_SWAP_ALT_REV; /* XWZY */ else if (HAS_SWIZZLE(1,Z) && HAS_SWIZZLE(2,W)) - return V_0280A0_SWAP_ALT; /* YZWX */ -#endif + return V_0280A0_SWAP_ALT_REV; /* YZWX */ break; } return ~0U; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): gallium/radeon: disable evergreen_do_fast_color_clear for BE
Module: Mesa Branch: master Commit: a640ad15e1fff3eb51f42bf30c31eafe02a921e2 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a640ad15e1fff3eb51f42bf30c31eafe02a921e2 Author: Oded Gabbay Date: Thu Feb 25 22:36:38 2016 +0200 gallium/radeon: disable evergreen_do_fast_color_clear for BE This function is currently broken for BE. I assume it's because of util_pack_color(). Until I fix this path, I prefer to disable it so users would be able to see correct colors on their desktop and applications. Together with the two following patches: - gallium/r600: Don't let h/w do endian swap for colorformat - gallium/radeon: remove separate BE path in r600_translate_colorswap it fixes BZ#72877 and BZ#92039 Signed-off-by: Oded Gabbay Cc: "11.1 11.2" Reviewed-by: Marek Olšák --- src/gallium/drivers/radeon/r600_texture.c | 5 + 1 file changed, 5 insertions(+) diff --git a/src/gallium/drivers/radeon/r600_texture.c b/src/gallium/drivers/radeon/r600_texture.c index 454d0f1..0b31d0a 100644 --- a/src/gallium/drivers/radeon/r600_texture.c +++ b/src/gallium/drivers/radeon/r600_texture.c @@ -1408,6 +1408,11 @@ void evergreen_do_fast_color_clear(struct r600_common_context *rctx, { int i; + /* This function is broken in BE, so just disable this path for now */ +#ifdef PIPE_ARCH_BIG_ENDIAN + return; +#endif + if (rctx->render_cond) return; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): gallium/r600: Don't let h/w do endian swap for colorformat
Module: Mesa Branch: master Commit: e3dfc0e095bba74aaaea4d6f994c29fdf954cbad URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e3dfc0e095bba74aaaea4d6f994c29fdf954cbad Author: Oded Gabbay Date: Thu Feb 25 23:09:18 2016 +0200 gallium/r600: Don't let h/w do endian swap for colorformat Since the rework on gallium pipe formats, there is no more need to do endian swap of the colorformat in the h/w, because the conversion between mesa format and gallium (pipe) format takes endianess into account (see the big #if in p_format.h). v2: return ENDIAN_NONE only for four 8-bits components (V_0280A0_COLOR_8_8_8_8) Signed-off-by: Oded Gabbay Cc: "11.1 11.2" Reviewed-by: Marek Olšák --- src/gallium/drivers/r600/r600_state_common.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c index c3346f2..b231d1e 100644 --- a/src/gallium/drivers/r600/r600_state_common.c +++ b/src/gallium/drivers/r600/r600_state_common.c @@ -2721,6 +2721,13 @@ uint32_t r600_colorformat_endian_swap(uint32_t colorformat) /* 32-bit buffers. */ case V_0280A0_COLOR_8_8_8_8: + /* +* No need to do endian swaps on four 8-bits components, +* as mesa<-->pipe formats conversion take into account +* the endianess +*/ + return ENDIAN_NONE; + case V_0280A0_COLOR_2_10_10_10: case V_0280A0_COLOR_8_24: case V_0280A0_COLOR_24_8: ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit