Mesa (master): vulkan: Drop vk_android_native_buffer.xml
Module: Mesa Branch: master Commit: 69f447553c6cd8c9004b80c099630ce7167a0a28 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=69f447553c6cd8c9004b80c099630ce7167a0a28 Author: Jason EkstrandDate: Mon Apr 9 22:01:14 2018 -0700 vulkan: Drop vk_android_native_buffer.xml All the information in vk_android_native_buffer.xml is now in vk.xml. The only exception is the extension type attribute which we can work around in the generators while we wait for the XML to be fixed. Reviewed-by: Dylan Baker --- src/Makefile.am | 1 - src/amd/vulkan/Makefile.am | 3 -- src/amd/vulkan/meson.build | 4 +- src/amd/vulkan/radv_extensions.py| 17 +++- src/intel/Android.vulkan.mk | 6 +-- src/intel/Makefile.vulkan.am | 13 ++ src/intel/vulkan/anv_extensions_gen.py | 17 +++- src/intel/vulkan/meson.build | 12 +++--- src/vulkan/Android.mk| 4 +- src/vulkan/Makefile.am | 5 +-- src/vulkan/meson.build | 1 - src/vulkan/registry/vk_android_native_buffer.xml | 52 12 files changed, 26 insertions(+), 109 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index 014ffaf3e2..fd5ae44550 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -67,7 +67,6 @@ SUBDIRS += vulkan endif EXTRA_DIST += vulkan/registry/vk.xml -EXTRA_DIST += vulkan/registry/vk_android_native_buffer.xml if HAVE_AMD_DRIVERS SUBDIRS += amd diff --git a/src/amd/vulkan/Makefile.am b/src/amd/vulkan/Makefile.am index 00b808229f..18f263ab44 100644 --- a/src/amd/vulkan/Makefile.am +++ b/src/amd/vulkan/Makefile.am @@ -117,13 +117,11 @@ nodist_EXTRA_libvulkan_radeon_la_SOURCES = dummy.cpp libvulkan_radeon_la_SOURCES = $(VULKAN_GEM_FILES) vulkan_api_xml = $(top_srcdir)/src/vulkan/registry/vk.xml -vk_android_native_buffer_xml = $(top_srcdir)/src/vulkan/registry/vk_android_native_buffer.xml radv_entrypoints.c: radv_entrypoints_gen.py radv_extensions.py $(vulkan_api_xml) $(MKDIR_GEN) $(AM_V_GEN)$(PYTHON2) $(srcdir)/radv_entrypoints_gen.py \ --xml $(vulkan_api_xml) \ - --xml $(vk_android_native_buffer_xml) \ --outdir $(builddir) radv_entrypoints.h: radv_entrypoints.c @@ -132,7 +130,6 @@ radv_extensions.c: radv_extensions.py \ $(MKDIR_GEN) $(AM_V_GEN)$(PYTHON2) $(srcdir)/radv_extensions.py \ --xml $(vulkan_api_xml) \ - --xml $(vk_android_native_buffer_xml) \ --out-c radv_extensions.c \ --out-h radv_extensions.h radv_extensions.h: radv_extensions.c diff --git a/src/amd/vulkan/meson.build b/src/amd/vulkan/meson.build index c3a6a8182b..b5a99fe91e 100644 --- a/src/amd/vulkan/meson.build +++ b/src/amd/vulkan/meson.build @@ -31,10 +31,10 @@ radv_entrypoints = custom_target( radv_extensions_c = custom_target( 'radv_extensions.c', - input : ['radv_extensions.py', vk_api_xml, vk_android_native_buffer_xml], + input : ['radv_extensions.py', vk_api_xml], output : ['radv_extensions.c', 'radv_extensions.h'], command : [ -prog_python2, '@INPUT0@', '--xml', '@INPUT1@', '--xml', '@INPUT2@', '--out-c', '@OUTPUT0@', +prog_python2, '@INPUT0@', '--xml', '@INPUT1@', '--out-c', '@OUTPUT0@', '--out-h', '@OUTPUT1@' ], ) diff --git a/src/amd/vulkan/radv_extensions.py b/src/amd/vulkan/radv_extensions.py index a25db637e2..a680f42dec 100644 --- a/src/amd/vulkan/radv_extensions.py +++ b/src/amd/vulkan/radv_extensions.py @@ -159,18 +159,13 @@ def _init_exts_from_xml(xml): if ext_name not in ext_name_map: continue -# Workaround for VK_ANDROID_native_buffer. Its element in -# vk.xml lists it as supported="disabled" and provides only a stub -# definition. Its element in Mesa's custom -# vk_android_native_buffer.xml, though, lists it as -# supported='android-vendor' and fully defines the extension. We want -# to skip the element in vk.xml. -if ext_elem.attrib['supported'] == 'disabled': -assert ext_name == 'VK_ANDROID_native_buffer' -continue - ext = ext_name_map[ext_name] -ext.type = ext_elem.attrib['type'] +if ext_name == 'VK_ANDROID_native_buffer': +# VK_ANDROID_native_buffer is missing the type specifier. Just +# hard-code it to be a device extension for now. +ext.type = 'device' +else: +ext.type = ext_elem.attrib['type'] _TEMPLATE_H = Template(COPYRIGHT + """ #ifndef RADV_EXTENSIONS_H diff --git a/src/intel/Android.vulkan.mk b/src/intel/Android.vulkan.mk index 0ec0d78a2f..09dc22875a 100644 --- a/src/intel/Android.vulkan.mk +++ b/src/intel/Android.vulkan.mk @@ -67,8 +67,7 @@
Mesa (master): nir/lower_atomics: Rework the main walker loop a bit
Module: Mesa Branch: master Commit: ae3a856c34e348f721c2d647999813801b5eb33c URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ae3a856c34e348f721c2d647999813801b5eb33c Author: Jason EkstrandDate: Tue Mar 20 15:44:16 2018 -0700 nir/lower_atomics: Rework the main walker loop a bit This replaces some "if (...} { }" with "if (...) continue;" to reduce nesting depth and makes nir_metadata_preserve conditional on progress for the given impl. Reviewed-by: Caio Marcelo de Oliveira Filho --- src/compiler/nir/nir_lower_atomics.c | 24 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/compiler/nir/nir_lower_atomics.c b/src/compiler/nir/nir_lower_atomics.c index 6b046bc426..ee66aa3d7d 100644 --- a/src/compiler/nir/nir_lower_atomics.c +++ b/src/compiler/nir/nir_lower_atomics.c @@ -183,18 +183,26 @@ nir_lower_atomics(nir_shader *shader, bool progress = false; nir_foreach_function(function, shader) { - if (function->impl) { - nir_foreach_block(block, function->impl) { -nir_foreach_instr_safe(instr, block) { - if (instr->type == nir_instr_type_intrinsic) - progress |= lower_instr(nir_instr_as_intrinsic(instr), - shader_program, shader, - use_binding_as_idx); -} + if (!function->impl) + continue; + + bool impl_progress = false; + + nir_foreach_block(block, function->impl) { + nir_foreach_instr_safe(instr, block) { +if (instr->type != nir_instr_type_intrinsic) + continue; + +impl_progress |= lower_instr(nir_instr_as_intrinsic(instr), + shader_program, shader, + use_binding_as_idx); } + } + if (impl_progress) { nir_metadata_preserve(function->impl, nir_metadata_block_index | nir_metadata_dominance); + progress = true; } } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): radv: Enable RB+ where possible.
Module: Mesa Branch: master Commit: ed9463815644c85c124c72111d96e256db2986b4 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ed9463815644c85c124c72111d96e256db2986b4 Author: Bas NieuwenhuizenDate: Mon Apr 9 11:23:21 2018 +0200 radv: Enable RB+ where possible. According to Marek, not enabling it on Stoney has a significant negative performance impact. (And I guess this might impact performance on Raven as well) The register settings are pretty much copied from radeonsi. I did not put this in the pipeline as that would make the pipeline more dependent on the format which mean we would have to have more pipelines for the meta shaders. v2: Don't clear RB+ regs if not enabled as the CLEAR_STATE packet does already. Reviewed-by: Samuel Pitoiset --- src/amd/vulkan/radv_cmd_buffer.c | 140 +++ src/amd/vulkan/radv_pipeline.c | 13 ++-- src/amd/vulkan/radv_private.h| 4 ++ 3 files changed, 151 insertions(+), 6 deletions(-) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 3b1d6aedc8..f73526b5fc 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -679,6 +679,142 @@ radv_emit_prefetch_L2(struct radv_cmd_buffer *cmd_buffer, } static void +radv_emit_rbplus_state(struct radv_cmd_buffer *cmd_buffer) +{ + if (!cmd_buffer->device->physical_device->rbplus_allowed) + return; + + struct radv_pipeline *pipeline = cmd_buffer->state.pipeline; + struct radv_framebuffer *framebuffer = cmd_buffer->state.framebuffer; + const struct radv_subpass *subpass = cmd_buffer->state.subpass; + + unsigned sx_ps_downconvert = 0; + unsigned sx_blend_opt_epsilon = 0; + unsigned sx_blend_opt_control = 0; + + for (unsigned i = 0; i < subpass->color_count; ++i) { + if (subpass->color_attachments[i].attachment == VK_ATTACHMENT_UNUSED) + continue; + + int idx = subpass->color_attachments[i].attachment; + struct radv_color_buffer_info *cb = >attachments[idx].cb; + + unsigned format = G_028C70_FORMAT(cb->cb_color_info); + unsigned swap = G_028C70_COMP_SWAP(cb->cb_color_info); + uint32_t spi_format = (pipeline->graphics.col_format >> (i * 4)) & 0xf; + uint32_t colormask = (pipeline->graphics.cb_target_mask >> (i * 4)) & 0xf; + + bool has_alpha, has_rgb; + + /* Set if RGB and A are present. */ + has_alpha = !G_028C74_FORCE_DST_ALPHA_1(cb->cb_color_attrib); + + if (format == V_028C70_COLOR_8 || + format == V_028C70_COLOR_16 || + format == V_028C70_COLOR_32) + has_rgb = !has_alpha; + else + has_rgb = true; + + /* Check the colormask and export format. */ + if (!(colormask & 0x7)) + has_rgb = false; + if (!(colormask & 0x8)) + has_alpha = false; + + if (spi_format == V_028714_SPI_SHADER_ZERO) { + has_rgb = false; + has_alpha = false; + } + + /* Disable value checking for disabled channels. */ + if (!has_rgb) + sx_blend_opt_control |= S_02875C_MRT0_COLOR_OPT_DISABLE(1) << (i * 4); + if (!has_alpha) + sx_blend_opt_control |= S_02875C_MRT0_ALPHA_OPT_DISABLE(1) << (i * 4); + + /* Enable down-conversion for 32bpp and smaller formats. */ + switch (format) { + case V_028C70_COLOR_8: + case V_028C70_COLOR_8_8: + case V_028C70_COLOR_8_8_8_8: + /* For 1 and 2-channel formats, use the superset thereof. */ + if (spi_format == V_028714_SPI_SHADER_FP16_ABGR || + spi_format == V_028714_SPI_SHADER_UINT16_ABGR || + spi_format == V_028714_SPI_SHADER_SINT16_ABGR) { + sx_ps_downconvert |= V_028754_SX_RT_EXPORT_8_8_8_8 << (i * 4); + sx_blend_opt_epsilon |= V_028758_8BIT_FORMAT << (i * 4); + } + break; + + case V_028C70_COLOR_5_6_5: + if (spi_format == V_028714_SPI_SHADER_FP16_ABGR) { + sx_ps_downconvert |= V_028754_SX_RT_EXPORT_5_6_5 << (i * 4); + sx_blend_opt_epsilon |= V_028758_6BIT_FORMAT << (i * 4); + } + break; + + case V_028C70_COLOR_1_5_5_5: + if (spi_format == V_028714_SPI_SHADER_FP16_ABGR) { + sx_ps_downconvert |=
Mesa (master): nir: Check if u_vector_init() succeeds
Module: Mesa Branch: master Commit: 5d895a1f374854a068104f07f79a24fc79110aea URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5d895a1f374854a068104f07f79a24fc79110aea Author: Topi PohjolainenDate: Thu Apr 5 10:21:01 2018 +0300 nir: Check if u_vector_init() succeeds However, it only fails when running out of memory. Now, if we are about to check that, we should be consistent and check the allocation of the worklist as well. CID: 1433512 Fixes: edb18564c7 nir: Initial implementation of a nir_instr_worklist Reviewed-by: Thomas Helland Signed-off-by: Topi Pohjolainen --- src/compiler/nir/nir_worklist.h | 11 +-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/compiler/nir/nir_worklist.h b/src/compiler/nir/nir_worklist.h index e376908766..3fb391fcef 100644 --- a/src/compiler/nir/nir_worklist.h +++ b/src/compiler/nir/nir_worklist.h @@ -105,8 +105,15 @@ typedef struct { static inline nir_instr_worklist * nir_instr_worklist_create() { nir_instr_worklist *wl = malloc(sizeof(nir_instr_worklist)); - u_vector_init(>instr_vec, sizeof(struct nir_instr *), - sizeof(struct nir_instr *) * 8); + if (!wl) + return NULL; + + if (!u_vector_init(>instr_vec, sizeof(struct nir_instr *), + sizeof(struct nir_instr *) * 8)) { + free(wl); + return NULL; + } + return wl; } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): mesa: Assert base format before truncating to unsigned short
Module: Mesa Branch: master Commit: 98d38747543277cf931499a6b66626ac644b1865 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=98d38747543277cf931499a6b66626ac644b1865 Author: Topi PohjolainenDate: Fri Apr 6 10:41:26 2018 +0300 mesa: Assert base format before truncating to unsigned short CID: 1433709 Fixes: ca721b3d8: mesa: use GLenum16 in a few more places Reviewed-by: Marek Olšák Reviewed-by: Brian Paul Signed-off-by: Topi Pohjolainen --- src/mesa/main/teximage.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index 8f5351085c..f560512fb4 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -845,6 +845,7 @@ _mesa_init_teximage_fields_ms(struct gl_context *ctx, mesa_format format, GLuint numSamples, GLboolean fixedSampleLocations) { + const GLint base_format =_mesa_base_tex_format(ctx, internalFormat); GLenum target; assert(img); assert(width >= 0); @@ -852,8 +853,8 @@ _mesa_init_teximage_fields_ms(struct gl_context *ctx, assert(depth >= 0); target = img->TexObject->Target; - img->_BaseFormat = _mesa_base_tex_format( ctx, internalFormat ); - assert(img->_BaseFormat != -1); + assert(base_format != -1); + img->_BaseFormat = (GLenum16)base_format; img->InternalFormat = internalFormat; img->Border = border; img->Width = width; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): intel/dev: Assert the number of slices is not zero
Module: Mesa Branch: master Commit: 26f48fe01092e2fb05daaa5090ac69f8a86a2cfd URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=26f48fe01092e2fb05daaa5090ac69f8a86a2cfd Author: Topi PohjolainenDate: Thu Apr 5 10:38:46 2018 +0300 intel/dev: Assert the number of slices is not zero Fixes: c1900f5b intel: devinfo: add helper functions to fill... CID: 1433511 Reviewed-by: Lionel Landwerlin Signed-off-by: Topi Pohjolainen --- src/intel/dev/gen_device_info.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/intel/dev/gen_device_info.c b/src/intel/dev/gen_device_info.c index f7cb94f179..dfeab6e606 100644 --- a/src/intel/dev/gen_device_info.c +++ b/src/intel/dev/gen_device_info.c @@ -1047,7 +1047,7 @@ gen_device_info_update_from_topology(struct gen_device_info *devinfo, /* We expect the total number of EUs to be uniformly distributed throughout * the subslices. */ - assert((n_eus % n_subslices) == 0); + assert(n_subslices && (n_eus % n_subslices) == 0); devinfo->num_eu_per_subslice = n_eus / n_subslices; } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): i965: Remove brw_bo_alloc_tiled_2d from intel_detect_swizzling.
Module: Mesa Branch: master Commit: 8960903c90e65c4d824e4ec247e5135d6909caa1 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8960903c90e65c4d824e4ec247e5135d6909caa1 Author: Kenneth GraunkeDate: Mon Apr 9 22:45:43 2018 -0700 i965: Remove brw_bo_alloc_tiled_2d from intel_detect_swizzling. I'd like to drop this pre-isl function. This drops one of the two uses. Reviewed-by: Iago Toral Quiroga --- src/mesa/drivers/dri/i965/intel_screen.c | 14 -- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c index 29cb7ad57d..7f3c82fab8 100644 --- a/src/mesa/drivers/dri/i965/intel_screen.c +++ b/src/mesa/drivers/dri/i965/intel_screen.c @@ -1828,24 +1828,18 @@ intel_init_bufmgr(struct intel_screen *screen) static bool intel_detect_swizzling(struct intel_screen *screen) { - struct brw_bo *buffer; - unsigned flags = 0; - uint32_t aligned_pitch; uint32_t tiling = I915_TILING_X; uint32_t swizzle_mode = 0; - - buffer = brw_bo_alloc_tiled_2d(screen->bufmgr, "swizzle test", - 64, 64, 4, tiling, _pitch, flags); + struct brw_bo *buffer = + brw_bo_alloc_tiled(screen->bufmgr, "swizzle test", 32768, + tiling, 512, 0); if (buffer == NULL) return false; brw_bo_get_tiling(buffer, , _mode); brw_bo_unreference(buffer); - if (swizzle_mode == I915_BIT_6_SWIZZLE_NONE) - return false; - else - return true; + return swizzle_mode != I915_BIT_6_SWIZZLE_NONE; } static int ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): mesa: fix glsl version mismatch in compat profile
Module: Mesa Branch: master Commit: a05faf80c380a03347604e79136627267ff9f893 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a05faf80c380a03347604e79136627267ff9f893 Author: Timothy ArceriDate: Tue Apr 10 21:40:11 2018 +1000 mesa: fix glsl version mismatch in compat profile Drivers that only support compat 3.0 were reporting GLSL 1.40 support. This fixes issues with the menu of Dawn of War II. Fixes: a0c8b49284ef "mesa: enable OpenGL 3.1 with ARB_compatibility" Reviewed-by: Marek Olšák Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105807 --- src/mesa/main/version.c | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c index 0a4e7630da..84babd69e2 100644 --- a/src/mesa/main/version.c +++ b/src/mesa/main/version.c @@ -620,8 +620,11 @@ _mesa_compute_version(struct gl_context *ctx) /* Make sure that the GLSL version lines up with the GL version. In some * cases it can be too high, e.g. if an extension is missing. */ - if (_mesa_is_desktop_gl(ctx) && ctx->Version >= 31) { + if (_mesa_is_desktop_gl(ctx)) { switch (ctx->Version) { + case 30: + ctx->Const.GLSLVersion = 130; + break; case 31: ctx->Const.GLSLVersion = 140; break; @@ -629,7 +632,8 @@ _mesa_compute_version(struct gl_context *ctx) ctx->Const.GLSLVersion = 150; break; default: - ctx->Const.GLSLVersion = ctx->Version * 10; + if (ctx->Version >= 33) +ctx->Const.GLSLVersion = ctx->Version * 10; break; } } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): radv: add shader BOs to the list at pipeline bind time
Module: Mesa Branch: master Commit: 9f6a28eb27ca059cbadfa5e277bfe4509a426615 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9f6a28eb27ca059cbadfa5e277bfe4509a426615 Author: Samuel PitoisetDate: Tue Apr 10 14:09:04 2018 +0200 radv: add shader BOs to the list at pipeline bind time Otherwise, the shader BOs are not added to the list on SI because prefetching isn't supported. Calling radv_cs_add_buffer() in the prefetch codepath was a bad idea. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105952 Fixes: 4ad7595f35 ("radv: rename radv_emit_prefetch() to radv_emit_prefetch_L2") Signed-off-by: Samuel Pitoiset Tested-by: Turo Lamminen Reviewed-by: Bas Nieuwenhuizen --- src/amd/vulkan/radv_cmd_buffer.c | 18 +++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 4e89969016..3b1d6aedc8 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -625,8 +625,6 @@ static void radv_emit_shader_prefetch(struct radv_cmd_buffer *cmd_buffer, struct radv_shader_variant *shader) { - struct radeon_winsys *ws = cmd_buffer->device->ws; - struct radeon_winsys_cs *cs = cmd_buffer->cs; uint64_t va; if (!shader) @@ -634,7 +632,6 @@ radv_emit_shader_prefetch(struct radv_cmd_buffer *cmd_buffer, va = radv_buffer_get_va(shader->bo) + shader->bo_offset; - radv_cs_add_buffer(ws, cs, shader->bo, 8); si_cp_dma_prefetch(cmd_buffer, va, shader->code_size); } @@ -702,6 +699,18 @@ radv_emit_graphics_pipeline(struct radv_cmd_buffer *cmd_buffer) radeon_emit_array(cmd_buffer->cs, pipeline->cs.buf, pipeline->cs.cdw); + for (unsigned i = 0; i < MESA_SHADER_COMPUTE; i++) { + if (!pipeline->shaders[i]) + continue; + + radv_cs_add_buffer(cmd_buffer->device->ws, cmd_buffer->cs, + pipeline->shaders[i]->bo, 8); + } + + if (radv_pipeline_has_gs(pipeline)) + radv_cs_add_buffer(cmd_buffer->device->ws, cmd_buffer->cs, + pipeline->gs_copy_shader->bo, 8); + if (unlikely(cmd_buffer->device->trace_bo)) radv_save_pipeline(cmd_buffer, pipeline, RING_GFX); @@ -2280,6 +2289,9 @@ radv_emit_compute_pipeline(struct radv_cmd_buffer *cmd_buffer) MAX2(cmd_buffer->compute_scratch_size_needed, pipeline->max_waves * pipeline->scratch_bytes_per_wave); + radv_cs_add_buffer(cmd_buffer->device->ws, cmd_buffer->cs, + pipeline->shaders[MESA_SHADER_COMPUTE]->bo, 8); + if (unlikely(cmd_buffer->device->trace_bo)) radv_save_pipeline(cmd_buffer, pipeline, RING_COMPUTE); } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): radv: fix picking the method for resolve subpass
Module: Mesa Branch: master Commit: 0babc8e5d665e54783c926b89183ab9a596aa04c URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0babc8e5d665e54783c926b89183ab9a596aa04c Author: Samuel PitoisetDate: Tue Apr 10 16:00:56 2018 +0200 radv: fix picking the method for resolve subpass The source and destination image parameters were swapped. No CTS changes on Polaris10, but I suspect this might fix something. Fixes: 2a04f5481df ("radv/meta: select resolve paths") Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen --- src/amd/vulkan/radv_meta_resolve.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/amd/vulkan/radv_meta_resolve.c b/src/amd/vulkan/radv_meta_resolve.c index bee398378c..e932976df2 100644 --- a/src/amd/vulkan/radv_meta_resolve.c +++ b/src/amd/vulkan/radv_meta_resolve.c @@ -621,7 +621,7 @@ radv_cmd_buffer_resolve_subpass(struct radv_cmd_buffer *cmd_buffer) struct radv_image *dst_img = cmd_buffer->state.framebuffer->attachments[dest_att.attachment].attachment->image; struct radv_image *src_img = cmd_buffer->state.framebuffer->attachments[src_att.attachment].attachment->image; - radv_pick_resolve_method_images(dst_img, src_img, dest_att.layout, cmd_buffer, _method); + radv_pick_resolve_method_images(src_img, dst_img, dest_att.layout, cmd_buffer, _method); if (resolve_method == RESOLVE_FRAGMENT) { break; } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): ac/surface/gfx9: request desired micro tile mode explicitly
Module: Mesa Branch: master Commit: b64b7125586ce48232658cd860f549a6139b6ddd URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b64b7125586ce48232658cd860f549a6139b6ddd Author: Marek OlšákDate: Mon Apr 2 12:54:52 2018 -0400 ac/surface/gfx9: request desired micro tile mode explicitly Tested-by: Dieter Nützel --- src/amd/common/ac_surface.c | 20 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/amd/common/ac_surface.c b/src/amd/common/ac_surface.c index 1e1641daee..b294cd8525 100644 --- a/src/amd/common/ac_surface.c +++ b/src/amd/common/ac_surface.c @@ -814,7 +814,8 @@ static int gfx6_compute_surface(ADDR_HANDLE addrlib, static int gfx9_get_preferred_swizzle_mode(ADDR_HANDLE addrlib, ADDR2_COMPUTE_SURFACE_INFO_INPUT *in, - bool is_fmask, AddrSwizzleMode *swizzle_mode) + bool is_fmask, unsigned flags, + AddrSwizzleMode *swizzle_mode) { ADDR_E_RETURNCODE ret; ADDR2_GET_PREFERRED_SURF_SETTING_INPUT sin = {0}; @@ -839,6 +840,13 @@ gfx9_get_preferred_swizzle_mode(ADDR_HANDLE addrlib, sin.numSamples = in->numSamples; sin.numFrags = in->numFrags; + if (flags & RADEON_SURF_SCANOUT) + sin.preferredSwSet.sw_D = 1; + else if (in->flags.depth || in->flags.stencil || is_fmask) + sin.preferredSwSet.sw_Z = 1; + else + sin.preferredSwSet.sw_S = 1; + if (is_fmask) { sin.flags.color = 0; sin.flags.fmask = 1; @@ -1036,7 +1044,9 @@ static int gfx9_compute_miptree(ADDR_HANDLE addrlib, fin.size = sizeof(ADDR2_COMPUTE_FMASK_INFO_INPUT); fout.size = sizeof(ADDR2_COMPUTE_FMASK_INFO_OUTPUT); - ret = gfx9_get_preferred_swizzle_mode(addrlib, in, true, ); + ret = gfx9_get_preferred_swizzle_mode(addrlib, in, + true, surf->flags, + ); if (ret != ADDR_OK) return ret; @@ -1232,7 +1242,8 @@ static int gfx9_compute_surface(ADDR_HANDLE addrlib, break; } - r = gfx9_get_preferred_swizzle_mode(addrlib, , false, + r = gfx9_get_preferred_swizzle_mode(addrlib, , + false, surf->flags, ); if (r) return r; @@ -1268,7 +1279,8 @@ static int gfx9_compute_surface(ADDR_HANDLE addrlib, AddrSurfInfoIn.format = ADDR_FMT_8; if (!AddrSurfInfoIn.flags.depth) { - r = gfx9_get_preferred_swizzle_mode(addrlib, , false, + r = gfx9_get_preferred_swizzle_mode(addrlib, , + false, surf->flags, ); if (r) return r; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): ac/surface: don't set the display flag for obviously unsupported cases (v2)
Module: Mesa Branch: master Commit: e29facff315ea63b8643766a45b3e56bf1dd8866 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e29facff315ea63b8643766a45b3e56bf1dd8866 Author: Marek OlšákDate: Mon Apr 2 12:51:14 2018 -0400 ac/surface: don't set the display flag for obviously unsupported cases (v2) This enables the tile swizzle for some cases of the displayable micro mode, and it also fixes an addrlib assertion failure on Vega. Reviewed-by: Michel Dänzer --- src/amd/common/ac_surface.c| 34 +++--- src/amd/common/ac_surface.h| 1 + src/amd/vulkan/radv_image.c| 1 + src/gallium/winsys/amdgpu/drm/amdgpu_surface.c | 1 + 4 files changed, 33 insertions(+), 4 deletions(-) diff --git a/src/amd/common/ac_surface.c b/src/amd/common/ac_surface.c index b294cd8525..1b4d72e31b 100644 --- a/src/amd/common/ac_surface.c +++ b/src/amd/common/ac_surface.c @@ -415,6 +415,31 @@ static unsigned cik_get_macro_tile_index(struct radeon_surf *surf) return index; } +static bool get_display_flag(const struct ac_surf_config *config, +const struct radeon_surf *surf) +{ + unsigned num_channels = config->info.num_channels; + unsigned bpe = surf->bpe; + + if (surf->flags & RADEON_SURF_SCANOUT && + !(surf->flags & RADEON_SURF_FMASK) && + config->info.samples <= 1 && + surf->blk_w <= 2 && surf->blk_h == 1) { + /* subsampled */ + if (surf->blk_w == 2 && surf->blk_h == 1) + return true; + + if (/* RGBA8 or RGBA16F */ +(bpe >= 4 && bpe <= 8 && num_channels == 4) || +/* R5G6B5 or R5G5B5A1 */ +(bpe == 2 && num_channels >= 3) || +/* C8 palette */ +(bpe == 1 && num_channels == 1)) + return true; + } + return false; +} + /** * This must be called after the first level is computed. * @@ -449,7 +474,7 @@ static int gfx6_surface_settings(ADDR_HANDLE addrlib, config->info.surf_index && surf->u.legacy.level[0].mode == RADEON_SURF_MODE_2D && !(surf->flags & (RADEON_SURF_Z_OR_SBUFFER | RADEON_SURF_SHAREABLE)) && - (config->info.samples > 1 || !(surf->flags & RADEON_SURF_SCANOUT))) { + !get_display_flag(config, surf)) { ADDR_COMPUTE_BASE_SWIZZLE_INPUT AddrBaseSwizzleIn = {0}; ADDR_COMPUTE_BASE_SWIZZLE_OUTPUT AddrBaseSwizzleOut = {0}; @@ -568,7 +593,7 @@ static int gfx6_compute_surface(ADDR_HANDLE addrlib, AddrSurfInfoIn.flags.depth = (surf->flags & RADEON_SURF_ZBUFFER) != 0; AddrSurfInfoIn.flags.cube = config->is_cube; AddrSurfInfoIn.flags.fmask = (surf->flags & RADEON_SURF_FMASK) != 0; - AddrSurfInfoIn.flags.display = (surf->flags & RADEON_SURF_SCANOUT) != 0; + AddrSurfInfoIn.flags.display = get_display_flag(config, surf); AddrSurfInfoIn.flags.pow2Pad = config->info.levels > 1; AddrSurfInfoIn.flags.tcCompatible = (surf->flags & RADEON_SURF_TC_COMPATIBLE_HTILE) != 0; @@ -848,6 +873,7 @@ gfx9_get_preferred_swizzle_mode(ADDR_HANDLE addrlib, sin.preferredSwSet.sw_S = 1; if (is_fmask) { + sin.flags.display = 0; sin.flags.color = 0; sin.flags.fmask = 1; } @@ -943,7 +969,7 @@ static int gfx9_compute_miptree(ADDR_HANDLE addrlib, in->swizzleMode >= ADDR_SW_64KB_Z_T && !out.mipChainInTail && !(surf->flags & RADEON_SURF_SHAREABLE) && - (in->numSamples > 1 || !(surf->flags & RADEON_SURF_SCANOUT))) { + !in->flags.display) { ADDR2_COMPUTE_PIPEBANKXOR_INPUT xin = {0}; ADDR2_COMPUTE_PIPEBANKXOR_OUTPUT xout = {0}; @@ -1196,7 +1222,7 @@ static int gfx9_compute_surface(ADDR_HANDLE addrlib, AddrSurfInfoIn.flags.color = !(surf->flags & RADEON_SURF_Z_OR_SBUFFER); AddrSurfInfoIn.flags.depth = (surf->flags & RADEON_SURF_ZBUFFER) != 0; - AddrSurfInfoIn.flags.display = (surf->flags & RADEON_SURF_SCANOUT) != 0; + AddrSurfInfoIn.flags.display = get_display_flag(config, surf); /* flags.texture currently refers to TC-compatible HTILE */ AddrSurfInfoIn.flags.texture = AddrSurfInfoIn.flags.color || surf->flags & RADEON_SURF_TC_COMPATIBLE_HTILE; diff --git a/src/amd/common/ac_surface.h b/src/amd/common/ac_surface.h index 71f320af8e..37df859e6d 100644 --- a/src/amd/common/ac_surface.h +++ b/src/amd/common/ac_surface.h @@ -219,6 +219,7 @@ struct ac_surf_info { uint32_t depth; uint8_t samples; uint8_t levels; + uint8_t num_channels; /* heuristic for displayability */
Mesa (master): radeonsi: add shader binary padding for UMR
Module: Mesa Branch: master Commit: 19ce5048eedeac6584ae51f79658656ae53f0e05 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=19ce5048eedeac6584ae51f79658656ae53f0e05 Author: Marek OlšákDate: Thu Apr 5 14:48:37 2018 -0400 radeonsi: add shader binary padding for UMR --- src/gallium/drivers/radeonsi/si_shader.c | 18 +++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index c18915488e..8c62d53e2a 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -5309,6 +5309,10 @@ void si_shader_apply_scratch_relocs(struct si_shader *shader, } } +/* For the UMR disassembler. */ +#define DEBUGGER_END_OF_CODE_MARKER0xbf9f /* invalid instruction */ +#define DEBUGGER_NUM_MARKERS 5 + static unsigned si_get_shader_binary_size(const struct si_shader *shader) { unsigned size = shader->binary.code_size; @@ -5321,7 +5325,7 @@ static unsigned si_get_shader_binary_size(const struct si_shader *shader) size += shader->prolog2->binary.code_size; if (shader->epilog) size += shader->epilog->binary.code_size; - return size; + return size + DEBUGGER_NUM_MARKERS * 4; } int si_shader_binary_upload(struct si_screen *sscreen, struct si_shader *shader) @@ -5380,10 +5384,18 @@ int si_shader_binary_upload(struct si_screen *sscreen, struct si_shader *shader) memcpy(ptr, mainb->code, mainb->code_size); ptr += mainb->code_size; - if (epilog) + if (epilog) { memcpy(ptr, epilog->code, epilog->code_size); - else if (mainb->rodata_size > 0) + ptr += epilog->code_size; + } else if (mainb->rodata_size > 0) { memcpy(ptr, mainb->rodata, mainb->rodata_size); + ptr += mainb->rodata_size; + } + + /* Add end-of-code markers for the UMR disassembler. */ + uint32_t *ptr32 = (uint32_t*)ptr; + for (unsigned i = 0; i < DEBUGGER_NUM_MARKERS; i++) + ptr32[i] = DEBUGGER_END_OF_CODE_MARKER; sscreen->ws->buffer_unmap(shader->bo->buf); return 0; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): glsl: remove unreachable assert()
Module: Mesa Branch: master Commit: 8eceac9de7d3cd4fddabbe61d512acfed9812169 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8eceac9de7d3cd4fddabbe61d512acfed9812169 Author: Emil VelikovDate: Wed Mar 28 18:21:59 2018 +0100 glsl: remove unreachable assert() Earlier commit enforced that we'll bail out if the number of terminators is different than 2. With that in mind, the assert() will never trigger. Fixes: 56b867395de ("glsl: fix infinite loop caused by bug in loop unrolling pass") Reviewed-by: Timothy Arceri Signed-off-by: Emil Velikov --- src/compiler/glsl/loop_unroll.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/compiler/glsl/loop_unroll.cpp b/src/compiler/glsl/loop_unroll.cpp index f6efe6475a..874f418568 100644 --- a/src/compiler/glsl/loop_unroll.cpp +++ b/src/compiler/glsl/loop_unroll.cpp @@ -528,8 +528,6 @@ loop_unroll_visitor::visit_leave(ir_loop *ir) unsigned term_count = 0; bool first_term_then_continue = false; foreach_in_list(loop_terminator, t, >terminators) { - assert(term_count < 2); - ir_if *ir_if = t->ir->as_if(); assert(ir_if != NULL); ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): docs/release-calendar: update to include 18.1 and 18.2
Module: Mesa Branch: master Commit: 5dd02123a05b9cb5ade38d412609df1062843209 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5dd02123a05b9cb5ade38d412609df1062843209 Author: Emil VelikovDate: Mon Apr 9 17:45:52 2018 +0100 docs/release-calendar: update to include 18.1 and 18.2 Dylan has kindly stepped up to help with 18.1.0, while I've taken the liberty to nominate Andres for 18.2.0 ;-) As always, people are welcome to swap/adjust where needed. v2: Add Juan for 18.0.x (Juan) Cc: Andres Gomez Reviewed-by: Juan A. Suarez Acked-by: Dylan Baker (v1) Signed-off-by: Emil Velikov --- docs/release-calendar.html | 88 +++--- 1 file changed, 84 insertions(+), 4 deletions(-) diff --git a/docs/release-calendar.html b/docs/release-calendar.html index 8f588ab46c..b363c822ea 100644 --- a/docs/release-calendar.html +++ b/docs/release-calendar.html @@ -43,27 +43,107 @@ if you'd like to nominate a patch in the next stable release. 2018-04-06 17.3.9 Juan A. Suarez Romero -Final planned release for the 17.3 series +Last planned 17.3.x release -18.0 +18.0 2018-04-06 18.0.1 -Andres Gomez +Juan A. Suarez Romero 2018-04-20 18.0.2 -Andres Gomez +Juan A. Suarez Romero 2018-05-04 18.0.3 +Juan A. Suarez Romero + + + +2018-05-18 +18.0.4 +Juan A. Suarez Romero +Last planned 18.0.x release + + +18.1 +2018-04-20 +18.1.0rc1 +Dylan Baker + + + +2018-04-27 +18.1.0rc2 +Dylan Baker + + + +2018-05-04 +18.1.0rc3 +Dylan Baker + + + +2018-05-11 +18.1.0rc4 +Dylan Baker +Last planned RC/Final release + + +TBD +18.1.1 +Emil Velikov + + + +TBD +18.1.2 +Emil Velikov + + + +TBD +18.1.3 +Emil Velikov + + + +TBD +18.1.4 +Emil Velikov +Last planned RC/Final release + + +18.2 +2018-07-20 +18.2.0rc1 Andres Gomez + +2018-07-27 +18.2.0rc2 +Andres Gomez + + + +2018-08-03 +18.2.0rc3 +Andres Gomez + + + +2018-08-10 +18.2.0rc4 +Andres Gomez +Last planned RC/Final release + ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): spirv: autotools: add vtn_gather_types_c.py in distribution tarball
Module: Mesa Branch: master Commit: 0d0ef8ae335bfe746bd5802eb9521986349db4b4 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0d0ef8ae335bfe746bd5802eb9521986349db4b4 Author: Juan A. Suarez RomeroDate: Mon Apr 9 13:50:46 2018 +0200 spirv: autotools: add vtn_gather_types_c.py in distribution tarball Fixes: 042ee4bea26 "(spirv: Move SPIR-V building to Makefile.spirv.am and spirv/meson.build") Reviewed-by: Emil Velikov --- src/compiler/Makefile.spirv.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/compiler/Makefile.spirv.am b/src/compiler/Makefile.spirv.am index a9f90c26e7..2ac97f30ac 100644 --- a/src/compiler/Makefile.spirv.am +++ b/src/compiler/Makefile.spirv.am @@ -55,4 +55,5 @@ CLEANFILES += \ EXTRA_DIST += \ spirv/spirv_info_c.py \ - spirv/spirv.core.grammar.json + spirv/spirv.core.grammar.json \ + spirv/vtn_gather_types_c.py ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): radeonsi: autotools: add si_build_pm4.h in dist tarball
Module: Mesa Branch: master Commit: 15ed75783490e49fe636d58c3d2294a9a4f3b420 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=15ed75783490e49fe636d58c3d2294a9a4f3b420 Author: Juan A. Suarez RomeroDate: Mon Apr 9 14:07:34 2018 +0200 radeonsi: autotools: add si_build_pm4.h in dist tarball Fixes: 5777488406c ("radeonsi: move r600_cs.h contents into si_pipe.h, si_build_pm4.h") Reviewed-by: Marek Olšák Reviewed-by: Emil Velikov --- src/gallium/drivers/radeonsi/Makefile.sources | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gallium/drivers/radeonsi/Makefile.sources b/src/gallium/drivers/radeonsi/Makefile.sources index 6117005cbd..b20a5497f5 100644 --- a/src/gallium/drivers/radeonsi/Makefile.sources +++ b/src/gallium/drivers/radeonsi/Makefile.sources @@ -7,6 +7,7 @@ C_SOURCES := \ driinfo_radeonsi.h \ si_blit.c \ si_buffer.c \ + si_build_pm4.h \ si_clear.c \ si_compute.c \ si_compute.h \ ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): ac/nir: Use an array instead of hashtable for SSA defs.
Module: Mesa Branch: master Commit: 4381be4648b9ebb15b0a06885489998d5daac482 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4381be4648b9ebb15b0a06885489998d5daac482 Author: Bas NieuwenhuizenDate: Tue Apr 10 09:31:24 2018 +0200 ac/nir: Use an array instead of hashtable for SSA defs. Saves about 2% of compile time for F1 2017, as well as reduce code size of an optimized libvulkan_radeon.so by about 1 KiB. This still keeps the hashtable, as we also stored blocks in there. Reviewed-by: Samuel Pitoiset --- src/amd/common/ac_nir_to_llvm.c | 22 +- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c index 053c19808f..7c2bd5c0cc 100644 --- a/src/amd/common/ac_nir_to_llvm.c +++ b/src/amd/common/ac_nir_to_llvm.c @@ -38,6 +38,8 @@ struct ac_nir_context { gl_shader_stage stage; + LLVMValueRef *ssa_defs; + struct hash_table *defs; struct hash_table *phis; struct hash_table *vars; @@ -87,8 +89,7 @@ static LLVMTypeRef get_def_type(struct ac_nir_context *ctx, static LLVMValueRef get_src(struct ac_nir_context *nir, nir_src src) { assert(src.is_ssa); - struct hash_entry *entry = _mesa_hash_table_search(nir->defs, src.ssa); - return (LLVMValueRef)entry->data; + return nir->ssa_defs[src.ssa->index]; } static LLVMValueRef @@ -1028,8 +1029,7 @@ static void visit_alu(struct ac_nir_context *ctx, const nir_alu_instr *instr) if (result) { assert(instr->dest.dest.is_ssa); result = ac_to_integer(>ac, result); - _mesa_hash_table_insert(ctx->defs, >dest.dest.ssa, - result); + ctx->ssa_defs[instr->dest.dest.ssa.index] = result; } } @@ -1062,7 +1062,7 @@ static void visit_load_const(struct ac_nir_context *ctx, } else value = values[0]; - _mesa_hash_table_insert(ctx->defs, >def, value); + ctx->ssa_defs[instr->def.index] = value; } static LLVMValueRef @@ -3095,7 +3095,7 @@ static void visit_intrinsic(struct ac_nir_context *ctx, break; } if (result) { - _mesa_hash_table_insert(ctx->defs, >dest.ssa, result); + ctx->ssa_defs[instr->dest.ssa.index] = result; } } @@ -3596,7 +3596,7 @@ write_result: if (result) { assert(instr->dest.is_ssa); result = ac_to_integer(>ac, result); - _mesa_hash_table_insert(ctx->defs, >dest.ssa, result); + ctx->ssa_defs[instr->dest.ssa.index] = result; } } @@ -3606,7 +3606,7 @@ static void visit_phi(struct ac_nir_context *ctx, nir_phi_instr *instr) LLVMTypeRef type = get_def_type(ctx, >dest.ssa); LLVMValueRef result = LLVMBuildPhi(ctx->ac.builder, type, ""); - _mesa_hash_table_insert(ctx->defs, >dest.ssa, result); + ctx->ssa_defs[instr->dest.ssa.index] = result; _mesa_hash_table_insert(ctx->phis, instr, result); } @@ -3644,7 +3644,7 @@ static void visit_ssa_undef(struct ac_nir_context *ctx, else { undef = LLVMGetUndef(LLVMVectorType(type, num_components)); } - _mesa_hash_table_insert(ctx->defs, >def, undef); + ctx->ssa_defs[instr->def.index] = undef; } static void visit_jump(struct ac_llvm_context *ctx, @@ -3927,6 +3927,9 @@ void ac_nir_translate(struct ac_llvm_context *ac, struct ac_shader_abi *abi, func = (struct nir_function *)exec_list_get_head(>functions); + nir_index_ssa_defs(func->impl); + ctx.ssa_defs = calloc(func->impl->ssa_alloc, sizeof(LLVMValueRef)); + setup_locals(, func); if (nir->info.stage == MESA_SHADER_COMPUTE) @@ -3940,6 +3943,7 @@ void ac_nir_translate(struct ac_llvm_context *ac, struct ac_shader_abi *abi, ctx.abi->outputs); free(ctx.locals); + free(ctx.ssa_defs); ralloc_free(ctx.defs); ralloc_free(ctx.phis); ralloc_free(ctx.vars); ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit