[ANNOUNCE] mesa 22.0.2
Hi list! Better late than never, here is Mesa 22.0.2, the second maintanence release of the Mesa 22.0 series. This is a rather large release, as I've made a huge effort to get as much of the backlog of nominated patches dealt with, and only a handful remain. I'll plan to resume the normal schedule of having a release on the 4th along with what will hopefully be 22.1.0. shortlog Alexey Bozhenko (1): spirv: fix OpBranchConditional when both branches are the same Alyssa Rosenzweig (1): panfrost: Process scissor state earlier Benjamin Cheng (1): vulkan/queue: Destroy wait temps if they are skipped Boris Brezillon (1): lavapipe: Don't use VK_OUTARRAY_MAKE()/vk_outarray_append() Caio Oliveira (2): intel/fs: Initialize the sample mask in flags register when using demote intel/fs: Fix IsHelperInvocation for the case no discard/demote are used Cristian Ciocaltea (1): ci: Avoid altering EXTRA_CARGO_ARGS environment variable Daniel Schürmann (1): aco/optimizer: fix call to can_use_opsel() in apply_insert() Danylo Piliaiev (3): turnip: Fix the lack of WFM before indirect draws turnip: enable has_ccu_flush_bug workaround for a660 turnip: Correctly store separate stencil in gmem store Dave Airlie (6): radv: use flush vgt streamout like PAL does. gallivm/sample: detect if rho is inf or nan and flush to zero. llvmpipe: fix nr_sampler_view in key creation. draw: handle tess eval shader when getting num outputs u_blitter/stencil: take dstbox x/y into accounts for dst fb width util/stencil: fix stencil fallback blit shader texture types. Dylan Baker (22): docs: add sah256 sum for mesa 22.0.1 .pick_status.json: Update to 5a459b8f6b0b59814865bc5869a868269f8f7ebf pick/core: have update_commits return the commit list bin/auto-pick: Add a script that automates applying commits .pick_status.json: Mark 3ef093f697ad9027ba514c7a4a6a10b7bd95bd47 as denominated core: don't pass the ui back into commit.apply .pick_status.json: Update to 33c800bf913771ddadb5bd632df46582f4d1c9f3 .pick_status.json: Update to 837f781c9a4f909ac1ee0b3b8331af87301b5fc3 .pick_status.json: Update to 7478b00c7cc7f7ec8cbe224ce600362f7fdb9411 .pick_status.json: Update to c7eaf0306876df53d3608ae3bf67afc272dcdf20 .pick_status.json: Mark 94706601fa2f52605d6e488f30fad9a0e2440612 as denominated .pick_status.json: Mark 174d086e8c818db4522731e845bd259e2baa8830 as denominated .pick_status.json: Mark 8b71118aa066ab125b7440912ed1e14da79c9451 as backported .pick_status.json: Mark 4e30da7874e6586c7ac94cd34560c782d0f9678d as backported .pick_status.json: Mark 7da211e24fe14d8b107461bdfcb3b8d67212f88a as backported .pick_status.json: Mark 8294d454245d4318befac7c8915e55db3d47cefd as backported .pick_status.json: Update to e509598470c000498c3e1328e012142d9047e292 .pick_status.json: Mark 2b688942c1b1f5ca4f3e4d33231579149aeb8fdb as denominated .pick_status.json: Mark dd783d7144932d79ef761810d46e45c3df7148cf as denominated .pick_status.json: Update to 9f44a264623461c98368185b023d99446676e039 docs: add release notes for 22.0.2 VERSION: bump for 22.0.2 release Emma Anholt (13): r600: Update the PS state before checking for cb_misc update. r600: Fix ordering of SSBO loads versus texturing. r600: Add a workaround and explanation for shadowcubearray TG4. vulkan: Make sure we've loaded our connectors when querying plane props. st/glsl-to-tgsi: Fix handling of csel(bool, vec, vec). r600: Disable SB in the presence of indirection on temp arrays. r600: Disable SB when INTERP_SAMPLE is used. r600: Implement memoryBarrier() in the non-SFN path. nir_to_tgsi: Fix emitting the sample number for non-array MSAA image access. nir_to_tgsi: Fix the address reg mapping for images and SSBOs to match G-T-T. turnip: Stop allocating unused pvtmem space in the pipeline CS. nir: Add lowering for fround_even on r300. nouveau/nir: Fix the inverted sense of usesSampleMaskIn. Erik Faye-Lund (3): vbo/dlist: do not try to pad an empty draw d3d12: fix return-code without dxcompiler.dll vulkan: explicitly cast object-type enum Francisco Jerez (1): intel/perf: Fix OA report accumulation on Gfx12+. Georg Lehmann (7): nir/fold_16bit_sampler_conversions: Don't fold dest upcasts. radv: Add a vkCmdBuildAccelerationStructuresIndirectKHR stub. radv: Add more RT pipeline stubs. radv: Don't hash ycbcr sampler base object. nir/fold_16bit_sampler_conversions: Fix dest type mismatches. nir/fold_16bit_sampler_conversions: Fix src type mismatches. radv: Enable global bo list if 1.2 features are used. Ian Romanick (3): intel/compiler: Fix sample_d messages on DG2 intel/
Mesa 20.0 backlog
Hi all, I've spent a good deal of time this week crushing the backlog of patches on the mesa 20.0 series before making the release today. As such there are not only a dozen outstanding patches, mostly for zink, which I couldn't figure out how to correctly backport. I've touched base with Lionel about the anv patches, but the remaning patches I'd appreciate guidance on what you'd like to do with them. 2022-03-14 FIXES d5870c45ae panfrost: Optimise recalculation of max sampler view 2022-03-24 FIXES f348103fce anv: fix dynamic state emission 2022-03-24 FIXES a4f502de32 anv: fix VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT state 2022-03-24 FIXES 1d250b7b95 anv: fix color write enable interaction with color mask 2022-03-30 CC 4eca6e3e5d lavapipe: fix xfb availability query copying 2022-04-05 CC 3dcb80da9d zink: fix barrier generation for ssbo descriptors 2022-04-11 FIXES dd078d13cb zink: fix tessellation shader key matching. 2022-04-13 FIXES bbdf22ce13 radv: Fix barriers with cp dma 2022-04-18 CC 8806f444a5 zink: fix extended restart prim types without dynamic state2 2022-04-21 CC 373c8001d6 zink: set VK_QUERY_RESULT_WAIT_BIT when copying to qbo 2022-04-21 CC a056cbc691 zink: fix synchronization when drawing from streamout 2022-04-21 CC fc5edf9b68 zink: fix xfb counter buffer barriers 2022-04-21 CC e509598470 zink: remove xfb_barrier flag Cheers, Dylan signature.asc Description: signature
[ANNOUNCE] mesa 22.1.0-rc3
Hi list, I'd like to announce that Mesa 22.1.0-rc3 is now available for general consumption. There's a lot here, stuff for dzn, util, vulkan, r300, nir, intel, radv, anv, ac, crocus. The biggest change is lots of backports for kopper and zink with their supporting changes, such as wgl which Mike was gracious enough to manually backport for me, thanks Mike. please enjoy, and as always, report any issues. Cheers, Dylan shortlog Alexey Bozhenko (1): spirv: fix OpBranchConditional when both branches are the same Boris Brezillon (4): dzn: Add missing VKAPI_{ATTR,CALL} specifiers to BeginCommandBuffer() dzn: Pass the dzn_event pointer to _mesa_hash_table_insert() dzn: Fix the STATIC_ASSERT() in dzn_meta_blits_get_context() ci/windows: Add a variable to globally disable jobs using windows runners Daniel Stone (2): CI: Disable Windows jobs ci: Also disable Windows container builds when down Dave Airlie (2): u_blitter/stencil: take dstbox x/y into accounts for dst fb width util/stencil: fix stencil fallback blit shader texture types. Dylan Baker (5): .pick_status.json: Update to 9f44a264623461c98368185b023d99446676e039 .pick_status.json: Update to fbece25a451bb7915891851ee5c72724974ae5e2 .pick_status.json: Update to a6a4bf0f1eae36cb68d5c67653ac013fe0fbde8a .pick_status.json: Update to f329f67243d671965d73bd2243cffc4e1e68c4a3 VERSION: bump for 22.1.0-rc3 Filip Gawin (1): r300: Print warning when stubbing derivatives Jason Ekstrand (3): util/set: Respect found in search_or_add_pre_hashed nir: Lower all bit sizes of usub_borrow vulkan: Set signals[i].stageMask = ALL_COMMANDS for QueueSubmit2 wrapping Jordan Justen (1): intel/dev: Add device info for RPL-P Konstantin Seurer (1): radv: Fix lowering ignore_ray_intersection Lionel Landwerlin (4): nir/divergence: handle load_global_block_intel intel: fixup number of threads per EU on XeHP anv: fix acceleration structure descriptor template writes anv: skip acceleration structure in binding table emission Marek Olšák (3): nir: fix an uninitialized variable valgrind warning in nir_group_loads ac/surface: fix an addrlib race condition on gfx9 winsys/amdgpu: fix a mutex deadlock when we fail to create pipe_screen Martin Roukala (né Peres) (1): ci/b2c: fix the generation of the IMAGE_UNDER_TEST variable Michael Olbrich (1): crocus: export GEM handle with RDWR access rights Mike Blumenkrantz (21): zink: handle device-local unsynchronized maps util/draw: fix map size of indirect buffer in util_draw_indirect_read util/draw: handle draw_count=0 when reading indirect parameters util/draw: fix indirect draw count readback zink: move the kopper present fence to the displaytarget object wgl: support GL 4.6 zink: fix tcs control barriers for use without vk memory model zink: fix semantics mask for compute control barriers zink: add synchronization for buffer clears mesa/st: clamp GL_RENDERBUFFER to GL_TEXTURE_2D for sparse queries glsl/nir: set new_style_shadow for sparse tex ops as necessary zink: fix group memory barrier emission vulkan: bump layer api versions to current vk header version kopper: always fetch and store drawable info kopper: move drawable geometry updating up in function kopper: store whether screen has dmabuf support kopper: copy a bunch of code for texture_from_pixmap kopper: add DISPLAY_TARGET bind for depth buffer zink: fix/improve swapchain surface info updating zink: fix up swapchain depth buffer geometry during fb update zink: ci update Paulo Zanoni (1): iris: fix race condition during busy tracking Pavel Ondračka (1): r300: set PIPE_BIND_CONSTANT_BUFFER for const_uploader Pierre-Eric Pelloux-Prayer (1): ac/surface: adjust gfx9.pitch[*] based on surf->blk_w Rhys Perry (1): radv: fix clearing of TRUNC_COORD with tg4 and immutable samplers Samuel Pitoiset (4): radv: only apply enable_mrt_output_nan_fixup for 32-bit float MRTs aco: fix load_barycentric_at_{sample,offset} on GFX6-7 nir: fix marking XFB varyings as always active IO nir: mark XFB varyings as unmoveable to prevent them to be remapped Sidney Just (6): wgl: add a flag to determine if running on zink wgl: add zink to the list of auto-loaded drivers zink: support VK_KHR_win32_surface kopper: add win32 loader interface zink: support win32 wsi wgl: support kopper Sviatoslav Peleshko (1): anv: workaround apps that assume full subgroups without specifying it Vadym Shovkoplias (1): anv: Fix geometry flickering issue when compute and 3D passes are combined git tag: mesa-22.1.0-rc3 https://mesa.freedesktop.org/archive/mesa-22.1.0-rc3.
[ANNOUNCE] mesa 22.1.0-rc4
Hi list, I'd like to announce Mesa 22.1.0-rc4. We'll plan on either rc5 or 22.1.0 final next week. This week we've got a ton of useful stuff, lots of zink and kopper backports, llvmpipe, util, aco, r600, virgl, panfrost, wayland, spirv, microsoft, radv, nir, and varous intel cleanups among other things. Cheers, Dylan shortlog Adam Jackson (1): glx/kopper: Wire up a way for SwapBuffers to fail Anuj Phogat (2): include/uapi: Update drm_fourcc.h from kernel isl,iris: Add I915_FORMAT_MOD_4_TILED support for XeHP Autumn on Tape (4): gallivm: add subgroup shuffle support lavapipe: enable subgroup shuffle operations gallivm: use shufflevector for shuffles when index is constant data gallivm: use VPERMPS (x86/AVX2) for 32-bit 8-element shuffles Chia-I Wu (1): util: Keep quiet NaNs quiet when converting to half float. Daniel Schürmann (1): aco/ra: fix live-range splits of phi definitions Dave Airlie (2): vulkan/wsi: keep allocate queue families in image, just don't fill them llvmpipe: add user memory resources to the debug global list. Dylan Baker (6): .pick_status.json: Update to f17d3a125126dd7e0f1c2072545976cec1eeb1c8 .pick_status.json: Update to 1dc697942af7254798f83583f5788e1abf136d27 .pick_status.json: Update to 2505afc430c6b151e7e4243503953ba0b0a2c842 .pick_status.json: Mark c025cb9ee9d79ebfb66a577556e04deecfe012ed as backported .pick_status.json: Update to 575068a1656ab4303647ade1491da7d711d36db7 VERSION: bump for 22.1.0-rc4 release Emma Anholt (1): nouveau/nir: Move FS output stores to the end of the last block. Erik Faye-Lund (3): meson: remove unused defines gallium/xlib: fix stale comment mesa: add missing error-path Francisco Jerez (1): intel/dev: Compute pixel pipe information based on geometry topology DRM query. Gert Wollny (2): virgl: don't move input gl_SampleMaskIn to a temp r600: Allow eight bit, three channel formats for vertex buffers Icecream95 (2): panfrost: Fix pack_32_2x16 implementation pan/bi: Use texture index instead of sampler for message preloading Iván Briano (1): vulkan/wsi/wayland: Fix double free on error condition Jason Ekstrand (1): spirv: Handle Op*MulExtended for non-32-bit types Jesse Natalie (1): microsoft/compiler: Unload DXIL validator library *after* calling Release() Jordan Justen (5): vulkan/wsi/x11: Use atomic_int with sent_image_count drm-uapi/i915_drm.h: Update from drm-next (2022-04-28) iris: Fix assertion meant to only target the clear-color stride intel/dev: Read hwconfig from i915 intel_dev_info: Add --hwconfig command line parameter Juan A. Suarez Romero (1): mesa: unref syncobj after wait_sync Konstantin Seurer (1): ac/nir: Do not set cursor in try_extract_additions Lionel Landwerlin (3): anv: fix clflush usage on utrace copy batch iris: use new kernel uAPI to compute video memory anv: fix invalid utrace memcpy l3 config on gfx < 11 Mike Blumenkrantz (24): drisw: remove dead code zink: add a util function for finding swapchain resource zink: flag swapchains when updating fails zink: handle dead swapchains in acquire zink: unset image layout when killing swapchain zink: rework swapchain object check for acquires zink: fix return for zink_kopper_acquire zink: handle swapchain acquire failures more directly zink: flag swapchain resources as swapchains zink/kopper: add a mechanism for checking swapchain status kopper: add some error logging for pixmap->texture failure kopper: check for modifiers to use modifier functionality zink/kopper: add a function for determining if running on software kopper: check whether zink is using sw kopper: rename a confusing variable kopper: implement texture-from-pixmap for software (non-dmabuf) zink: fix dmabuf plane returns zink: export fd info for all 2d images zink: ignore KMS handle types zink: remove drm_fd llvmpipe: disable statistic queries during draw if queries are disabled llvmpipe: disable compute statistics queries if queries are disabled wgl: always set alpha on kopper windows wgl: don't auto-load zink before software drivers Nanley Chery (3): iris: Return a 64B stride for clear color plane intel/isl: Add a score for I915_FORMAT_MOD_4_TILED isl,iris: Add DG2 CCS modifier support for XeHP Samuel Pitoiset (3): radv: fix handling divisor == 0 with dynamic vertex input state radv: allow to disable sinking of load inputs for FS via drirc radv: enable radv_disable_sinking_load_input_fs for Grid Autosport Tapani Pälli (1): isl: disable mcs (and mcs+ccs) for color msaa on DG2 Timothy Arceri (1): nir: fix sorting before assignin
[ANNOUNCE] mesa 22.0.3
Hi list, Hot on the heals of Mesa 22.1.0-rc4, Is mesa 22.0.3. Things are starting to slow down, especially compared to 22.0.2. We have a splattering of fixes here, touching most of the major drivers and systems, but no real standouts getting major work, which is good for this point in the release cycle. Due to mesa 22.1.0-rc4 today, we'll plan to have another 22.0 release in 2 weeks, which will hopefully be the last release. Cheers, Dylan shortlog Chia-I Wu (1): util: Keep quiet NaNs quiet when converting to half float. Dave Airlie (2): llvmpipe: add user memory resources to the debug global list. vulkan/wsi: keep allocate queue families in image, just don't fill them Dylan Baker (23): docs: Add sha256sums for 22.0.2 .pick_status.json: Update to 5e84335fb578f03938468bb8ac0029f68349d330 .pick_status.json: Update to a6a4bf0f1eae36cb68d5c67653ac013fe0fbde8a .pick_status.json: Update to ef9d97ec1f9d9834db3066b5a7ec67ce6d4ecd86 .pick_status.json: Update to f17d3a125126dd7e0f1c2072545976cec1eeb1c8 .pick_status.json: Update to 1dc697942af7254798f83583f5788e1abf136d27 .pick_status.json: Mark d5870c45ae82c091e72f1258920aa54974e19a36 as denominated .pick_status.json: Mark f348103fce4484b891a58bf3147b71e3a3558135 as denominated .pick_status.json: Mark a4f502de3228ec37dfcaa38225077ec3709d74ea as denominated .pick_status.json: Mark 1d250b7b959d2a206280e4f83db05780a83e0927 as denominated .pick_status.json: Mark 4eca6e3e5d2b9426d6357e9af1514a0c942638f0 as denominated .pick_status.json: Mark 3dcb80da9d6d34e567680ef7fecd24aab4537e8a as denominated .pick_status.json: Mark dd078d13cb6b445ad02087a3e80433ef053b7490 as denominated .pick_status.json: Mark bbdf22ce136a7f02a8bd6c7e646d12a7e10db18d as denominated .pick_status.json: Mark 8806f444a5c005d20cd4ec4ed42e508ffd9cb1da as denominated .pick_status.json: Mark 373c8001d6615d70d112c7526ea4f4953257b6b9 as denominated .pick_status.json: Mark a056cbc691843861da417b5bcea9f871fdceeb19 as denominated .pick_status.json: Mark fc5edf9b68159288baa22c055e471de958812312 as denominated .pick_status.json: Mark e509598470c000498c3e1328e012142d9047e292 as denominated .pick_status.json: Update to 53a94fbdd57acbbe2bc745901cbfeca968e25273 .pick_status.json: Update to 2505afc430c6b151e7e4243503953ba0b0a2c842 docs: add release notes for 22.0.3 VERSION: bump for 22.0.3 Erik Faye-Lund (3): meson: remove unused defines gallium/xlib: fix stale comment mesa: add missing error-path Filip Gawin (1): r300: Print warning when stubbing derivatives Gert Wollny (1): r600: Allow eight bit, three channel formats for vertex buffers Icecream95 (1): panfrost: Fix pack_32_2x16 implementation Iván Briano (1): vulkan/wsi/wayland: Fix double free on error condition Jason Ekstrand (4): util/set: Respect found in search_or_add_pre_hashed nir: Lower all bit sizes of usub_borrow vulkan: Set signals[i].stageMask = ALL_COMMANDS for QueueSubmit2 wrapping spirv: Handle Op*MulExtended for non-32-bit types Jordan Justen (3): vulkan/wsi/x11: Use atomic_int with sent_image_count iris: Fix assertion meant to only target the clear-color stride iris: Fix assertion meant to only target the clear-color stride Juan A. Suarez Romero (1): mesa: unref syncobj after wait_sync Konstantin Seurer (2): radv: Fix barriers with cp dma radv: Fix lowering ignore_ray_intersection Lionel Landwerlin (6): nir/divergence: handle load_global_block_intel intel: fixup number of threads per EU on XeHP anv: fix acceleration structure descriptor template writes anv: skip acceleration structure in binding table emission anv: fix clflush usage on utrace copy batch anv: fix invalid utrace memcpy l3 config on gfx < 11 Marek Olšák (3): nir: fix an uninitialized variable valgrind warning in nir_group_loads ac/surface: fix an addrlib race condition on gfx9 winsys/amdgpu: fix a mutex deadlock when we fail to create pipe_screen Mike Blumenkrantz (10): wgl: support GL 4.6 zink: fix tcs control barriers for use without vk memory model zink: fix semantics mask for compute control barriers zink: add synchronization for buffer clears mesa/st: clamp GL_RENDERBUFFER to GL_TEXTURE_2D for sparse queries glsl/nir: set new_style_shadow for sparse tex ops as necessary zink: fix group memory barrier emission vulkan: bump layer api versions to current vk header version llvmpipe: disable compute statistics queries if queries are disabled llvmpipe: disable statistic queries during draw if queries are disabled Nanley Chery (2): Revert "anv: Disable CCS_E for some 8/16bpp copies on TGL+" iris: Return a 64B stride for clear color plane Paulo
[ANNOUNCE] mesa 22.1.0-rc5
Hi list, I'd like to announce mesa 22.1.0-rc5. I've cut another RC because: 1) there are more than 90 commits since rc4 2) I have the flu and don't want to check that all of the issues blocking the release are closed As such, I'll plan on 22.1.0 next week, unless something else comes up, or we end up with ~100 patches again. Cheers, Dylan shortlog Adam Jackson (4): wsi/x11: Avoid using xcb_wait_for_special_event in FIFO modes kopper: Grow a swap interval API glx/kopper: Enable GLX_EXT_swap_control etc. egl/kopper: Hook up eglSwapInterval Alyssa Rosenzweig (1): nir: Don't set writes_memory for reading XFB Bas Nieuwenhuizen (1): vulkan/wsi/x11: Ensure we have the required number of images for acquire. Benjamin Cheng (1): radv: fix memory leak of descriptor set layout Chia-I Wu (1): anv: advertise rectangularLines only for Gen10+ Dylan Baker (12): .pick_status.json: Update to 7f91e8fad94dd34f83c6a124dbbe5d210be7715f .pick_status.json: Update to 17c98393f9f3cb0801b73b2d4c62442859417368 .pick_status.json: Update to 14b1ed1ce105d42652f70e2fd13c90fc4f2e7ffc .pick_status.json: Mark 6317f88b044501354a052064478d5b43dfe41809 as backported .pick_status.json: Mark 5ff3fa5912778adb8117fa26bfe4786b583e741b as backported .pick_status.json: Mark 9a412c10b7a96adf71c9a2ca44a0abca75de1c49 as backported .pick_status.json: Mark 0e49ef5c9f2ec34567613226ad498edca28bce88 as backported .pick_status.json: Mark ae369e9f6d4f2c826f1f2a748c32a14f9d5f1f54 as backported .pick_status.json: Mark 8b28d1751c76b0ba72dae1f6b916cb7f2bbc1c0c as backported .pick_status.json: Mark 8daf8ff730b777bb512a237a36783d781cbf9de9 as backported .pick_status.json: Mark 8c1d9c7b744b2e5b40fd42cfd51256b16deea6a8 as denominated VERSION: bump for 22.1.0-rc5 Georg Lehmann (2): wsi/x11: Don't leak xcb_get_geometry_reply_t. nir/opt_algebraic: Fix mask in shift by constant combining. Icecream95 (6): nir/lower_tex: Copy more fields in lower_tex_to_txd and friends pan/mdg: Keep min_bound at 16 when alignment requires it pan/mdg: Use MAX2 to set min_alignment pan/mdg: Fix mask usage when filling before a spill pan/mdg: Return the instruction from mir_insert_instruction_*_scheduled pan/mdg: Fix multiple spilt writes in the same bundle Iván Briano (1): anv: re-alloc push constants after secondary command buffers Jason Ekstrand (3): vulkan/wsi: Set the right stage flags for semaphore waits nir/cf: Return a cursor from nir_cf_extract as well gallium/u_threaded_context: Use PIPE_MAX_SHADER_SAMPLER_VIEWS for sampler_buffers Lionel Landwerlin (15): anv: reset all dynamic state after secondary execution anv: add missing logic op set in pipeline dyn state Revert "anv: fix dynamic state emission" anv: rework sample location anv: never emit 3DSTATE_CPS in the pipeline batch anv: don't emit 3DSTATE_STREAMOUT in pipeline batch anv: don't emit 3DSTATE_WM in pipeline batch anv: don't emit 3DSTATE_BLEND_STATE_POINTERS in pipeline batch anv: don't emit 3DSTATE_DEPTH_BOUNDS in pipeline batch anv: don't emit 3DSTATE_VF_TOPOLOGY in pipeline batch anv: remove static_state_mask nir/cf: return cursor after insertion of cf_list nir/lower_shader_calls: don't use nop instructions as cursors nir/lower_shader_calls: don't insert code after break/continue nir/lower_shader_calls: put inserted instructions into a dummy block Marek Olšák (1): ac/llvm: set the correct cache policy for sparse buffer loads Mike Blumenkrantz (40): zink: add supported present modes to kopper displaytarget lavapipe: lower quad_broadcast intrinsics kopper: invalidate drawables when resizing textures in place kopper: pass the current context to dri_flush nir/gather_info: flag fbfetch on subpass image loads llvmpipe: never infer early zs tests when fbfetch is active lavapipe: enqueue pipeline destruction zink: fix null buffer/surface formats zink: add more image usage for null surfaces zink: use descriptor surfaces for notemplates ref updating kopper: remove unused zink include zink: remove unused headers/struct members/linkage zink: outdent some code zink: add a flag to indicate whether a resource is exportable zink: break out resource bind-adding into separate function for reuse zink: introduce copy contexts zink: create a copy context for the screen on init Revert "zink: export fd info for all 2d images" zink: always check for fb rebinds when starting renderpass zink: unset pipe_resource::next pointers when creating resource copies zink: add a bind flag to indicate a resource is exporte
[ANNOUNCE] mesa 22.1.0
Hi list, I'd like to announce that mesa 21.1.0 is finally available. This release brings with it a lot of greate featurres, including (since rc5) additional kopper backports for zink, and support for Intel's Alchemist DG2 platform. See you all in two weeks with 22.1.1. Cheers, Dylan shortlog Danylo Piliaiev (3): tu: Do not flush ccu in clear/blits during renderpass pps: Open writable renderer node in DrmDevice::create tu: Fix indices of drm_msm_gem_submit_cmd when filling them Dave Airlie (1): meson: add build-id to pipe libraries Dylan Baker (15): .pick_status.json: Update to 57293dee2b11ba7e52052edc4d0437f08db19144 .pick_status.json: Mark 5a3aee78cbb70918b413cdd40dffcae7c9e97d8c as denominated .pick_status.json: Update to 5c90eb1c53f46e86717c6bf4d5253dd23c4dac1f .pick_status.json: Update to 07eba9a15a06ceda3469892822e8b539effc6788 .pick_status.json: Update to 29a8f1f03bed317370e07288fd9d4b85a24562e6 .pick_status.json: Mark 07efe6f129956d0cce0fb167d08b5f8af25d0c95 as backported .pick_status.json: Mark 1c17502ab38a238efe5d9aa4bc0ff07c967adb80 as backported .pick_status.json: Mark b6eec12327b65038dd56742dbe272c21c63a3844 as backported .pick_status.json: Mark 7057a363591279c3f65a3c4af41687e6f8142649 as backported .pick_status.json: Mark 9924fecee6412f1cad65d7d7347681856e3a525c as backported .pick_status.json: Mark 7aee9f12b9c1f17ae2662c8043c8679ce698b731 as backported .pick_status.json: Mark 5e4009fe6c91c34a7cdf8c16aa5aa53c3ff41222 as backported .pick_status.json: Mark b18448e7acfc765ee95505c7cd5e2ce6e6fc36cc as backported docs: add release notes for 22.1.0 VERSION: bump for 22.1.0 final Jason Ekstrand (1): nir: Preserve metadata if remove_dead_derefs makes no progress Jonathan Gray (2): intel/dev: sync ADL-S pci ids with linux intel/dev: add RPL-S pci ids from drm-intel-next Jordan Justen (3): intel/dev: Add INTEL_PLATFORM_DG2_G12 intel/dev: Add DG2 G12 PCI IDs intel/dev: Enable first set of DG2 PCI IDs Kenneth Graunke (3): anv: Fix INTEL_DEBUG=bat on XeHP iris: Add FLUSH_HDC to PIPE_CONTROL_CACHE_FLUSH_BITS Revert "st/mesa: Transcode ASTC to BC7 (BPTC) where possible" Marcin Ślusarz (2): anv: update task/mesh distribution with the recommended values anv: disable streamout before emitting mesh shading state Marek Olšák (1): radeonsi: fix a crash when failing to create a context Mike Blumenkrantz (28): zink: fix up sparse texture sampling for shadow samplers zink: clamp out min_lod operands for explicit lod ops zink: fix sparse binding for arrayed textures zink: set sparse flag in cubemap lowering zink: fix sparse texture depth calcs for arrayed textures zink: remove implicit query resets zink: remove refs from shader images zink: reuse local res pointer in set_shader_images zink: simplify dumb update flagging in set_shader_images zink: read shader image r/w usage from incoming data struct zink: copy incoming shader image struct after doing updates zink: stop leaking shader image surfaces zink: fix 3d shader image miplevel calc for depth zink: directly reuse surface ivci when rebinding lavapipe: ignore depth/stencil states if attachment is not present lavapipe: fix pipeline handling for dynamic render zs state with pipeline library spirv: fix barrier scope assert zink: never create a sw context unless sw is requested zink: only reject non-blittable resource creation if it has no other binds zink: add separate error message for push descriptor set alloc fail zink: add extra validation for resource creation zink: remove input attachment usage when pruning surface usage zink: add extended usage and retry if resource creation fails zink: fix surface/bufferview cache comparisons zink: force render target usage for sampler-only resources zink: clamp 1D_ARRAY sparse textures to 2D as needed zink: handle PIPE_BUFFER sparse texture queries zink: fix non-dynamic vertex stride update flagging Pierre-Eric Pelloux-Prayer (3): radeonsi: don't use wave32 for GE on gfx10 if culling is used amd: fix ac_build_mbcnt_add in wave32 mode glx: set max values for pbuffer width / height Samuel Pitoiset (1): radv: disable DCC for Senra Kagura Shinovi Versus Tomeu Vizoso (1): ci: Disable jobs to the Collabora lab Victor Hermann Chiletto (1): radv: always check entry count in descriptor pool when allocating xperia64 (1): wgl: Add driver_zink as a dependency of the wgl frontend git tag: mesa-22.1.0 https://mesa.freedesktop.org/archive/mesa-22.1.0.tar.xz SHA256: df6270c1371eaa2aa6eb65b95cbbb2a98b14fa4b7ba0ed45e4ca2fd32df60477
[ANNOUNCE] mesa 22.0.4
Hi list, Mesa 22.0.4 is now available after a short delay. Not too much to see here, except for a giant pile of zink patches, some nice fixes for panfrost, and nir cleanups, and a few assorted river patches. Given that 22.1.0 came out yesterday, we will have one more 22.0 release in two weeks. Cheers, Dylan shortlog Alyssa Rosenzweig (1): nir: Don't set writes_memory for reading XFB Chia-I Wu (1): anv: advertise rectangularLines only for Gen10+ Danylo Piliaiev (3): tu: Fix indices of drm_msm_gem_submit_cmd when filling them tu: Do not flush ccu in clear/blits during renderpass pps: Open writable renderer node in DrmDevice::create Dylan Baker (19): docs: Add sh256sum for mesa 20.0.3 .pick_status.json: Update to 7f91e8fad94dd34f83c6a124dbbe5d210be7715f .pick_status.json: Update to 14b1ed1ce105d42652f70e2fd13c90fc4f2e7ffc .pick_status.json: Mark 69e6417e19793043e4bb3cd500cfcf377bce4c03 as denominated .pick_status.json: Mark c025cb9ee9d79ebfb66a577556e04deecfe012ed as denominated .pick_status.json: Mark 6317f88b044501354a052064478d5b43dfe41809 as denominated .pick_status.json: Mark 5ff3fa5912778adb8117fa26bfe4786b583e741b as denominated .pick_status.json: Mark 9a412c10b7a96adf71c9a2ca44a0abca75de1c49 as denominated .pick_status.json: Mark 0e49ef5c9f2ec34567613226ad498edca28bce88 as denominated .pick_status.json: Mark ae369e9f6d4f2c826f1f2a748c32a14f9d5f1f54 as denominated .pick_status.json: Update to 14b1ed1ce105d42652f70e2fd13c90fc4f2e7ffc .pick_status.json: Mark 8c1d9c7b744b2e5b40fd42cfd51256b16deea6a8 as denominated .pick_status.json: Mark f1d1371e512e32d03f7f54d873020e589ee67d47 as denominated .pick_status.json: Update to 57293dee2b11ba7e52052edc4d0437f08db19144 .pick_status.json: Update to 5c90eb1c53f46e86717c6bf4d5253dd23c4dac1f .pick_status.json: Mark 5a3aee78cbb70918b413cdd40dffcae7c9e97d8c as denominated ci: Some panfrost tests are unexpectedly passing. docs: add release notes for 22.0.4 VERSION: bump for 22.0.4 Georg Lehmann (1): nir/opt_algebraic: Fix mask in shift by constant combining. Icecream95 (6): nir/lower_tex: Copy more fields in lower_tex_to_txd and friends pan/mdg: Keep min_bound at 16 when alignment requires it pan/mdg: Use MAX2 to set min_alignment pan/mdg: Fix mask usage when filling before a spill pan/mdg: Return the instruction from mir_insert_instruction_*_scheduled pan/mdg: Fix multiple spilt writes in the same bundle Jason Ekstrand (4): vulkan/wsi: Set the right stage flags for semaphore waits gallium/u_threaded_context: Use PIPE_MAX_SHADER_SAMPLER_VIEWS for sampler_buffers nir/cf: Return a cursor from nir_cf_extract as well nir: Preserve metadata if remove_dead_derefs makes no progress Lionel Landwerlin (4): nir/cf: return cursor after insertion of cf_list nir/lower_shader_calls: don't use nop instructions as cursors nir/lower_shader_calls: don't insert code after break/continue nir/lower_shader_calls: put inserted instructions into a dummy block Marcin Ślusarz (2): anv: update task/mesh distribution with the recommended values anv: disable streamout before emitting mesh shading state Marek Olšák (2): ac/llvm: set the correct cache policy for sparse buffer loads radeonsi: fix a crash when failing to create a context Mike Blumenkrantz (14): util/blitter: fix sampler restore with 0 saved samplers st/draw_feedback: set constant buffer stride llvmpipe: always set ssbo data pointers for draw gallivm: fix oob txf swizzling zink: fix up sparse texture sampling for shadow samplers zink: clamp out min_lod operands for explicit lod ops zink: fix sparse binding for arrayed textures zink: fix sparse texture depth calcs for arrayed textures zink: remove refs from shader images zink: reuse local res pointer in set_shader_images zink: simplify dumb update flagging in set_shader_images zink: read shader image r/w usage from incoming data struct zink: copy incoming shader image struct after doing updates zink: stop leaking shader image surfaces Pavel Ondračka (1): r300: guard for unsigned underflow when unrolling loops Pierre-Eric Pelloux-Prayer (2): radeonsi: don't use wave32 for GE on gfx10 if culling is used amd: fix ac_build_mbcnt_add in wave32 mode Rhys Perry (1): aco/ra: fix vgpr_limit Samuel Pitoiset (3): radv: re-emit dynamic line stipple state if the primitive topology changed radv: disable instance packing to fix pipeline query stats radv: disable DCC for Senra Kagura Shinovi Versus Thomas Debesse (1): gallium/clover: pass -no-opaque-pointers to Clang git tag: mesa-22.0.4 https://archive.mesa3d.org/mesa-
[ANNOUNCE] mesa 22.1.1
Hi list, I'd like to announce mesa 22.1.1, the first maintanence release of the 22.1 series. Things are about where I'd expect for where we are in the cycle, and I'm happy. We've got a bit of everything here, zink, intel, and Panfrost being the biggest sets of changes, but some aco, zsn, llvm/lavapipe radv, nir, glsl, r300, aco, svga, and core mesa changes as well. I'll see you all again shortly for 22.0, and then again in two weeks for 22.1.2 Cheers, Dylan shortlog Alyssa Rosenzweig (1): pan/bi: Fix mov and pack_32_2x16 Boris Brezillon (1): dzn: Use the vk_sync_binary abstraction Charmaine Lee (1): gallium/util: Increase the debug_flush map depth to 64 Daniel Schürmann (1): aco: fix spilling of phis without temp operands Dave Airlie (2): lavapipe: fix depth bias offset flag enables. llvmpipe: flush resources for kms swrast path. Dylan Baker (8): relnotes: Add sha256sum and fix minor formatting issues .pick_status.json: Update to 8b13ee75ba9f27ceac6b6180ca05d321caa13612 .pick_status.json: Update to 95d4e5435bf63239105a50370edeb7fed2f8 .pick_status.json: Update to ee2278de654853f1d6107e6ef6fc8537a668866e .pick_status.json: Update to 9773ed1dc74b98019640d909cdc2b5d6cffae85a .pick_status.json: Update to 5067a26f4432ae5e9690e70ef2498ea24798593e docs: add release notes for 22.1.1 VERSION: bump for 22.1.1 release Erik Faye-Lund (4): editorconfig: remove scons-ism editorconfig: remove html-rule editorconfig: remove m4-rule editorconfig: remove pl-rule Filip Gawin (1): r300: keep negation if w is an inline constant Hans-Kristian Arntzen (1): radv: Fix RTPSO hashing of pGroups. Icecream95 (5): panfrost: Copy blend constant into variant even when reusing it nir: Add store_combined_output_pan BASE back pan/bi: Read base for combined stores pan/mdg: Read base for combined stores panfrost: Only write depth / stencil once if MRT is used Jason Ekstrand (8): radv: Add a sqtt entrypoint for CmdBindVertexBuffers2 intel/fs: Copy color_outputs_valid into wm_prog_data anv: Drop alpha_to_coverage from the NULL FS optimization anv: Handle the null FS optimization after compiling shaders anv: Don't disable the fragment shader if XFB is enabled nir: Handle register sources in lower_phis_to_regs_block glsl/nir: Stop leaking varyings_info nir: Mark negative re-distribution on fadd as imprecise Konstantin Seurer (1): radv: Fix handling of primitiveOffset Matt Turner (1): mesa: Drop dead #include "sparc/sparc.h" Michael Skorokhodov (1): anv: Update line range Mike Blumenkrantz (10): turnip: fix assert for max xfb outputs zink: use a zink_render_pass_pipeline_state bit for fbfetch zink: add renderpass bits for color/depth r/w zink: only warn once for SRGB fb without KHR_swapchain_mutable_format zink: require draw params ext/cap in ntv if drawid is used zink: emit spirv cap for subgroup vote ops st/pbo_compute: use different calc for non-3d compute buffer sizing zink: make swapchain kill message more descriptive zink: drop wideLines requirement zink: drop largePoints requirement Pierre-Eric Pelloux-Prayer (1): radeonsi: don't use sel->nir in si_check_blend_dst_sampler_noop Qiang Yu (1): radeonsi: lower nir_intrinsic_sparse_residency_code_and Rhys Perry (2): aco: fix p_constaddr with a non-zero offset aco/ra: fix usage of invalidated iterator Samuel Pitoiset (1): radv: fix writing buffer markers with non-zero memory offset Timur Kristóf (2): radv: Implement conditional rendering for async compute queue. radv: Disable predication for supass clear and image clears. Yogesh Mohan Marimuthu (1): vulkan/wsi: fix extra free if buffer_blit_queue Zack Rusin (4): svga: Don't try to build x86/x64 assembly on different arch's svga: finish readbacks before mapping resources svga: Use direct maps when GB objects are present svga: Add support for SVGAv3 git tag: mesa-22.1.1 https://archive.mesa3d.org/mesa-22.1.1.tar.xz SHA256: 46940865ffe794db73ac2bc7ab7ff2570042a0b61a8ac43ca1688863e2bc0ef1 mesa-22.1.1.tar.xz SHA512: 4d4ad8b0e9bd0584635153af809bfbc5dc61e1f6994ae2719a3298b5a6e26dee96d28d151483e258a793313d19c54ca365a58a0849b5238964ae48941f423ae4 mesa-22.1.1.tar.xz PGP: https://archive.mesa3d.org/mesa-22.1.1.tar.xz.sig signature.asc Description: signature
[ANNOUNCE] mesa 22.0.5
Hi list, I'd like to announce Mesa 22.0.5, the last planned maintenence release of the 22.0 series. With the release of 22.1.1 earlier today, we will now be focusing on that until the 22.2 release cycle begins. As such, if you find any regressions between 22.0 and 22.1, it is time to file issues. As for content, there's actually quite a bit here, mostly intel and zink changes, with a bit of everything else sprinkled in. Cheers, Dylan shortlog Daniel Schürmann (1): aco: fix spilling of phis without temp operands Dave Airlie (2): meson: add build-id to pipe libraries lavapipe: fix depth bias offset flag enables. Dylan Baker (8): docs: add sha256sum to 22.0.4 notes .pick_status.json: Update to 95d4e5435bf63239105a50370edeb7fed2f8 .pick_status.json: Update to ee2278de654853f1d6107e6ef6fc8537a668866e .pick_status.json: Update to 9773ed1dc74b98019640d909cdc2b5d6cffae85a .pick_status.json: Update to 5067a26f4432ae5e9690e70ef2498ea24798593e .pick_status.json: Update to 1c63a0beafefccec599ddbe355ec5a8b61df6438 docs: add release notes for 22.0.5 VERSION: bump for 22.0.5 release Erik Faye-Lund (4): editorconfig: remove scons-ism editorconfig: remove html-rule editorconfig: remove m4-rule editorconfig: remove pl-rule Filip Gawin (1): r300: keep negation if w is an inline constant Hans-Kristian Arntzen (1): radv: Fix RTPSO hashing of pGroups. Icecream95 (5): panfrost: Copy blend constant into variant even when reusing it nir: Add store_combined_output_pan BASE back pan/bi: Read base for combined stores pan/mdg: Read base for combined stores panfrost: Only write depth / stencil once if MRT is used Jason Ekstrand (6): intel/fs: Copy color_outputs_valid into wm_prog_data anv: Drop alpha_to_coverage from the NULL FS optimization anv: Handle the null FS optimization after compiling shaders anv: Don't disable the fragment shader if XFB is enabled nir: Handle register sources in lower_phis_to_regs_block glsl/nir: Stop leaking varyings_info Matt Turner (1): mesa: Drop dead #include "sparc/sparc.h" Michael Skorokhodov (1): anv: Update line range Mike Blumenkrantz (13): spirv: fix barrier scope assert zink: only reject non-blittable resource creation if it has no other binds zink: add extra validation for resource creation zink: remove input attachment usage when pruning surface usage zink: add extended usage and retry if resource creation fails zink: fix surface/bufferview cache comparisons zink: force render target usage for sampler-only resources zink: fix non-dynamic vertex stride update flagging turnip: fix assert for max xfb outputs zink: require draw params ext/cap in ntv if drawid is used zink: emit spirv cap for subgroup vote ops zink: drop wideLines requirement zink: drop largePoints requirement Pierre-Eric Pelloux-Prayer (2): glx: set max values for pbuffer width / height radeonsi: don't use sel->nir in si_check_blend_dst_sampler_noop Qiang Yu (1): radeonsi: lower nir_intrinsic_sparse_residency_code_and Rhys Perry (1): aco: fix p_constaddr with a non-zero offset Samuel Pitoiset (1): radv: fix writing buffer markers with non-zero memory offset Timur Kristóf (1): radv: Implement conditional rendering for async compute queue. git tag: mesa-22.0.5 https://archive.mesa3d.org/mesa-22.0.5.tar.xz SHA256: 5ee2dc06eff19e19b2867f12eb0db0905c9691c07974f6253f2f1443df4c7a35 mesa-22.0.5.tar.xz SHA512: c73a4c3bfb41fef68e2ec1ccfd3df0a5af019c1e862af27d9bca27487dd4352dafeccd0dc0c3f15fadc54048573b9634261e4e969ae958c4f9fa88114131e910 mesa-22.0.5.tar.xz PGP: https://archive.mesa3d.org/mesa-22.0.5.tar.xz.sig signature.asc Description: signature
[ANNOUNCE] mesa 21.3.9
Hi list, I'd like to announce mesa 21.3.9 is now available, the latest release in the Amber branch, providing long term support for classic mesa drivers. Cheers, Dylan shortlog Alyssa Rosenzweig (2): panfrost: Emulate GL_CLAMP on Bifrost pan/bi: Handle non-2D arrays Dave Airlie (2): crocus: don't map scanout buffers as write-back intel/perf: use a function to do common allocations Dylan Baker (2): docs: add release notes for 21.3.9 VERSION: bump for 21.3.9 release Emma Anholt (2): vulkan: Make sure we've loaded our connectors when querying plane props. intel/perf: Move some static blocks of C code out of the python script. Eric Engestrom (3): .pick_status.json: Update to 05d687723530ed3c5c9f7d0addb3b047138613a3 .pick_status.json: Update to fc381fa1e341bc9cf71f53a915dc47926a3f621f Revert "glx: Fix build errors with --enable-mangling (v2)" Erik Faye-Lund (1): Revert "ci: downgrade sphinx to v3.x" Georg Lehmann (1): radv: Don't hash ycbcr sampler base object. Ian Romanick (1): intel/fs: Force destination types on DP4A instructions Icecream95 (2): panfrost: Don't initialise the trampolines array panfrost: Optimise recalculation of max sampler view Jason Ekstrand (1): anv: Allow MSAA resolve with different numbers of planes Jonathan Gray (1): util: fix msvc build Lionel Landwerlin (4): anv: fix variable shadowing anv: zero-out anv_batch_bo anv: emit timestamp & availability using the same part of CS anv: flush tile cache with query copy command Matt Turner (8): intel/perf: Don't print leading space from desc_units() intel/perf: Deduplicate perf counters intel/perf: Use a function to initialize perf counters intel/perf: Use slimmer intel_perf_query_counter_data struct intel/perf: Store indices to strings rather than pointers intel/perf: Mark intel_perf_counter_* enums as PACKED intel/perf: Fix mistake in description string intel/perf: Destination array calculation into function Mike Blumenkrantz (9): llvmpipe: fix occlusion queries with early depth test anv: fix xfb usage with rasterizer discard anv: fix CmdSetColorWriteEnableEXT for maximum rts anv: fix some dynamic rasterization discard cases in pipeline construction lavapipe: always clone shader nir for shader states gallivm: fix oob image detection for cube/1dArray/2dArray/cubeArray zink: flag sample locations for re-set on batch flush zink: force-add usage when adding last-ref tracking zink: only update usage on buffer rebind if rebinds occurred Pierre-Eric Pelloux-Prayer (1): radeonsi: don't clear framebuffer.state before dcc decomp git tag: mesa-21.3.9 https://archive.mesa3d.org/mesa-21.3.9.tar.xz SHA256: 91fe6f20339884e37a7c47bfba42fb1cd397512c9ed5ad423de369f047cd8b5c mesa-21.3.9.tar.xz SHA512: 4cec6f4f50f444fcd327f7c40f8899c2f265e348e121455262b540b1f890a1468bbea59965af0876c548fa97aa0a05a1b23fa6ca7d308bd60328cfdeab757684 mesa-21.3.9.tar.xz PGP: https://archive.mesa3d.org/mesa-21.3.9.tar.xz.sig signature.asc Description: signature
[ANNOUNCE] mesa 22.1.2
Hi list, I'd like to announce Mesa 22.1.2 is now available, after a short delay to bisect a regression. That's been fixed, and now we have a release! There's a lot of zink here, thanks to Mike for help with manually backporting parts of it! We've als got a bunch of fixes for panfrost, and some for intel, radeon, llvmpip, dzn, broadcom, nir, core gallium, the va state tracker, and freedreno. Cheers, Dylan shortlog Alyssa Rosenzweig (7): panfrost: Fix XML for AFBC header on v9 pan/bi: Fix clper_xor on Mali-G31 pan/mdg: Scalarize with 64-bit sources pan/mdg: Remove uppercase write masks panfrost: Fix inverted indirect dispatch condition panfrost: Inline pan_fbd_has_zs_crc_ext panfrost: Disable CRC at <16x16 tile sizes Boris Brezillon (5): microsoft/spirv_to_dxil: Fix push_constants type declaration microsoft/spirv_to_dxil: Fix the push_constant UBO size calculation nir: Fix flat new_var assignment in create_new_io_vars() vulkan/util: Fill VkPhysicalDeviceIDProperties::deviceNodeMask microsoft/compiler: Images are no longer reprensented by uniform vars Dave Airlie (1): llvmpipe: handle timespec overflow on fence waits. Dylan Baker (9): docs: Add sh256sums for 22.1.1 .pick_status.json: Update to 1c63a0beafefccec599ddbe355ec5a8b61df6438 .pick_status.json: Update to ad5c84999b9eb2522cdf78bb0890939450280cf3 .pick_status.json: Update to 49234585772f49626435d3d9324ad144e27fc453 .pick_status.json: Update to 35dd4ac886283444294238ae0be1a7edcc776c8a .pick_status.json: Update to 2ef6b0aab1c7b99b85f2d88ced44a63f28cfca6b .pick_status.json: Update to ea33e44ce4f95ce45729b75dee34be50df749f09 docs: add release notes for 22.1.2 Bump version to 22.1.2 Emma Anholt (1): nouveau/nv30: Make sure fsat is lowered in the VS. Erik Faye-Lund (6): nir: introduce and use nir_component_mask freedreno: remove stale makefile intel: remove stale makefile ci/windows: add back build-error detection dzn: handle stencil-attachment-optimal layout gallium: remove stale comment Georg Lehmann (1): zink: Use VK_USE_64_BIT_PTR_DEFINES to check for 64bit platforms. Iago Toral Quiroga (1): broadcom/compiler: disable flags optimization for loop conditions Ian Romanick (1): anv: Remove FS executables when applying the null FS optimization Jason Ekstrand (2): nir/builder: Add a nir_trim_vector helper compiler/types: Don't place members in the previous substruct's end padding Jesse Natalie (2): nir: Consider PNTC to be a varying d3d12: Properly set HS input control point count Juan A. Suarez Romero (1): v3d: save only required states in blitter Kenneth Graunke (1): intel/compiler: Fix uncompaction of signed word immediates on Tigerlake Kyle Russell (1): etnaviv: don't halve max_instructions for GC400 Marek Olšák (2): ac/gpu_info: always retile DCC on gfx10 and newer chips gallium/u_threaded: fix buffer busyness tracking Mike Blumenkrantz (31): st/pbo_compute: make compute download conditional in shader slightly more readable st/pbo_compute: fix z coords for compute pbos zink: remove first_frame stalling lavapipe: fix dynamic patchControlPoints zink: force queries to start/end out of renderpass egl/wayland: manually swap backbuffer when using zink egl/wayland: skip buffer creation on zink kopper: use get_drawable_info path for non-x11 drawables zink: fix dmabuf plane layout struct scoping format_utils: properly parenthesize macro params zink: always create descriptor templates zink: fix ntv partial stores zink: fix variable locations in manual xfb emission zink: scalarize when rewriting explicit 64bit io zink: use separate pointer for swapchain presents zink: keep a count of async presents occuring for a given swapchain zink: defer old swapchain destruction zink: fix framebuffer attachment usage asserts for dummy attachments zink: only update layout when doing mixed zs attachment renderpass check zink: add implicit sync workaround for non-mesa drivers zink: unset res->swapchain upon killing a swapchain zink: fix up KILL to a more sensible log message zink: fix generated tcs update path zink: unset generated tcs pointer from tes on deletion zink: fix generated tcs deletion zink: avoid uninit values in renderpass state zink: don't print VK_EXT_shader_atomic_float warning for nir_intrinsic_image_deref_atomic_exchange zink: fix cubemap lowering for array samplers zink: fix cubemap lowering bit size zink: flag optimization pass after inlining uniforms zink: fix 32bit bo rewriting Nagappa Koppad, Basanagouda (1): iris:Duplicate DRM fd internally in
[ANNOUNCE] mesa 22.1.3
Hi list, As expected, mesa 22.1.3 is now available. Things are starting to slow down, as we would expect at this point in the series, with the exception of zink, which is still charging ahead full steam. There's a bit of everything else ehre, including some performance fixes for wsi/x11. Cheers, Dylan shortlog Alyssa Rosenzweig (2): pan/bi: Fix LD_BUFFER.i16 definition lima,panfrost: Do not ralloc contexts against the screen Boris Brezillon (3): d3d12: Keep access masks up-to-date when removing vars in d3d12_disable_multisampling() nir/serialize: Put dest last in packed_instr::tex nir/serialize: Support texop >= 16 Christian Gmeiner (1): nir: Fix unused-variable compile warnings Connor Abbott (4): tu: Fix 3d GMEM store swizzle in texture descriptor tu: Add missing WFI to the 3d GMEM store path tu: Save/restore *_BIN_CONTROL in 3d GMEM store path tu: Fix linemode for tessellation with isolines Dave Airlie (4): llvmpipe: disable alpha test branch if multisample is enabled. egl/x11: split large put image requests to avoid server destroy egl/x11: add missing put_image cookie cleanups wsi/x11: add xcb_put_image support for larger transfers. Dylan Baker (11): docs: add sha256sum to 22.1.2 notes .pick_status.json: Update to 09a7304d5abf5b847cf5feb2d97758bee1696566 .pick_status.json: Update to 2866ae32da0348caf71ad2d11c353321df626ff4 .pick_status.json: Update to 8ce7faab47a77377a6a1313a80580828b052f878 .pick_status.json: Mark 420270cb4f73da6251d4caec976358681f05c45c as backported .pick_status.json: Update to 9527fbe596e2ace276c158f67a900c29aad6cdd0 .pick_status.json: Update to 9d7d1c0637529301d3e319ec5f1c883c5f249783 lima/ci: mark some tests as pass .pick_status.json: Update to 58313f3257b338928a8ae4ea375eedb50accf2bb docs: add release notes for 22.1.3 VERSION: bump to 21.1.3 Emma Anholt (1): vc4: Propagate txf_ms's dest_type to the lowered txf. Erik Faye-Lund (1): docs: set language to english Filip Gawin (1): r300: prefer old not native swizzle in constant folding Iago Toral Quiroga (3): v3dv: fix leak broadcom/compiler: fix postponed TMU spills with multiple writes broadcom/compiler: don't predicate postponed spills Ian Romanick (3): intel/fs: Add missing synchronization for WaW dependency nir: i32csel opcodes should compare with integer zero nir/algebraic: Fix NaN-unsafe fcsel patterns Icecream95 (1): panfrost: Remove sync arguments from panfrost_batch_submit Italo Nicola (1): virgl: overpropagate precise flags Iván Briano (1): anv: do not get rid of empty/useless fragment shaders Jason Ekstrand (9): nir/deref: Break out a helper for compare_deref_paths nir/deref: Use an index in compare_deref_paths nir/deref: Make compare_deref_paths take a stop callback nir/deref: Re-arrange variable checks in compare_deref_paths nir: Increase nir_variable_data::mode to 16 bits nir/vars_tests: Use nir_var_mem_global instead of ssbo nir/deref: Handle SSBO array bindings specially nir/deref: Handle RESTRICT for SSBO deref bindings anv: Properly clamp attachment layer counts Lionel Landwerlin (2): vulkan/wsi: fix crash with debug names on swapchain anv: limit RT writes to number of color outputs Marcin Ślusarz (2): intel/common: allocate space for at least one task urb intel/compiler: adjust task payload offsets as late as possible Mike Blumenkrantz (27): zink: rename a variable zink: unify actual map calls in buffer mapping zink: use only the extents for buffer unmap flushes zink: fix buffer transfer flushes with offsets zink: store and reuse memory heap flags for buffer placement zink: move BAR allocation demotion up the stack zink: be a little selective about BAR fallback memory type zink: add a function for getting the minimum framebuffer layers zink: clamp renderpass layers better zink: move draw-time barrier generation down a little zink: track vertex buffer bind counts on resources zink: rework buffer barrier generation zink: track image binds zink: add a #define for vk shader bits zink: collect gfx stages for all bindings during barrier generation zink: don't short-circuit gfx stage finding during barrier generation zink: relax zink_resource_buffer_needs_barrier checks zink: cap driver inlining using ssa allocation limit glx/drisw: store the flush extension to the screen glx/drisw: invalidate drawables upon binding context if flush extension exists zink: fix dual_src_blend driconf workaround nir/lower_point_size: apply point size clamping lavapipe: copy more pNexts for pipeline creation lavapipe: fix renderpass info handling d
[ANNOUNCE] mesa 22.1.6
Hi list, I'd like to announce mesa 22.1.6. This release has a few patches in it, but the main one is the revert of a patch for panfrost which should not have been bkacported, but was. A normal release will follow in a one week for 22.1.7 Cheers, Dylan shortlog Dave Airlie (2): llvmpipe: make last_fence a screen/rast object not a context one. llvmpipe: keep context list and use to track resource usage. Dylan Baker (4): docs: Add sha256 sum for 22.1.5 docs: Add sha256 sum for 22.1.4 docs: add release notes for 22.1.6 VERSION: update to 22.1.6 Eric Engestrom (1): Revert "pan/bi: Require ATEST coverage mask input in R60" Mark Janes (1): intel/dev: drop warning for unhandled hwconfig keys Mykhailo Skorokhodov (1): anv: Use sampleLocationsEnable for sample locations git tag: mesa-22.1.6 https://archive.mesa3d.org/mesa-22.1.6.tar.xz SHA256: 22ced061eb9adab8ea35368246c1995c09723f3f71653cd5050c5cec376e671a mesa-22.1.6.tar.xz SHA512: 3b2a0bb781c3d540401e6f51e3cf0d87d4e22923b6a5a4ea9d8ce5c79b4a2d5e8b1c237a36325d7d7178448ae102470ebefb312644dc09818cce91fd5439cb07 mesa-22.1.6.tar.xz PGP: https://archive.mesa3d.org/mesa-22.1.6.tar.xz.sig signature.asc Description: signature
[ANNOUNCE] mesa 22.2.0-rc2
Hi list, It's that time again, mesa 22.2-rc2 is now avilaable. We've had lots of changes here, including a bug in my release script setting the version to 22.2.0 (oops)! Per normal, Mike is leading the pack with zink changes, but we've got fixes all over the tree here. See you again next week, same bat time, same bat channel, Dylan shortlog Alyssa Rosenzweig (1): agx: Fix packing of samplers in texture instrs Charmaine Lee (1): svga: fix mksstats build Connor Abbott (1): tu: Fix sysmem depth attachment clear flushing Dave Airlie (2): gallivm: fix printf hook for cached shaders. draw: don't touch info values that aren't valid. Dmitry Osipenko (1): virgl: Fix unmapping of blob resources Dylan Baker (8): .pick_status.json: Update to 8e6bdb2ed31f27c28d258859ec48e8e67f51ff41 .pick_status.json: Update to 0a0205f04552ab21971c431a5f8bb7486d664422 .pick_status.json: Update to 1a3b086b06c6c1ff63a4abe3752ca0a7a854dc77 .pick_status.json: Update to c67e60ae8fefaeadbe06bf0cbd8ad2ee267a6c0e .pick_status.json: Update to 70891edd9728e7dd73115171fdb03622ce6450ba VERSION: update to 22.2.0 Revert "VERSION: update to 22.2.0" VERSION: bump to 22.2.0-rc2 Emma Anholt (1): zink: Make sure that we keep the existing ici pNext chain on inserts. Eric Engestrom (1): bin/gen_release_notes.py: bump advertised vulkan version to 1.3 Erik Faye-Lund (3): docs: fixup link to virgl docs zink: add have_D32_SFLOAT_S8_UINT boolean zink: do not use VK_FORMAT_D32_SFLOAT_S8_UINT without checking Iván Briano (1): anv: emit scissors when the pipeline changes Juan A. Suarez Romero (1): vc4: properly restore vc4 debug option Lionel Landwerlin (1): anv: fixup PIPE_CONTROL restriction on gfx8 Liviu Prodea (2): d3d12/dzn/spirv2dxil: Require version library Microsoft clc: strip lib prefix Otherwise OpenCLon12 ICD can't load it Marek Olšák (1): radeonsi: don't assume that TC_ACTION_ENA invalidates L1 cache on gfx9 Mike Blumenkrantz (17): zink: handle mutable swapchain images with dmabuf zink: store VkFormatFeatureFlags on creation zink: use modifier feature flags during surface creation when necessary zink: init cache_put program fence on program creation zink: force flush clears on fb change if fb geometry changes zink: force a new framebuffer for clear_depth_stencil if the clear region is big zink: drop mode_changed check from linewidth/depthbias draw updates zink: handle unscaled depth bias from nine zink: handle !half_pixel_center zink: fix return for PIPE_CAP_DEPTH_CLIP_DISABLE nine: check return on resource_get_handle zink: demote dmabuf tiling to linear if modifiers aren't supported zink: use modifier_aspect to check for modifier plane in zink_resource_get_param zink: don't add modifiers if EXT_image_drm_format_modifier isn't present zink: add all format modifiers when adding for dmabuf export zink: don't fixup sparse texops vulkan: Update the XML and headers to 1.3.224 Pierre-Eric Pelloux-Prayer (2): amdgpu/bo: update uses_secure_bos when importing buffers nir: add a nir_opt_if_options enum Rhys Perry (2): aco: fix LdsBranchVmemWARHazard with 2+ branch chains aco: fix hash statistic Rob Clark (2): freedreno/drm: Fix potential bo cache vs export crash freedreno/gmem: Fix col0 calc Samuel Pitoiset (4): vulkan: add support for VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT radv: implement VK_EXT_attachment_feedback_loop_layout radv: ignore out-of-order rasterization if stencil write mask is dynamic radv: fix gathering XFB info if there is dead outputs Tatsuyuki Ishi (1): radv: Implement radv_flush_before_query_copy to workaround UE Vulkan bugs. Timothy Arceri (1): Revert "nir: Preserve offsets in lower_io_to_scalar_early" Yonggang Luo (1): d3d12: Fixes compile error with mingw/gcc-x64 when static linkage to runtime library git tag: mesa-22.2.0-rc2 https://archive.mesa3d.org/mesa-22.2.0-rc2.tar.xz SHA256: b525c8723bec7bb09505a7120cec1f11918b93161c5e59a1aa9fc22eaa0b935e mesa-22.2.0-rc2.tar.xz SHA512: 030cf7897aad6fc4c79b7a76baec7d222df22f9ad7f924db77a6407197be6fd7ee7cc0c4c9972d0b8ed94d19796b364c279d29ffc192e7bea647d69038ee66d1 mesa-22.2.0-rc2.tar.xz PGP: https://archive.mesa3d.org/mesa-22.2.0-rc2.tar.xz.sig signature.asc Description: signature
[ANNOUNCE] mesa 22.1.7
Hi list, Back on our regluar schedule, I'm please to announce the availability of mesa 22.1.7. this is a full release, with some nice fixes and cleanups all over the tree. As is usual these days, most of the fixes are for zink, but there's also a nice batch of fixes for the gallium dx9 frontend, and some other fixes across the board. Cheers, Dylan shortlog Alyssa Rosenzweig (2): pan/decode: Fix overrun decoding planes agx: Fix packing of samplers in texture instrs Axel Davy (6): frontend/nine: Skip invalid swvp calls frontend/nine: Fix buffer tracking out of bounds frontend/nine: Fix ATOC handling frontend/nine: Fix cso restore bug frontend/nine: Fix shader multi-use crash frontend/nine: Fix ff position_t fallback when w = 0 Charmaine Lee (1): mesa/st: fix reference to nir->info after nir_to_tgsi Connor Abbott (2): tu: Treat CP_WAIT_FOR_ME as a cache invalidate tu: Fix sysmem depth attachment clear flushing Dave Airlie (1): draw: don't touch info values that aren't valid. Dmitry Osipenko (1): virgl: Fix unmapping of blob resources Dylan Baker (7): .pick_status.json: Update to 56f331951984e698e4b947d2ad6e34a8444bd62c .pick_status.json: Update to a3bf0da1cbd4b10043c80bf44609a3024b5fcc36 .pick_status.json: Update to 24b9ad7cd5ebc7cfa5d03cf0f243ea4841c971b9 .pick_status.json: Update to 74fc367127ccf945f4c649dd6ddff955c802e36e .pick_status.json: Mark 11ab6087797f805cf158048915c67945613c9a72 as denominated docs: add release notes for 22.1.7 VERSION: update to 22.1.7 Emma Anholt (1): zink: Make sure that we keep the existing ici pNext chain on inserts. Eric Engestrom (4): docs/features.txt: mark VK_ANDROID_native_buffer as supported on turnip docs/features.txt: mark VK_ANDROID_native_buffer as supported on v3dv bin/gen_release_notes.py: bump advertised vulkan version to 1.3 vk/device-select-layer: fix .sType of VkPhysicalDeviceGroupProperties Erik Faye-Lund (4): gallium/hud: do not use texture-rect for font docs: fixup link to virgl docs zink: add have_D32_SFLOAT_S8_UINT boolean zink: do not use VK_FORMAT_D32_SFLOAT_S8_UINT without checking Filip Gawin (1): r300: don't read from output transform_r300_vertex_SEQ/SNE Georg Lehmann (1): aco/ir: Fix swapped nle. Gert Wollny (1): virgl: honor host caps in shader cash sha evaluation Jesse Natalie (2): egl/wgl: Delete unused variables/code egl/wgl: Fix some awkward sizeof formatting Lionel Landwerlin (2): anv: fixup PIPE_CONTROL restriction on gfx8 anv: don't return incorrect error code for vkCreateDescriptorPool Liviu Prodea (1): meson: Microsoft / maybe Intel CLC need the all-targets workaround just like clover Marcin Ślusarz (3): intel/compiler: emit URB fences for TASK/MESH intel/compiler: there are 4 types of fences on gfx >= 12.5 intel/compiler: insert URB fence before task/mesh termination Marek Olšák (5): util/u_threaded: fix a CPU storage crash due to an invalid codepath taken glthread: don't ignore glPushAttrib/glPopAttrib when tracking GL_CULL_FACE radeonsi: don't assume that TC_ACTION_ENA invalidates L1 cache on gfx9 glthread: unbind framebuffers in glDeleteFramebuffers glthread: call _mesa_glthread_DeleteBuffers unconditionally Mike Blumenkrantz (15): lavapipe: fix stencil clears util/blitter: respect PIPE_TEXTURE_RECT d3dadapter: fix sw pipe loading nine: set view_mask=0 zink: fix gfx program cache pruning with generated tcs zink: don't flag lazy push constant set dirty on batch change zink: handle mutable swapchain images with dmabuf zink: init cache_put program fence on program creation zink: drop mode_changed check from linewidth/depthbias draw updates nine: check return on resource_get_handle zink: demote dmabuf tiling to linear if modifiers aren't supported zink: use modifier_aspect to check for modifier plane in zink_resource_get_param zink: don't add modifiers if EXT_image_drm_format_modifier isn't present zink: add all format modifiers when adding for dmabuf export nir/validate: clamp unsized tex dests to 32bit Mykhailo Skorokhodov (2): iris: Move Wa_1806527549 and enable by default anv: Move Wa_1806527549 and enable by default Nanley Chery (2): anv: Make the D16 reg mode single-sampled iris: Make the D16 reg mode single-sampled Pavel Ondračka (1): r300: fix variables detection for paired ALU and TEX instructions in different branches Pierre-Eric Pelloux-Prayer (1): amdgpu/bo: update uses_secure_bos when importing buffers Qiang Yu (1): nir/lower_gs_intrinsics: fix primitive count for points Rhys Perry (1): aco: fix LdsBranchVmemWARHaz
[ANNOUNCE] mesa 22.2.0-rc3
Hi list, I didn't get this out yesterday, but here's mesa 22.2.0-rc3. We've got a huge number of fixes for turnip, a good number of fixes for gallium/nine, as well as a bit of this and that. Cheers, Dylan shortlog Axel Davy (6): frontend/nine: Skip invalid swvp calls frontend/nine: Fix buffer tracking out of bounds frontend/nine: Fix ATOC handling frontend/nine: Fix cso restore bug frontend/nine: Fix shader multi-use crash frontend/nine: Fix ff position_t fallback when w = 0 Charmaine Lee (1): mesa/st: fix reference to nir->info after nir_to_tgsi Chia-I Wu (26): turnip: add tu_common.h as the common header turnip: remove includes that are already in tu_common.h turnip: add tu_drm.h turnip: add tu_suballoc.h turnip: update tu_cs.h turnip: add tu_query.h turnip: add tu_image.h turnip: add tu_formats.h turnip: update tu_descriptor_set.h turnip: add tu_shader.h turnip: add tu_pipeline.h turnip: add tu_clear_blit.h turnip: add tu_dynamic_rendering.h turnip: add tu_lrz.h turnip: add tu_pass.h turnip: add tu_wsi.h turnip: update tu_autotune.h turnip: add tu_device.h turnip: add tu_cmd_buffer.h turnip: add tu_android.h turnip: update tu_util.h turnip: move away from tu_private.h turnip: remove tu_private.h turnip: remove headers from libtu_files turnip: use SPDX-License-Identifier turnip: fix a use-after-free in autotune Dylan Baker (5): .pick_status.json: Update to a3bf0da1cbd4b10043c80bf44609a3024b5fcc36 .pick_status.json: Update to 24b9ad7cd5ebc7cfa5d03cf0f243ea4841c971b9 .pick_status.json: Update to 74fc367127ccf945f4c649dd6ddff955c802e36e .pick_status.json: Mark 11ab6087797f805cf158048915c67945613c9a72 as denominated VERSION: bump to 22.2.0-rc3 Eric Engestrom (1): vk/device-select-layer: fix .sType of VkPhysicalDeviceGroupProperties Jesse Natalie (2): egl/wgl: Delete unused variables/code egl/wgl: Fix some awkward sizeof formatting Konstantin Seurer (1): radv: Fix stack size calculation with stage ids Lionel Landwerlin (1): anv: don't return incorrect error code for vkCreateDescriptorPool Liviu Prodea (1): meson: Microsoft / maybe Intel CLC need the all-targets workaround just like clover Marek Olšák (2): glthread: unbind framebuffers in glDeleteFramebuffers glthread: call _mesa_glthread_DeleteBuffers unconditionally Mike Blumenkrantz (4): radv: fix return type for meta resolve shaders nir/validate: clamp unsized tex dests to 32bit mesa: fix blending when using luminance/intensity emulation mesa: require render target bind for A/L/I in format selection Pavel Ondračka (1): r300: fix variables detection for paired ALU and TEX instructions in different branches Qiang Yu (1): nir/lower_gs_intrinsics: fix primitive count for points Samuel Pitoiset (1): radv: fix cleaning the meta query state if an error occured Yonggang Luo (2): microsoft/clc: Fixes compiling errors with clang/mingw64 in clc/clc_compiler_test.cpp util: Fixes invalid assumption that return non null by function util_format_fetch_rgba_func sjfricke (1): isl: fix bug where sb.MOCS is not being set git tag: mesa-22.2.0-rc3 https://archive.mesa3d.org/mesa-22.2.0-rc3.tar.xz SHA256: db392307a02f97b7a8237809e28b627306356a2b27bb911bf9f4344b66313e39 mesa-22.2.0-rc3.tar.xz SHA512: e026904fbc046575d58c5458e2d94d201cbb015eaf5e900eefbc237f45ebd0e6afb46b4d74b0c9b864911e174a1729707e9f85fea54996ba87499b33c4c96836 mesa-22.2.0-rc3.tar.xz PGP: https://archive.mesa3d.org/mesa-22.2.0-rc3.tar.xz.sig signature.asc Description: signature
[ANNOUNCE] mesa 22.2.0
Hi list! After a long delay, several regressions, several bad picks by me that required bisect, one very nasty cold, and a lot of grumbling, I present mesa 22.2.0! There's a lot here, including some important fixes for nv50 with nouveau and ttn. In case you're wondering, yes the release was ready yesterday, but due to said nasty cold, the announcement and docs were uploaded today. Cheers, Dylan shortlog Alyssa Rosenzweig (9): panfrost: Don't segfault on unknown models pan/bi: Don't reorder image loads across stores pan/bi: Don't allow ATEST to take a temporary pan/mdg: Print 3 sources for CSEL pan/bi: Fix dual texturing with uniforms pan/bi: Fix out-of-bounds write in va_lower_split_64bit pan/bi: Consider all dests in helper_block_update agx: Fix float copyprop of neg(neg) case panfrost: Respect buffer offset for OpenCL Bas Nieuwenhuizen (3): vulkan/wsi: Take max extent into consideration for modifier selection. amd/common: Don't rely on DCN support checks with modifiers. amd/common: Disable DCC retile modifiers on RDNA1 Charmaine Lee (2): svga: support TGSI_SEMANTIC_TEXCOORD in swtnl draw context svga: fix invalid component access of domain location Chia-I Wu (2): turnip: lower the queue priority to 1 ir3: fix predicate splitting in scheduler Connor Abbott (4): ir3/spill: Fix extracting from a vector at the end of a block tu/lrz: Fix multiple subpass case with secondaries tu/lrz: Fix multiple depth attachment case with secondaries tu: Don't preload variable-count descriptors Danylo Piliaiev (3): tu: Disable LRZ write when alpha-to-coverage is enabled freedreno: Disable LRZ write when alpha-to-coverage is enabled ir3: Prevent reordering movmsk with kill Dave Airlie (2): nir_to_tgsi_info: drop const_buffers_declared llvmpipe: finish rendering before flushing frontbuffer resources. Dylan Baker (5): .pick_status.json: Update to 0c6fbfca0c91ef012e8ab767a317c07f1f6dc5e6 .pick_status.json: Update to 8eac45b27446cd9b9eaeb147af97fff1e09832cb .pick_status.json: Update to baf24dea943202b3a92cad0c9f9648597040955a .pick_status.json: Update to 3d4c36a3bcc51ed441b2667d92291bea30ef7449 VERSION: update to 22.2.0 Emma Anholt (1): spirv: Mark phis as mediump instead of directly lowering them to 16 bit. Eric Engestrom (3): wsi/x11: fix memleak in wsi_x11_connection_create() meson: replace manual compiler flags with meson arguments broadcom: fix dependencies in static_library() calls Erik Faye-Lund (5): zink: type_main -> type_void_func zink: add spirv_builder_function_call zink: wrap discard in a function zink: clamp miplodbias when creating sampler docs/zink: document rgtc requirement Georg Lehmann (1): aco: Force tex operand to have the correct sub dword size before packing. Gert Wollny (16): r600/sfn: Schedule shift instruction on R600 in t-slot r600/sfn: Add GS thread fix just like the TGSI code path r600/sfn: Sort FS inputs to make interpolated values come first r600/sfn: Fix color outputs when color0 writes all r600: Force NOPs when loading AR on R600 class hardware r600/sfn: Handle R600 scratch read r600: Don't use SB with R600 style scratch reads r600/sfn: Handle color0 writes all on R700 like on EG r600/sfn: Don't tag mem-ring and stream instructions as exports r600/sfn: Don't schedule GDS instructions early r600/sfn: Don't scan the whole block for ready instructions r600/sfn: Use a heuristic to keep SSBO setup and store close r600: Fix reporting TGSI IR support r600/sfn: Use a low number for unused target register virgl: when reading back wait first, then do the transfer r600/sfn: override register ID when it doesn't matter Glenn Kennard (1): nv30: Fix non-scissored clears after a scissor has been set Ian Romanick (3): nir: spirv: Allow 32-bit version of nir_intrinsic_is_sparse_texels_resident radeonsi: r600: d3d12: st: Use NIR lowering for tg4 offset arrays instead of GLSL lowering glsl: Remove lower_offset_arrays pass Ikshwaku Chauhan (1): Revert "radeon: add EFC support to only VCN2.0 devices" Iván Briano (1): anv: pipelineStageCreationFeedbackCount is allowed to be 0 James Zhu (1): amd/common: some ASICs with gfx9 use compute rings for render Jason Ekstrand (2): radv: Use both aspects for depth/stencil blit destinations vulkan: Dirty VP_VIEWPORTS/SCISSORS when copying viewports/scissors Jesse Natalie (2): microsoft/compiler: Discard shouldn't be marked readnone microsoft/compiler: Fix PSV struct when numthreads is 0 Jordan Justen (7): iris: Drop extra file-descriptor dup in iris_drm_screen_crea
[ANNOUNCE] mesa 22.2.1
Hi list, I'm a bit late getting this out, I blame XDC. Anyway. This is pretty much what *should* have been in 22.21, with a few extras, so there will be a regularly scheduled 22.2 release next week. We've got lots of stuff here: llvmpipe, lavapipe, freedreno, aco, mesa, turnip, virgl, r600, zink, radv, core gallium, and nir. All in all, lots of good fixes all over the tree. Cheers, Dylan shortlog Caio Oliveira (1): nir/lower_task_shader: Don't fail adding a launch when last instruction is a jump Connor Abbott (3): tu: Fix maxPerStageDescriptorUpdateAfterBindInputAttachments ir3/analyze_ubo_ranges: Account for reserved consts ir3/analyze_ubo_ranges: Account for reserved consts better Daniel Schürmann (1): aco/optimizer: disallow can_eliminate_and_exec() with s_not Dave Airlie (5): lavapipe: fix 3d depth stencil image clearing. lavapipe: take layers into account around render surface creation. lavapipe: handle view mask layer count properly for begin rendering. llvmpipe: memset empty images in the key llvmpipe: bind sampler views/images properly. Dylan Baker (17): docs: add release notes for 22.2.0 docs: Add sha256 sum for 22.2.0 .pick_status.json: Update to 3730be9873d556918a20795b37399b7e2e9630b5 .pick_status.json: Update to c268ae9efe602129b848c800dca83411d55c3aab .pick_status.json: Mark 49efa73ba11c4cacaed0052b984e1fb884cf7600 as denominated .pick_status.json: Mark 5b7c2dffc43eb7ada61807a6e679cc2c1b3b2682 as denominated .pick_status.json: Mark 1aacd9492de42412c6c9ca79d48a40c4ffebcd79 as backported .pick_status.json: Mark cbad4adc133b16c803ec9445c8dd144bc5023a62 as denominated .pick_status.json: Mark 40a235c9a82027bcb92d34b7386ea6b1a2e1d587 as denominated .pick_status.json: Update to 3ed712f7483791aa0a256472d276ff5a83c643bc .pick_status.json: Update to e5631add0d1c97da4686f474735d45705facd308 .pick_status.json: Mark 5af6dad179dc4140964ab444a2a7f8cf8d16c561 as denominated .pick_status.json: Update to 68f3c38c8011e3ff304a67b6ffb33fd21ee65b0c .pick_status.json: Mark ff933485b7e328c5041050d5e41a2dd28a032a92 as denominated docs: remove new_features.txt docs: add release notes for 22.2.1 VERSION: update to 22.2.1 Emma Anholt (2): turnip: Fix the "written stencil is unmodified" check. turnip: Fix busy-waiting on syncobjs with OS_TIMEOUT_INFINITE. Erik Faye-Lund (4): mesa/st: always use normalized coords for samplers mesa/st: always use normalized coords for samplers mesa/st: always use normalized coords for samplers docs: fixup broken rst syntax Feng Jiang (1): virgl/vtest: fix memory overwrite problem in virgl_vtest_send_get_caps() Gert Wollny (2): r600/sfn: Handle shifts on Cayman nir_lower_to_source_mods: Don't sneek in an abs modifier from parent James Park (1): meson,amd: Remove Windows libelf wrap Jason Ekstrand (3): iris: Use a larger alignment for buffer allocations iris: Fix more BO alignments iris: Handle resource offsets in buffer copies Jesse Natalie (1): u_atomic: Add a helper for pointer compare-exchange Jonathan (2): gallium/u_threaded: Prepare for buffer sharedness tracking gallium/u_threaded: buffer sharedness tracking Jonathan Gray (1): iris: check i915 features after hw gen Lionel Landwerlin (12): anv: clear descriptorsets if AllocateDescriptorSets fails anv: add missing wokraround for texture cache invalidate intel/nir/rt: fixup generate hit intel/nir/rt: spill/fill the entire ray query data intel/nir/rt: fix ray query proceed level intel/nir/rt: change scratch check validation intel/nir/rt: store ray query state in scratch intel/fs: fixup a64 messages intel/nir: fixup preserved metadata in rayquery lowering intel/nir: fix potential invalid function impl ptr usage intel/nir: disable assert on async stack id anv: remove HDC flush from invalidate bits Marcin Ślusarz (1): intel/compiler: remove second shading rate lowering for mesh Marek Olšák (1): radeonsi: don't flush asynchronously for fence_server_signal Martin Krastev (1): meson: add svga gallium driver to 'auto' group on arm/aarch64 Mike Blumenkrantz (23): zink: uncap ssbo size zink: fix atomic ssbo indexing with non-32bit values zink: split up get_clear_data() zink: make void clears more robust zink: fix/relax resolve geometry check zink: fix atomic ssbo fadd offsets st/bitmap: use normalized coords in samplers with lowered rects st/drawpixels: use normalized coords in samplers with lowered rects zink: handle culldistance xfb outputs like clipdistance lavapipe: set writemask for compute shader buffers lavapipe: propagate shader
[ANNOUNCE] mesa 22.2.2
Hi list, Mesa 22.2.2 is now available. This is the second bug fix release, back on the regular schedule. There's a lot here: nir, panfrost, gallium video, freedreno, nouveau, turnip, r300, gallium core, r600, virgl, core vulkan, anv, clover, d3d12, utils, radv, and plenty of zink. Cheers, Dylan shortlog Alejandro Tafalla (1): freedreno: Fix graphic glitches on a4xx and a5xx Alyssa Rosenzweig (4): nir/lower_system_values: Fix cs_local_index_to_id with variable workgroups pan/mdg: Lower PIPE_COMPUTE_CAP_MAX_THREADS_PER_BLOCK on Midgard pan/mdg: Fix 16-bit alignment with spiller nir: Fix nir_fmax_abs_vec_comp Andri Yngvason (1): gallium/vl: Add opaque rgb pixel formats Daniel Schürmann (1): aco/spill: Fix spilling of Phi operands Danylo Piliaiev (1): tu: Reset whether there is DS resolve for dynamic subpass Dave Airlie (1): gallivm: handle llvm coroutines for llvm > 15 Diogo Ivo (1): nouveau: treat DRM_FORMAT_INVALID as implicit modifier Dylan Baker (9): docs: Add sha256 sum for 22.2.1 .pick_status.json: Update to 243aa6b2ec0c2626b1333ba666a6d6d60ede8505 .pick_status.json: Update to c4482a3c1a973975eb27ac284a18bebca24f7876 .pick_status.json: Update to 3eed5931edf6e5f45378b013ca21f98f17af2b34 .pick_status.json: Update to b02e9ef35a0446019cda9473e4c355c7cc4bb24d .pick_status.json: Mark 4c7a44413a07d3fb314f786e047bb7212c082a6c as denominated .pick_status.json: Mark dbd022f2ab43ff0a9ecc05c61123467e25f109de as backported docs: add release notes for 22.2.2 VERSION: update to 22.2.2 Emma Anholt (1): turnip: Don't use the dynamic color write enable during non-dynamic. Erik Faye-Lund (1): gallium/u_threaded_context: remove stale comment Filip Gawin (1): r300: don't use smooth line if not requested Gert Wollny (3): r600/sfn: Always start a new CF after a KILL instruction r600/sfn: don't propagate registers into conditional test virgl: Report CONSTANT_BUFFER_SIZE according to GL_MAX_UNIFORM_BLOCK_SIZE Lionel Landwerlin (3): vulkan/runtime: don't lookup the pipeline disk cache if disabled anv: initialization pipeline layout to 0s anv: add missing tracepoint Liviu Prodea (1): clc/clover: Link clang statically when shared-llvm is disabled Mike Blumenkrantz (3): zink: clamp line_stipple_factor to 1 if stipple is disabled zink: unset rp_changed after initializing renderpass attachments zink: disable fbfetch when flushing clears Ryan Houdek (1): vulkan/wsi: Add dep_libudev to idep dependencies Sil Vilerino (2): gallium/va: vaDeriveImage to check PIPE_VIDEO_SUPPORTS_CONTIGUOUS_PLANES_MAP d3d12: Implement cap PIPE_VIDEO_SUPPORTS_CONTIGUOUS_PLANES_MAP SoroushIMG (3): zink: fix invalid Offset set for variables which do not need an offset zink: stop enabling minmax filtering when not supported zink: fix isNan mismatch between NIR and SPIR-V Timothy Arceri (5): util/conf: enable init to zero workaround for Exanima util/radeonsi: enable zerovram workaround for Exanima radv: add radv_zero_vram workarounds for OpenGL games glthread: fix matrix stack depth tracking glthread: leave dlist dispatch in place for Begin/End Yonggang Luo (1): util: Turn -DWINDOWS_NO_FUTEX to be pre_args git tag: mesa-22.2.2 https://archive.mesa3d.org/mesa-22.2.2.tar.xz SHA256: 2de11fb74fc5cc671b818e49fe203cea0cd1d8b69756e97cdb06a2f4e78948f9 mesa-22.2.2.tar.xz SHA512: a1eb67e1ae4880c79b1fdc570f4389baba0b8ba796da7e695c9af19a7d92b6c06b95570e6c796548b61355989025fb7efbf9acac74cbd695f7e297dc913b933c mesa-22.2.2.tar.xz PGP: https://archive.mesa3d.org/mesa-22.2.2.tar.xz.sig signature.asc Description: signature
[ANNOUNCE] mesa 22.2.3
Hi list, Mesa 22.2.3 is now available, after a short delay getting some regressions in CI worked out. We've got a bit of everything, and nothing too crazy, which is how I like it. Cheers, Dylan shortlog Alyssa Rosenzweig (3): pan/mdg: Fix 64-bit address arithmetic panfrost: Use compute-based XFB on Midgard panfrost: Lower MAX_BLOCK_SIZE on Midgard Danylo Piliaiev (1): freedreno/fdl: Increase alignment for UBWC images Dylan Baker (8): docs: Add sha256 sum for 22.2.2 .pick_status.json: Update to 93febe1198a03c16c18fc413501ba710edc8b1ec .pick_status.json: Update to 938e13c57d095dafb752a2edf22c6a02afcd0b28 .pick_status.json: Update to 16e0702ec7103c06f2f33654b6e41498e2eabf8e .pick_status.json: Update to 4087374deb53b79d6ac23c6ae87aadf9595d8d00 .pick_status.json: Mark 1a06dbcaed9ed4095ec8878d947935f0f7558cfd as denominated docs: add release notes for 22.2.3 VERSION: update to 22.2.3 Emma Anholt (1): nir/opt_phi_precision: Fix missing swizzles when narrowing phi srcs. Erik Faye-Lund (1): zink: do not read is_generated unless in tcs shader Fabian Vogt (1): gallivm: Fix LLVM optimization with the new pass manager Georg Lehmann (2): nir: Fix ifind_msb_rev constant folding. aco: Don't use opsel for p_insert. Gert Wollny (2): r600: Account for color and clipvertex when evaluating LDS space r600/sfn: evaluate LDS location for color and clip-vertex too Iago Toral Quiroga (1): v3dv: drop layout refs for all allocated sets from a pool on destroy / reset Joan Bruguera (1): nv50/ir/nir: ignore sampler for TXF/TXQ ops. Lionel Landwerlin (2): nir/divergence_analysis: add missing desc_set_address_intel intel/compiler: don't allocate compaction arrays on the stack Lucas Stach (1): etnaviv: properly reference flush_resources Marcin Ślusarz (2): anv: set 3DSTATE_[MESH|TASK]_CONTROL.MaximumNumberofThreadGroups anv: program 3DSTATE_MESH_DISTRIB with the recommended values Matt Turner (1): intel/dev: Set display_ver = 13 on all ADL/RPL/DG2 Mike Blumenkrantz (1): zink: don't flag ubo0 as used in shaders with indirect ubo access Nanley Chery (1): iris: Enable INTEL_MEASURE for compute dispatches on XeHP Pavel Ondračka (2): r300: respect buffer offset in r300_set_constant_buffer r300: fix generation of invalid swizzles in regalloc Pierre-Eric Pelloux-Prayer (2): radeonsi: zero init using the correct components count radeonsi: update db_eqaa even if msaa is disabled Rhys Perry (2): aco: swap v_perm_b32 operands radv/llvm: fix GS shaders on GFX8/9 Rob Clark (1): freedreno/a6xx: Fix occlusion queries Ruijing Dong (1): frontends/va: fix av1 decoding image distortion issue Yonggang Luo (1): meson: with_glx never assigned to 'gallium-xlib', so need add with_glx == 'xlib' for dep_glproto git tag: mesa-22.2.3 https://archive.mesa3d.org/mesa-22.2.3.tar.xz SHA256: ee7d026f7b1991dbae0861d359b671145c3a86f2a731353b885d2ea2d5c098d6 mesa-22.2.3.tar.xz SHA512: 08e9ce43392c46f9c0d122d70e118511eea81422d06f93ab6d330689b46feed3ac1c3bdcdcfd4a27cd5b9eaf26aab518d152a2c753f07b8ed19575d4ed892ad6 mesa-22.2.3.tar.xz PGP: https://archive.mesa3d.org/mesa-22.2.3.tar.xz.sig signature.asc Description: signature
[ANNOUNCE] mesa 22.2.5
Hi list, A little, late, but I'd like to announce mesa 22.2.5, the last planned release of the mesa 22.2.x series. There's a number of nice fixes in here, convering a decent amount of the codebase, but nothing too crazy. This is the lasted planned release of the 22.2.x series, and you should plan to migrate to 22.3.x soon. Cheers, Dylan shortlog Alyssa Rosenzweig (4): panfrost: Fix reference counting with batch->resources panfrost: Use PIPE_CAP_VERTEX_ATTRIB_ELEMENT_ALIGNED_ONLY panfrost: Revert "Require 64-byte alignment on imports" pan/mdg: Fix out-of-order execution Bas Nieuwenhuizen (4): radv: Fix custom build id with C90 compilation. radv: Use correct init order for ETC2 image views radv: Fix sampler types in ETC2 decode. vulkan: Remove asserts that weren't valid for RADV ETC2 emulation. Christopher Egert (1): virgl: add missing members in virgl_caps_v2 in 22.2 Connor Abbott (1): ir3: Don't save/restore disasm string pointer Dylan Baker (9): docs: Add sha256 sum for 22.2.4 .pick_status.json: Update to 5a5bc3dd52964a2d865c5b0c45c4eb3a6a4cd013 .pick_status.json: Update to 8133d5551de13a2c1912f61ab9f87938b33aa5ea .pick_status.json: Update to 7aa94efe827fa2b99490e04ce2f5c1a4d737871c .pick_status.json: Mark 81b4af28494c065c5646e3f61a72afd829d978c6 as backported .pick_status.json: Mark e74d989a6935ce11d06970a3c98b474b7773c905 as backported .pick_status.json: Update to cf841cdd0bcf0784fb6a4301e624e12f3502ba5a docs: add release notes for 22.2.5 VERSION: update to 22.2.5 Erik Faye-Lund (3): zink: fix incorrect requirements docs/zink: add missing required device-feature mesa: treat unsupported queries as dummies Gert Wollny (1): virgl: don't a use staging when a resources created with the shared flag Hans-Kristian Arntzen (1): vk/runtime: Fix narrowing of timeline signal and wait value to u32. Ian Romanick (1): nir/range_analysis: Set higher default maximum for max_workgroup_count Jessica Clarke (1): panfrost/blend: Fix invalid const values leading to NIR validation errors José Roberto de Souza (1): iris: Set priority for replaced engine context Karol Herbst (1): nir/lower_int64: fix shift lowering Lionel Landwerlin (6): intel/perf: allocate cleared counter infos nir/lower_explicit_io: fix metadata preserve nir/lower_shader_calls: update metadata before validation nir/lower_shader_calls: wrap only jumps rather than entire code blocks intel/fs: improve Wa_22013689345 workaround blorp: support negative offsets in addresses Lucas Stach (3): etnaviv: fix tile status interaction with write mappings etnaviv: blt: use correct TS offset in clear operations etnaviv: fix wrong surface TS clear size Marek Olšák (1): st/mesa: suppress async glthread flushing for GLX_EXT_texture_from_pixmap Mauro Rossi (1): r600/sfn: allow building with clang 6 (Android 9) Qiang Yu (1): ac/llvm: fix 16bit varying llvm compile error Rhys Perry (3): nir/lower_bit_size: lower uadd_carry radv: lower 8/16-bit uadd_carry/usub_borrow ac/nir: mask shift operands Roman Stratiienko (1): meson: Enable system_has_kms_drm for android Sajeesh Sidharthan (1): radeonsi/vcn: set current pic index correctly Sviatoslav Peleshko (1): driconf/intel: Use fake vendor to WA bad detection in Source engine games Yonggang Luo (2): ci: Rename ci.yml to macos.yml for consistence with main branch meson: Fixes name_prefix for clover on mingw git tag: mesa-22.2.5 https://archive.mesa3d.org/mesa-22.2.5.tar.xz SHA256: 850f063146f8ebb262aec04f666c2c1e5623f2a1987dda24e4361b17b912c73b mesa-22.2.5.tar.xz SHA512: 9039cf31e719b66a6ecea48e7f871d187333a1accd3fa77ce2cb36ce539682dd50f09bccc11a0c35760051768108699cf90dfb0936809faf1e1294cc5d1ec0af mesa-22.2.5.tar.xz PGP: https://archive.mesa3d.org/mesa-22.2.5.tar.xz.sig signature.asc Description: signature
[ANNOUNCE] mesa 23.0.0-rc1
Hi list, I'd like to announce mesa 23.0.0-rc1, which is now available for general consumption. The branch was made yesterday, as many noticed, but I wasn't able to get the actual relase cut until today. There's a ton of great changes here. As always, please be sure to test and file issues for any problems you run into. Cheers, Dylan git tag: mesa-23.0.0-rc1 https://archive.mesa3d.org/mesa-23.0.0-rc1.tar.xz SHA256: 058ad82a0c3ed84927e639c5febb16385b3306a1acfb6816cfa5d2538e1bd7ea mesa-23.0.0-rc1.tar.xz SHA512: 8e2c6424ac41c79fb3a041c856be17517f1091146e77fae76a5b0fdd8dcf09fd32a8e9271abb743ac1adbb0740b524b9f216645594a1a9277b9f04d51a8cf0d9 mesa-23.0.0-rc1.tar.xz PGP: https://archive.mesa3d.org/mesa-23.0.0-rc1.tar.xz.sig signature.asc Description: signature
[ANNOUNCE] mesa 23.0.0-rc2
Hi list, On schedule this time, is mesa 23.0.0-rc2. This is a nice small release with not too many changes, and I really like it. Hopefully a small trickle of bug fixes will continue until our normally scheduled release in 2 weeks. Cheers, Dylan shortlog Alejandro Piñeiro (1): vulkan/wsi: check if image info was already freed Alyssa Rosenzweig (5): panfrost: Don't use AFBC of sRGB luminance-alpha pan/bi: Fix incorrect compilation of fsat(reg.yx) panfrost: Enable NV_primitive_restart on Valhall panfrost: Fix logic ops on Bifrost panfrost: Fix clears with conditional rendering Bas Nieuwenhuizen (1): aco: Pass correct number of coords to Vega 1D LOD instruction. Dylan Baker (3): .pick_status.json: Update to a5a19903ab671ebdf4130fdf3cc782a8a0a2a3d9 .pick_status.json: Update to 8084b412ca97c048b43043c80946498b346c3016 VERSION: bump for 23.0.0-rc2 Friedrich Vock (2): radv/rt: Divide by the correct workgroup size radv/bvh: Prevent NANs when computing node cost Jesse Natalie (1): dzn: Fix clear bind flag logic Lionel Landwerlin (1): Revert "ci: build hasvk if we're building anv" Samuel Pitoiset (1): radv: fix re-emitting RB+ when the non-compacted color format changes Tapani Pälli (1): intel/compiler: add cpp_std=c++17 when building tests Vinson Lee (1): radv: Fix memory leak. t0b3 (1): nir/nir_opt_move: fix ALWAYS_INLINE compiler error git tag: mesa-23.0.0-rc2 https://archive.mesa3d.org/mesa-23.0.0-rc2.tar.xz SHA256: 828d65d46fb150bc7967ba9f733f9d8ec9d18b6a7dc133ebee7f6286dd79419e mesa-23.0.0-rc2.tar.xz SHA512: 5b986c49ddb30f616d9396016ca2926f55c15b81da0892bbaa55ee46d83953551c1c68d03d1b11043f0656ac4c972b832762a2f939317e3e17081171a69bd05d mesa-23.0.0-rc2.tar.xz PGP: https://archive.mesa3d.org/mesa-23.0.0-rc2.tar.xz.sig signature.asc Description: signature
[ANNOUNCE] mesa 23.0.0-rc3
Hi list! Here is a slightly early release for once! I'm giong to be not working tomorrow, so I thought I'd give you a little treat (and save me having to remember to do the release on Thursday). We've got a nice array of fixes here, touching a little bit of evertying, but not too much of anything. Right now we're trending towards a release next week, and not an rc4 (there are no issues on the blocking milestone), so if you have any critical issues make sure you get them on the milestone before next Wednesday! Cheers, Dylan shortlog Danylo Piliaiev (1): tu/kgsl: do not use kgsl_command_object::offset Dylan Baker (6): .pick_status.json: Update to 926ba335fdf357e8bc8df0959c1ae72ba35204a4 .pick_status.json: Update to 75276deebcf76f8fafa68f4e4ecb29768d98c764 .pick_status.json: Update to e8a60633daec2989df718d28e0baa873bb9b1d15 .pick_status.json: Update to 5039acfd9df6f4d3fc7cc655717b1c5389120260 .pick_status.json: Update to 12a471afac2e0c458db785681c88d045a2175ac3 VERSION: bump for 23.0.0-rc3 Emma Anholt (2): dri2: Fix exposing robustness with swkms. Revert "nouveau/ci: temporary disable gk20a-gles" Erik Faye-Lund (2): zink: fix depth-clip disable cap radeonsi: respect smoothing_enabled Francisco Jerez (1): intel/fs/gfx12: Ensure that prior reads have executed before barrier with acquire semantics. Georg Lehmann (1): Revert "aco: Combine v_cvt_u32_f32 with insert to v_cvt_pk_u8_f32." Gert Wollny (1): r600/sfn: Fix readport check Jason Ekstrand (1): gallium,util: Pull u_indices and u_primconvert back into gallium Jonathan Gray (1): egl/dri2: avoid undefined unlocks Julia Tatz (3): zink: zink_heap isn't 1-to-1 with memoryTypeIndex zink: trival renames heap_idx -> memoryTypeIndex zink: correct sparse bo mem_type_idx placement Kenneth Graunke (2): intel/blorp: Lower base_workgroup_id to zero intel/compiler: Drop redundant 32-bit expansion for shared float atomics Lionel Landwerlin (5): nir/divergence: add missing RT intrinsinc handling anv: fix generated indirect draw shader stats checks nir/lower_io: fix bounds checking for 64bit_bounded_global anv: fix preemption enable emission in gpu_memcpy intel/fs: avoid cmod optimization on instruction with different write_mask Marcin Ślusarz (1): intel/compiler/mesh: handle const data in task & mesh programs Marek Olšák (4): glthread: fix an upload buffer leak util: fix util_is_vbo_upload_ratio_too_large mesa: allow GL_UNSIGNED_INT64_ARB as vertex format for ARB_bindless_texture glthread: handle GL_*_ARRAY in glEnable/Disable Maíra Canal (1): v3dv: remove unused clamp_to_transparent_black_border property Mike Blumenkrantz (6): zink: store drm format as internal_format for imported resources zink: handle modifier nplanes queries correctly for planar formats zink: preserve present resources during async presentation zink: delete need_blend_constants zink: don't use ds3 blend states without color attachments zink: use actual swapchain object for surface comparison Paulo Zanoni (2): anv: don't leave undefined values in exec->syncobj_values anv: check the return value of anv_execbuf_add_bo_bitset() Pierre-Eric Pelloux-Prayer (3): vbo: remove bogus assert vbo: lower VBO_SAVE_BUFFER_SIZE to avoid large VRAM usage glthread: fix glArrayElement handling Rob Clark (2): freedreno: Fix tracking of enabled SSBOs freedreno: Restore GL_VENDOR string Rose Hudson (1): radeonsi: report 0 block size for Polaris HEVC encoding Samuel Pitoiset (5): ac/nir: clear unused components before storing XFB outputs to LDS radv: fix setting MAX_MIP for BC views radv: fix buffer to image copies with BC views on the graphics queue radv: fix creating BC image views when the base layer is > 0 radv/winsys: fix incorrect PCIID for GFX11 in the null winsys Tapani Pälli (3): anv: add restrictions for 3DSTATE_RASTER::AntiAliasingEnable hasvk: add restrictions for 3DSTATE_RASTER::AntiAliasingEnable iris: add restrictions for 3DSTATE_RASTER::AntiAliasingEnable Tatsuyuki Ishi (1): radv: Fix depth-only-with-discard when epilogs are used. git tag: mesa-23.0.0-rc3 https://archive.mesa3d.org/mesa-23.0.0-rc3.tar.xz SHA256: 17b55b512b96f96fe0e64f6f773a4eebf0f264fa93ac625e2f1d3bfb1146325e mesa-23.0.0-rc3.tar.xz SHA512: adad86189ae27eb5cf89d7b6e0626a78f49f5a72cdea0f4eb59d76aae74c657251d07c3142c578e1e13edef73947d4807c25eebf9598b8a0e16a70c584916ce5 mesa-23.0.0-rc3.tar.xz PGP: https://archive.mesa3d.org/mesa-23.0.0-rc3.tar.xz.sig signature.asc Description: signature
[ANNOUNCE] mesa 23.0.0-rc4
Hi list, I'd like to announce the availability of mesa 23.0-rc4. since the last RC we've seen the addition of several blocking issues, and as such we're having another RC. Hopefully be next week we can have all of these issues resolved. Cheers, Dylan shortlog Bas Nieuwenhuizen (2): radv: Set FDCC_CONTROL SAMPLE_MASK_TRACKER_WATERMARK radv: Shift left the tile swizzle more on GFX11. Chad Versace (1): util/glsl2spirv: Fix build with Python 3.6 Corentin Noël (1): kopper: Do not free the given screen in initScreen implementation Dylan Baker (4): .pick_status.json: Update to 50dee85b684e321708460afc3c1abd2148fd5891 .pick_status.json: Update to 1a93cd15563a5d0bb6faf12c5d4c852cb3534415 .pick_status.json: Update to 0f087b56d03a32e84ca2f5326fb4dcc2cb142bc9 VERSION: bump for 23.0.0-rc4 Emma Anholt (4): zink: Add missing Flat decorations on some inputs. zink: Fix validation failure for maxLod < minLod. zink: Fix up mismatches of memory model vs addressing model. zink: Re-emit the SpvBuiltInSampleMask access chain each load. Francisco Jerez (1): intel/fs: Fix src and dst types of LOAD_PAYLOAD ACP entries during copy propagation. Friedrich Vock (4): radv/rmv: Also check the other pid field radv/rmv: Avoid more CPU unmap deadlocks radv/rmv: Log bo destruction before freeing it radv/rmv: Correct timestamp shifting Italo Nicola (1): panfrost: fix off-by-one when exporting format modifiers Jesse Natalie (1): dzn: Report as a software device for non-Windows José Fonseca (1): llvmpipe: Honor zero sample_mask when multisample is disabled. Karol Herbst (1): rusticl: fix build error with valgrind being enabled Kenneth Graunke (4): anv: Add missing untyped data port flush on PIPELINE_SELECT iris: Add missing untyped data port flush on PIPELINE_SELECT loader: Add infrastructure for tracking active CRTC resources egl: Rewrite eglGetMscRateANGLE to avoid probes and handle multi-monitor Lionel Landwerlin (2): vulkan/wsi/wayland: improve same gpu detection anv: fix null descriptors Lucas Stach (3): etnaviv: drm: fix BO array leaks etnaviv: free pm queries dynarray on screen destroy etnaviv: drm: fix check if BO is on a deferred destroy list Martin Roukala (né Peres) (1): ci/debian/x86_test-vk: drop an outdated dependency Mike Blumenkrantz (10): zink: fix VK_DYNAMIC_STATE_LINE_WIDTH usage Revert "zink: allow direct memory mapping for any COHERENT+CACHED buffer" zink: add VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT for buffers if ext is enabled zink: set vkusage/vkflags for buffer resource objects zink: always set RESOURCE usage for descriptor buffers zink: disable bindless texture ext with descriptor buffer zink: set VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT when using DB zink: don't add dmabuf export type if dmabuf isn't supported zink: stop leaking push descriptor templates zink: always unref old images when adding new binds Pierre-Eric Pelloux-Prayer (1): radeonsi/gfx11: fix ge_cntl programming Rhys Perry (1): aco: set has_color_exports with GPL Samuel Pitoiset (5): radv: fix RADV_DEBUG=hang with multiple cmdbuffer per submission radv: fix ignoring graphics shader stages that don't need to be imported radv: add a layer for fixing rendering issues with RAGE2 radv: stop setting INTERPOLATE_COMP_Z radv: fix RB+ for SRGB formats Thong Thai (1): gallium/auxiliary/vl: clean-up progressive shader git tag: mesa-23.0.0-rc4 https://archive.mesa3d.org/mesa-23.0.0-rc4.tar.xz SHA256: 9422c414952e361ec4ab49586d3e63b67f08d8b6bdd85d2970bb967495d18d53 mesa-23.0.0-rc4.tar.xz SHA512: 463dad021bffd1b6cae8eb540ea0f51da8753e5f5295f5d1ab6398ed6eb140ccef7ba62b458c099cc19a26d6dcb4b620280893425572fae75fe7e880d8e3a403 mesa-23.0.0-rc4.tar.xz PGP: https://archive.mesa3d.org/mesa-23.0.0-rc4.tar.xz.sig signature.asc Description: signature
[ANNOUNCE] mesa 23.0.0
Hi list, After a longer than average RC cycle, I'd like to announce the release of Mesa 23.0.0, the first stable release of 2023. You may put away the party streamers. Not actually too much has changed since -rc5, but we have cleared out the last of our blocking issues, and have a stable release. See you again in two weeks with a regularly scheduled point release. Cheers, Dylan shortlog Alan Coopersmith (1): util/disk_cache: Handle OS'es without d_type in struct dirent Bas Nieuwenhuizen (1): nir: Apply a maximum stack depth to avoid stack overflows. Charmaine Lee (3): svga: fix resource_get_handle from resource created without SHARED bind flag svga: fix compatible formats for shareable surfaces svga: use upload buffer if texture has pending changes Chia-I Wu (3): radv: fix a hang with binning on CHIP_RENOIR turnip: fix a major leak with GPL LTO turnip: fix a null descriptor set dereference Constantine Shablya (1): anv,hasvk: flush what UNIFORM_READ flushes on SHADER_READ Danylo Piliaiev (3): tu: Prevent using stale value of RB_UNKNOWN_88D0 on BLIT tu: Prevent using stale value of GRAS_SC_CNTL in sysmem clear turnip: Disable draw states after dyn renderpass in all cases Dave Airlie (2): crocus: disable Y tiling for render targets properly. crocus: switch gen4/5 tiling flags to follow suggestions. Dylan Baker (9): .pick_status.json: Update to bd848ac92d9d77d72a1edb5645488639df91937e .pick_status.json: Mark 6af3a12e700065ca4b8b3a5d12b97a75142dd185 as denominated .pick_status.json: Update to e050a00b9f4d057e93f61f79019b5cf8bcd04e49 .pick_status.json: Update to 4e09d37f3bd4b2f5837040cb1695d151672944e1 .pick_status.json: Update to 4459668b6e74094b93f13da377077c4f26c9b7b9 .pick_status.json: Update to dd3b67b9746f1d0f2766d6c39bb23e59d6548aba VERSION: bump for 23.0.0 docs: truncate new_features.txt docs: add release notes for 23.0.0 Emma Anholt (2): Revert "freedreno/a5xx: Fix clip_mask" hasvk: Fix SPIR-V warning about TF unsupported on gen7. Eric Engestrom (1): panfrost: drop no-longer-needed libglsl Erik Faye-Lund (1): zink: remove incorrect trailing comma Faith Ekstrand (3): nir/from_ssa: Only re-locate values that are destinations nir/from_ssa: Move the loop bounds check in resolve_parallel_copy nir/deref: Preserve alignments in opt_remove_cast_cast() Georg Lehmann (2): aco: don't allow output modifiers for v_cvt_pkrtz_f16_f32 aco: Don't use vcmpx with DPP. Hans-Kristian Arntzen (3): radv: Fix invalid 64-bit shift. radv: Fix missing VK_ACCESS_2_SHADER_SAMPLED_READ_BIT. radv: Implement VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT. Italo Nicola (1): panfrost: fix tiny sample_positions BO memory leak Jesse Natalie (2): clc: Include opencl-c-base.h with LLVM 15 (using builtins) microsoft/clc: Set features that are used by CL tests Konstantin Seurer (3): radv: Fix creating accel structs with unbound buffers radv: Hash VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_* flags radv: Make accel struct meta state initialization thread safe Lionel Landwerlin (4): intel/fs: fix mesh indirect movs anv/hasvk: handle a SAMPLED_READ/STORAGE_READ access flags intel/fs: bound subgroup invocation read to dispatch size intel/perf: also add the oa timestamp shift on MTL Marcin Ślusarz (2): anv: enable task redistribution intel/compiler/mesh: use slice id of task urb handles in mesh shaders Marek Olšák (2): mesa: ignore indices[i] if count[i] == 0 for MultiDrawElements glthread: ignore non-VBO vertex arrays with NULL data pointers Michel Dänzer (4): glsl/standalone: Fix up _mesa_reference_shader_program_data signature glsl/standalone: Do not pass memory allocated with ralloc_size to free anv/grl: Use union for reinterpreting integer as float frontend/dri: Initialize callbacks in dri_swrast_kms_init_screen Mike Blumenkrantz (11): zink: add newlines to some debug printfs zink: unset gfx shader read when unbinding shader images zink: unref image buffer descriptors on unbind zink: sync LTO compiles for GPL pipelines on shader free zink: fix descriptor pool free iterating zink: always use NEAREST for zs blits zink: block LINEAR filtered blits for zs formats dri3: avoid deadlocking when polling deleted windows for events vulkan/wsi: avoid deadlocking dri3 when polling deleted windows for events kopper: fix loop iterating for msaa texture creation driconf: add zink glthread disable for a game Nanley Chery (3): iris: Update comment in iris_cache_flush_for_render iris: Flush caches for aux-mode changes more often iris: Drop iris_cache_flush_for_render Pierre-Eric Pelloux-Prayer (1): a
[ANNOUNCE] mesa 23.0.1
Hi list, I know this email is going out a little late, but better late than never. Which may also be the name of the 23.0.1 release. I must apologize, I was running behind to start with, and then the troubles with the CI pushed me even further behind. As such, there are still a great number of patches nominated that are not in the release. I basically got what I could in by the end of day Friday, and cut that as the release, and I'll continue to pull in patches over the next week and half to have a normally scheduled release on April 5th. There's a lot here, covering a wide swath of the mesa codebase, especially Intel, AMD, and Zink. Cheers, Dylan shortlog Błażej Szczygieł (1): glx: Fix glXGetFBConfigFromVisualSGIX Caio Oliveira (2): iris, crocus: Align workaround address to 32B gallivm: Fix handling of nir_intrinsic_scoped_barrier Daniel Schürmann (1): aco: fix NIR infinite loops Daniel Stone (1): intel/isl: Don't scream FINISHME into logs for 3D vs. CCS Dave Airlie (1): llvmpipe: fix compute address bits to return native pointer size. Dylan Baker (13): docs: Add sha256 sum for 23.0.0 .pick_status.json: Update to 56a9aad4010ff9f2c0afcadec0ac61a6274de0a3 .pick_status.json: Update to aa791961a82e1f5a9dd841c3e0398c3e80d09652 .pick_status.json: Update to e45bbcf6492a178e52e4b87bad31bb01bc22e507 .pick_status.json: Update to baea3b328b7a39abcee48c733236f242e1f4cf0e util: rzalloc and free hash_table_u64 .pick_status.json: Update to 6cb0c8b6d746fe055bbe905025550140c0980720 .pick_status.json: Update to 8c51c8697ab122472b9136f9a17813a7a6513c59 .pick_status.json: Update to 8c51c8697ab122472b9136f9a17813a7a6513c59 .pick_status.json: Update to 69cbc2e7eea599fb63f93373408a589f4345c6de .pick_status.json: Update to 0cd89a27ed0da0bf79c3eae9aac314ee33c3a852 docs: add release notes for 23.0.1 VERSION: update to 23.0.1 Emma Anholt (1): ci: Re-enable some swrast testing using fd.o's shared runners for now. Eric Engestrom (2): radv: split linker script for android since it requires different symbols glapi/meson: drop duplicate line in deps Erik Faye-Lund (1): docs/zink: fixup wording of the GL 4.6 requirements Friedrich Vock (2): mesa: Report GL_SHADER_BINARY_FORMAT_SPIR_V as supported docs: Fix formatting for RMV tracing docs Georg Lehmann (1): aco/optimizer_postRA: assume all registers are untrackable in loop headers Gert Wollny (3): r600/sfn: be more conservative with channel use in multi-slot ops r600/sfn: Fix minimum required registers r600/sfn: Fix atomic lowering Illia Polishchuk (1): glx: fix indirect initialization crash Iván Briano (3): vulkan: track the right value on CmdSetColorWriteMasks anv: fix testing for dynamic color blend bits anv: stop tracking color blend state in the pipeline José Roberto de Souza (1): iris: Don't mark protected bo as reusable Karol Herbst (3): nir/deref: don't replace casts with deref_struct if we'd lose the stride rusticl/kernel: Images arg sizes also have to match the host pointer size gallivm: fix lp_vec_add_offset_ptr for 32 bit builds Kenneth Graunke (1): intel/fs: Fix inferred_sync_pipe for F16TO32 opcodes Lionel Landwerlin (19): anv: fix invalid masking of 48bit address anv: fix vma heap memory leak genxml: Fix STATE_BASE_ADDRESS::BindlessSurfaceStateSize field size genxml: fix border color offset field on Gfx12+ anv: fixup condition for Wa_14016118574 anv: pull Wa_14016118574 out of some loop not changing state anv: fix incorrect parameter anv: fix generated forward jump with more than 67M draws anv: remove copied code from generation shader anv: remove BTI related flush in generation shaders anv: correctly program 3DSTATE_SF in generation shaders anv: limit push constant dirtyness with generation shaders anv: remove pre hasvk split assert anv: remove commented code anv: fix indirect draws VF cache tracking of index buffer anv: make sure mi_memcpy lands before push constant loads anv: remove MI_NOOPs at the end of the generation batch nir: fix nir_ishl_imm anv: force MEDIA_INTERFACE_DESCRIPTOR_LOAD reemit after 3D->GPGPU switch Marek Olšák (8): amd: add missing gfx11 register definitions radeonsi/gfx11: fix the CU_EN clear mask for RSRC4_GS radeonsi/gfx11: don't set non-existent VGT_STRMOUT_BUFFER_CONFIG radeonsi/gfx11: set CB_COLORi_INFO.MAX_COMP_FRAG on GFX1103_R2 radeonsi: disable Smart Access Memory because CPU access has large overhead nir: lower to fragment_mask_fetch/load_amd with EQAA correctly mesa: fix glPopClientAttrib with fixed-func VP and zero-stride varyings radeonsi: don't merge SET_* packets th
[ANNOUNCE] mesa 23.0.2
Hi list, HEre is the slightly late next release. We're basically caught up to where we should be at this point, we've just got a handful of patches that are causing regressions or don't apply for me to work through before the next release. In this release we have lots of patches for all over the tree, zink being the biggest singels ource of changes. Cheers, Dylan shortlog Alyssa Rosenzweig (1): panfrost: Don't round up Midgard polygon list BOs Daniel Schürmann (2): radv/rt: place any-hit scratch vars after intersection scratch vars radv/rt: Fix any_hit scratch variables. David Heidelberg (1): aco: drop leftover variable Dylan Baker (7): docs: Add sha256 sum for 23.0.1 .pick_status.json: Update to 5e9ea154849ebe19b96a243b9716bd264545bf8b .pick_status.json: Update to 2cc9364c2061fe4a66398678cabf61e3464e4d77 .pick_status.json: Update to 7abd8c499b4388f1e2947d78c59aafa0b52c254a .pick_status.json: Update to debc543904235ed7dfc14217bf43f33f9f768e5a docs: add release notes for 23.0.2 VERSION: update to 23.0.2 Emma Anholt (1): turnip: Don't push inline uniform buffer contents outside constlen. Eric Engestrom (1): v3d: fix `dirty` bitset being too small to accept V3D_DIRTY_SSBO Erico Nunes (1): lima: don't use resource_from_handle while creating scanout Filip Gawin (1): crocus: don't quantize the clear value Francisco Jerez (1): intel/fs: Fix register coalesce in presence of force_writemask_all copy source writes. Gert Wollny (1): r600/sfn: fix container allocators Iago Toral Quiroga (1): vulkan/wsi/display: set pDisplay to NULL on error Ilya K (1): intel/vk/grl: don't install libgrl.a Isabella Basso (2): nir/algebraic: insert patterns inside optimizations list nir/algebraic: remove duplicate bool conversion lowerings Iván Briano (1): vulkan/wsi/display: do not dereference a NULL pointer Jesse Natalie (2): nir: Propagate alignment when rematerializing cast derefs microsoft/compiler: Fix setting bit 31 in feature flags Kai-Heng Feng (2): iris: Retry DRM_IOCTL_I915_GEM_EXECBUFFER2 on ENOMEM Revert "iris: Avoid abort() if kernel can't allocate memory" Karol Herbst (3): nvc0: enable fp helper invocation memory loads on Turing+ rusticl/util: extract offset_of macro rusticl/icd: Make it work in case Rustc shuffles struct around Konstantin Seurer (3): radv/sqtt: Skip dumping pipeline libraries radv/rt: Handle load_constant instructions when inlining shaders nir/lower_shader_calls: Remat derefs before lowering resumes Lang Yu (1): amd/common: fix a typo Lionel Landwerlin (12): intel/fs: don't SEND messages as partial writes intel/fs: fix nir_opt_peephole_ffma max vec assumption intel/fs: fixup sources number from opt_algebraic intel/fs: fix subgroup invocation read bounds checking anv: fix incorrect utrace bo release anv: implement recommended flush/wait of AUX-TT invalidation iris: implement recommended flush/wait of AUX-TT invalidation anv: take care of maxStorageBufferRange being uint32_t isl: update max buffer size for SKL+ intel/perf: fix OA format selection on MTL intel/fs: don't consider fixup_nomask_control_flow SENDs predicate intel/fs: UNDEF fixup_nomask_control_flow temp register Lynne (1): aco_validate: allow for wave32 in p_dual_src_export_gfx11 Marcin Ślusarz (1): anv,hasvk: remove stale comments Marek Olšák (1): vbo: fix current attribs not updating gallium vertex elements Mike Blumenkrantz (9): aux/trace: delete GALLIUM_TRACE_NIR log message zink: track tc fences better zink: double check layouts for possible feedback loop images zink: handle swapchain creation failure less lazily aux/trace: fix GALLIUM_TRACE_NIR handling llvmpipe: fix linear fs analysis with nonzero fs outputs llvmpipe: fix handling of unused color attachments zink: block resolves where src extents > dst extents zink: flag vertex buffers for rebind after vstate draws Patrick Lerda (1): r600: fix typo that could lead to a possible crash Pierre-Eric Pelloux-Prayer (5): yegl/wayland: fix glthread deadlocks Revert "driconf: add a workaround for plasmashell freezing" radeonsi: don't use alignment_log2 of imported buffers mesa: fix invalid index_bo refcounting util/vbuf: fix index_bo leak Qiang Yu (2): ac/llvm: respect channel_type when ac_build_buffer_load ac/llvm: add missing type convert for nir_load_buffer_amd Rhys Perry (1): aco: fix nir_var_shader_out barriers for task shaders Sonny Jiang (1): gallium/pipe: change PIPE_DEFAULT_DECODER_FEEDBACK_TIMEOUT_NS to 1 second Sviatoslav Peleshko (1): glsl: Fix codegen
[ANNOUNCE] mesa 23.0.3
Hi list, I'd like to announce mesa 23.0.3. I've been working back through the list of commits that needed a little bit of work to apply cleanly, and that's starting to come through here, so there are some more patches than we'd usually see at this point. The good news is that the changes are all across the tree, with no one subsystem seeing too many changes. Cheers, Dylan shortlog Alyssa Rosenzweig (4): vulkan: Add common features2_to_features tu: Use vk_features2_to_features util/prim_convert: Don't set index_bounds_valid mesa/st: Only set seamless for GLES3 Andres Calderon Jaramillo (1): r600: Report multi-plane formats as unsupported Bas Nieuwenhuizen (1): radv: Reserve space in framebuffer emission. David (Ming Qiang) Wu (1): radeonsi/vcn: add an exception of field case for h264 decoding Dylan Baker (5): docs: Add sha256 sum for 23.0.2 .pick_status.json: Update to d6b30d42b05a93aa80c93c7fcc1782f9c59a6f1a .pick_status.json: Update to d99211b22c0b419e2ad414f2e09bfe43f656db4b docs: add release notes for 23.0.3 VERSION: update to 23.0.3 Jesse Natalie (3): dzn: Fix SRV barrier state on compute command lists dzn: Ensure pipeline variants are used for dynamic stencil masks dzn: Don't use write-combine memory for cache-coherent UMA Juan A. Suarez Romero (1): v3d: set depth compare function correctly Karol Herbst (1): rusticl/event: drop work item before updating status Kenneth Graunke (1): intel/compiler: Use nir_dest_bit_size() for ballot bit size check Lionel Landwerlin (3): anv: fixup streamout write barriers intel/fs: use nomask for setting cr0 for float controls vulkan/overlay: deal with unknown pNext structures Luc Ma (1): meson: keep Mako version checking in accord with build msg Mike Blumenkrantz (9): llvmpipe: fix LP_PERF=no_depth to ignore depth format aux/tc: flag late zs clears as partial clears zink: try to prune resources from barrier jit on fb unbind zink: free GPL input/output libs on context destroy to avoid leaking lavapipe: fix dynamic depth clamping lavapipe: set render_condition_enabled=false for vkCmdClearDepthStencilImage mesa/st/program: don't init xfb info if there are no outputs glthread: use id 0 for internal buffer objects lavapipe: don't double-inline ubo0 Patrick Lerda (3): egl: fix memory leak related to _eglRefreshDeviceList() r600: fix refcnt imbalance related to r600_set_vertex_buffers() r600: fix refcnt imbalance related to evergreen_set_shader_images() Qiang Yu (3): ac/nir/ngg: fix gs culling vertex liveness check for odd vertices ac/nir/ngg: fix store shared alignment radeonsi: fix max scrach lds size calculation when ngg Ruijing Dong (1): frontends/va: disable skip_frame_enable in vaapi interface. Samuel Pitoiset (4): vulkan: ignore rasterizationSamples when the state is dynamic radv: try to keep HTILE compressed for READ_ONLY_OPTIMAL layout radv: fix VS prologs with GPL and static binding stride radv: re-emit the guardband state when related PSO are bound SoroushIMG (1): zink: fix stale point sprite mode state Timur Kristóf (4): ac/llvm: Cover runtime 0 in GFX10 gs_alloc_req workaround. radv/amdgpu: Fix mismatching return type of radv_amdgpu_cs_submit. radv/amdgpu: Only allow IB BOs on graphics and compute queues. radv/amdgpu: Use correct alignment when creating CS BOs. Tomeu Vizoso (1): etnaviv: don't read too much from uniform arrays xurui (1): zink: bs->dd.push_pool[1].pool should be freed git tag: mesa-23.0.3 https://archive.mesa3d.org/mesa-23.0.3.tar.xz SHA256: 386362a5d80df3b096636b67f340e1ce67b705b44767d5bdd11d2ed1037192d5 mesa-23.0.3.tar.xz SHA512: 52c778de61daa406c6a1e96a657e9b6fdcc71c8cfda80b7f53acc6470556c7d502c057b9481bb0c3d57ef0263263413fd0d25d53ebf5aa0246fbcc3309de64ae mesa-23.0.3.tar.xz PGP: https://archive.mesa3d.org/mesa-23.0.3.tar.xz.sig signature.asc Description: signature
[ANNOUNCE] mesa 23.2.0-rc3
Hi list, After a very long time, here is mesa 23.2.0-rc3. From my side we've had some techincal issues plus some personal issues for me. There's a lot here, and I'm expecting we may have some regressions here, so I've added another rc. I'm hoping to run on a compressed schedule, and possibly have another rc by the end of the week. Dylan shortlog Alex Denes (1): virgl: link VA driver with build-id Alyssa Rosenzweig (4): panfrost: Lower vertex_id for XFB panfrost: Fix transform feedback on v9 harder nir/trivialize: Handle more RaW hazards nir/lower_blend: Fix 32-bit logicops Bas Nieuwenhuizen (3): aco: fix nir_op_vec8/16 with 16-bit elements. aco: Fix some constant patterns in 16-bit vec4 construction with s_pack. nir: Fix 16-component nir_replicate. Benjamin Cheng (1): radv/video: use app provided hevc scaling list order Caio Oliveira (1): meson: Ensure that LLVMSPIRVLib is not required for Clover Charmaine Lee (1): svga: set clear_texture to NULL for vgpu9 Connor Abbott (1): tu: Fix vk2tu_*_stage flag type Corentin Noël (1): ci: Add locked flag to bindgen-cli installation Danylo Piliaiev (4): freedreno/regs: Rename SP_FS_CTRL_REG0.DIFF_FINE into LODPIXMASK ir3: Fix FS quad ops returning wrong values from helper invocations tu,freedreno: Forbid blit event for R8G8_SRGB due to gpu faults radv: fix unused non-xfb shader outputs not being removed Dave Airlie (3): gallivm: fix atomic global temporary storage. llvmpipe: fix fragdata/lastfragdata heuristic a bit more. zink: turn off threaded cpu access if not visible. David Heidelberg (4): ci: disable Material Testers.x86_64_2020.04.08_13.38_frame799.rdc trace ci/amd: fix timeouting radeonsi-raven-va-full job ci: add perfetto into mesa git-cache ci/deqp: really remove the uncompressed results.csv file David Rosca (2): frontends/va: Init view_resources array in vlVaPut/GetImage frontends/va: Ignore requested size when creating VAEncCodedBufferType Derek Foreman (1): vulkan/wsi: Allow binding presentation_timing when software rendering Dor Askayo (1): nouveau: add exported GEM handles to the global list Dylan Baker (7): docs: Update release calendar for 23.2.0-rc2 .pick_status.json: Update to e88c0770969f6ae0bfa5bea0f9d99687d257fea1 .pick_status.json: Mark d3f26cbbe1a957b76804da44bbf5e30de2bac941 as denominated .pick_status.json: Update to c5a6e88c4e816ded6105b74f101528eb004e0581 .pick_status.json: Update to 088c2bbd51a48eb0de1e9fd23c529759585bad59 .pick_status.json: Update to 088c2bbd51a48eb0de1e9fd23c529759585bad59 VERSION: update to 23.2.0-rc3 Emma Anholt (1): ci/tu: Drop some xfails for !24086 Eric Engestrom (2): bin/ci_run_n_monitor: get git sha from pipeline if specified, instead of requiring --rev to match panfrost: upcast uint8/uint16 before shifting them beyond their range Faith Ekstrand (5): nir: Properly handle divergence for load_reg nir/trivialize: Maintain divergence information nir/trivialize: Trivialize cross-block loads Revert "mesa, compiler: Move gl_texture_index to glsl_types.h" Revert "compiler: Combine duplicated implementation of is_gl_identifier into glsl_types.h" Friedrich Vock (1): radv: Handle VK_SUBOPTIMAL_KHR in trace layers Georg Lehmann (2): aco/gfx11: fix get_gfx11_true16_mask with v_cmp_class_f16 aco: fix non constant 16bit bitnz/bitz Gert Wollny (5): r600/sfn: Fix use of multiple IDX with kcache r600/sfn: Don't try to propagate to vec4 with more than one use r600/sfn: Only switch to other CF if no AR uses are pending r600/sfn: AR loads should depend on all previous non ALU instructions r600/sfn: Take source uses into account when switching channels Italo Nicola (1): egl: reenable partial redraw with a warning when using gallium hud Iván Briano (1): anv: implement Wa_14019750404 Janne Grunau (1): asahi,agx: Fix stack buffer overflow in agx_link_varyings_vs_fs Julia Tatz (2): gallium/dri: fix dri2_from_names aux/trace: fix set_hw_atomic_buffers method name Julian Hagemeister (1): Gallium: Fix shared memory segment leak Karol Herbst (6): rusticl: fix warnings with newer rustc nv50/ir/nir: fix txq emission on MS textures nv50/ir/nir: Fix zero source handling of tex instructions. rusticl/kernel: only handle function_temp memory before lowering printf n50/compute: submit initial compute state in nv50_screen_create nv50: fix code uploads bigger than 0x1 bytes Konstantin Seurer (3): draw: Do not restart the primitive_id at 0 llvmpipe: Fix compiling with LP_USE_TEXTURE_CACHE llvmpipe: Zero extend vectors in widen_to_simd_width Lionel Landwerlin
[ANNOUNCE] mesa 23.2.0-rc4
Hi list, I'd like to announce mesa 23.2.0-rc4, which will hopefully be the last release candidate for the 23.2 series. The goal is that this Wednesday we'll have a final release, which will be tagged 23.2.1 due to an accidental 23.2.0 tag that was created earlier. I will be pulling more patches over the next couple of days, as well as contacting authors whos patches don't apply cleanly. It is likely that not every staged patch will end up in the first release and will not make it till 23.2.2. I'm opened to either having a short cycle (with 23.2.2 next week), or if you want to make sure they end up in this release let me know on IRC. Cheers, Dylan shortlog Alyssa Rosenzweig (2): nir/lower_helper_writes: Consider bindless images nir/passthrough_gs: Fix array size Chia-I Wu (1): ac/surface: limit RADEON_SURF_NO_TEXTURE to color surfaces Connor Abbott (1): vk/graphics_state: Fix copying MS locations pipeline state Corentin Noël (1): virgl: Do not expose EXT_texture_mirror_clamp when using a GLES host Daniel Stone (1): egl/wayland: Always initialise fd_display_gpu David Rosca (1): Revert "radeonsi/vcn: add an exception of field case for h264 decoding" Dmitry Baryshkov (1): tu: Pass real size of prime buffers to allocator Dylan Baker (13): docs: Extend calendar entries for 23.2 by 2 releases. docs: update calendar for 23.2.0-rc3 .pick_status.json: Update to 10e75aae1bddee9795b1ff04ffd656b0da79b5b5 .pick_status.json: Updates notes for aebe58458611e0bb585a5bce8e16c1175783f3cc .pick_status.json: Updates notes for f8cb0d8a44afb9c70f38e359ffe0ad57416e66a4 Revert "Revert "intel/ci: disable iris-jsl-deqp because it always fails for an AMD MR"" .pick_status.json: Updates notes for 93b4f200dead198e680991a1e95bf3d3b58f87bd .pick_status.json: Updates notes for 7e246f7f2bde0c859269c4b81505bd0887045e7b .pick_status.json: Updates notes for 9865e5dff49395543da4331a943ba5a03ce6a413 .pick_status.json: Update to 1cdc4be14b66108ae0e8069686ac3efe52bef3cb .pick_status.json: Updates notes for b8ea9724fa5ca38620bc0cdc01b7addd05574954 .pick_status.json: Updates notes for 68027bd38e134f45d1fe8612c0c31e5379ed7435 VERSION: update to 23.2.0-rc4 Emma Anholt (1): disk_cache: Disable the "List" test for RO disk cache. Eric Engestrom (7): vc4: drop duplicate .lower_ldexp zink: fix format in zink_make_{image,texture}_handle_resident() v3dv: fix VK_PIPELINE_ROBUSTNESS_{BUFFER,IMAGE}_BEHAVIOR_DEVICE_DEFAULT_EXT copy/paste typo v3dv: fix copy/pasted type of `sample` v3dv: fix shader stage name in error message v3d/qpu: fix type of function argument ci/farm-rules: fix missing valve-infra jobs in scheduled pipelines Faith Ekstrand (3): nir: Handle nir_op_mov properly in opt_shrink_vectors nir: Don't handle nir_op_mov in get_undef_mask in opt_undef nir: Fix metadata in nir_lower_is_helper_invocation Friedrich Vock (1): nir/load_store_vectorize: Handle intrinsics with constant base Georg Lehmann (1): aco: fix u2f16 with 32bit input Helen Koike (1): ci/android: remove strace output from cuttlefish-runner.sh Iván Briano (7): blorp: fix hangs with mesh enabled anv: use a simpler MUE layout for fast linked libraries anv: track what kind of pipeline a fragment shader may be used with intel/fs: read viewport and layer from the FS payload intel/fs: handle URB setup for fast linked mesh pipelines anv: enable VK_EXT_mesh_shader where supported intel/fs: use ffsll so we don't explode on 32 bits Jordan Justen (2): intel/dev: Use RPL-U name on RPL-U devices intel/dev: Add more RPL PCI IDs Karol Herbst (7): nouveau: take glsl_type ref unconditionally nv50: limit max code uploads to 0x8000 clc: use CLANG_RESOURCE_DIR for clang's resource path zink: fix source type in load/store scratch zink: fix global stores rusticl/disk_cache: fix stack corruption rusticl/memory: do not verify pitch for IMAGE1D_BUFFER Kenneth Graunke (1): iris: Check prog[] instead of uncompiled[] for BLORP state skipping Konstantin Seurer (1): vulkan/wsi/x11: Implement capture hotkey using the keymap Leo Liu (1): radeonsi/vcn: fix the incorrect dt_size Lionel Landwerlin (4): intel/compiler: disable per-sample interpolation modes with non-per-sample dispatch anv: add missing ISL storage usage intel/nir: rerun lower_tex if it lowers something hasvk: add state cache invalidation back before fast clears Marcin Ślusarz (3): intel/compiler/mesh: compactify MUE layout intel/compiler,anv: put some vertex and primitive data in headers intel/compiler: load debug mesh compaction options once Marek Olšák (1): Revert &q
[ANNOUNCE] mesa 24.2.2
Hi List, I'm running a little late with this, but I had agreed to help Eric out and make the 24.2.2 release while he was on vacation. We have a lot of good stuff here, fixing a number of bugs across the whole of Mesa. Of note Cheers, Dylan Shortlog Dave Airlie (1): vulkan/video: fix vui encoding David Heidelberg (1): panfrost: drop leftover definition after pan_nir_lower_64bit_intrin removal David Rosca (2): frontends/va: Fix locking in vlVaDeriveImage frontends/va: Fix locking in vlVaQueryVideoProcPipelineCaps Dylan Baker (3): .pick_status.json: Update to 4aa1259eb4a86a94596dd31d6b80a99ce6d91299 docs: add release notes for 24.2.2 VERSION: bump for 24.2.2 Eric Engestrom (7): docs: add sha sum for 24.2.1 .pick_status.json: Update to 51e05c284465786bf125d9d36081e9152c80619b v3dv/ci: fix test timeout for v3dv-rpi5-vk-full:arm64 etnaviv/ci: fix gc2000_piglit test timeout .pick_status.json: Mark 4888d39f29ae84dd279f2bd4714eb0f6e8ba5d20 as denominated .pick_status.json: Mark 033818fdd99a543fd1cb17cc8e4be07f831a9003 as denominated .pick_status.json: Update to 3e4f73b3a0e0b9420f9614d3e271c49225c6f5d3 Faith Ekstrand (5): vulkan/pipeline: Handle VIEW_INDEX_FROM_DEVICE_INDEX_BIT nvk: Hash minSampleShading in nvk_hash_graphics_state() nvk: Don't do linear<->tiled copies for rendering suspend/resume nvk: Take depth image layer counts from the VkRenderingInfo vulkan: Allow pColorAttachmentLocations == NULL in CmdSetRenderingAttachmentLocationsKHR() Iván Briano (1): nir: add pass to convert ViewIndex to DeviceIndex Jesse Natalie (2): d3d12: Don't use a vertex re-ordering GS for line primitives microsoft/compiler: Move nir_lower_undef_to_zero out of the optimization loop Job Noorman (1): ir3: fix recognizing const/imm registers as a0 Jordan Justen (4): intel/dev: Update hwconfig => max_threads_per_psd for Xe2 intel/dev: Re-enable LNL PCI IDs (without INTEL_FORCE_PROBE) on Mesa 24.2 intel/dev: Enable BMG PCI IDs (without INTEL_FORCE_PROBE) anv: Drop "not yet supported" warning for Xe2 Karol Herbst (1): clc: fix compilation error with llvm-20 Kenneth Graunke (2): intel/brw: Drop misguided sign extension attempts in extract_imm() intel/brw: Fix extract_imm for subregion reads of 64-bit immediates Konstantin Seurer (1): nir/opt_loop: Fix handling else-breaks in merge_terminators Lionel Landwerlin (3): anv: fix utrace compute timestamp reads on Gfx20 iris: fix utrace compute end timestamp reads on Gfx20 brw: align spilling offsets to physical register sizes Lucas Stach (1): etnaviv: emit SAMPLER_LOG_SIZE on sampler state changes Mike Blumenkrantz (2): dril: use the super fallback path for software fallback dril: also create double-buffered configs in swrast fallback Patrick Lerda (1): iris: fix indirect draw refcnt imbalance Pierre-Eric Pelloux-Prayer (1): radeonsi: don't always update shader coherency draw call counter Rhys Perry (1): aco/ra: fix sub-dword get_reg_specified in some cases Rohan Garg (1): anv: prefetch samplers when dispatching compute shaders Roland Scheidegger (1): llvmpipe: Fix type mismatch when storing residency info Samuel Pitoiset (1): radv: fix emitting DGC indirect draws with drawid/base_instance Tapani Pälli (1): anv: set correct miplevel for anv_image_hiz_op Valentine Burley (1): tu: Fix VK_EXT_extended_dynamic_state3 feature Zan Dobersek (1): tu: use instance indices in RD dump filenames git tag: mesa-24.2.2 https://mesa.freedesktop.org/archive/mesa-24.2.2.tar.xz SHA256: fd077d3104edbe459e2b8597d2757ec065f9bd2d620b8c0b9cc88c2bf9891d02 mesa-24.2.2.tar.xz SHA512: d9979f7a1ae7bfeb0658d1b6c9021b7d0043c3ca71db9deaa2fc8a3d4c07cd58497b9233737a31fb66ef711a369a859757a63fb86c2aadd859867f9a4eaf16a9 mesa-24.2.2.tar.xz PGP: https://mesa.freedesktop.org/archive/mesa-24.2.2.tar.xz.sig signature.asc Description: signature
[Mesa-dev] [RFC 2/4] util/ralloc: Don't define assert with magic member without DEBUG
It is possible to have DEBUG disabled but asserts on, which cannot build because these asserts work on members that are only present when DEBUG is on. Signed-off-by: Dylan Baker --- src/util/ralloc.c | 8 1 file changed, 8 insertions(+) diff --git a/src/util/ralloc.c b/src/util/ralloc.c index 566f08ad94e..9cce9e02f68 100644 --- a/src/util/ralloc.c +++ b/src/util/ralloc.c @@ -630,7 +630,9 @@ linear_alloc_child(void *parent, unsigned size) linear_size_chunk *ptr; unsigned full_size; +#ifdef DEBUG assert(first->magic == LMAGIC); +#endif assert(!latest->next); size = ALIGN_POT(size, SUBALLOC_ALIGNMENT); @@ -702,7 +704,9 @@ linear_free_parent(void *ptr) return; node = LINEAR_PARENT_TO_HEADER(ptr); +#ifdef DEBUG assert(node->magic == LMAGIC); +#endif while (node) { void *ptr = node; @@ -721,7 +725,9 @@ ralloc_steal_linear_parent(void *new_ralloc_ctx, void *ptr) return; node = LINEAR_PARENT_TO_HEADER(ptr); +#ifdef DEBUG assert(node->magic == LMAGIC); +#endif while (node) { ralloc_steal(new_ralloc_ctx, node); @@ -734,7 +740,9 @@ void * ralloc_parent_of_linear_parent(void *ptr) { linear_header *node = LINEAR_PARENT_TO_HEADER(ptr); +#ifdef DEBUG assert(node->magic == LMAGIC); +#endif return node->ralloc_parent; } -- 2.14.1 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [RFC 4/4] meson: build "radv" vulkan driver for radeon hardware
This builds and installs, but I haven't had a chance to test it yet. Signed-off-by: Dylan Baker --- meson.build | 17 ++ src/{ => amd/addrlib}/meson.build | 69 - src/{ => amd/common}/meson.build | 65 src/{ => amd}/meson.build | 33 ++ src/amd/vulkan/meson.build| 124 ++ src/meson.build | 2 +- 6 files changed, 230 insertions(+), 80 deletions(-) copy src/{ => amd/addrlib}/meson.build (51%) copy src/{ => amd/common}/meson.build (51%) copy src/{ => amd}/meson.build (65%) create mode 100644 src/amd/vulkan/meson.build diff --git a/meson.build b/meson.build index e86082c346a..15fab39d635 100644 --- a/meson.build +++ b/meson.build @@ -279,6 +279,23 @@ dep_m = cc.find_library('m', required : false) # TODO: conditionalize libdrm requirement dep_libdrm = dependency('libdrm', version : '>= 2.4.75') pre_args += '-DHAVE_LIBDRM' +dep_libdrm_amdgpu = [] +if with_amd_vk + dep_libdrm_amdgpu = dependency('libdrm_amdgpu', version : '>= 2.4.82') +endif + +dep_llvm = dependency('llvm', version : '>= 3.9.0', required : false) +if not dep_llvm.found() + if with_amd_vk +error('Radv requires llvm.') + endif +else + _llvm_version = dep_llvm.version().split('.') + pre_args += [ +'-DHAVE_LLVM=0x0@0@@1@@2@'.format(_llvm_version[0], _llvm_version[1], _llvm_version[2]), +'-DMESA_LLVM_VERSION_PATCH=@0@'.format(_llvm_version[2]), + ] +endif # TODO: make this conditional dep_valgrind = dependency('valgrind', required : false) diff --git a/src/meson.build b/src/amd/addrlib/meson.build similarity index 51% copy from src/meson.build copy to src/amd/addrlib/meson.build index 4c82eec70f1..a6cad1207b0 100644 --- a/src/meson.build +++ b/src/amd/addrlib/meson.build @@ -18,31 +18,46 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -# TODO: libglsl_util +files_addrlib = files( + 'addrinterface.cpp', + 'addrinterface.h', + 'addrtypes.h', + 'core/addrcommon.h', + 'core/addrelemlib.cpp', + 'core/addrelemlib.h', + 'core/addrlib.cpp', + 'core/addrlib.h', + 'core/addrlib1.cpp', + 'core/addrlib1.h', + 'core/addrlib2.cpp', + 'core/addrlib2.h', + 'core/addrobject.cpp', + 'core/addrobject.h', + 'gfx9/chip/gfx9_enum.h', + 'gfx9/coord.cpp', + 'gfx9/coord.h', + 'gfx9/gfx9addrlib.cpp', + 'gfx9/gfx9addrlib.h', + 'gfx9/rbmap.cpp', + 'gfx9/rbmap.h', + 'inc/chip/gfx9/gfx9_gb_reg.h', + 'inc/chip/r800/si_gb_reg.h', + 'inc/lnx_common_defs.h', + 'r800/chip/si_ci_vi_merged_enum.h', + 'r800/ciaddrlib.cpp', + 'r800/ciaddrlib.h', + 'r800/egbaddrlib.cpp', + 'r800/egbaddrlib.h', + 'r800/siaddrlib.cpp', + 'r800/siaddrlib.h', +) -# TODO: git_sha. There's a meson builtin for this - -inc_common = include_directories( - '../include', '.', 'mapi', 'mesa', 'gallium/include', 'gallium/auxiliary') -inc_mesa = include_directories('mesa') -inc_mapi = include_directories('mapi') - -subdir('gtest') -subdir('util') -#subdir('mapi/glapi/gen') -# TODO: mapi -# TODO: opengl -# TODO: glx -# TODO: osmesa -subdir('compiler') -subdir('egl/wayland/wayland-drm') -subdir('vulkan') -# TODO: amd -subdir('intel') -# TODO: vc4 -# TODO: opengl_common -# TODO: dri_glx -# TODO: gbm -# TODO: egl -# TODO: radv -# TODO: gallium +libamdgpu_addrlib = static_library( + 'addrlib', + files_addrlib, + include_directories : include_directories( +'core', 'inc/chip/gfx9', 'inc/chip/r800', 'gfx9/chip', 'r800/chip', +'../common', '../../'), + cpp_args : [cpp_vis_args, '-DBRAHMA_BUILD=1'], + build_by_default : false, +) diff --git a/src/meson.build b/src/amd/common/meson.build similarity index 51% copy from src/meson.build copy to src/amd/common/meson.build index 4c82eec70f1..842b42f897e 100644 --- a/src/meson.build +++ b/src/amd/common/meson.build @@ -18,31 +18,46 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -# TODO: libglsl_util +inc_amd_common = include_directories('.') -# TODO: git_sha. There's a meson builtin for this +sid_tables_h = custom_target( + 'sid_tables_h', + input : ['sid_tables.py', 'sid.h', 'gfx9d.h'], + out
[Mesa-dev] [RFC 1/4] intel: use a flag instead of setting PYTHONPATH
Meson doesn't allow setting environment variables for custom targets, so we either need to not pass this as an environment variable or use a shell script to wrap the invocation. The chosen solution has the advantage of working for both autotools and meson. Signed-off-by: Dylan Baker --- src/intel/Makefile.compiler.am | 2 +- src/intel/compiler/brw_nir_trig_workarounds.py | 34 +++--- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/intel/Makefile.compiler.am b/src/intel/Makefile.compiler.am index 3ab550c96b1..45e7a6ccce8 100644 --- a/src/intel/Makefile.compiler.am +++ b/src/intel/Makefile.compiler.am @@ -35,7 +35,7 @@ BUILT_SOURCES += $(COMPILER_GENERATED_FILES) compiler/brw_nir_trig_workarounds.c: compiler/brw_nir_trig_workarounds.py \ $(top_srcdir)/src/compiler/nir/nir_algebraic.py $(MKDIR_GEN) - $(AM_V_GEN) PYTHONPATH=$(top_srcdir)/src/compiler/nir $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/compiler/brw_nir_trig_workarounds.py > $@ || ($(RM) $@; false) + $(AM_V_GEN) $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/compiler/brw_nir_trig_workarounds.py -p $(top_srcdir)/src/compiler/nir > $@ || ($(RM) $@; false) EXTRA_DIST += \ compiler/brw_nir_trig_workarounds.py diff --git a/src/intel/compiler/brw_nir_trig_workarounds.py b/src/intel/compiler/brw_nir_trig_workarounds.py index 6a77d64dbd4..a752f5461f1 100644 --- a/src/intel/compiler/brw_nir_trig_workarounds.py +++ b/src/intel/compiler/brw_nir_trig_workarounds.py @@ -20,8 +20,6 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE. -import nir_algebraic - # Prior to Kaby Lake, The SIN and COS instructions on Intel hardware can # produce values slightly outside of the [-1.0, 1.0] range for a small set of # values. Obviously, this can break everyone's expectations about trig @@ -33,11 +31,29 @@ import nir_algebraic # amplitude slightly. Apparently this also minimizes the error function, # reducing the maximum error from 0.6 to about 0.3. -trig_workarounds = [ - (('fsin', 'x'), ('fmul', ('fsin', 'x'), 0.7)), - (('fcos', 'x'), ('fmul', ('fcos', 'x'), 0.7)), -] +import argparse +import sys + + +def main(): +parser = argparse.ArgumentParser() +parser.add_argument('-p', '--import-path', required=True) +args = parser.parse_args() +sys.path.insert(0, args.import_path) +run() + + +def run(): +import nir_algebraic +trig_workarounds = [ + (('fsin', 'x'), ('fmul', ('fsin', 'x'), 0.7)), + (('fcos', 'x'), ('fmul', ('fcos', 'x'), 0.7)), +] + +print '#include "brw_nir.h"' +print nir_algebraic.AlgebraicPass("brw_nir_apply_trig_workarounds", + trig_workarounds).render() + -print '#include "brw_nir.h"' -print nir_algebraic.AlgebraicPass("brw_nir_apply_trig_workarounds", - trig_workarounds).render() +if __name__ == '__main__': +main() -- 2.14.1 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [RFC 3/4] meson: Add build Intel "anv" vulkan driver
This allows building and installing the Intel "anv" Vulkan driver using meson and ninja, the driver has been tested against the CTS and has seems to pass the same series of tests (they both segfault when the CTS tries to run wayland wsi tests). There are still a mess of TODO, XXX, and FIXME comments in here. Those are mostly for meson bugs I'm trying to fix, or for additional things to implement for other drivers/features. I have configured all intermediate libraries and optional tools to not build by default, meaning they will only be built if they're pulled in as a dependency of a target that will actually be installed) this allows us to avoid massive if chains, while ensuring that only the bits that need to be built are. Signed-off-by: Dylan Baker --- include/meson.build | 22 ++ meson.build | 408 meson_options.txt | 24 ++ src/compiler/glsl/meson.build | 29 +++ src/compiler/meson.build| 57 + src/compiler/nir/meson.build| 205 src/egl/wayland/wayland-drm/meson.build | 21 ++ src/gtest/meson.build | 26 ++ src/intel/blorp/meson.build | 37 +++ src/intel/common/meson.build| 44 src/intel/compiler/meson.build | 155 src/intel/genxml/meson.build| 59 + src/intel/isl/meson.build | 105 src/intel/meson.build | 31 +++ src/intel/tools/meson.build | 39 +++ src/intel/vulkan/meson.build| 180 ++ src/mapi/glapi/gen/meson.build | 19 ++ src/meson.build | 48 src/util/meson.build| 134 +++ src/util/tests/hash_table/meson.build | 32 +++ src/vulkan/meson.build | 28 +++ src/vulkan/util/gen_enum_to_str.py | 4 +- src/vulkan/util/meson.build | 47 src/vulkan/wsi/meson.build | 71 ++ 24 files changed, 1823 insertions(+), 2 deletions(-) create mode 100644 include/meson.build create mode 100644 meson.build create mode 100644 meson_options.txt create mode 100644 src/compiler/glsl/meson.build create mode 100644 src/compiler/meson.build create mode 100644 src/compiler/nir/meson.build create mode 100644 src/egl/wayland/wayland-drm/meson.build create mode 100644 src/gtest/meson.build create mode 100644 src/intel/blorp/meson.build create mode 100644 src/intel/common/meson.build create mode 100644 src/intel/compiler/meson.build create mode 100644 src/intel/genxml/meson.build create mode 100644 src/intel/isl/meson.build create mode 100644 src/intel/meson.build create mode 100644 src/intel/tools/meson.build create mode 100644 src/intel/vulkan/meson.build create mode 100644 src/mapi/glapi/gen/meson.build create mode 100644 src/meson.build create mode 100644 src/util/meson.build create mode 100644 src/util/tests/hash_table/meson.build create mode 100644 src/vulkan/meson.build create mode 100644 src/vulkan/util/meson.build create mode 100644 src/vulkan/wsi/meson.build diff --git a/include/meson.build b/include/meson.build new file mode 100644 index 000..93def7e0ec2 --- /dev/null +++ b/include/meson.build @@ -0,0 +1,22 @@ +# Copyright ?? 2017 Intel Corporation + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +inc_drm_uapi = include_directories('drm-uapi') +inc_vulkan = include_directories('vulkan') diff --git a/meson.build b/meson.build new file mode 100644 index 000..e86082c346a --- /dev/null +++ b/meson.build @@ -0,0 +1,408 @@ +# Copyright ?? 2017 Intel Corporation + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software withou
[Mesa-dev] initial meson port
Hi everyone, A long time ago I made some rumbling about porting mesa to meson (isn't that confusing). In the mean time I've been bogged down with other projects, including adding features to meson itself, and trying to write and rebase meson patches for all of mesa. Unfortunately mesa is a large fast moving project and trying to writing meson for the entire thing has proven to simply be intractable, I could spend nearly half my day rebasing to current master, and that's both demoralizing and error prone. So I took Jason's advice and started with what mattered to him ;) Vulkan. This was a chunk big enough to be a decent example, but small and contained enough to not require lots of rebasing. Intel's "anv" and the AMD "radv" driver share a large number of dependencies between each other, and demonstrate writing a meson build system. You may notice a lot of TODO/FIXME comments here. Some of them are related to upstream meson bugs (there are two currently, one that I have a pull request for that is probably ready for merge, and one that I'm working on currently), or things that need to be implemented for the meson build system to be complete. There are a few things that will need to be resolved before implementing mesa and gallium drivers (around dependencies that are hard dependencies for Vulkan, but soft dependencies for mesa/gallium). The meson build system is much faster for building these two drivers than the autotools build system, but there are a couple of caveats worth mentioning before I give you the numbers. 1: meson doesn't check for as many features, flags, or dependencies; 2: meson doesn't build glx, egl, or the glsl compiler, just enough of the glsl_compiler to get anv and radv building. The 1st will just naturally happen, the second could be fixed. Methodology : I ran each build system in as close of a configuration as I could (out of tree, same number of jobs) using zsh's time. These were run on a 2 core 4 thread Intel skylake. Note that ninja by default runs with logical cores + 2 jobs. Commands autotools : 'mkdir autotools ; cd autotools ; ../autogen.sh \ --without-dri-drivers --without-gallium-drivers \ --with-platforms=x11,wayland --with-vulkan-drivers=intel,radeon \ && make -j6' meson : meson build -Dvulkan-drivers=intel,amd -Dplatforms=x11,wayland && ninja -C build Results autotools : sh -c 535.34s user 30.33s system 310% cpu 3:02.05 total meson : sh -c 136.58s user 11.98s system 372% cpu 39.895 total I'm hopeful that we can start landing the meson build system incrementally, so that the rebasing pain can be eased. I'm working on getting i965 and radeonSI as my next targets (I have access to hardware to test those), and I'll continue to add additional drivers from there. Dylan ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [RFC 1/4] intel: use a flag instead of setting PYTHONPATH
Quoting Kenneth Graunke (2017-09-20 13:44:58) > On Wednesday, September 20, 2017 1:27:38 PM PDT Dylan Baker wrote: > > Meson doesn't allow setting environment variables for custom targets, so > > we either need to not pass this as an environment variable or use a > > shell script to wrap the invocation. The chosen solution has the > > advantage of working for both autotools and meson. > > > > Signed-off-by: Dylan Baker > > --- > > src/intel/Makefile.compiler.am | 2 +- > > src/intel/compiler/brw_nir_trig_workarounds.py | 34 > > +++--- > > 2 files changed, 26 insertions(+), 10 deletions(-) > > > > diff --git a/src/intel/Makefile.compiler.am b/src/intel/Makefile.compiler.am > > index 3ab550c96b1..45e7a6ccce8 100644 > > --- a/src/intel/Makefile.compiler.am > > +++ b/src/intel/Makefile.compiler.am > > @@ -35,7 +35,7 @@ BUILT_SOURCES += $(COMPILER_GENERATED_FILES) > > compiler/brw_nir_trig_workarounds.c: compiler/brw_nir_trig_workarounds.py \ > > > > $(top_srcdir)/src/compiler/nir/nir_algebraic.py > > $(MKDIR_GEN) > > - $(AM_V_GEN) PYTHONPATH=$(top_srcdir)/src/compiler/nir $(PYTHON2) > > $(PYTHON_FLAGS) $(srcdir)/compiler/brw_nir_trig_workarounds.py > $@ || > > ($(RM) $@; false) > > + $(AM_V_GEN) $(PYTHON2) $(PYTHON_FLAGS) > > $(srcdir)/compiler/brw_nir_trig_workarounds.py -p > > $(top_srcdir)/src/compiler/nir > $@ || ($(RM) $@; false) > > > > EXTRA_DIST += \ > > compiler/brw_nir_trig_workarounds.py > > diff --git a/src/intel/compiler/brw_nir_trig_workarounds.py > > b/src/intel/compiler/brw_nir_trig_workarounds.py > > index 6a77d64dbd4..a752f5461f1 100644 > > --- a/src/intel/compiler/brw_nir_trig_workarounds.py > > +++ b/src/intel/compiler/brw_nir_trig_workarounds.py > > @@ -20,8 +20,6 @@ > > # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER > > DEALINGS > > # IN THE SOFTWARE. > > > > -import nir_algebraic > > - > > # Prior to Kaby Lake, The SIN and COS instructions on Intel hardware can > > # produce values slightly outside of the [-1.0, 1.0] range for a small set > > of > > # values. Obviously, this can break everyone's expectations about trig > > @@ -33,11 +31,29 @@ import nir_algebraic > > # amplitude slightly. Apparently this also minimizes the error function, > > # reducing the maximum error from 0.6 to about 0.3. > > > > -trig_workarounds = [ > > - (('fsin', 'x'), ('fmul', ('fsin', 'x'), 0.7)), > > - (('fcos', 'x'), ('fmul', ('fcos', 'x'), 0.7)), > > -] > > +import argparse > > +import sys > > + > > + > > +def main(): > > +parser = argparse.ArgumentParser() > > +parser.add_argument('-p', '--import-path', required=True) > > +args = parser.parse_args() > > +sys.path.insert(0, args.import_path) > > +run() > > + > > + > > +def run(): > > +import nir_algebraic > > +trig_workarounds = [ > > + (('fsin', 'x'), ('fmul', ('fsin', 'x'), 0.7)), > > + (('fcos', 'x'), ('fmul', ('fcos', 'x'), 0.7)), > > +] > > + > > +print '#include "brw_nir.h"' > > +print nir_algebraic.AlgebraicPass("brw_nir_apply_trig_workarounds", > > + trig_workarounds).render() > > + > > > > -print '#include "brw_nir.h"' > > -print nir_algebraic.AlgebraicPass("brw_nir_apply_trig_workarounds", > > - trig_workarounds).render() > > +if __name__ == '__main__': > > +main() > > > > IMHO it would be nice to leave trig_workarounds at the top level, like > it was. That way, you can find the rules easily without having to dig > through the plumbing necessary to set them up. Either way, > > Reviewed-by: Kenneth Graunke Sure, I can move them back. I'll add that to v2. Dylan signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [RFC 2/4] util/ralloc: Don't define assert with magic member without DEBUG
Quoting Kenneth Graunke (2017-09-20 13:42:45) > On Wednesday, September 20, 2017 1:27:39 PM PDT Dylan Baker wrote: > > It is possible to have DEBUG disabled but asserts on, which cannot build > > because these asserts work on members that are only present when DEBUG > > is on. > > > > Signed-off-by: Dylan Baker > > --- > > src/util/ralloc.c | 8 > > 1 file changed, 8 insertions(+) > > > > diff --git a/src/util/ralloc.c b/src/util/ralloc.c > > index 566f08ad94e..9cce9e02f68 100644 > > --- a/src/util/ralloc.c > > +++ b/src/util/ralloc.c > > @@ -630,7 +630,9 @@ linear_alloc_child(void *parent, unsigned size) > > linear_size_chunk *ptr; > > unsigned full_size; > > > > +#ifdef DEBUG > > assert(first->magic == LMAGIC); > > +#endif > > assert(!latest->next); > > > > size = ALIGN_POT(size, SUBALLOC_ALIGNMENT); > > @@ -702,7 +704,9 @@ linear_free_parent(void *ptr) > >return; > > > > node = LINEAR_PARENT_TO_HEADER(ptr); > > +#ifdef DEBUG > > assert(node->magic == LMAGIC); > > +#endif > > > > while (node) { > >void *ptr = node; > > @@ -721,7 +725,9 @@ ralloc_steal_linear_parent(void *new_ralloc_ctx, void > > *ptr) > >return; > > > > node = LINEAR_PARENT_TO_HEADER(ptr); > > +#ifdef DEBUG > > assert(node->magic == LMAGIC); > > +#endif > > > > while (node) { > >ralloc_steal(new_ralloc_ctx, node); > > @@ -734,7 +740,9 @@ void * > > ralloc_parent_of_linear_parent(void *ptr) > > { > > linear_header *node = LINEAR_PARENT_TO_HEADER(ptr); > > +#ifdef DEBUG > > assert(node->magic == LMAGIC); > > +#endif > > return node->ralloc_parent; > > } > > > > > > Reviewed-by: Kenneth Graunke > > It might make senes to change all of these #ifdef DEBUG to #ifndef NDEBUG > which is the actual condition for assert not getting compiled away. > > DEBUG is some Mesa thing, I think. Yeah, DEBUG is a mesa thing. I think it's a little strange to have both, but it doesn't really matter to me either way. Dylan signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [RFC 4/4] meson: build "radv" vulkan driver for radeon hardware
Matt and I discussed this a bit before he left for XDC, and I have some ideas on how to share sources file lists (meson upstream wasn't particularly thrilled with the idea of of adding makefile parsing support, even in as limited a form as we have with our Makefile.sources). My initial though is to add support to meson for reading JSON or some other standard file format (ini, xml, whatever), and writing a tool that autotools could call during it's pre-process stage to convert these into Makefile.sources files. But I'm not an autotools expert by any stretch and I have no idea if that's even possible. I'll also add that android is migrating away from Make compatible android.mk files to a new soong build system that does not (AFAICT) read Make files, so if the android build system is going to live in tree in the future, we're going to end up duplicating all of this for android eventually. Dylan Quoting Nicolai Hähnle (2017-09-20 13:57:17) > On 20.09.2017 22:27, Dylan Baker wrote: > > +amd_common_files = files( > > + 'ac_binary.c', > > + 'ac_binary.h', > > + 'ac_exp_param.h', > > + 'ac_llvm_build.c', > > + 'ac_llvm_build.h', > > + 'ac_llvm_helper.cpp', > > + 'ac_llvm_util.c', > > + 'ac_llvm_util.h', > > + 'ac_shader_abi.h', > > + 'ac_shader_info.c', > > + 'ac_shader_info.h', > > + 'ac_nir_to_llvm.c', > > + 'ac_nir_to_llvm.h', > > + 'ac_gpu_info.c', > > + 'ac_gpu_info.h', > > + 'ac_surface.c', > > + 'ac_surface.h', > > + 'ac_debug.c', > > + 'ac_debug.h', > > +) > > So... I think this came up in the previous Meson thread. Duplicating > these source file lists is pretty painful, because it invariably leads > to people (including myself) forgetting to update them, which leads to > follow-up "fix $foo build system" commits. > > I have nothing against Meson in particular, but can we please not go there? > > Cheers, > Nicolai > -- > Lerne, wie die Welt wirklich ist, > Aber vergiss niemals, wie sie sein sollte. signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 3/6] vulkan: enum generator: make registry more flexible
Quoting Jason Ekstrand (2017-09-21 08:32:20) > From: Lionel Landwerlin > > It will be used to store extension numbers as well. > > Signed-off-by: Lionel Landwerlin > Reviewed-by: Jason Ekstrand > --- > src/vulkan/util/gen_enum_to_str.py | 22 +++--- > 1 file changed, 11 insertions(+), 11 deletions(-) > > diff --git a/src/vulkan/util/gen_enum_to_str.py > b/src/vulkan/util/gen_enum_to_str.py > index efe5d4f..5281e89 100644 > --- a/src/vulkan/util/gen_enum_to_str.py > +++ b/src/vulkan/util/gen_enum_to_str.py > @@ -115,18 +115,18 @@ FOREIGN_ENUM_VALUES = [ > ] > > > -class EnumFactory(object): > +class NamedFactory(object): > """Factory for creating enums.""" > > def __init__(self, type_): > self.registry = {} > self.type = type_ > > -def __call__(self, name): > +def __call__(self, *args): This is pretty ugly and clunky. What about __call__(self, name, **kwargs), and pass kwargs directly to the type? > try: > -return self.registry[name] > +return self.registry[args[0]] > except KeyError: > -n = self.registry[name] = self.type(name) > +n = self.registry[args[0]] = self.type(*args) > return n > > > @@ -138,7 +138,7 @@ class VkEnum(object): > self.values = values or [] > > > -def parse_xml(efactory, filename): > +def parse_xml(enum_factory, filename): > """Parse the XML file. Accumulate results into the efactory. > > This parser is a memory efficient iterative XML parser that returns a > list > @@ -157,15 +157,15 @@ def parse_xml(efactory, filename): > if event == 'end' and elem.tag == 'enums': > type_ = elem.attrib.get('type') > if type_ == 'enum': > -enum = efactory(elem.attrib['name']) > +enum = enum_factory(elem.attrib['name']) > enum.values.extend([e.attrib['name'] for e in elem > if e.tag == 'enum']) > elif event == 'end' and elem.tag == 'extension': > if elem.attrib['supported'] != 'vulkan': > continue > for e in elem.findall('.//enum[@extends][@offset]'): > -enum = efactory(e.attrib['extends']) > -enum.values.append(e.attrib['name']) > +enum = enum_factory(e.attrib['extends']) > +enum.values.append(e.attrib['name'],) > > root.clear() > > @@ -182,10 +182,10 @@ def main(): > > args = parser.parse_args() > > -efactory = EnumFactory(VkEnum) > +enum_factory = NamedFactory(VkEnum) > for filename in args.xml_files: > -parse_xml(efactory, filename) > -enums=sorted(efactory.registry.values(), key=lambda e: e.name) > +parse_xml(enum_factory, filename) > +enums=sorted(enum_factory.registry.values(), key=lambda e: e.name) > > for template, file_ in [(C_TEMPLATE, os.path.join(args.outdir, > 'vk_enum_to_str.c')), > (H_TEMPLATE, os.path.join(args.outdir, > 'vk_enum_to_str.h'))]: > -- > 2.5.0.400.gff86faf > > ___ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 4/6] vulkan: enum generator: generate extension number defines
Quoting Jason Ekstrand (2017-09-21 08:32:21) > From: Lionel Landwerlin > > New extensions can introduce additional enums. Most of the new enums > will have disjoint numbers from the initial enums. For example new > formats introduced by VK_IMG_format_pvrtc : > > VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177, > VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178, > VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179, > VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180, > VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181, > VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182, > VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183, > VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184, > VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 154000, > VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 154001, > VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 154002, > VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 154003, > VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 154004, > VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 154005, > VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 154006, > VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 154007, > > It's obvious we can't have a single table for handling those anymore. > > Fortunately the enum values actually contain the number of the > extension that introduced the new enums. So we can build an > indirection table off the extension number and then index by > subtracting the first enum of the the format enum value. > > This change makes the extension number available in the generated enum > code. > > Signed-off-by: Lionel Landwerlin > Reviewed-by: Jason Ekstrand > --- > src/vulkan/util/gen_enum_to_str.py | 24 > 1 file changed, 20 insertions(+), 4 deletions(-) > > diff --git a/src/vulkan/util/gen_enum_to_str.py > b/src/vulkan/util/gen_enum_to_str.py > index 5281e89..8f32102 100644 > --- a/src/vulkan/util/gen_enum_to_str.py > +++ b/src/vulkan/util/gen_enum_to_str.py > @@ -101,6 +101,10 @@ H_TEMPLATE = Template(textwrap.dedent(u"""\ > #include > #include > > +% for ext in extensions: > +#define _${ext.name}_number (${ext.number}) > +% endfor > + > % for enum in enums: > const char * vk_${enum.name[2:]}_to_str(${enum.name} input); > % endfor > @@ -130,6 +134,14 @@ class NamedFactory(object): > return n > > > +class VkExtension(object): > +"""Simple struct-like class representing extensions""" > + > +def __init__(self, name, number): > +self.name = name > +self.number = number > + > + > class VkEnum(object): > """Simple struct-like class representing a single Vulkan Enum.""" > > @@ -138,8 +150,8 @@ class VkEnum(object): > self.values = values or [] > > > -def parse_xml(enum_factory, filename): > -"""Parse the XML file. Accumulate results into the efactory. > +def parse_xml(enum_factory, ext_factory, filename): > +"""Parse the XML file. Accumulate results into the factories. > > This parser is a memory efficient iterative XML parser that returns a > list > of VkEnum objects. > @@ -160,6 +172,8 @@ def parse_xml(enum_factory, filename): > enum = enum_factory(elem.attrib['name']) > enum.values.extend([e.attrib['name'] for e in elem > if e.tag == 'enum']) > +elif event == 'start' and elem.tag == 'extension': > +ext_factory(elem.attrib['name'], int(elem.attrib['number'])) It would be better to nest the tags under the event if event == 'start': if elem.tag == '...' > elif event == 'end' and elem.tag == 'extension': > if elem.attrib['supported'] != 'vulkan': > continue > @@ -169,7 +183,6 @@ def parse_xml(enum_factory, filename): > > root.clear() > > - > def main(): > parser = argparse.ArgumentParser() > parser.add_argument('--xml', required=True, > @@ -183,9 +196,11 @@ def main(): > args = parser.parse_args() > > enum_factory = NamedFactory(VkEnum) > +ext_factory = NamedFactory(VkExtension) > for filename in args.xml_files: > -parse_xml(enum_factory, filename) > +parse_xml(enum_factory, ext_factory, filename) > enums=sorted(enum_factory.registry.values(), key=lambda e: e.name) > +extensions=sorted(ext_factory.registry.values(), key=lambda e: e.name) > > for template, file_ in [(C_TEMPLATE, os.path.join(args.outdir, > 'vk_enum_to_str.c')), > (H_TEMPLATE, os.path.join(args.outdir, > 'vk_enum_to_str.h'))]: > @@ -193,6 +208,7 @@ def main(): > f.write(template.render( > file=os.path.basename(__file__), > enums=enums, > +extensions=extensions, > copyright=COPYRIGHT, > FOREIGN_ENUM_VALUES=FOREIGN_ENUM_VALUES)) > > -- > 2.5.0.400.gff86faf > > ___ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listin
Re: [Mesa-dev] [PATCH 5/6] vulkan: enum generator: Stop using iterparse
Quoting Jason Ekstrand (2017-09-21 08:32:22) > While using iterparse is potentially a little more efficient, the Vulkan > registry XML is not large and using regular element tree simplifies the > parsing logic substantially. > --- > src/vulkan/util/gen_enum_to_str.py | 41 > +++--- > 1 file changed, 16 insertions(+), 25 deletions(-) > > diff --git a/src/vulkan/util/gen_enum_to_str.py > b/src/vulkan/util/gen_enum_to_str.py > index 8f32102..e5f8964 100644 > --- a/src/vulkan/util/gen_enum_to_str.py > +++ b/src/vulkan/util/gen_enum_to_str.py > @@ -157,31 +157,22 @@ def parse_xml(enum_factory, ext_factory, filename): > of VkEnum objects. > """ > > -with open(filename, 'rb') as f: > -context = iter(et.iterparse(f, events=('start', 'end'))) > - > -# This gives the root element, since goal is to iterate over the > -# elements without building a tree, this allows the root to be > cleared > -# (erase the elements) after the children have been processed. > -_, root = next(context) > - > -for event, elem in context: > -if event == 'end' and elem.tag == 'enums': > -type_ = elem.attrib.get('type') > -if type_ == 'enum': > -enum = enum_factory(elem.attrib['name']) > -enum.values.extend([e.attrib['name'] for e in elem > -if e.tag == 'enum']) > -elif event == 'start' and elem.tag == 'extension': > -ext_factory(elem.attrib['name'], int(elem.attrib['number'])) > -elif event == 'end' and elem.tag == 'extension': > -if elem.attrib['supported'] != 'vulkan': > -continue > -for e in elem.findall('.//enum[@extends][@offset]'): > -enum = enum_factory(e.attrib['extends']) > -enum.values.append(e.attrib['name'],) > - > -root.clear() > +xml = et.parse(filename) > + > +for enum_type in xml.findall('./enums'): > +if enum_type.attrib.get('type') != 'enum': > +continue please do not use continue for iterating xlm. xpath is more than capable of representing this in less code, and it's implemented in C so it will be much faster. for enum_type in xml.findall('./enums[@type="enum"]') > + > +enum = enum_factory(enum_type.attrib['name']) > +for value in enum_type.findall('./enum'): > +enum.values.append(value.attrib['name']) > + > +for ext_elem in xml.findall('./extension'): > +if ext_elem.attrib['supported'] != 'vulkan': > +continue please do the same thing here. > + > +ext_factory(ext_elem.attrib['name'], > +int(ext_elem.attrib['number'])) > > def main(): > parser = argparse.ArgumentParser() > -- > 2.5.0.400.gff86faf > > ___ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH v3 1/6] vulkan: enum generator: align function declarations/prototypes
Thanks for updating. For the series: Reviewed-by: Dylan Baker Quoting Jason Ekstrand (2017-09-21 14:19:43) > From: Lionel Landwerlin > > Signed-off-by: Lionel Landwerlin > Acked-by: Jason Ekstrand > --- > src/vulkan/util/gen_enum_to_str.py | 42 > +++--- > 1 file changed, 21 insertions(+), 21 deletions(-) > > diff --git a/src/vulkan/util/gen_enum_to_str.py > b/src/vulkan/util/gen_enum_to_str.py > index df326d0..aa7001e 100644 > --- a/src/vulkan/util/gen_enum_to_str.py > +++ b/src/vulkan/util/gen_enum_to_str.py > @@ -64,27 +64,27 @@ C_TEMPLATE = Template(textwrap.dedent(u"""\ > > % for enum in enums: > > -const char * > -vk_${enum.name[2:]}_to_str(${enum.name} input) > -{ > -switch(input) { > -% for v in enum.values: > -% if v in FOREIGN_ENUM_VALUES: > - > -#pragma GCC diagnostic push > -#pragma GCC diagnostic ignored "-Wswitch" > -% endif > -case ${v}: > -return "${v}"; > -% if v in FOREIGN_ENUM_VALUES: > -#pragma GCC diagnostic pop > - > -% endif > -% endfor > -default: > -unreachable("Undefined enum value."); > -} > +const char * > +vk_${enum.name[2:]}_to_str(${enum.name} input) > +{ > +switch(input) { > +% for v in enum.values: > +% if v in FOREIGN_ENUM_VALUES: > + > +#pragma GCC diagnostic push > +#pragma GCC diagnostic ignored "-Wswitch" > +% endif > +case ${v}: > +return "${v}"; > +% if v in FOREIGN_ENUM_VALUES: > +#pragma GCC diagnostic pop > + > +% endif > +% endfor > +default: > +unreachable("Undefined enum value."); > } > +} > %endfor"""), > output_encoding='utf-8') > > @@ -102,7 +102,7 @@ H_TEMPLATE = Template(textwrap.dedent(u"""\ > #include > > % for enum in enums: > -const char * vk_${enum.name[2:]}_to_str(${enum.name} input); > +const char * vk_${enum.name[2:]}_to_str(${enum.name} input); > % endfor > > #endif"""), > -- > 2.5.0.400.gff86faf > > ___ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] Meson mesademos (Was: [RFC libdrm 0/2] Replace the build system with meson)
Quoting Nirbheek Chauhan (2017-09-22 10:47:51) > So it seems to me that wrapping binaries is the only major feature > that is being an obstacle for you to port mesademos? I will publish an > example for doing that via subprojects, that should help! > > Cheers, > Nirbheek That would be very useful. I have wraps for glew and freeglut, but I really don't want to write a wrap for llvm :) Dylan signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] Meson mesademos (Was: [RFC libdrm 0/2] Replace the build system with meson)
Quoting Jose Fonseca (2017-09-22 11:10:34) > On 22/09/17 18:47, Nirbheek Chauhan wrote: > > On Fri, Sep 22, 2017 at 10:19 PM, Jose Fonseca wrote: > >> cmake provides a generic mechanism to set any variable, either from a > >> command line -DFOO=boo, or via cache files. But meson didn't provide such > >> standard mechanism AFAICT. > >> > > > > In Meson you must define an option to pass data to the build file. > > This cannot change since it would go against the basic design > > principles of Meson. > > > >> Furthermore, this needs to work both with pkg-config on Linux, and > >> non-pkgconfig on Windows. We don't want to have one set of meson files > >> that > >> use pkconfig subprojects for Linux, and other that use something else for > >> Windows. > >> > > > > FWIW, a lot of projects use pkg-config on Windows and macOS too since > > pkg-config is a cross-platform standard. > > > > I do understand that it can be a hassle ensuring the existence of > > pkg-config.exe and convincing some projects that they should add > > pkg-config files. Perhaps we can improve that by installing a > > standalone pkg-config.exe with our Windows MSI installers. > > I think it's a mistake for Meson depend on pkg-config.exe on Windows. > > Is completely unfit for purpose IMHO. cygwin/msys/WSL all might ship > their pkg-config, and who knows what they'll find. > > Plus each project will have specific needs. Maybe I'm using MSVC 2017. > Maybe I'm using MSVC 2012. I'll need different static libraries for > those. There's no such thing as a centralized repository for > dependencies on Windows. There simply can't be. At least outside POSIX > ports like cygwin/msys/etc > > An while building all dependencies from source would solve that, that's > also unpractical. Not only becuase it would take time to convert them > to meson, but also because often source is not available. > > > We also have Windows-specific code in our Sdl2, Boost, Qt, and other > > dependency search classes which is our preferred mechanism to detect > > dependencies that are distributed via installers and can be found in > > 'standard' locations. > > Right. What Meson lacks is a simple mechanism to generalize that for > any binary package without pkg-config. > > > > >>> for you, we'd love to talk about how we can improve things. For > >>> instance, there were these proposals: > >>> https://github.com/mesonbuild/meson/issues/1525 and > >>> https://github.com/mesonbuild/meson/issues/1524, but we didn't get any > >>> feedback on whether they would actually be useful in real-world usage. > >> > >> > >> I think those were added precisely as a consequence of my discussions with > >> Dylan on porting mesademos. > >> > >> meson subprojects assume too much: they either expect pkg-config, or they > >> expect the subprojects to have source and meson files. > >> > > > > Meson does not require pkg-config to find dependencies, but yes we do > > recommend it because it makes the job very easy. > > > > Meson subprojects exist precisely so you can avoid looking outside the > > source tree for dependencies, so you should not need pkg-config. For > > instance, you can also create a subproject that exports dependency > > objects for pre-built binaries just fine. We should publish an example > > so people know how to do it. > > > >>> Meson is (IMO) unusual in the build systems world in that it's not a > >>> static unchangeable upstream (ala cmake/autotools/scons), but is a > >>> FOSS project that you can interact with, so please talk to us. :) > >> > >> > >> Well, that's a good and a bad thing. It's certainly great that you're open > >> for discussion. But I'm afraid the fact that so much interaction is > >> necessary means meson still has some ways to go. Honestly, besides filing > >> a > >> couple of bugs, I never felt the need to interact with CMake/SCons > >> development community and driver their direction. It pretty much did what > >> I > >> needed. I don't want to build a build system myself. And I fear living on > >> the bleeding edge myself. > >> > > > > In my experience, I really wished that cmake/scons upstream cared a > > bit more about my use-cases and I didn't have to hack everything I > > wanted into my build files with macros. ;) > > > > I've found cmake projects to be more fragile and harder to understand > > than even Autotools, but perhaps I'm just looking at badly-written > > build files. This is one of the reasons why Meson restricts what you > > can do in a build file — to make it harder for people to write bad > > ones! > > > >> I'll be honest, I'm happy to evaluate meson as potential replacement build > >> system for SCons. But to put time in raising meson up to the point where > >> it > >> can be a replacement for SCons is beyond what I'm willing to do. > >> > > > > That's fair, but it seems that there are Mesa developers who are > > interested in doing this, and I do enjoy working with them. The code > > we get is
Re: [Mesa-dev] Meson mesademos (Was: [RFC libdrm 0/2] Replace the build system with meson)
Quoting Jose Fonseca (2017-09-22 11:58:17) > On 22/09/17 19:38, Dylan Baker wrote: > > Quoting Jose Fonseca (2017-09-22 11:10:34) > >> On 22/09/17 18:47, Nirbheek Chauhan wrote: > >>> On Fri, Sep 22, 2017 at 10:19 PM, Jose Fonseca > >>> wrote: > >>>> cmake provides a generic mechanism to set any variable, either from a > >>>> command line -DFOO=boo, or via cache files. But meson didn't provide > >>>> such > >>>> standard mechanism AFAICT. > >>>> > >>> > >>> In Meson you must define an option to pass data to the build file. > >>> This cannot change since it would go against the basic design > >>> principles of Meson. > >>> > >>>> Furthermore, this needs to work both with pkg-config on Linux, and > >>>> non-pkgconfig on Windows. We don't want to have one set of meson files > >>>> that > >>>> use pkconfig subprojects for Linux, and other that use something else for > >>>> Windows. > >>>> > >>> > >>> FWIW, a lot of projects use pkg-config on Windows and macOS too since > >>> pkg-config is a cross-platform standard. > >>> > >>> I do understand that it can be a hassle ensuring the existence of > >>> pkg-config.exe and convincing some projects that they should add > >>> pkg-config files. Perhaps we can improve that by installing a > >>> standalone pkg-config.exe with our Windows MSI installers. > >> > >> I think it's a mistake for Meson depend on pkg-config.exe on Windows. > >> > >> Is completely unfit for purpose IMHO. cygwin/msys/WSL all might ship > >> their pkg-config, and who knows what they'll find. > >> > >> Plus each project will have specific needs. Maybe I'm using MSVC 2017. > >> Maybe I'm using MSVC 2012. I'll need different static libraries for > >> those. There's no such thing as a centralized repository for > >> dependencies on Windows. There simply can't be. At least outside POSIX > >> ports like cygwin/msys/etc > >> > >> An while building all dependencies from source would solve that, that's > >> also unpractical. Not only becuase it would take time to convert them > >> to meson, but also because often source is not available. > >> > >>> We also have Windows-specific code in our Sdl2, Boost, Qt, and other > >>> dependency search classes which is our preferred mechanism to detect > >>> dependencies that are distributed via installers and can be found in > >>> 'standard' locations. > >> > >> Right. What Meson lacks is a simple mechanism to generalize that for > >> any binary package without pkg-config. > >> > >>> > >>>>> for you, we'd love to talk about how we can improve things. For > >>>>> instance, there were these proposals: > >>>>> https://github.com/mesonbuild/meson/issues/1525 and > >>>>> https://github.com/mesonbuild/meson/issues/1524, but we didn't get any > >>>>> feedback on whether they would actually be useful in real-world usage. > >>>> > >>>> > >>>> I think those were added precisely as a consequence of my discussions > >>>> with > >>>> Dylan on porting mesademos. > >>>> > >>>> meson subprojects assume too much: they either expect pkg-config, or they > >>>> expect the subprojects to have source and meson files. > >>>> > >>> > >>> Meson does not require pkg-config to find dependencies, but yes we do > >>> recommend it because it makes the job very easy. > >>> > >>> Meson subprojects exist precisely so you can avoid looking outside the > >>> source tree for dependencies, so you should not need pkg-config. For > >>> instance, you can also create a subproject that exports dependency > >>> objects for pre-built binaries just fine. We should publish an example > >>> so people know how to do it. > >>> > >>>>> Meson is (IMO) unusual in the build systems world in that it's not a > >>>>> static unchangeable upstream (ala cmake/autotools/scons), but is a > >>>>> FOSS project that you can interact with, so please talk to us. :) > >>>> > >>>> > >>>> Well, that's a good
[Mesa-dev] [PATCH v2 2/4] util/ralloc: Don't define assert with magic member without DEBUG
It is possible to have DEBUG disabled but asserts on (NDEBUG(, which cannot build because these asserts work on members that are only present when DEBUG is on. Reviewed-by: Kenneth Graunke Signed-off-by: Dylan Baker --- src/util/ralloc.c | 8 1 file changed, 8 insertions(+) diff --git a/src/util/ralloc.c b/src/util/ralloc.c index 566f08ad94e..9cce9e02f68 100644 --- a/src/util/ralloc.c +++ b/src/util/ralloc.c @@ -630,7 +630,9 @@ linear_alloc_child(void *parent, unsigned size) linear_size_chunk *ptr; unsigned full_size; +#ifdef DEBUG assert(first->magic == LMAGIC); +#endif assert(!latest->next); size = ALIGN_POT(size, SUBALLOC_ALIGNMENT); @@ -702,7 +704,9 @@ linear_free_parent(void *ptr) return; node = LINEAR_PARENT_TO_HEADER(ptr); +#ifdef DEBUG assert(node->magic == LMAGIC); +#endif while (node) { void *ptr = node; @@ -721,7 +725,9 @@ ralloc_steal_linear_parent(void *new_ralloc_ctx, void *ptr) return; node = LINEAR_PARENT_TO_HEADER(ptr); +#ifdef DEBUG assert(node->magic == LMAGIC); +#endif while (node) { ralloc_steal(new_ralloc_ctx, node); @@ -734,7 +740,9 @@ void * ralloc_parent_of_linear_parent(void *ptr) { linear_header *node = LINEAR_PARENT_TO_HEADER(ptr); +#ifdef DEBUG assert(node->magic == LMAGIC); +#endif return node->ralloc_parent; } -- 2.14.1 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH v2 1/4] intel: use a flag instead of setting PYTHONPATH
Meson doesn't allow setting environment variables for custom targets, so we either need to not pass this as an environment variable or use a shell script to wrap the invocation. The chosen solution has the advantage of working for both autotools and meson. v2: - put rules back in top scope (Ken) Reviewed-by: Kenneth Graunke Signed-off-by: Dylan Baker --- src/intel/Makefile.compiler.am | 2 +- src/intel/compiler/brw_nir_trig_workarounds.py | 33 +++--- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/intel/Makefile.compiler.am b/src/intel/Makefile.compiler.am index 3ab550c96b1..45e7a6ccce8 100644 --- a/src/intel/Makefile.compiler.am +++ b/src/intel/Makefile.compiler.am @@ -35,7 +35,7 @@ BUILT_SOURCES += $(COMPILER_GENERATED_FILES) compiler/brw_nir_trig_workarounds.c: compiler/brw_nir_trig_workarounds.py \ $(top_srcdir)/src/compiler/nir/nir_algebraic.py $(MKDIR_GEN) - $(AM_V_GEN) PYTHONPATH=$(top_srcdir)/src/compiler/nir $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/compiler/brw_nir_trig_workarounds.py > $@ || ($(RM) $@; false) + $(AM_V_GEN) $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/compiler/brw_nir_trig_workarounds.py -p $(top_srcdir)/src/compiler/nir > $@ || ($(RM) $@; false) EXTRA_DIST += \ compiler/brw_nir_trig_workarounds.py diff --git a/src/intel/compiler/brw_nir_trig_workarounds.py b/src/intel/compiler/brw_nir_trig_workarounds.py index 6a77d64dbd4..3d08b9a41ea 100644 --- a/src/intel/compiler/brw_nir_trig_workarounds.py +++ b/src/intel/compiler/brw_nir_trig_workarounds.py @@ -20,8 +20,6 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE. -import nir_algebraic - # Prior to Kaby Lake, The SIN and COS instructions on Intel hardware can # produce values slightly outside of the [-1.0, 1.0] range for a small set of # values. Obviously, this can break everyone's expectations about trig @@ -33,11 +31,30 @@ import nir_algebraic # amplitude slightly. Apparently this also minimizes the error function, # reducing the maximum error from 0.6 to about 0.3. -trig_workarounds = [ - (('fsin', 'x'), ('fmul', ('fsin', 'x'), 0.7)), - (('fcos', 'x'), ('fmul', ('fcos', 'x'), 0.7)), +import argparse +import sys + +TRIG_WORKAROUNDS = [ +(('fsin', 'x'), ('fmul', ('fsin', 'x'), 0.7)), +(('fcos', 'x'), ('fmul', ('fcos', 'x'), 0.7)), ] -print '#include "brw_nir.h"' -print nir_algebraic.AlgebraicPass("brw_nir_apply_trig_workarounds", - trig_workarounds).render() + +def main(): +parser = argparse.ArgumentParser() +parser.add_argument('-p', '--import-path', required=True) +args = parser.parse_args() +sys.path.insert(0, args.import_path) +run() + + +def run(): +import nir_algebraic # pylint: disable=import-error + +print '#include "brw_nir.h"' +print nir_algebraic.AlgebraicPass("brw_nir_apply_trig_workarounds", + TRIG_WORKAROUNDS).render() + + +if __name__ == '__main__': +main() -- 2.14.1 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH v2 3/4] meson: Add build Intel "anv" vulkan driver
This allows building and installing the Intel "anv" Vulkan driver using meson and ninja, the driver has been tested against the CTS and has seems to pass the same series of tests (they both segfault when the CTS tries to run wayland wsi tests). There are still a mess of TODO, XXX, and FIXME comments in here. Those are mostly for meson bugs I'm trying to fix, or for additional things to implement for other drivers/features. I have configured all intermediate libraries and optional tools to not build by default, meaning they will only be built if they're pulled in as a dependency of a target that will actually be installed) this allows us to avoid massive if chains, while ensuring that only the bits that need to be built are. v2: - enable anv, x11, and wayland by default - add configure option to disable valgrind Signed-off-by: Dylan Baker --- include/meson.build | 22 ++ meson.build | 423 meson_options.txt | 30 +++ src/compiler/glsl/meson.build | 29 +++ src/compiler/meson.build| 57 + src/compiler/nir/meson.build| 205 src/egl/wayland/wayland-drm/meson.build | 21 ++ src/gtest/meson.build | 26 ++ src/intel/blorp/meson.build | 37 +++ src/intel/common/meson.build| 44 src/intel/compiler/meson.build | 155 src/intel/genxml/meson.build| 59 + src/intel/isl/meson.build | 105 src/intel/meson.build | 31 +++ src/intel/tools/meson.build | 39 +++ src/intel/vulkan/meson.build| 182 ++ src/mapi/glapi/gen/meson.build | 19 ++ src/meson.build | 48 src/util/meson.build| 134 ++ src/util/tests/hash_table/meson.build | 32 +++ src/vulkan/meson.build | 28 +++ src/vulkan/util/gen_enum_to_str.py | 4 +- src/vulkan/util/meson.build | 47 src/vulkan/wsi/meson.build | 71 ++ 24 files changed, 1846 insertions(+), 2 deletions(-) create mode 100644 include/meson.build create mode 100644 meson.build create mode 100644 meson_options.txt create mode 100644 src/compiler/glsl/meson.build create mode 100644 src/compiler/meson.build create mode 100644 src/compiler/nir/meson.build create mode 100644 src/egl/wayland/wayland-drm/meson.build create mode 100644 src/gtest/meson.build create mode 100644 src/intel/blorp/meson.build create mode 100644 src/intel/common/meson.build create mode 100644 src/intel/compiler/meson.build create mode 100644 src/intel/genxml/meson.build create mode 100644 src/intel/isl/meson.build create mode 100644 src/intel/meson.build create mode 100644 src/intel/tools/meson.build create mode 100644 src/intel/vulkan/meson.build create mode 100644 src/mapi/glapi/gen/meson.build create mode 100644 src/meson.build create mode 100644 src/util/meson.build create mode 100644 src/util/tests/hash_table/meson.build create mode 100644 src/vulkan/meson.build create mode 100644 src/vulkan/util/meson.build create mode 100644 src/vulkan/wsi/meson.build diff --git a/include/meson.build b/include/meson.build new file mode 100644 index 000..93def7e0ec2 --- /dev/null +++ b/include/meson.build @@ -0,0 +1,22 @@ +# Copyright ?? 2017 Intel Corporation + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +inc_drm_uapi = include_directories('drm-uapi') +inc_vulkan = include_directories('vulkan') diff --git a/meson.build b/meson.build new file mode 100644 index 000..09e53957fe9 --- /dev/null +++ b/meson.build @@ -0,0 +1,423 @@ +# Copyright ?? 2017 Intel Corporation + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software
[Mesa-dev] [PATCH v2 4/4] meson: build "radv" vulkan driver for radeon hardware
This builds and installs, but I haven't had a chance to test it yet. v2: - enable radv by default - add shader cache support and enforce that it's built for radv Signed-off-by: Dylan Baker --- meson.build | 27 - meson_options.txt | 4 +- src/{ => amd/addrlib}/meson.build | 69 - src/{ => amd/common}/meson.build | 65 src/{ => amd}/meson.build | 33 ++ src/amd/vulkan/meson.build| 124 ++ src/meson.build | 2 +- 7 files changed, 240 insertions(+), 84 deletions(-) copy src/{ => amd/addrlib}/meson.build (51%) copy src/{ => amd/common}/meson.build (51%) copy src/{ => amd}/meson.build (65%) create mode 100644 src/amd/vulkan/meson.build diff --git a/meson.build b/meson.build index 09e53957fe9..0b3e6f61545 100644 --- a/meson.build +++ b/meson.build @@ -71,6 +71,12 @@ if get_option('buildtype').startswith('debug') pre_args += '-DDEBUG' endif +if get_option('shader-cache') + pre_args += '-DENABLE_SHADER_CACHE' +elif with_amd_vk + error('Radv requires shader cache support') +endif + # Check for GCC style builtins foreach b : ['bswap32', 'bswap64', 'clz', 'clzll', 'ctz', 'expect', 'ffs', 'ffsll', 'popcount', 'popcountll', 'unreachable'] @@ -79,7 +85,7 @@ foreach b : ['bswap32', 'bswap64', 'clz', 'clzll', 'ctz', 'expect', 'ffs', endif endforeach -# check for GCC __attribute__ s +# check for GCC __attribute__ foreach a : ['const', 'flatten', 'malloc', 'pure', 'unused', 'warn_unused_result', 'weak',] if cc.compiles('int foo(void) __attribute__((@0@));'.format(a), @@ -291,6 +297,23 @@ dep_m = cc.find_library('m', required : false) # TODO: conditionalize libdrm requirement dep_libdrm = dependency('libdrm', version : '>= 2.4.75') pre_args += '-DHAVE_LIBDRM' +dep_libdrm_amdgpu = [] +if with_amd_vk + dep_libdrm_amdgpu = dependency('libdrm_amdgpu', version : '>= 2.4.82') +endif + +dep_llvm = dependency('llvm', version : '>= 3.9.0', required : false) +if not dep_llvm.found() + if with_amd_vk +error('Radv requires llvm.') + endif +else + _llvm_version = dep_llvm.version().split('.') + pre_args += [ +'-DHAVE_LLVM=0x0@0@@1@@2@'.format(_llvm_version[0], _llvm_version[1], _llvm_version[2]), +'-DMESA_LLVM_VERSION_PATCH=@0@'.format(_llvm_version[2]), + ] +endif # TODO: make this conditional dep_valgrind = dependency('valgrind', required : false) @@ -304,8 +327,6 @@ endif # TODO: llvm-prefix and llvm-shared-libs -# TODO: llvm dependency (that's all native now, yay!) - # TODO: unwind (llvm [radeon, gallivm] and gallium) # TODO: flags for opengl, gles, dri diff --git a/meson_options.txt b/meson_options.txt index e52cec31f11..854cba851d7 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -20,8 +20,10 @@ option('platforms', type : 'string', value : 'x11,wayland', description : 'comma separated list of window systems to support. wayland, x11, surfaceless, drm, etc.') -option('vulkan-drivers', type : 'string', value : 'intel', +option('vulkan-drivers', type : 'string', value : 'intel,amd', description : 'comma separated list of vulkan drivers to build.') +option('shader-cache',type : 'boolean', vaule : true, + description : 'Build with on-disk shader cache support') option('vulkan_icd_dir', type : 'string', value : '', description : 'Location relative to prefix to put vulkan icds on install. Default: $datadir/vulkan/icd.d') option('valgrind', type : 'boolean', vaule : true, diff --git a/src/meson.build b/src/amd/addrlib/meson.build similarity index 51% copy from src/meson.build copy to src/amd/addrlib/meson.build index 4c82eec70f1..a6cad1207b0 100644 --- a/src/meson.build +++ b/src/amd/addrlib/meson.build @@ -18,31 +18,46 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -# TODO: libglsl_util +files_addrlib = files( + 'addrinterface.cpp', + 'addrinterface.h', + 'addrtypes.h', + 'core/addrcommon.h', + 'core/addrelemlib.cpp', + 'core/addrelemlib.h', + 'core/addrlib.cpp', + 'core/addrli
Re: [Mesa-dev] [PATCH v2 4/4] meson: build "radv" vulkan driver for radeon hardware
I have tested this, and as of v2 it actually works. I'll update the commitment message. Dylan On September 23, 2017 8:39:06 AM PDT, Dylan Baker wrote: >This builds and installs, but I haven't had a chance to test it yet. > >v2: - enable radv by default >- add shader cache support and enforce that it's built for radv > >Signed-off-by: Dylan Baker >--- > meson.build | 27 - > meson_options.txt | 4 +- > src/{ => amd/addrlib}/meson.build | 69 - > src/{ => amd/common}/meson.build | 65 > src/{ => amd}/meson.build | 33 ++ >src/amd/vulkan/meson.build| 124 >++ > src/meson.build | 2 +- > 7 files changed, 240 insertions(+), 84 deletions(-) > copy src/{ => amd/addrlib}/meson.build (51%) > copy src/{ => amd/common}/meson.build (51%) > copy src/{ => amd}/meson.build (65%) > create mode 100644 src/amd/vulkan/meson.build > >diff --git a/meson.build b/meson.build >index 09e53957fe9..0b3e6f61545 100644 >--- a/meson.build >+++ b/meson.build >@@ -71,6 +71,12 @@ if get_option('buildtype').startswith('debug') > pre_args += '-DDEBUG' > endif > >+if get_option('shader-cache') >+ pre_args += '-DENABLE_SHADER_CACHE' >+elif with_amd_vk >+ error('Radv requires shader cache support') >+endif >+ > # Check for GCC style builtins >foreach b : ['bswap32', 'bswap64', 'clz', 'clzll', 'ctz', 'expect', >'ffs', > 'ffsll', 'popcount', 'popcountll', 'unreachable'] >@@ -79,7 +85,7 @@ foreach b : ['bswap32', 'bswap64', 'clz', 'clzll', >'ctz', 'expect', 'ffs', > endif > endforeach > >-# check for GCC __attribute__ s >+# check for GCC __attribute__ > foreach a : ['const', 'flatten', 'malloc', 'pure', 'unused', > 'warn_unused_result', 'weak',] > if cc.compiles('int foo(void) __attribute__((@0@));'.format(a), >@@ -291,6 +297,23 @@ dep_m = cc.find_library('m', required : false) > # TODO: conditionalize libdrm requirement > dep_libdrm = dependency('libdrm', version : '>= 2.4.75') > pre_args += '-DHAVE_LIBDRM' >+dep_libdrm_amdgpu = [] >+if with_amd_vk >+ dep_libdrm_amdgpu = dependency('libdrm_amdgpu', version : '>= >2.4.82') >+endif >+ >+dep_llvm = dependency('llvm', version : '>= 3.9.0', required : false) >+if not dep_llvm.found() >+ if with_amd_vk >+error('Radv requires llvm.') >+ endif >+else >+ _llvm_version = dep_llvm.version().split('.') >+ pre_args += [ >+'-DHAVE_LLVM=0x0@0@@1@@2@'.format(_llvm_version[0], >_llvm_version[1], _llvm_version[2]), >+'-DMESA_LLVM_VERSION_PATCH=@0@'.format(_llvm_version[2]), >+ ] >+endif > > # TODO: make this conditional > dep_valgrind = dependency('valgrind', required : false) >@@ -304,8 +327,6 @@ endif > > # TODO: llvm-prefix and llvm-shared-libs > >-# TODO: llvm dependency (that's all native now, yay!) >- > # TODO: unwind (llvm [radeon, gallivm] and gallium) > > # TODO: flags for opengl, gles, dri >diff --git a/meson_options.txt b/meson_options.txt >index e52cec31f11..854cba851d7 100644 >--- a/meson_options.txt >+++ b/meson_options.txt >@@ -20,8 +20,10 @@ > > option('platforms', type : 'string', value : 'x11,wayland', >description : 'comma separated list of window systems to support. >wayland, x11, surfaceless, drm, etc.') >-option('vulkan-drivers', type : 'string', value : 'intel', >+option('vulkan-drivers', type : 'string', value : 'intel,amd', > description : 'comma separated list of vulkan drivers to build.') >+option('shader-cache',type : 'boolean', vaule : true, >+ description : 'Build with on-disk shader cache support') > option('vulkan_icd_dir', type : 'string', value : '', >description : 'Location relative to prefix to put vulkan icds on >install. Default: $datadir/vulkan/icd.d') > option('valgrind', type : 'boolean', vaule : true, >diff --git a/src/meson.build b/src/amd/addrlib/meson.build >similarity index 51% >copy from src/meson.build >copy
Re: [Mesa-dev] [PATCH v2 4/4] meson: build "radv" vulkan driver for radeon hardware
Quoting Nicholas Miell (2017-09-23 21:17:48) > On 09/23/2017 08:39 AM, Dylan Baker wrote: > > diff --git a/meson_options.txt b/meson_options.txt > > index e52cec31f11..854cba851d7 100644 > > --- a/meson_options.txt > > +++ b/meson_options.txt > > @@ -20,8 +20,10 @@ > > > > option('platforms', type : 'string', value : 'x11,wayland', > > description : 'comma separated list of window systems to support. > > wayland, x11, surfaceless, drm, etc.') > > -option('vulkan-drivers', type : 'string', value : 'intel', > > +option('vulkan-drivers', type : 'string', value : 'intel,amd', > > description : 'comma separated list of vulkan drivers to build.') > > +option('shader-cache',type : 'boolean', vaule : true, > > "vaule" typo > > > + description : 'Build with on-disk shader cache support') > > option('vulkan_icd_dir', type : 'string', value : '', > > description : 'Location relative to prefix to put vulkan icds on > > install. Default: $datadir/vulkan/icd.d') > > option('valgrind', type : 'boolean', vaule : true, > > and again. > You're correct, I've fixed that locally. Dylan signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH v2 4/4] meson: build "radv" vulkan driver for radeon hardware
Hi Bas, I'll add a local workaround, but really I want to get this fix into meson proper (I wrote LLVM dependency handling for meson just for mesa). Does LLVM generally add "svn" to the end of the version if it's build from svn? Dylan Quoting Bas Nieuwenhuizen (2017-09-23 21:16:36) > Hi Dylan, > > Awesome work. I noticed though that when llvm-config gives 6.0.0svn we > don't strip the svn away when passing to HAVE_LLVM and > MESA_LLVM_VERSION_PATCH, which results in compile errors. > > - Bas > > On Sun, Sep 24, 2017 at 12:08 AM, Dylan Baker wrote: > > I have tested this, and as of v2 it actually works. I'll update the > > commitment message. > > > > Dylan > > > > On September 23, 2017 8:39:06 AM PDT, Dylan Baker > > wrote: > >>This builds and installs, but I haven't had a chance to test it yet. > >> > >>v2: - enable radv by default > >>- add shader cache support and enforce that it's built for radv > >> > >>Signed-off-by: Dylan Baker > >>--- > >> meson.build | 27 - > >> meson_options.txt | 4 +- > >> src/{ => amd/addrlib}/meson.build | 69 - > >> src/{ => amd/common}/meson.build | 65 > >> src/{ => amd}/meson.build | 33 ++ > >>src/amd/vulkan/meson.build| 124 > >>++ > >> src/meson.build | 2 +- > >> 7 files changed, 240 insertions(+), 84 deletions(-) > >> copy src/{ => amd/addrlib}/meson.build (51%) > >> copy src/{ => amd/common}/meson.build (51%) > >> copy src/{ => amd}/meson.build (65%) > >> create mode 100644 src/amd/vulkan/meson.build > >> > >>diff --git a/meson.build b/meson.build > >>index 09e53957fe9..0b3e6f61545 100644 > >>--- a/meson.build > >>+++ b/meson.build > >>@@ -71,6 +71,12 @@ if get_option('buildtype').startswith('debug') > >> pre_args += '-DDEBUG' > >> endif > >> > >>+if get_option('shader-cache') > >>+ pre_args += '-DENABLE_SHADER_CACHE' > >>+elif with_amd_vk > >>+ error('Radv requires shader cache support') > >>+endif > >>+ > >> # Check for GCC style builtins > >>foreach b : ['bswap32', 'bswap64', 'clz', 'clzll', 'ctz', 'expect', > >>'ffs', > >> 'ffsll', 'popcount', 'popcountll', 'unreachable'] > >>@@ -79,7 +85,7 @@ foreach b : ['bswap32', 'bswap64', 'clz', 'clzll', > >>'ctz', 'expect', 'ffs', > >> endif > >> endforeach > >> > >>-# check for GCC __attribute__ s > >>+# check for GCC __attribute__ > >> foreach a : ['const', 'flatten', 'malloc', 'pure', 'unused', > >> 'warn_unused_result', 'weak',] > >> if cc.compiles('int foo(void) __attribute__((@0@));'.format(a), > >>@@ -291,6 +297,23 @@ dep_m = cc.find_library('m', required : false) > >> # TODO: conditionalize libdrm requirement > >> dep_libdrm = dependency('libdrm', version : '>= 2.4.75') > >> pre_args += '-DHAVE_LIBDRM' > >>+dep_libdrm_amdgpu = [] > >>+if with_amd_vk > >>+ dep_libdrm_amdgpu = dependency('libdrm_amdgpu', version : '>= > >>2.4.82') > >>+endif > >>+ > >>+dep_llvm = dependency('llvm', version : '>= 3.9.0', required : false) > >>+if not dep_llvm.found() > >>+ if with_amd_vk > >>+error('Radv requires llvm.') > >>+ endif > >>+else > >>+ _llvm_version = dep_llvm.version().split('.') > >>+ pre_args += [ > >>+'-DHAVE_LLVM=0x0@0@@1@@2@'.format(_llvm_version[0], > >>_llvm_version[1], _llvm_version[2]), > >>+'-DMESA_LLVM_VERSION_PATCH=@0@'.format(_llvm_version[2]), > >>+ ] > >>+endif > >> > >> # TODO: make this conditional > >> dep_valgrind = dependency('valgrind', required : false) > >>@@ -304,8 +327,6 @@ endif > >> > >> # TODO: llvm-prefix and llvm-shared-libs > >> > >>-# TODO: llvm dependency (that's all nat
[Mesa-dev] [PATCH v3 4/4] meson: build "radv" vulkan driver for radeon hardware
This builds and installs, but I haven't had a chance to test it yet. v2: - enable radv by default - add shader cache support and enforce that it's built for radv v3: - Fix typo in meson_options (Nicholas) - strip trailing 'svn' from llvm version before setting the version preprocessor flag (Bas) - Check for LLVM module requirements Signed-off-by: Dylan Baker --- meson.build | 40 +++- meson_options.txt | 4 +- src/{ => amd/addrlib}/meson.build | 69 - src/{ => amd/common}/meson.build | 65 src/{ => amd}/meson.build | 33 ++ src/amd/vulkan/meson.build| 124 ++ src/meson.build | 2 +- 7 files changed, 253 insertions(+), 84 deletions(-) copy src/{ => amd/addrlib}/meson.build (51%) copy src/{ => amd/common}/meson.build (51%) copy src/{ => amd}/meson.build (65%) create mode 100644 src/amd/vulkan/meson.build diff --git a/meson.build b/meson.build index 09e53957fe9..b57d800d5d0 100644 --- a/meson.build +++ b/meson.build @@ -71,6 +71,12 @@ if get_option('buildtype').startswith('debug') pre_args += '-DDEBUG' endif +if get_option('shader-cache') + pre_args += '-DENABLE_SHADER_CACHE' +elif with_amd_vk + error('Radv requires shader cache support') +endif + # Check for GCC style builtins foreach b : ['bswap32', 'bswap64', 'clz', 'clzll', 'ctz', 'expect', 'ffs', 'ffsll', 'popcount', 'popcountll', 'unreachable'] @@ -79,7 +85,7 @@ foreach b : ['bswap32', 'bswap64', 'clz', 'clzll', 'ctz', 'expect', 'ffs', endif endforeach -# check for GCC __attribute__ s +# check for GCC __attribute__ foreach a : ['const', 'flatten', 'malloc', 'pure', 'unused', 'warn_unused_result', 'weak',] if cc.compiles('int foo(void) __attribute__((@0@));'.format(a), @@ -291,6 +297,36 @@ dep_m = cc.find_library('m', required : false) # TODO: conditionalize libdrm requirement dep_libdrm = dependency('libdrm', version : '>= 2.4.75') pre_args += '-DHAVE_LIBDRM' +dep_libdrm_amdgpu = [] +if with_amd_vk + dep_libdrm_amdgpu = dependency('libdrm_amdgpu', version : '>= 2.4.82') +endif + +llvm_modules = [] +if with_amd_vk + llvm_modules += ['amdgpu', 'bitreader', 'ipo'] +endif +dep_llvm = dependency( + 'llvm', version : '>= 3.9.0', required : false, + modules : ['bitwriter', 'engine', 'mcdisassembler', 'mcjit', llvm_modules], +) +if not dep_llvm.found() + if with_amd_vk +error('Radv requires llvm.') + endif +else + _llvm_version = dep_llvm.version().split('.') + # Development versions of LLVM have an 'svn' suffix, we don't want that for + # our version checks. + _llvm_patch = _llvm_version[2] + if _llvm_patch.endswith('svn') +_llvm_patch = _llvm_patch.split('s')[0] + endif + pre_args += [ +'-DHAVE_LLVM=0x0@0@@1@@2@'.format(_llvm_version[0], _llvm_version[1], _llvm_patch), +'-DMESA_LLVM_VERSION_PATCH=@0@'.format(_llvm_patch), + ] +endif # TODO: make this conditional dep_valgrind = dependency('valgrind', required : false) @@ -304,8 +340,6 @@ endif # TODO: llvm-prefix and llvm-shared-libs -# TODO: llvm dependency (that's all native now, yay!) - # TODO: unwind (llvm [radeon, gallivm] and gallium) # TODO: flags for opengl, gles, dri diff --git a/meson_options.txt b/meson_options.txt index 0e0d04a0f8f..082ade7f480 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -20,8 +20,10 @@ option('platforms', type : 'string', value : 'x11,wayland', description : 'comma separated list of window systems to support. wayland, x11, surfaceless, drm, etc.') -option('vulkan-drivers', type : 'string', value : 'intel', +option('vulkan-drivers', type : 'string', value : 'intel,amd', description : 'comma separated list of vulkan drivers to build.') +option('shader-cache',type : 'boolean', value : true, + description : 'Build with on-disk shader cache support') option('vulkan_icd_dir', type : 'string', value : '', description : 'Location relative to prefix to put vulkan icds on install. Default: $datadir/vulkan/icd.d') option('valgrind', type : 'boo
[Mesa-dev] [PATCH v3 1/4] intel: use a flag instead of setting PYTHONPATH
Meson doesn't allow setting environment variables for custom targets, so we either need to not pass this as an environment variable or use a shell script to wrap the invocation. The chosen solution has the advantage of working for both autotools and meson. v2: - put rules back in top scope (Ken) Reviewed-by: Kenneth Graunke Signed-off-by: Dylan Baker --- src/intel/Makefile.compiler.am | 2 +- src/intel/compiler/brw_nir_trig_workarounds.py | 33 +++--- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/intel/Makefile.compiler.am b/src/intel/Makefile.compiler.am index 3ab550c96b1..45e7a6ccce8 100644 --- a/src/intel/Makefile.compiler.am +++ b/src/intel/Makefile.compiler.am @@ -35,7 +35,7 @@ BUILT_SOURCES += $(COMPILER_GENERATED_FILES) compiler/brw_nir_trig_workarounds.c: compiler/brw_nir_trig_workarounds.py \ $(top_srcdir)/src/compiler/nir/nir_algebraic.py $(MKDIR_GEN) - $(AM_V_GEN) PYTHONPATH=$(top_srcdir)/src/compiler/nir $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/compiler/brw_nir_trig_workarounds.py > $@ || ($(RM) $@; false) + $(AM_V_GEN) $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/compiler/brw_nir_trig_workarounds.py -p $(top_srcdir)/src/compiler/nir > $@ || ($(RM) $@; false) EXTRA_DIST += \ compiler/brw_nir_trig_workarounds.py diff --git a/src/intel/compiler/brw_nir_trig_workarounds.py b/src/intel/compiler/brw_nir_trig_workarounds.py index 6a77d64dbd4..3d08b9a41ea 100644 --- a/src/intel/compiler/brw_nir_trig_workarounds.py +++ b/src/intel/compiler/brw_nir_trig_workarounds.py @@ -20,8 +20,6 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE. -import nir_algebraic - # Prior to Kaby Lake, The SIN and COS instructions on Intel hardware can # produce values slightly outside of the [-1.0, 1.0] range for a small set of # values. Obviously, this can break everyone's expectations about trig @@ -33,11 +31,30 @@ import nir_algebraic # amplitude slightly. Apparently this also minimizes the error function, # reducing the maximum error from 0.6 to about 0.3. -trig_workarounds = [ - (('fsin', 'x'), ('fmul', ('fsin', 'x'), 0.7)), - (('fcos', 'x'), ('fmul', ('fcos', 'x'), 0.7)), +import argparse +import sys + +TRIG_WORKAROUNDS = [ +(('fsin', 'x'), ('fmul', ('fsin', 'x'), 0.7)), +(('fcos', 'x'), ('fmul', ('fcos', 'x'), 0.7)), ] -print '#include "brw_nir.h"' -print nir_algebraic.AlgebraicPass("brw_nir_apply_trig_workarounds", - trig_workarounds).render() + +def main(): +parser = argparse.ArgumentParser() +parser.add_argument('-p', '--import-path', required=True) +args = parser.parse_args() +sys.path.insert(0, args.import_path) +run() + + +def run(): +import nir_algebraic # pylint: disable=import-error + +print '#include "brw_nir.h"' +print nir_algebraic.AlgebraicPass("brw_nir_apply_trig_workarounds", + TRIG_WORKAROUNDS).render() + + +if __name__ == '__main__': +main() -- 2.14.1 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH v3 2/4] util/ralloc: Don't define assert with magic member without DEBUG
It is possible to have DEBUG disabled but asserts on (NDEBUG(, which cannot build because these asserts work on members that are only present when DEBUG is on. Reviewed-by: Kenneth Graunke Signed-off-by: Dylan Baker --- src/util/ralloc.c | 8 1 file changed, 8 insertions(+) diff --git a/src/util/ralloc.c b/src/util/ralloc.c index 566f08ad94e..9cce9e02f68 100644 --- a/src/util/ralloc.c +++ b/src/util/ralloc.c @@ -630,7 +630,9 @@ linear_alloc_child(void *parent, unsigned size) linear_size_chunk *ptr; unsigned full_size; +#ifdef DEBUG assert(first->magic == LMAGIC); +#endif assert(!latest->next); size = ALIGN_POT(size, SUBALLOC_ALIGNMENT); @@ -702,7 +704,9 @@ linear_free_parent(void *ptr) return; node = LINEAR_PARENT_TO_HEADER(ptr); +#ifdef DEBUG assert(node->magic == LMAGIC); +#endif while (node) { void *ptr = node; @@ -721,7 +725,9 @@ ralloc_steal_linear_parent(void *new_ralloc_ctx, void *ptr) return; node = LINEAR_PARENT_TO_HEADER(ptr); +#ifdef DEBUG assert(node->magic == LMAGIC); +#endif while (node) { ralloc_steal(new_ralloc_ctx, node); @@ -734,7 +740,9 @@ void * ralloc_parent_of_linear_parent(void *ptr) { linear_header *node = LINEAR_PARENT_TO_HEADER(ptr); +#ifdef DEBUG assert(node->magic == LMAGIC); +#endif return node->ralloc_parent; } -- 2.14.1 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH v3 3/4] meson: Add build Intel "anv" vulkan driver
This allows building and installing the Intel "anv" Vulkan driver using meson and ninja, the driver has been tested against the CTS and has seems to pass the same series of tests (they both segfault when the CTS tries to run wayland wsi tests). There are still a mess of TODO, XXX, and FIXME comments in here. Those are mostly for meson bugs I'm trying to fix, or for additional things to implement for other drivers/features. I have configured all intermediate libraries and optional tools to not build by default, meaning they will only be built if they're pulled in as a dependency of a target that will actually be installed) this allows us to avoid massive if chains, while ensuring that only the bits that need to be built are. v2: - enable anv, x11, and wayland by default - add configure option to disable valgrind v3: - fix typo in meson_options (Nicholas) Signed-off-by: Dylan Baker --- include/meson.build | 22 ++ meson.build | 423 meson_options.txt | 30 +++ src/compiler/glsl/meson.build | 29 +++ src/compiler/meson.build| 57 + src/compiler/nir/meson.build| 205 src/egl/wayland/wayland-drm/meson.build | 21 ++ src/gtest/meson.build | 26 ++ src/intel/blorp/meson.build | 37 +++ src/intel/common/meson.build| 44 src/intel/compiler/meson.build | 155 src/intel/genxml/meson.build| 59 + src/intel/isl/meson.build | 105 src/intel/meson.build | 31 +++ src/intel/tools/meson.build | 39 +++ src/intel/vulkan/meson.build| 182 ++ src/mapi/glapi/gen/meson.build | 19 ++ src/meson.build | 48 src/util/meson.build| 134 ++ src/util/tests/hash_table/meson.build | 32 +++ src/vulkan/meson.build | 28 +++ src/vulkan/util/gen_enum_to_str.py | 4 +- src/vulkan/util/meson.build | 47 src/vulkan/wsi/meson.build | 71 ++ 24 files changed, 1846 insertions(+), 2 deletions(-) create mode 100644 include/meson.build create mode 100644 meson.build create mode 100644 meson_options.txt create mode 100644 src/compiler/glsl/meson.build create mode 100644 src/compiler/meson.build create mode 100644 src/compiler/nir/meson.build create mode 100644 src/egl/wayland/wayland-drm/meson.build create mode 100644 src/gtest/meson.build create mode 100644 src/intel/blorp/meson.build create mode 100644 src/intel/common/meson.build create mode 100644 src/intel/compiler/meson.build create mode 100644 src/intel/genxml/meson.build create mode 100644 src/intel/isl/meson.build create mode 100644 src/intel/meson.build create mode 100644 src/intel/tools/meson.build create mode 100644 src/intel/vulkan/meson.build create mode 100644 src/mapi/glapi/gen/meson.build create mode 100644 src/meson.build create mode 100644 src/util/meson.build create mode 100644 src/util/tests/hash_table/meson.build create mode 100644 src/vulkan/meson.build create mode 100644 src/vulkan/util/meson.build create mode 100644 src/vulkan/wsi/meson.build diff --git a/include/meson.build b/include/meson.build new file mode 100644 index 000..93def7e0ec2 --- /dev/null +++ b/include/meson.build @@ -0,0 +1,22 @@ +# Copyright ?? 2017 Intel Corporation + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +inc_drm_uapi = include_directories('drm-uapi') +inc_vulkan = include_directories('vulkan') diff --git a/meson.build b/meson.build new file mode 100644 index 000..09e53957fe9 --- /dev/null +++ b/meson.build @@ -0,0 +1,423 @@ +# Copyright ?? 2017 Intel Corporation + +# Permission is hereby granted, free of charge, to an
Re: [Mesa-dev] [PATCH v3 4/4] meson: build "radv" vulkan driver for radeon hardware
Quoting Nirbheek Chauhan (2017-09-26 12:29:30) > On Tue, Sep 26, 2017 at 9:46 PM, Dylan Baker wrote: > > This builds and installs, but I haven't had a chance to test it yet. > > > > v2: - enable radv by default > > - add shader cache support and enforce that it's built for radv > > v3: - Fix typo in meson_options (Nicholas) > > - strip trailing 'svn' from llvm version before setting the version > > preprocessor flag (Bas) > > Should this also be added to the LLVMDependency meson class? I was looking at that. I'm not sure since I think that 6.0.0svn *should* < 6.0.0, but meson just throws the svn away when it does the comparison. signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH v3 3/4] meson: Add build Intel "anv" vulkan driver
Quoting Eric Anholt (2017-09-26 11:46:50) > Dylan Baker writes: > > > This allows building and installing the Intel "anv" Vulkan driver using > > meson and ninja, the driver has been tested against the CTS and has > > seems to pass the same series of tests (they both segfault when the CTS > > tries to run wayland wsi tests). > > > > There are still a mess of TODO, XXX, and FIXME comments in here. Those > > are mostly for meson bugs I'm trying to fix, or for additional things to > > implement for other drivers/features. > > > > I have configured all intermediate libraries and optional tools to not > > build by default, meaning they will only be built if they're pulled in > > as a dependency of a target that will actually be installed) this allows > > us to avoid massive if chains, while ensuring that only the bits that > > need to be built are. > > I am really looking forward to converting my vc5-vulkan work over to the > meson build. Given the rate I have to rebase that branch, it would be > worth my time to convert over it in the next day of actual code > development I get to do. > > So, I'll offer a few bits of feedback on meson usage, after which you > can have my > > Reviewed-by: Eric Anholt > > so that we can start working in the tree together. > > > diff --git a/meson.build b/meson.build > > new file mode 100644 > > index 000..09e53957fe9 > > --- /dev/null > > +++ b/meson.build > > @@ -0,0 +1,423 @@ > > +# Copyright © 2017 Intel Corporation > > + > > +# Permission is hereby granted, free of charge, to any person obtaining a > > copy > > +# of this software and associated documentation files (the "Software"), to > > deal > > +# in the Software without restriction, including without limitation the > > rights > > +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell > > +# copies of the Software, and to permit persons to whom the Software is > > +# furnished to do so, subject to the following conditions: > > + > > +# The above copyright notice and this permission notice shall be included > > in > > +# all copies or substantial portions of the Software. > > + > > +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS > > OR > > +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > > +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > > THE > > +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > > +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > > FROM, > > +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS > > IN THE > > +# SOFTWARE. > > + > > +project('mesa', ['c', 'cpp'], version : '17.3.0-devel', license : 'MIT', > > +default_options : ['c_std=c99']) > > + > > +with_dri3 = true # XXX: need a switch for this > > +with_vulkan_icd_dir = get_option('vulkan_icd_dir') > > +with_tests = get_option('build-tests') > > +with_valgrind = get_option('valgrind') > > + > > +# TODO: there are more platforms required for non-vulkan drivers > > +with_platform_wayland = false > > +with_platform_x11 = false > > +_platforms = get_option('platforms') > > +if _platforms != '' > > + _split = _platforms.split(',') > > + with_platform_x11 = _split.contains('x11') > > + with_platform_wayland = _split.contains('wayland') > > +endif > > + > > +if with_vulkan_icd_dir == '' > > + with_vulkan_icd_dir = join_paths(get_option('datadir'), 'vulkan/icd.d') > > +endif > > + > > +with_intel_vk = false > > +with_amd_vk = false > > +_vulkan_drivers = get_option('vulkan-drivers') > > +if _vulkan_drivers != '' > > + _split = _vulkan_drivers.split(',') > > + with_intel_vk = _split.contains('intel') > > + with_amd_vk = _split.contains('amd') > > + if not (with_platform_x11 or with_platform_wayland) > > +error('Vulkan requires at least one platform (x11, wayland)') > > + endif > > +endif > > + > > +prog_python2 = find_program('python2') > > + > > +cc = meson.get_compiler('c') > > +if cc.get_id() == 'gcc' and cc.version().version_compare('< 4.4.6') > > + e
Re: [Mesa-dev] [PATCH v3 4/4] meson: build "radv" vulkan driver for radeon hardware
Quoting Nirbheek Chauhan (2017-09-26 12:58:12) > On Wed, Sep 27, 2017 at 1:11 AM, Dylan Baker wrote: > > Quoting Nirbheek Chauhan (2017-09-26 12:29:30) > >> On Tue, Sep 26, 2017 at 9:46 PM, Dylan Baker wrote: > >> > This builds and installs, but I haven't had a chance to test it yet. > >> > > >> > v2: - enable radv by default > >> > - add shader cache support and enforce that it's built for radv > >> > v3: - Fix typo in meson_options (Nicholas) > >> > - strip trailing 'svn' from llvm version before setting the version > >> > preprocessor flag (Bas) > >> > >> Should this also be added to the LLVMDependency meson class? > > > > I was looking at that. I'm not sure since I think that 6.0.0svn *should* < > > 6.0.0, but meson just throws the svn away when it does the comparison. > > That's version_compare(), which should perhaps follow rpm's version > comparison algorithm[1], since that is also what pkg-config and many > other package managers use, but in practice almost all libraries use > semantic versioning (which is what it implements right now). > > For the LLVMDependency class, as a start I think we could strip the > 'svn' from the version since most things aren't really ready for alpha > to be present in version numbers. It's up to you though, since you > wrote the class and are more familiar with llvm itself. > > 1. http://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/ I actually knew almost nothing about LLVM before I wrote the dependency handler, but I think you're right, if nothing else in meson handles pre-releases llvm shouldn't either. I have some other LLVMDependency cleanups I was working on, so I'll add this to it. signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH v4 2/4] util/ralloc: Don't define assert with magic member without DEBUG
It is possible to have DEBUG disabled but asserts on (NDEBUG(, which cannot build because these asserts work on members that are only present when DEBUG is on. Reviewed-by: Kenneth Graunke Signed-off-by: Dylan Baker --- src/util/ralloc.c | 8 1 file changed, 8 insertions(+) diff --git a/src/util/ralloc.c b/src/util/ralloc.c index 566f08ad94e..9cce9e02f68 100644 --- a/src/util/ralloc.c +++ b/src/util/ralloc.c @@ -630,7 +630,9 @@ linear_alloc_child(void *parent, unsigned size) linear_size_chunk *ptr; unsigned full_size; +#ifdef DEBUG assert(first->magic == LMAGIC); +#endif assert(!latest->next); size = ALIGN_POT(size, SUBALLOC_ALIGNMENT); @@ -702,7 +704,9 @@ linear_free_parent(void *ptr) return; node = LINEAR_PARENT_TO_HEADER(ptr); +#ifdef DEBUG assert(node->magic == LMAGIC); +#endif while (node) { void *ptr = node; @@ -721,7 +725,9 @@ ralloc_steal_linear_parent(void *new_ralloc_ctx, void *ptr) return; node = LINEAR_PARENT_TO_HEADER(ptr); +#ifdef DEBUG assert(node->magic == LMAGIC); +#endif while (node) { ralloc_steal(new_ralloc_ctx, node); @@ -734,7 +740,9 @@ void * ralloc_parent_of_linear_parent(void *ptr) { linear_header *node = LINEAR_PARENT_TO_HEADER(ptr); +#ifdef DEBUG assert(node->magic == LMAGIC); +#endif return node->ralloc_parent; } -- 2.14.1 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH v4 1/4] intel: use a flag instead of setting PYTHONPATH
Meson doesn't allow setting environment variables for custom targets, so we either need to not pass this as an environment variable or use a shell script to wrap the invocation. The chosen solution has the advantage of working for both autotools and meson. v2: - put rules back in top scope (Ken) Reviewed-by: Kenneth Graunke Signed-off-by: Dylan Baker --- src/intel/Makefile.compiler.am | 2 +- src/intel/compiler/brw_nir_trig_workarounds.py | 33 +++--- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/intel/Makefile.compiler.am b/src/intel/Makefile.compiler.am index 3ab550c96b1..45e7a6ccce8 100644 --- a/src/intel/Makefile.compiler.am +++ b/src/intel/Makefile.compiler.am @@ -35,7 +35,7 @@ BUILT_SOURCES += $(COMPILER_GENERATED_FILES) compiler/brw_nir_trig_workarounds.c: compiler/brw_nir_trig_workarounds.py \ $(top_srcdir)/src/compiler/nir/nir_algebraic.py $(MKDIR_GEN) - $(AM_V_GEN) PYTHONPATH=$(top_srcdir)/src/compiler/nir $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/compiler/brw_nir_trig_workarounds.py > $@ || ($(RM) $@; false) + $(AM_V_GEN) $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/compiler/brw_nir_trig_workarounds.py -p $(top_srcdir)/src/compiler/nir > $@ || ($(RM) $@; false) EXTRA_DIST += \ compiler/brw_nir_trig_workarounds.py diff --git a/src/intel/compiler/brw_nir_trig_workarounds.py b/src/intel/compiler/brw_nir_trig_workarounds.py index 6a77d64dbd4..3d08b9a41ea 100644 --- a/src/intel/compiler/brw_nir_trig_workarounds.py +++ b/src/intel/compiler/brw_nir_trig_workarounds.py @@ -20,8 +20,6 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE. -import nir_algebraic - # Prior to Kaby Lake, The SIN and COS instructions on Intel hardware can # produce values slightly outside of the [-1.0, 1.0] range for a small set of # values. Obviously, this can break everyone's expectations about trig @@ -33,11 +31,30 @@ import nir_algebraic # amplitude slightly. Apparently this also minimizes the error function, # reducing the maximum error from 0.6 to about 0.3. -trig_workarounds = [ - (('fsin', 'x'), ('fmul', ('fsin', 'x'), 0.7)), - (('fcos', 'x'), ('fmul', ('fcos', 'x'), 0.7)), +import argparse +import sys + +TRIG_WORKAROUNDS = [ +(('fsin', 'x'), ('fmul', ('fsin', 'x'), 0.7)), +(('fcos', 'x'), ('fmul', ('fcos', 'x'), 0.7)), ] -print '#include "brw_nir.h"' -print nir_algebraic.AlgebraicPass("brw_nir_apply_trig_workarounds", - trig_workarounds).render() + +def main(): +parser = argparse.ArgumentParser() +parser.add_argument('-p', '--import-path', required=True) +args = parser.parse_args() +sys.path.insert(0, args.import_path) +run() + + +def run(): +import nir_algebraic # pylint: disable=import-error + +print '#include "brw_nir.h"' +print nir_algebraic.AlgebraicPass("brw_nir_apply_trig_workarounds", + TRIG_WORKAROUNDS).render() + + +if __name__ == '__main__': +main() -- 2.14.1 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH v4 4/4] meson: build "radv" vulkan driver for radeon hardware
This builds, installs, and has been tested on a r290x (Hawaii) with the Vulkan CTS. It dies horribly in a fire at the same point for the meson build as the autotools build. v2: - enable radv by default - add shader cache support and enforce that it's built for radv v3: - Fix typo in meson_options (Nicholas) - strip trailing 'svn' from llvm version before setting the version preprocessor flag (Bas) - Check for LLVM module requirements Signed-off-by: Dylan Baker --- meson.build | 39 +++- meson_options.txt | 4 +- src/{ => amd/addrlib}/meson.build | 69 - src/{ => amd/common}/meson.build | 65 src/{ => amd}/meson.build | 33 ++ src/amd/vulkan/meson.build| 124 ++ src/meson.build | 2 +- 7 files changed, 252 insertions(+), 84 deletions(-) copy src/{ => amd/addrlib}/meson.build (51%) copy src/{ => amd/common}/meson.build (51%) copy src/{ => amd}/meson.build (65%) create mode 100644 src/amd/vulkan/meson.build diff --git a/meson.build b/meson.build index 0f5198bac72..5353a417484 100644 --- a/meson.build +++ b/meson.build @@ -71,6 +71,12 @@ if get_option('buildtype').startswith('debug') pre_args += '-DDEBUG' endif +if get_option('shader-cache') + pre_args += '-DENABLE_SHADER_CACHE' +elif with_amd_vk + error('Radv requires shader cache support') +endif + # Check for GCC style builtins foreach b : ['bswap32', 'bswap64', 'clz', 'clzll', 'ctz', 'expect', 'ffs', 'ffsll', 'popcount', 'popcountll', 'unreachable'] @@ -79,7 +85,7 @@ foreach b : ['bswap32', 'bswap64', 'clz', 'clzll', 'ctz', 'expect', 'ffs', endif endforeach -# check for GCC __attribute__ s +# check for GCC __attribute__ foreach a : ['const', 'flatten', 'malloc', 'pure', 'unused', 'warn_unused_result', 'weak',] if cc.compiles('int foo(void) __attribute__((@0@));'.format(a), @@ -286,6 +292,35 @@ dep_m = cc.find_library('m', required : false) # TODO: conditionalize libdrm requirement dep_libdrm = dependency('libdrm', version : '>= 2.4.75') pre_args += '-DHAVE_LIBDRM' +dep_libdrm_amdgpu = [] +if with_amd_vk + dep_libdrm_amdgpu = dependency('libdrm_amdgpu', version : '>= 2.4.82') +endif + +llvm_modules = ['bitwriter', 'engine', 'mcdisassembler', 'mcjit'] +if with_amd_vk + llvm_modules += ['amdgpu', 'bitreader', 'ipo'] +endif +dep_llvm = dependency( + 'llvm', version : '>= 3.9.0', required : false, modules : llvm_modules, +) +if not dep_llvm.found() + if with_amd_vk +error('Radv requires llvm.') + endif +else + _llvm_version = dep_llvm.version().split('.') + # Development versions of LLVM have an 'svn' suffix, we don't want that for + # our version checks. + _llvm_patch = _llvm_version[2] + if _llvm_patch.endswith('svn') +_llvm_patch = _llvm_patch.split('s')[0] + endif + pre_args += [ +'-DHAVE_LLVM=0x0@0@@1@@2@'.format(_llvm_version[0], _llvm_version[1], _llvm_patch), +'-DMESA_LLVM_VERSION_PATCH=@0@'.format(_llvm_patch), + ] +endif # TODO: make this conditional dep_valgrind = dependency('valgrind', required : false) @@ -299,8 +334,6 @@ endif # TODO: llvm-prefix and llvm-shared-libs -# TODO: llvm dependency (that's all native now, yay!) - # TODO: unwind (llvm [radeon, gallivm] and gallium) # TODO: flags for opengl, gles, dri diff --git a/meson_options.txt b/meson_options.txt index 0e0d04a0f8f..082ade7f480 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -20,8 +20,10 @@ option('platforms', type : 'string', value : 'x11,wayland', description : 'comma separated list of window systems to support. wayland, x11, surfaceless, drm, etc.') -option('vulkan-drivers', type : 'string', value : 'intel', +option('vulkan-drivers', type : 'string', value : 'intel,amd', description : 'comma separated list of vulkan drivers to build.') +option('shader-cache',type : 'boolean', value : true, + description : 'Build with on-disk shader cache support') option('vulkan_icd_dir', type : 'string', value : '', description : 'Location relative to prefix to put vulkan icds on insta
[Mesa-dev] [PATCH v4 3/4] meson: Add build Intel "anv" vulkan driver
This allows building and installing the Intel "anv" Vulkan driver using meson and ninja, the driver has been tested against the CTS and has seems to pass the same series of tests (they both segfault when the CTS tries to run wayland wsi tests). There are still a mess of TODO, XXX, and FIXME comments in here. Those are mostly for meson bugs I'm trying to fix, or for additional things to implement for other drivers/features. I have configured all intermediate libraries and optional tools to not build by default, meaning they will only be built if they're pulled in as a dependency of a target that will actually be installed) this allows us to avoid massive if chains, while ensuring that only the bits that need to be built are. v2: - enable anv, x11, and wayland by default - add configure option to disable valgrind v3: - fix typo in meson_options (Nicholas) v4: - Remove dead code (Eric) - Remove change to generator that was from v0 (Eric) - replace if chain with loop (Eric) - Fix typos (Eric) - define HAVE_DLOPEN for both libdl and builtin dl cases (Eric) Signed-off-by: Dylan Baker Reviewed-by: Eric Anholt --- include/meson.build | 22 ++ meson.build | 418 meson_options.txt | 30 +++ src/compiler/glsl/meson.build | 29 +++ src/compiler/meson.build| 57 + src/compiler/nir/meson.build| 205 src/egl/wayland/wayland-drm/meson.build | 21 ++ src/gtest/meson.build | 26 ++ src/intel/blorp/meson.build | 37 +++ src/intel/common/meson.build| 44 src/intel/compiler/meson.build | 155 src/intel/genxml/meson.build| 59 + src/intel/isl/meson.build | 105 src/intel/meson.build | 31 +++ src/intel/tools/meson.build | 39 +++ src/intel/vulkan/meson.build| 182 ++ src/mapi/glapi/gen/meson.build | 19 ++ src/meson.build | 48 src/util/meson.build| 134 ++ src/util/tests/hash_table/meson.build | 32 +++ src/vulkan/meson.build | 28 +++ src/vulkan/util/meson.build | 41 src/vulkan/wsi/meson.build | 71 ++ 23 files changed, 1833 insertions(+) create mode 100644 include/meson.build create mode 100644 meson.build create mode 100644 meson_options.txt create mode 100644 src/compiler/glsl/meson.build create mode 100644 src/compiler/meson.build create mode 100644 src/compiler/nir/meson.build create mode 100644 src/egl/wayland/wayland-drm/meson.build create mode 100644 src/gtest/meson.build create mode 100644 src/intel/blorp/meson.build create mode 100644 src/intel/common/meson.build create mode 100644 src/intel/compiler/meson.build create mode 100644 src/intel/genxml/meson.build create mode 100644 src/intel/isl/meson.build create mode 100644 src/intel/meson.build create mode 100644 src/intel/tools/meson.build create mode 100644 src/intel/vulkan/meson.build create mode 100644 src/mapi/glapi/gen/meson.build create mode 100644 src/meson.build create mode 100644 src/util/meson.build create mode 100644 src/util/tests/hash_table/meson.build create mode 100644 src/vulkan/meson.build create mode 100644 src/vulkan/util/meson.build create mode 100644 src/vulkan/wsi/meson.build diff --git a/include/meson.build b/include/meson.build new file mode 100644 index 000..93def7e0ec2 --- /dev/null +++ b/include/meson.build @@ -0,0 +1,22 @@ +# Copyright ?? 2017 Intel Corporation + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +inc_drm_uapi = include_directories('drm-uapi') +inc_vulkan = include_directories('vulkan') diff --git a/meson.build b/meson.build new file mode 100644 in
Re: [Mesa-dev] [PATCH v4 2/4] util/ralloc: Don't define assert with magic member without DEBUG
Quoting Eric Engestrom (2017-09-27 04:10:37) > On Tuesday, 2017-09-26 23:38:11 +0000, Dylan Baker wrote: > > It is possible to have DEBUG disabled but asserts on (NDEBUG(, which > > parentheses typo > > other than that: > Reviewed-by: Eric Engestrom > > and I think you should've pushed these first two patches instead of > carrying them in your unrelated meson series :) > > speaking of, I'm happy to write the egl/meson.build; I'll get on that > when the initial support lands. I do have most of the classic dri stack building in a branch on top of this work, I'm working on getting GLX, EGL, etc building at the moment. I'll send that out as a "WIP" series after this lands so that others can look at it and we don't all end up duplicating effort. Dylan > > > cannot build because these asserts work on members that are only present > > when DEBUG is on. > > > > Reviewed-by: Kenneth Graunke > > Signed-off-by: Dylan Baker > > --- > > src/util/ralloc.c | 8 > > 1 file changed, 8 insertions(+) > > > > diff --git a/src/util/ralloc.c b/src/util/ralloc.c > > index 566f08ad94e..9cce9e02f68 100644 > > --- a/src/util/ralloc.c > > +++ b/src/util/ralloc.c > > @@ -630,7 +630,9 @@ linear_alloc_child(void *parent, unsigned size) > > linear_size_chunk *ptr; > > unsigned full_size; > > > > +#ifdef DEBUG > > assert(first->magic == LMAGIC); > > +#endif > > assert(!latest->next); > > > > size = ALIGN_POT(size, SUBALLOC_ALIGNMENT); > > @@ -702,7 +704,9 @@ linear_free_parent(void *ptr) > >return; > > > > node = LINEAR_PARENT_TO_HEADER(ptr); > > +#ifdef DEBUG > > assert(node->magic == LMAGIC); > > +#endif > > > > while (node) { > >void *ptr = node; > > @@ -721,7 +725,9 @@ ralloc_steal_linear_parent(void *new_ralloc_ctx, void > > *ptr) > >return; > > > > node = LINEAR_PARENT_TO_HEADER(ptr); > > +#ifdef DEBUG > > assert(node->magic == LMAGIC); > > +#endif > > > > while (node) { > >ralloc_steal(new_ralloc_ctx, node); > > @@ -734,7 +740,9 @@ void * > > ralloc_parent_of_linear_parent(void *ptr) > > { > > linear_header *node = LINEAR_PARENT_TO_HEADER(ptr); > > +#ifdef DEBUG > > assert(node->magic == LMAGIC); > > +#endif > > return node->ralloc_parent; > > } > > > > -- > > 2.14.1 > > signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] initial meson port
I've gone ahead and pushed the Vulkan drivers meson builds. For those interested in helping finish the conversion, I have a branch "wip/meson-4" on my github (github.com/dcbaker/mesa) that has i965 and most of the core classic mesa stack building. I'm working on GLX, then EGL to start testing this stack. Getting gallium building is my next step after that (it'll be RadeonSI because I have hardware). I'm also working on getting features into upstream meson to make meson more comfortable for mesa. Currently there are patches landed or pending for the two workarounds in the meson build we have currently (choosing the right linker and indexing into CustomTargets). I'm also still thinking about how we can share source files with the other 3 build systems already in mesa (autotools and android being the most important, since hopefully our meson will be able to support windows in the future, I don't know what will happen when android moves to blueprint/soong). If there is anything else please let me know. Dylan Quoting Dylan Baker (2017-09-20 13:27:37) > Hi everyone, > > A long time ago I made some rumbling about porting mesa to meson (isn't that > confusing). In the mean time I've been bogged down with other projects, > including adding features to meson itself, and trying to write and rebase > meson > patches for all of mesa. Unfortunately mesa is a large fast moving project and > trying to writing meson for the entire thing has proven to simply be > intractable, I could spend nearly half my day rebasing to current master, and > that's both demoralizing and error prone. > > So I took Jason's advice and started with what mattered to him ;) Vulkan. This > was a chunk big enough to be a decent example, but small and contained enough > to > not require lots of rebasing. Intel's "anv" and the AMD "radv" driver share a > large number of dependencies between each other, and demonstrate writing a > meson > build system. > > You may notice a lot of TODO/FIXME comments here. Some of them are related to > upstream meson bugs (there are two currently, one that I have a pull request > for > that is probably ready for merge, and one that I'm working on currently), or > things that need to be implemented for the meson build system to be complete. > There are a few things that will need to be resolved before implementing mesa > and gallium drivers (around dependencies that are hard dependencies for > Vulkan, > but soft dependencies for mesa/gallium). > > The meson build system is much faster for building these two drivers than the > autotools build system, but there are a couple of caveats worth mentioning > before I give you the numbers. 1: meson doesn't check for as many features, > flags, or dependencies; 2: meson doesn't build glx, egl, or the glsl compiler, > just enough of the glsl_compiler to get anv and radv building. The 1st will > just > naturally happen, the second could be fixed. > > Methodology : I ran each build system in as close of a configuration as I > could > (out of tree, same number of jobs) using zsh's time. These were run on a 2 > core > 4 thread Intel skylake. Note that ninja by default runs with logical cores + 2 > jobs. > > Commands > autotools : 'mkdir autotools ; cd autotools ; ../autogen.sh \ > --without-dri-drivers --without-gallium-drivers \ > --with-platforms=x11,wayland --with-vulkan-drivers=intel,radeon \ > && make -j6' > meson : meson build -Dvulkan-drivers=intel,amd -Dplatforms=x11,wayland && > ninja -C build > > Results > autotools : sh -c 535.34s user 30.33s system 310% cpu 3:02.05 total > meson : sh -c 136.58s user 11.98s system 372% cpu 39.895 total > > I'm hopeful that we can start landing the meson build system incrementally, so > that the rebasing pain can be eased. I'm working on getting i965 and radeonSI > as my next targets (I have access to hardware to test those), and I'll > continue > to add additional drivers from there. > > Dylan > ___ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH] meson: remove duplicate libisl dependency in anv
Signed-off-by: Dylan Baker CC: Kristian Høgsberg --- src/intel/vulkan/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/intel/vulkan/meson.build b/src/intel/vulkan/meson.build index 9f0ee558e8a..a0be95c747c 100644 --- a/src/intel/vulkan/meson.build +++ b/src/intel/vulkan/meson.build @@ -144,7 +144,7 @@ libvulkan_intel = shared_library( include_directories : [inc_common, inc_intel, inc_compiler, inc_drm_uapi, inc_vulkan_util, inc_vulkan_wsi], link_whole : [libanv_common, libanv_gen_libs], - link_with : [libintel_compiler, libintel_common, libisl, libisl, libblorp, + link_with : [libintel_compiler, libintel_common, libisl, libblorp, libvulkan_util, libvulkan_wsi, libnir, libmesa_util], dependencies : [dep_libdrm, dep_thread, dep_dl, dep_m, anv_deps, dep_valgrind], c_args : [c_vis_args, no_override_init_args, '-msse2', anv_flags], -- 2.14.1 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH mesa] REVIEWERS: add Meson
I use my personal email for working with mailing lists (for a host of reasons), so with the email changed to , Reviewed-by: Dylan Baker I set my signoff's using my Intel address because management feels that that is sufficient to convey that I'm working on the behalf of Intel and not as an independent contributor. Quoting Eric Engestrom (2017-09-28 05:37:02) > Cc: Dylan Baker > Signed-off-by: Eric Engestrom > --- > REVIEWERS | 5 + > 1 file changed, 5 insertions(+) > > diff --git a/REVIEWERS b/REVIEWERS > index 0b5d9a4fd31bd652cf02..0d97b29309cc98b9a295 100644 > --- a/REVIEWERS > +++ b/REVIEWERS > @@ -103,6 +103,11 @@ F: CleanSpec.mk > F: */Android.*mk > F: */Makefile.sources > > +MESON BUILD > +R: Dylan Baker > +F: */meson.build > +F: meson_options.txt > + > ANDROID EGL SUPPORT > R: Rob Herring > R: Tomasz Figa > -- > Cheers, > Eric > > ___ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] initial meson port
Quoting Tapani Pälli (2017-09-27 23:34:26) > > > On 09/27/2017 08:57 PM, Rob Herring wrote: > > On Wed, Sep 27, 2017 at 12:38 PM, Eric Anholt wrote: > >> Dylan Baker writes: > >> > >>> [ Unknown signature status ] > >>> I've gone ahead and pushed the Vulkan drivers meson builds. > >>> > >>> For those interested in helping finish the conversion, I have a branch > >>> "wip/meson-4" on my github (github.com/dcbaker/mesa) that has i965 and > >>> most of > >>> the core classic mesa stack building. I'm working on GLX, then EGL to > >>> start > >>> testing this stack. Getting gallium building is my next step after that > >>> (it'll > >>> be RadeonSI because I have hardware). > >>> > >>> I'm also working on getting features into upstream meson to make meson > >>> more > >>> comfortable for mesa. Currently there are patches landed or pending for > >>> the two > >>> workarounds in the meson build we have currently (choosing the right > >>> linker and > >>> indexing into CustomTargets). I'm also still thinking about how we can > >>> share > >>> source files with the other 3 build systems already in mesa (autotools and > >>> android being the most important, since hopefully our meson will be able > >>> to > >>> support windows in the future, I don't know what will happen when android > >>> moves > >>> to blueprint/soong). If there is anything else please let me know. > >> > >> Talking with ChromeOS folks at XDC, it sounded like having Android.mk be > >> a small wrapper around another build system is a totally acceptable and > >> not unusual thing to do. Rob, does that seem possible/OK to you? It > >> seems like that should seriously reduce the android maintenance burden. > > > > I haven't come across any examples doing that, but it seems fine to me > > if that can work. I'd guess we just need to create a prebuilt target > > and somehow trigger it to run meson. It could be problematic if > > anything in mesa is a dependency on another project as there's some > > expectations about where things are built. But I don't think mesa is a > > dependency for anything. > > One possible issue is that meson and its dependencies are not part of > the supported toolchain for Android, would be surprised if this does not > become a problem on some level. As example version of Meson on Ubuntu > LTS (which is the tested and supported distro for android building) is > 0.29.0 while on Fedora 0.42.0. That will be a problem, I very much doubt that mesa will build with meson 0.29, and there are features going it 0.43 that I would like to depend on. Meson only has 2 hard requirements, python 3.4+ and ninja 1.6+, so it may be possible to install an updated meson via pip, but I suspect android will run into similar issues to windows, specifically that it needs a way to pass dependency locations. I've been looking at the possibility of generating blueprint from meson, which could the be checked into a branch, but there are some interface mismatches between meson and soong/blueprint and they could prove somewhat difficult to solve (specifically around arch specific files). Dylan signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH mesa] REVIEWERS: add Meson
I don't have access to my Intel email except when physically at work, I'd prefer to use dy...@pnwbakers.com Otherwise I probably am the guy to look at meson, Reviewed-by: Dylan Baker Quoting Eric Engestrom (2017-09-28 05:37:02) > Cc: Dylan Baker > Signed-off-by: Eric Engestrom > --- > REVIEWERS | 5 + > 1 file changed, 5 insertions(+) > > diff --git a/REVIEWERS b/REVIEWERS > index 0b5d9a4fd31bd652cf02..0d97b29309cc98b9a295 100644 > --- a/REVIEWERS > +++ b/REVIEWERS > @@ -103,6 +103,11 @@ F: CleanSpec.mk > F: */Android.*mk > F: */Makefile.sources > > +MESON BUILD > +R: Dylan Baker > +F: */meson.build > +F: meson_options.txt > + > ANDROID EGL SUPPORT > R: Rob Herring > R: Tomasz Figa > -- > Cheers, > Eric > signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 1/5] meson: remove duplicate definition
--- meson.build | 2 -- 1 file changed, 2 deletions(-) diff --git a/meson.build b/meson.build index 1aeef95f722..48ba8127f95 100644 --- a/meson.build +++ b/meson.build @@ -34,8 +34,6 @@ cpp = meson.get_compiler('cpp') null_dep = dependency('', required : false) -system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'dragonfly', 'linux'].contains(host_machine.system()) - # Arguments for the preprocessor, put these in a separate array from the C and # C++ (cpp in meson terminology) arguments since they need to be added to the # default arguments for both C and C++. -- 2.19.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 5/5] meson: Add toggle for glx-direct
GNU Hurd needs to turn off glx-direct, rather than special case it, we'll just add a toggle. --- meson.build | 4 +--- meson_options.txt | 6 ++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/meson.build b/meson.build index 3f835e2b952..3aacfa04900 100644 --- a/meson.build +++ b/meson.build @@ -51,6 +51,7 @@ with_valgrind = get_option('valgrind') with_libunwind = get_option('libunwind') with_asm = get_option('asm') with_glx_read_only_text = get_option('glx-read-only-text') +with_glx_direct = get_option('glx-direct') with_osmesa = get_option('osmesa') with_swr_arches = get_option('swr-arches') with_tools = get_option('tools') @@ -365,9 +366,6 @@ if with_glvnd endif endif -# TODO: toggle for this -with_glx_direct = true - if with_vulkan_icd_dir == '' with_vulkan_icd_dir = join_paths(get_option('datadir'), 'vulkan/icd.d') endif diff --git a/meson_options.txt b/meson_options.txt index a1d5ab0e185..589d10bb3f3 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -318,3 +318,9 @@ option( choices : ['auto', 'true', 'false'], description : 'Enable VK_EXT_acquire_xlib_display.' ) +option( + 'glx-direct', + type : 'boolean', + value : true, + description : 'Enable direct rendering in GLX and EGL for DRI', +) -- 2.19.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 0/5] Fixueps for ppc64 and gnu hurd
This little series is aimed at fixing problems reported by fedora and debian when using meson, there's a couple of patches in here for fixing ppc64 detection (tested without llvm), and a couple for gnu hurd (not tested). Dylan Baker (5): meson: remove duplicate definition meson: Fix ppc64 little endian detection meson: Override C++ standard to gnu++11 when building with altivec on ppc64le meson: Add support for gnu hurd meson: Add toggle for glx-direct meson.build | 33 --- meson_options.txt | 6 src/gallium/state_trackers/clover/meson.build | 3 ++ 3 files changed, 31 insertions(+), 11 deletions(-) -- 2.19.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 3/5] meson: Override C++ standard to gnu++11 when building with altivec on ppc64le
Otherwise there will be symbol collisions for the vector name. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108943 Fixes: 34bbb24ce7702658cdc4e9d34a650e169716c39e ("meson: Add support for ppc assembly/optimizations") --- meson.build | 12 src/gallium/state_trackers/clover/meson.build | 3 +++ 2 files changed, 15 insertions(+) diff --git a/meson.build b/meson.build index 3d07c88364a..0785609c4b0 100644 --- a/meson.build +++ b/meson.build @@ -624,6 +624,7 @@ if with_gallium_st_nine endif endif +clover_cpp_std = [] if get_option('power8') != 'false' # on old versions of meson the cpu family would return as ppc64le on little # endian power8, this was changed in 0.48 such that the family would always @@ -631,6 +632,7 @@ if get_option('power8') != 'false' # should be checked. Since we support versions < 0.48 we need to use # startswith. if host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little' +_test_args = [] if cc.get_id() == 'gcc' and cc.version().version_compare('< 4.8') error('Altivec is not supported with gcc version < 4.8.') endif @@ -645,9 +647,19 @@ if get_option('power8') != 'false' args : '-mpower8-vector', name : 'POWER8 intrinsics') pre_args += ['-D_ARCH_PWR8', '-mpower8-vector'] + _test_args += ['-D_ARCH_PWR8', '-mpower8-vector'] elif get_option('power8') == 'true' error('POWER8 intrinsic support required but not found.') endif + +if cpp.compiles(''' +#if !defined(__VEC__) || !defined(__ALTIVEC__) +#error "AltiVec not enabled" +#endif''', +args : _test_args, +name : 'Altivec') + clover_cpp_std += ['cpp_std=gnu++11'] +endif endif endif diff --git a/src/gallium/state_trackers/clover/meson.build b/src/gallium/state_trackers/clover/meson.build index 1a09d8f2ca9..a6729af2fb8 100644 --- a/src/gallium/state_trackers/clover/meson.build +++ b/src/gallium/state_trackers/clover/meson.build @@ -30,6 +30,7 @@ libcltgsi = static_library( files('tgsi/compiler.cpp', 'tgsi/invocation.hpp'), include_directories : clover_incs, cpp_args : [cpp_vis_args], + override_options : clover_cpp_std, ) libclllvm = static_library( @@ -56,6 +57,7 @@ libclllvm = static_library( )), ], dependencies : [dep_llvm, dep_elf], + override_options : clover_cpp_std, ) clover_files = files( @@ -119,4 +121,5 @@ libclover = static_library( include_directories : clover_incs, cpp_args : [clover_cpp_args, cpp_vis_args], link_with : [libcltgsi, libclllvm], + override_options : clover_cpp_std, ) -- 2.19.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 2/5] meson: Fix ppc64 little endian detection
Old versions of meson returned ppc64le as the cpu_family for little endian power8 cpus, versions >=0.48 don't do this, so the check wouldn't work in that case. This generalizes the check to work for both old and new versions of meson. Fixes: 34bbb24ce7702658cdc4e9d34a650e169716c39e ("meson: Add support for ppc assembly/optimizations") --- meson.build | 9 +++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index 48ba8127f95..3d07c88364a 100644 --- a/meson.build +++ b/meson.build @@ -625,7 +625,12 @@ if with_gallium_st_nine endif if get_option('power8') != 'false' - if host_machine.cpu_family() == 'ppc64le' + # on old versions of meson the cpu family would return as ppc64le on little + # endian power8, this was changed in 0.48 such that the family would always + # be ppc64 regardless of endianness, and the the machine.endian() value + # should be checked. Since we support versions < 0.48 we need to use + # startswith. + if host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little' if cc.get_id() == 'gcc' and cc.version().version_compare('< 4.8') error('Altivec is not supported with gcc version < 4.8.') endif @@ -966,7 +971,7 @@ if with_asm with_asm_arch = 'sparc' pre_args += ['-DUSE_SPARC_ASM'] endif - elif host_machine.cpu_family() == 'ppc64le' + elif host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little' if system_has_kms_drm with_asm_arch = 'ppc64le' pre_args += ['-DUSE_PPC64LE_ASM'] -- 2.19.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 4/5] meson: Add support for gnu hurd
--- meson.build | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/meson.build b/meson.build index 0785609c4b0..3f835e2b952 100644 --- a/meson.build +++ b/meson.build @@ -220,8 +220,6 @@ elif system_has_kms_drm else # FIXME: haiku doesn't use dri, and xlib doesn't use dri, probably should # assert here that one of those cases has been met. - # FIXME: GNU (hurd) ends up here as well, but meson doesn't officially - # support Hurd at time of writing (2017/11) # FIXME: illumos ends up here as well with_dri_platform = 'none' endif @@ -795,7 +793,7 @@ if cc.compiles('int foo(void) __attribute__((__noreturn__));', endif # TODO: this is very incomplete -if ['linux', 'cygwin'].contains(host_machine.system()) +if ['linux', 'cygwin', 'gnu'].contains(host_machine.system()) pre_args += '-D_GNU_SOURCE' endif @@ -954,7 +952,7 @@ endif with_asm_arch = '' if with_asm if host_machine.cpu_family() == 'x86' -if system_has_kms_drm +if system_has_kms_drm or host_machine.system() == 'gnu' with_asm_arch = 'x86' pre_args += ['-DUSE_X86_ASM', '-DUSE_MMX_ASM', '-DUSE_3DNOW_ASM', '-DUSE_SSE_ASM'] -- 2.19.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] build: remove autotools
Quoting Marek Olšák (2018-12-04 12:21:58) > There is still the issue that DEBUG is not defined in debug builds if I set > CFLAGS and CXXFLAGS. > > Marek What does you command line look like, and what version of meson do you have? I can do: $ CFLAGS=-Dfoobar CXXFLAGS=-Dfoobar meson build -Dbuildtype=debug $ grep 'DDEBUG' build/build.ninja and I see 2055 definitions of -DDEBUG Dylan signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH v2] build: remove autotools
Quoting Eric Engestrom (2018-12-04 09:36:53) > On Tuesday, 2018-12-04 09:16:18 -0800, Dylan Baker wrote: > > There are now no known distributions using autotools, meson has all of > > the features that autotools does. We don't need two build systems to do > > exactly the same thing, meson is faster, easier to maintain, and used by > > more devs than autotools. Let's reduce the ongoing burden of maintaining > > autotools. > > > > This removes the following: > > - configure.ac > > - autogen.sh > > - Makefile.*.am > > - Makefile.am > > - Makefile.sources (which are used only by autotools) > > - travis jobs for autotools > > - docs for autotools > > - .gitignore > > > > v2: - remove stray no-op change in .travis.yml > > --- > [snip] > > diff --git a/.travis.yml b/.travis.yml > > index 6b50d49e143..66be44ffc21 100644 > > --- a/.travis.yml > > +++ b/.travis.yml > > @@ -74,240 +74,13 @@ matrix: > > - python3.5 > > - python3-pip > > - env: > > -- LABEL="make loaders/classic DRI" > > -- BUILD=make > > -- MAKEFLAGS="-j4" > > -- MAKE_CHECK_COMMAND="make check" > > -- DRI_LOADERS="--enable-glx --enable-gbm --enable-egl > > --with-platforms=x11,drm,surfaceless,wayland --enable-osmesa" > > -- DRI_DRIVERS="i915,i965,radeon,r200,swrast,nouveau" > > -- GALLIUM_ST="--enable-dri --disable-opencl --disable-xa > > --disable-nine --disable-xvmc --disable-vdpau --disable-va > > --disable-omx-bellagio --disable-gallium-osmesa" > > -- GALLIUM_DRIVERS="" > > -- VULKAN_DRIVERS="" > > -- LIBUNWIND_FLAGS="--disable-libunwind" > > - addons: > > -apt: > > - packages: > > -- xz-utils > > -- x11proto-xf86vidmode-dev > > -- libexpat1-dev > > -- libx11-xcb-dev > > -- libxdamage-dev > > -- libxfixes-dev > > -- python3-pip > > -- env: > > -# NOTE: Building SWR is 2x (yes two) times slower than all the > > other > > -# gallium drivers combined. > > -# Start this early so that it doesn't hunder the run time. > > -- LABEL="make Gallium Drivers SWR" > > -- BUILD=make > > -- MAKEFLAGS="-j4" > > -- MAKE_CHECK_COMMAND="true" > > -- LLVM_VERSION=6.0 > > -- LLVM_CONFIG="llvm-config-${LLVM_VERSION}" > > -- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl" > > -- DRI_DRIVERS="" > > -- GALLIUM_ST="--enable-dri --disable-opencl --disable-xa > > --disable-nine --disable-xvmc --disable-vdpau --disable-va > > --disable-omx-bellagio --disable-gallium-osmesa" > > -- GALLIUM_DRIVERS="swr" > > -- VULKAN_DRIVERS="" > > -- LIBUNWIND_FLAGS="--enable-libunwind" > > - addons: > > -apt: > > - sources: > > -- llvm-toolchain-trusty-6.0 > > -# llvm-6 requires libstdc++4.9 which is not in main repo > > -- ubuntu-toolchain-r-test > > - packages: > > -# From sources above > > -- llvm-6.0-dev > > -# Common > > -- xz-utils > > -- libexpat1-dev > > -- libx11-xcb-dev > > -- libelf-dev > > -- libunwind8-dev > > -- python3-pip > > -- env: > > -- LABEL="make Gallium Drivers RadeonSI" > > -- BUILD=make > > -- MAKEFLAGS="-j4" > > -- MAKE_CHECK_COMMAND="true" > > -- LLVM_VERSION=6.0 > > -- LLVM_CONFIG="llvm-config-${LLVM_VERSION}" > > -- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl" > > -- DRI_DRIVERS="" > > -- GALLIUM_ST="--enable-dri --disable-opencl --disable-xa > > --disable-nine --disable-xvmc --disable-vdpau --disable-va > > --disable-omx-bellagio --disable-gallium-osmesa" > > -- GALLIUM_DRIVERS="radeonsi" > > -- VULKAN_DRIVERS="" > > -- LIBUNWIND_FLAGS="--enable-libunwind" > > - addons: > > -apt: > > -
Re: [Mesa-dev] [PATCH v2] build: remove autotools
Quoting Marek Olšák (2018-12-04 14:52:19) > CFLAGS="-fno-omit-frame-pointer" \ > CXXFLAGS="-fno-omit-frame-pointer" \ > LDFLAGS="-fuse-ld=gold" \ > meson $reconfigure build \ > --prefix /usr --libdir /usr/lib/$archdir --buildtype debugoptimized > --native-file $llvm_config \ > -Dgallium-va=false -Dgallium-xvmc=false -Dgallium-omx=disabled > -Dgallium-xa > =false \ > -Dplatforms=x11,drm,surfaceless -Dgallium-drivers=radeonsi,r300,r600 \ > -Ddri-drivers= -Dvulkan-drivers=amd \ > -Dlibunwind=true > > Marek If you want the -DDEBUG added automatically you need a --buildtype=debug, --buildtype=debugoptimized doesn't get -DDEBUG. Dylan signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH mesa] drop autotools
Quoting Gert Wollny (2018-12-04 15:42:58) > Am Dienstag, den 04.12.2018, 14:01 -0800 schrieb Matt Turner: > > On Tue, Dec 4, 2018 at 12:48 PM Gert Wollny > > wrote: > > > FWIW, I also don't understand the urge to remove the automake build > > > system files, they account for less then 1% of line count in the > > > source > > > tree, Emil offered to maintain the build system in a way that > > > nobody > > > who doesn't want to deal with has to touch it > > > > Do you see any value in removing the autotools build system at all? > > If there was nobody willing to maintain it and nobody who wants to use > it then I would say it makes sense to remove it, because it doesn't > make sense to keep something that is unused and will bitrot, but right > now this is not the case. In light of what Emil wrote I could also ask: > what's the harm in keeping it? > > Personally, I use both, meson/ninja is great when you want to build > the whole project, but being able to go to a subdirectory and just run > "make something" there has its virtues too. > > Best, > Gert > Is that really any different than doing a `ninja -C builddir/ src/mesa/libmesa_gallium.a` (or whatever target you want)? Especially since you can tab complete ninja targets. Dylan signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH v2] build: remove autotools
Quoting Marek Olšák (2018-12-04 16:04:11) > On Tue, Dec 4, 2018 at 7:01 PM Dylan Baker wrote: > > Quoting Marek Olšák (2018-12-04 14:52:19) > > CFLAGS="-fno-omit-frame-pointer" \ > > CXXFLAGS="-fno-omit-frame-pointer" \ > > LDFLAGS="-fuse-ld=gold" \ > > meson $reconfigure build \ > > --prefix /usr --libdir /usr/lib/$archdir --buildtype debugoptimized > > --native-file $llvm_config \ > > -Dgallium-va=false -Dgallium-xvmc=false -Dgallium-omx=disabled > -Dgallium-xa > > =false \ > > -Dplatforms=x11,drm,surfaceless -Dgallium-drivers=radeonsi,r300,r600 > \ > > -Ddri-drivers= -Dvulkan-drivers=amd \ > > -Dlibunwind=true > > > > Marek > > If you want the -DDEBUG added automatically you need a --buildtype=debug, > --buildtype=debugoptimized doesn't get -DDEBUG. > > > That's a change in behavior compared to autotools, which was always > debugoptimized. > > Marek That was changed after the initial meson merge, here's the thread discussing that: https://lists.freedesktop.org/archives/mesa-dev/2017-November/175104.html Dylan signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH v3] nir/algebraic: Rewrite bit-size inference
For the python bits: Reviewed-by: Dylan Baker Quoting Connor Abbott (2018-12-05 04:20:30) > Before this commit, there were two copies of the algorithm: one in C, > that we would use to figure out what bit-size to give the replacement > expression, and one in Python, that emulated the C one and tried to > prove that the C algorithm would never fail to correctly assign > bit-sizes. That seemed pretty fragile, and likely to fall over if we > make any changes. Furthermore, the C code was really just recomputing > more-or-less the same thing as the Python code every time. Instead, we > can just store the results of the Python algorithm in the C > datastructure, and consult it to compute the bitsize of each value, > moving the "brains" entirely into Python. Since the Python algorithm no > longer has to match C, it's also a lot easier to change it to something > more closely approximating an actual type-inference algorithm. The > algorithm used is based on Hindley-Milner, although deliberately > weakened a little. It's a few more lines than the old one, judging by > the diffstat, but I think it's easier to verify that it's correct while > being as general as possible. > > We could split this up into two changes, first making the C code use the > results of the Python code and then rewriting the Python algorithm, but > since the old algorithm never tracked which variable each equivalence > class, it would mean we'd have to add some non-trivial code which would > then get thrown away. I think it's better to see the final state all at > once, although I could also try splitting it up. > > v2: > - Replace instances of "== None" and "!= None" with "is None" and > "is not None". > - Rename first_src to first_unsized_src > - Only merge the destination with the first unsized source, since the > sources have already been merged. > - Add a comment explaining what nir_search_value::bit_size now means. > v3: > - Fix one last instance to use "is not" instead of != > - Don't try to be so clever when choosing which error message to print > based on whether we're in the search or replace expression. > - Fix trailing whitespace. > --- > src/compiler/nir/nir_algebraic.py | 520 -- > src/compiler/nir/nir_search.c | 146 + > src/compiler/nir/nir_search.h | 17 +- > 3 files changed, 317 insertions(+), 366 deletions(-) > > diff --git a/src/compiler/nir/nir_algebraic.py > b/src/compiler/nir/nir_algebraic.py > index 728196136ab..efd6e52cdb9 100644 > --- a/src/compiler/nir/nir_algebraic.py > +++ b/src/compiler/nir/nir_algebraic.py > @@ -88,7 +88,7 @@ class Value(object): > > __template = mako.template.Template(""" > static const ${val.c_type} ${val.name} = { > - { ${val.type_enum}, ${val.bit_size} }, > + { ${val.type_enum}, ${val.c_bit_size} }, > % if isinstance(val, Constant): > ${val.type()}, { ${val.hex()} /* ${val.value} */ }, > % elif isinstance(val, Variable): > @@ -112,6 +112,40 @@ static const ${val.c_type} ${val.name} = { > def __str__(self): >return self.in_val > > + def get_bit_size(self): > + """Get the physical bit-size that has been chosen for this value, or if > + there is none, the canonical value which currently represents this > + bit-size class. Variables will be preferred, i.e. if there are any > + variables in the equivalence class, the canonical value will be a > + variable. We do this since we'll need to know which variable each value > + is equivalent to when constructing the replacement expression. This is > + the "find" part of the union-find algorithm. > + """ > + bit_size = self > + > + while isinstance(bit_size, Value): > + if bit_size._bit_size is None: > +break > + bit_size = bit_size._bit_size > + > + if bit_size is not self: > + self._bit_size = bit_size > + return bit_size > + > + def set_bit_size(self, other): > + """Make self.get_bit_size() return what other.get_bit_size() return > + before calling this, or just "other" if it's a concrete bit-size. This > is > + the "union" part of the union-find algorithm. > + """ > + > + self_bit_size = self.get_bit_size() > + other_bit_size = other if isinstance(other, int) else > other.get_bit_size() > + > + if self_bit_size == other_bit_size: > + return > + > + self_bit_size._bit_size = other_bit_size > + > @property > def
Re: [Mesa-dev] [PATCH] meson: link LLVM 'native' component when LLVM is available
Quoting Nicolai Hähnle (2018-12-06 05:49:02) > From: Nicolai Hähnle > > Linking against LLVM built with BUILD_SHARED_LIBS fails otherwise, > as the component is required for the draw module. > --- > meson.build | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/meson.build b/meson.build > index 1aeef95f722..0177716c476 100644 > --- a/meson.build > +++ b/meson.build > @@ -1155,21 +1155,21 @@ dep_libdrm = dependency( > if dep_libdrm.found() >pre_args += '-DHAVE_LIBDRM' >if with_dri_platform == 'drm' and with_dri > with_gallium_drisw_kms = true >endif > endif > > llvm_modules = ['bitwriter', 'engine', 'mcdisassembler', 'mcjit'] > llvm_optional_modules = [] > if with_amd_vk or with_gallium_radeonsi or with_gallium_r600 > - llvm_modules += ['amdgpu', 'bitreader', 'ipo'] > + llvm_modules += ['amdgpu', 'native', 'bitreader', 'ipo'] >if with_gallium_r600 > llvm_modules += 'asmparser' >endif > endif > if with_gallium_opencl >llvm_modules += [ > 'all-targets', 'linker', 'coverage', 'instrumentation', 'ipo', > 'irreader', > 'lto', 'option', 'objcarcopts', 'profiledata', >] >llvm_optional_modules += ['coroutines'] > -- > 2.19.1 > Reviewed-by: Dylan Baker signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH v2] docs: Document GitLab merge request process (email alternative)
Quoting Jordan Justen (2018-12-05 15:32:05) > This documents a process for using GitLab Merge Requests as an second > way to submit code changes for Mesa. Only one of the two methods is > allowed for each patch series. > > We will *not* require all patches to be emailed. Some code changes may > be reviewed and merged without any discussion on the mesa-dev email > list. > > v2: > * No longer require email. Allow submitter to choose email or a >GitLab merge request. > * Various feedback from Brian, Daniel, Dylan, Eric, Erik, Jason, >Matt, Michel and Rob. > > Signed-off-by: Jordan Justen > --- > docs/submittingpatches.html | 76 ++--- > 1 file changed, 71 insertions(+), 5 deletions(-) > > diff --git a/docs/submittingpatches.html b/docs/submittingpatches.html > index 92d954a2d09..21175988d0b 100644 > --- a/docs/submittingpatches.html > +++ b/docs/submittingpatches.html > @@ -21,7 +21,7 @@ > Basic guidelines > Patch formatting > Testing Patches > -Mailing Patches > +Submitting Patches > Reviewing Patches > Nominating a commit for a stable branch > Criteria for accepting patches to the stable > branch > @@ -42,8 +42,10 @@ components. > git bisect.) > Patches should be properly formatted. > Patches should be sufficiently tested before > submitting. > -Patches should be submitted to mesa-dev > -for review using git send-email. > +Patches should be submitted > +to mesa-dev or with > +a merge request > +for review. > > > > @@ -180,10 +182,19 @@ run. > > > > -Mailing Patches > +Submitting Patches > > > -Patches should be sent to the mesa-dev mailing list for review: > +Patches may be submitted to the Mesa project by > +email or with a > +GitLab merge request. To prevent > +duplicate code review, only use one method to submit your changes. > + > + > +Mailing Patches > + > + > +Patches may be sent to the mesa-dev mailing list for review: > https://lists.freedesktop.org/mailman/listinfo/mesa-dev";> > mesa-dev@lists.freedesktop.org. > When submitting a patch make sure to use > @@ -217,8 +228,63 @@ disabled before sending your patches. (Note that you may > need to contact > your email administrator for this.) > > > +GitLab Merge Requests > + > + > + https://gitlab.freedesktop.org/mesa/mesa";>GitLab Merge > + Requests (MR) can also be used to submit patches for Mesa. > + > + > + > + If the MR may have interest for most of the Mesa community, you can > + send an email to the mesa-dev email list including a link to the MR. > + Don't send the patch to mesa-dev, just the MR link. > + > + > + Add labels to your MR to help reviewers find it. For example: > + > +Mesa changes affecting all drivers: mesa > +Hardware vendor specific code: amd, intel, nvidia, ... > +Driver specific code: anvil, freedreno, i965, iris, radeonsi, > + radv, vc4, ... > +Other tag examples: gallium, util > + > + > + > + If you revise your patches based on code review and push an update > + to your branch, you should maintain a clean history > + in your patches. There should not be "fixup" patches in the history. > + The series should be buildable and functional after every commit > + whenever you push the branch. > + > + > + It is your responsibility to keep the MR alive and making progress, > + as there are no guarantees that a Mesa dev will independently take > + interest in it. > + > + > + Some other notes: > + > +Make changes and update your branch based on feedback > +Old, stale MR may be closed, but you can reopen it if you > + still want to pursue the changes > +You should periodically check to see if your MR needs to be > + rebased > +Make sure your MR is closed if your patches get pushed outside > + of GitLab > + > + > + > Reviewing Patches > > + > + To participate in code review, you should monitor the > + https://lists.freedesktop.org/mailman/listinfo/mesa-dev";> > + mesa-dev email list and the GitLab > + Mesa href="https://gitlab.freedesktop.org/mesa/mesa/merge_requests";>Merge > + Requests page. > + > + > > When you've reviewed a patch on the mailing list, please be unambiguous > about your review. That is, state either > -- > 2.20.0.rc2 > > ___ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev Acked-by: Dylan Baker signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH] meson: Add nir_algebraic_parser_test to suites
Just to make it easier to run a nir tests together. Fixes: a0ae12ca91a45f81897e774019cde9bd081f03a0 ("nir/algebraic: Add unit tests for bitsize validation") --- src/compiler/nir/meson.build | 1 + 1 file changed, 1 insertion(+) diff --git a/src/compiler/nir/meson.build b/src/compiler/nir/meson.build index e86c97b8864..b0ca27cb700 100644 --- a/src/compiler/nir/meson.build +++ b/src/compiler/nir/meson.build @@ -268,5 +268,6 @@ if with_tests args : [ join_paths(meson.current_source_dir(), 'tests/algebraic_parser_test.py') ], +suite : ['compiler', 'nir'], ) endif -- 2.19.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] meson: Bump version to 0.46 for python module
Quoting Matt Turner (2018-12-08 12:49:06) > On Thu, Nov 22, 2018 at 1:05 PM Matt Turner wrote: > > > > On Wed, Nov 21, 2018 at 10:48 AM Matt Turner wrote: > > > > > > Thanks Arfrever and Dylan. > > > > > > Acked-by: Matt Turner > > > > Hmm, actually this doesn't seem to work for me. With it applied I get: > > > > src/mesa/drivers/dri/meson.build:59:8: ERROR: Python object does not > > have method path. > > > > which comes from: > > > > meson.add_install_script( > > prog_python.path(), > > join_paths(meson.source_root(), 'bin/install_megadrivers.py'), > > libmesa_dri_drivers.full_path(), > > dri_drivers_path, > > dri_link, > > ) > > Ping. I think this one fell through the cracks. Yup. I'll respin and resend in just a minute. signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] meson: Bump version to 0.46 for python module
Quoting Dylan Baker (2018-12-10 09:13:59) > Quoting Matt Turner (2018-12-08 12:49:06) > > On Thu, Nov 22, 2018 at 1:05 PM Matt Turner wrote: > > > > > > On Wed, Nov 21, 2018 at 10:48 AM Matt Turner wrote: > > > > > > > > Thanks Arfrever and Dylan. > > > > > > > > Acked-by: Matt Turner > > > > > > Hmm, actually this doesn't seem to work for me. With it applied I get: > > > > > > src/mesa/drivers/dri/meson.build:59:8: ERROR: Python object does not > > > have method path. > > > > > > which comes from: > > > > > > meson.add_install_script( > > > prog_python.path(), > > > join_paths(meson.source_root(), 'bin/install_megadrivers.py'), > > > libmesa_dri_drivers.full_path(), > > > dri_drivers_path, > > > dri_link, > > > ) > > > > Ping. I think this one fell through the cracks. > > Yup. I'll respin and resend in just a minute. > Gah, so much for "the python module does everything the python3 module does", it doesn't have a path method :/ off to meson land I go. signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] docs: extends 18.2 lifecycle
Acked-by: Dylan Baker Quoting Juan A. Suarez Romero (2018-12-10 04:25:36) > As 18.3 was published with some delay, let's extend 18.2 life for > another extra release. > > CC: Andres Gomez > CC: Dylan Baker > CC: Emil Velikov > --- > docs/release-calendar.html | 8 +++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/docs/release-calendar.html b/docs/release-calendar.html > index 5d881b5877c..44520a59da0 100644 > --- a/docs/release-calendar.html > +++ b/docs/release-calendar.html > @@ -39,10 +39,16 @@ if you'd like to nominate a patch in the next stable > release. > Notes > > > -18.2 > +18.2 > 2018-12-12 > 18.2.7 > Juan A. Suarez > + > + > + > +2018-12-26 > +18.2.8 > +Juan A. Suarez > Last planned 18.2.x release > > 18.3 > -- > 2.19.2 > signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] last call for autotools
Meson 0.49.0 has been out for a couple of days now, and I'd like to make the final call for autotools. My patch is so massive that it's a huge pain to send to the list, the latest versions is here: https://gitlab.freedesktop.org/dbaker/mesa/commits/delete-autotools Dylan signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH mesa] meson/vdpau: add missing soversion
Thanks for fixing this, Reviewed-by: Dylan Baker Quoting Eric Engestrom (2018-12-11 09:13:54) > This mirrors what autotools does in > src/gallium/state_trackers/vdpau/Makefile.am > and src/gallium/targets/vdpau/Makefile.am: > > VDPAU_MAJOR = 1 > VDPAU_MINOR = 0 > libvdpau_gallium_la_LDFLAGS = -version-number $(VDPAU_MAJOR):$(VDPAU_MINOR) > > Reported-by: Igor Gnatenko > Fixes: 68076b87474e7959c161 "meson: build gallium vdpau state tracker" > Signed-off-by: Eric Engestrom > --- > src/gallium/state_trackers/vdpau/meson.build | 9 - > src/gallium/targets/vdpau/meson.build| 3 ++- > 2 files changed, 10 insertions(+), 2 deletions(-) > > diff --git a/src/gallium/state_trackers/vdpau/meson.build > b/src/gallium/state_trackers/vdpau/meson.build > index 9678b79ef6c952a48e45..28b98ae5369fa5c5ccf2 100644 > --- a/src/gallium/state_trackers/vdpau/meson.build > +++ b/src/gallium/state_trackers/vdpau/meson.build > @@ -18,13 +18,20 @@ > # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE > # SOFTWARE. > > +VDPAU_MAJOR = 1 > +VDPAU_MINOR = 0 > + > libvdpau_st = static_library( >'vdpau_st', >files( > 'bitmap.c', 'decode.c', 'device.c', 'ftab.c', 'htab.c', 'mixer.c', > 'output.c', 'preemption.c', 'presentation.c', 'query.c', 'surface.c', >), > - c_args : [c_vis_args, '-DVER_MAJOR=1', '-DVER_MINOR=0'], > + c_args : [ > +c_vis_args, > +'-DVER_MAJOR=@0@'.format(VDPAU_MAJOR), > +'-DVER_MINOR=@0@'.format(VDPAU_MINOR), > + ], >include_directories : [ > inc_include, inc_src, inc_util, inc_gallium, inc_gallium_aux, >], > diff --git a/src/gallium/targets/vdpau/meson.build > b/src/gallium/targets/vdpau/meson.build > index 0c09b2b811429b5688b8..cfc616edf3eac3dd1540 100644 > --- a/src/gallium/targets/vdpau/meson.build > +++ b/src/gallium/targets/vdpau/meson.build > @@ -54,6 +54,7 @@ libvdpau_gallium = shared_library( > dep_thread, driver_r300, driver_r600, driver_radeonsi, driver_nouveau, > driver_tegra, >], >link_depends : vdpau_link_depends, > + soversion : '@0@.@1@.0'.format(VDPAU_MAJOR, VDPAU_MINOR), > ) > foreach d : [[with_gallium_r300, 'r300'], > [with_gallium_r600, 'r600'], > @@ -61,7 +62,7 @@ foreach d : [[with_gallium_r300, 'r300'], > [with_gallium_tegra, 'tegra'], > [with_gallium_nouveau, 'nouveau']] >if d[0] > -vdpau_drivers += 'libvdpau_@0@.so.1.0.0'.format(d[1]) > +vdpau_drivers += 'libvdpau_@0@.so.@1@.@2@.0'.format(d[1], VDPAU_MAJOR, > VDPAU_MINOR) >endif > endforeach > > -- > Cheers, > Eric > signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH v2] glx: mandate xf86vidmode only for "drm" dri platforms
Quoting Emil Velikov (2018-12-11 09:22:03) > From: Emil Velikov > > Currently we have the three dri "platforms" - drm, apple and windows. > > Since xf86vidmode is a thing only for the drm one, adjust the > preprocessor guards and correctly check for the dependency. > > v2: terminate the GLX_USE_WINDOWSGL hunk > > Cc: Jon TURNEY > Cc: Dylan Baker > Cc: Eric Engestrom > Fixes: 5bc509363b6 ("glx: make xf86vidmode mandatory for direct rendering") > Signed-off-by: Emil Velikov > --- > This time it's actually tested ;-) > --- > configure.ac | 4 ++-- > meson.build | 4 ++-- > src/glx/glxcmds.c | 6 -- > 3 files changed, 8 insertions(+), 6 deletions(-) > > diff --git a/configure.ac b/configure.ac > index 5d3da4b7c48..9b437a252cc 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -1716,6 +1716,8 @@ xdri) > if test x"$enable_dri" = xyes; then > dri_modules="$dri_modules xcb-dri2 >= $XCBDRI2_REQUIRED" > fi > + > +dri_modules="$dri_modules xxf86vm" > fi > if test x"$dri_platform" = xapple ; then > DEFINES="$DEFINES -DGLX_USE_APPLEGL" > @@ -1725,8 +1727,6 @@ xdri) > fi > fi > > -dri_modules="$dri_modules xxf86vm" > - > PKG_CHECK_MODULES([DRIGL], [$dri_modules]) > GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules" > X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS" > diff --git a/meson.build b/meson.build > index 4f6176b8d96..fe647f682c1 100644 > --- a/meson.build > +++ b/meson.build > @@ -1349,7 +1349,6 @@ if with_platform_x11 > dep_xdamage = dependency('xdamage', version : '>= 1.1') > dep_xfixes = dependency('xfixes') > dep_xcb_glx = dependency('xcb-glx', version : '>= 1.8.1') > -dep_xxf86vm = dependency('xxf86vm') >endif >if (with_any_vk or with_glx == 'dri' or > (with_gallium_vdpau or with_gallium_xvmc or with_gallium_va or > @@ -1376,6 +1375,7 @@ if with_platform_x11 >if with_glx == 'dri' > if with_dri_platform == 'drm' >dep_dri2proto = dependency('dri2proto', version : '>= 2.8') > + dep_xxf86vm = dependency('xxf86vm') > endif > dep_glproto = dependency('glproto', version : '>= 1.4.14') >endif > @@ -1426,8 +1426,8 @@ elif with_glx == 'dri' > 'xcb-glx >= 1.8.1'] >if with_dri_platform == 'drm' > gl_priv_reqs += 'xcb-dri2 >= 1.8' > +gl_priv_reqs += 'xxf86vm' >endif > - gl_priv_reqs += 'xxf86vm' I'd really like to move to meson 0.46 so meson would just figure all of this out for us... sigh for the meson bits: Reviewed-by: Dylan Baker > endif > if dep_libdrm.found() >gl_priv_reqs += 'libdrm >= 2.4.75' > diff --git a/src/glx/glxcmds.c b/src/glx/glxcmds.c > index b940c8ebdbe..d00c0d4816d 100644 > --- a/src/glx/glxcmds.c > +++ b/src/glx/glxcmds.c > @@ -45,8 +45,10 @@ > #include "apple/apple_glx.h" > #include "util/debug.h" > #else > +#ifndef GLX_USE_WINDOWSGL > #include > #include > +#endif /* GLX_USE_WINDOWSGL */ > #endif > #endif > > @@ -2081,7 +2083,7 @@ __glXGetSyncValuesOML(Display * dpy, GLXDrawable > drawable, > return False; > } > > -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) > +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) && > !defined(GLX_USE_WINDOWSGL) > _X_HIDDEN GLboolean > __glxGetMscRate(struct glx_screen *psc, > int32_t * numerator, int32_t * denominator) > @@ -2157,7 +2159,7 @@ _X_HIDDEN GLboolean > __glXGetMscRateOML(Display * dpy, GLXDrawable drawable, > int32_t * numerator, int32_t * denominator) > { > -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) > +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) && > !defined(GLX_USE_WINDOWSGL) > __GLXDRIdrawable *draw = GetGLXDRIDrawable(dpy, drawable); > > if (draw == NULL) > -- > 2.19.2 > signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] last call for autotools
Quoting Emil Velikov (2018-12-11 10:48:56) > On Tue, 11 Dec 2018 at 18:18, Eric Anholt wrote: > > > > Emil Velikov writes: > > > > > On Mon, 10 Dec 2018 at 23:11, Dylan Baker wrote: > > >> > > >> Meson 0.49.0 has been out for a couple of days now, and I'd like to make > > >> the > > >> final call for autotools. My patch is so massive that it's a huge pain > > >> to send > > >> to the list, the latest versions is here: > > >> https://gitlab.freedesktop.org/dbaker/mesa/commits/delete-autotools > > >> > > > Can you split this up a bit? I'm mostly conserved about a couple of > > > things: > > > - we're loosing multiple testing permutations with Travis - there's no > > > meson equivalent > > > - needed/missing bits are impossible to spot as-is > > > > > > Personally, I'd do something like: > > > - move .travis autotools permutations to meson > > > - docs changes > > > - rm Makefile{.*,}.am autogen.sh and configure.ac > > > - rm Makefile.sources > > > - .gitignore > > > > I don't think we should block on anything related to travis at this > > point. I wrote it initially hoping it would let us prevent build > > breakages. Instead, whenever I try to use travis to prevent build > > breakage, I find that travis has already been broken for a while. > > > You must be really unlucky. > > > The CI needs to be integrated with our actual repository host, or it > > doesn't work. We should just delete .travis.yml and push the gitlab > > stuff forward instead. > > If we have anything better in place (say gitlab CI/other) - sure. > Removing something without a replacement in place is quite meh. > That said, I think we agree that this is a topic for another day. > > HTH > -Emil I'm actually finding myself agreeing that travis is just a pain. Could you help me debug my WIP of porting the autotools tests to meson? They're just failing randomly with no good debuging output: https://travis-ci.org/dcbaker/mesa/jobs/45289 Dylan signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [RFC PATCH 5/5] meson: libfreedreno depends upon libdrm (for fence support)
Thanks for looking into these. I've gone ahead and added the Fixes and Emil's rb, plus my rb and pushed *this* patch to master. I've pulled all of the others except the "delete me" fixup into my branch (since I'll drop that patch before sending out the v2, that's just to make travis turn around faster) Dylan Quoting Emil Velikov (2018-12-12 04:04:08) > On Wed, 12 Dec 2018 at 07:45, Rhys Kidd wrote: > > > > Error message building freedreno Gallium driver with meson: > > > > ../src/gallium/drivers/freedreno/freedreno_fence.c:27:21: fatal error: > > libsync.h: No such file or directory > >\#include > > > This is a good fix regardless of the rest. > > Fixes: 4aa69cc4257 ("meson: build freedreno") > Reviewed-by: Emil Velikov > > -Emil > ___ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [RFC PATCH 0/5] last call for autotools (meson travis fixes)
Quoting Emil Velikov (2018-12-12 04:16:51) > On Wed, 12 Dec 2018 at 07:45, Rhys Kidd wrote: > > > > Emil and Dylan, > > > > I took a go at addressing the limited number of remaining meson-based > > travis-ci errors. This series applies on top of the work Dylan circulated > > yesterday, and which can be seen here: > > > > > Could you help me debug my WIP of porting the autotools tests > > > to meson? They're just failing randomly with no good debuging output: > > > > > > https://travis-ci.org/dcbaker/mesa/jobs/45289 > > > > Dylan, if you pick these patches up you may want to squash those ones which > > are 'Fixes' into the respective initial patch before any final push. > > > > At this stage the failures are deterministic. > > > > The remaining two known issues are: > > > > * -Dbuild-tests=true: anv is unable to build when this option is enabled. > > This is unrelated to this series and occurs in master. At present meson > > by default has different test coverage to autotools. See further here: > > https://travis-ci.org/Echelon9/mesa/builds/466840665 > > > The libvulkan_intel_tests (the tests library) is missing the WSI (et > al) dependencies. A quick check is to add anv_deps instead of > hand-rolling it. the tests lib does use anv_deps, the only difference I can see between the test lib and the actual installed lib is that the installed one link_whole's the gen_libs and the test one doesn't. > > > * gallium pipeloaders: There's an ongoing scoping problem with the LLVM > > libraries as a dependency. I was unable to fix yet. See further here: > > https://travis-ci.org/Echelon9/mesa/jobs/466861661#L9112 > > > Suspecting that the dep_llvm in libgallium > (src/gallium/aux/meson.build) should be switched to whole_libraries. > As-is things get discarded (since they're unused), when creating the > static library. Thus as the final stage creating the pipe-driver DSOs > we're missing the -lLLVMfoo > > Not 100% sure on the latter one - will need to play with it. > > -Emil You can't link_whole a dependency, it's you can only link whole a library (shared or static). I think the "right" solution is to bump to 0.46 and make use of the `dependency.partial_dependency` so we can create a `dep_llvm_headers` and only link with llvm in the final dsos instead of linking it in everywhere. At least, that's part of the motivation I had to write the partial_dependency method :) In the short term what we probably should do is add dep_llvm to the driver_* definitions that use llvm (r600, radeonsi, llvmpipe, swr) so that the targets pick up the llvm dependency. Dylan signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 2/2] Fix typo preventing xxf86vm being used in meson build
Quoting Jon Turney (2018-12-11 07:15:10) > Also add now needed xxf86vm to the dependencies of libGL > > Signed-off-by: Jon Turney > --- > src/glx/meson.build | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/src/glx/meson.build b/src/glx/meson.build > index 1de35fca6bc..2507993ed52 100644 > --- a/src/glx/meson.build > +++ b/src/glx/meson.build > @@ -137,7 +137,7 @@ gl_lib_cargs = [ > ] > > if dep_xxf86vm.found() > - gl_lib_cargs += '-DHAVE_XF86VIDMODE' > + gl_lib_cargs += '-DXF86VIDMODE' > endif > > libglx = static_library( > @@ -166,7 +166,7 @@ if with_glx == 'dri' > link_args : [ld_args_bsymbolic, ld_args_gc_sections, > extra_ld_args_libgl], > dependencies : [ >dep_libdrm, dep_dl, dep_m, dep_thread, dep_x11, dep_xcb_glx, dep_xcb, > - dep_x11_xcb, dep_xcb_dri2, dep_xext, dep_xfixes, dep_xdamage, > + dep_x11_xcb, dep_xcb_dri2, dep_xext, dep_xfixes, dep_xdamage, > dep_xxf86vm, >extra_deps_libgl, > ], > version : gl_lib_version, > -- > 2.17.0 > Reviewed-by: Dylan Baker signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] last call for autotools
Quoting Marek Olšák (2018-12-12 13:07:10) > On Wed, Dec 12, 2018 at 3:52 PM Rob Clark wrote: > > On Wed, Dec 12, 2018 at 3:45 PM Marek Olšák wrote: > > > > On Wed, Dec 12, 2018 at 3:37 PM Rob Clark wrote: > >> > >> On Wed, Dec 12, 2018 at 3:13 PM Bas Nieuwenhuizen > >> wrote: > >> > > >> > On Wed, Dec 12, 2018 at 8:59 PM Marek Olšák wrote: > >> > > > >> > > There are 2 issues with meson: > >> > > * -DDEBUG is not present in debugoptimized builds. > >> > > >> > Do people expect -DDEBUG for debugoptimized? I would think that debug > >> > optimized would be an optimized build with debug symbols, but not > >> > expensive checks & asserts, which would match the current > >> > debugoptimized build? > >> > >> please, no -DDEBUG for debugoptimized.. I use that when I want debug > >> syms but not (for example) nir_validate and other expensive checks. > > > > > > If nir_validate is so bad, perhaps it shouldn't be run at all. If you > work on NIR and it's not important for you to run nir_validate, perhaps it > shouldn't be run at all. It doesn't have anything to do with build > systems. > > > > I do actually want it enabled when I piglit/deqp.. for which I use > debug builds. But I don't want it if I'm profiling or valgrinding, > where I use debugoptimized.. > > > At some point, DEBUG will be replaced by !NDEBUG. > > Marek The whole point of DEBUG is to hide really expensive checks like nir validate. If there are are asserts hidden behind debug that's wrong, those should be behind !NDEBUG, that's what NDEBUG is for. We've talked about renaming DEBUG because it's confusing, something like EXPENSIVE_DEBUG or EXPENSIVE_VALIDATION or something along those lines. The thread I linked you to previously has extensive discussion of why DEBUG was removed from the debugoptimized build. For CFLAGS: yes, environment variables are only read during the initial configuration by design, they basically exist for compatibility with autotools. You want to use -Dc_args and -Dcpp_args (for CFLAGS and CXXFLAGS respectively) these are read by meson, meson configure, and meson reconfigure. Dylan signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] last call for autotools
Quoting Marek Olšák (2018-12-12 12:42:01) > Most assertions and checks are enabled, because NDEBUG is not defined, but > DEBUG is not defined either, which is a Mesa-specific definition. > > The default debug build for autotools is debugoptimized (-g -O2 -DDEBUG). > meson > changed that behavior by removing -DDEBUG. Autotools doesn't have what meson > calls "debug", which indicates that most people don't want to use "debug" > much. > People who wanted to -O0 had to set CFLAGS. Now people who want the autotools > debug build have to add -DDEBUG into CFLAGS. > > On top of that, I discovered a 3rd issue with meson: > * meson --reconfigure doesn't re-run llvm-config. > > Marek Don't use --reconfigure, you're abusing it to get it to do what you want. --reconfigure is for handling cases where an option has been removed or renamed and meson can't figure out how to fix it itself, so you smash it with a hammer. meson configure has an option to force llvm-config (and all dependencies) to be rechecked. In your wrapper script you'd be better off with something like: if [ ! -a $BUILDDIR ]; then meson $BUILDDIR $OPTIONS else meson configure $BUILDDIR $OPTIONS --clearcache fi Dylan signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] last call for autotools
Quoting Marek Olšák (2018-12-12 14:27:21) > On Wed, Dec 12, 2018 at 5:14 PM Dylan Baker wrote: > > Quoting Marek Olšák (2018-12-12 12:42:01) > > Most assertions and checks are enabled, because NDEBUG is not defined, > but > > DEBUG is not defined either, which is a Mesa-specific definition. > > > > The default debug build for autotools is debugoptimized (-g -O2 > -DDEBUG). > meson > > changed that behavior by removing -DDEBUG. Autotools doesn't have what > meson > > calls "debug", which indicates that most people don't want to use > "debug" > much. > > People who wanted to -O0 had to set CFLAGS. Now people who want the > autotools > > debug build have to add -DDEBUG into CFLAGS. > > > > On top of that, I discovered a 3rd issue with meson: > > * meson --reconfigure doesn't re-run llvm-config. > > > > Marek > > Don't use --reconfigure, you're abusing it to get it to do what you want. > --reconfigure is for handling cases where an option has been removed or > renamed > and meson can't figure out how to fix it itself, so you smash it with a > hammer. > meson configure has an option to force llvm-config (and all dependencies) > to be > rechecked. In your wrapper script you'd be better off with something like: > > if [ ! -a $BUILDDIR ]; then > meson $BUILDDIR $OPTIONS > else > meson configure $BUILDDIR $OPTIONS --clearcache > fi > > > I'll just do rm -r $BUILDDIR instead of relying on various options that might > get broken. > > Marek If that's what you want to do. Dylan signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev