Package Details: pcsx2-avx-git 1.7.5720.r0.g6d8a906-1

Git Clone URL: https://aur.archlinux.org/pcsx2-avx-git.git (read-only, click to copy)
Package Base: pcsx2-avx-git
Description: Sony PlayStation 2 emulator
Upstream URL: https://github.com/PCSX2/pcsx2
Licenses: GPL-3.0-only, LGPL-3.0-only
Conflicts: pcsx2
Provides: pcsx2
Submitter: xiota
Maintainer: xiota
Last Packager: xiota
Votes: 1
Popularity: 0.21
First Submitted: 2023-12-13 14:14 (UTC)
Last Updated: 2024-04-20 14:33 (UTC)

Pinned Comments

xiota commented on 2024-01-24 03:02 (UTC) (edited on 2024-02-13 12:57 (UTC) by xiota)

Those interested in profile-guided optimization may try a time-consuming process.

  1. Make instrumented package:
    • Set environment variable or edit PKGBUILD: _build_instrumented=true
    • Resulting package: pcsx2-instrumented-avx-git
  2. Create raw profiles using instrumented package.
    • LLVM_PROFILE_FILE="default_%9m.profraw" pcsx2-qt
    • Use a "representative" sample of roms.
    • After 9 runs, profraw files will be overwritten.
  3. Process profiles:
    • llvm-profdata merge -output=pcsx2-avx-git.profdata *.profraw
  4. Rebuild package.
    • Put pcsx2-avx-git.profdata in same folder with PKGBUILD.
    • Look for message: "Compiling with profile-guided optimization."
    • Profile can be reused. Re-profile when there are too many "function control flow change" warnings.
    • Resulting package: pcsx2-avx-git

xiota commented on 2023-12-13 14:29 (UTC) (edited on 2024-01-24 02:57 (UTC) by xiota)

This package targets x86-64-v3 instructions. Performance benefit over standard builds is minimal because of dynamic dispatch.

  • Binaries available at aur.chaotic.cx

  • Avoid flagging and commenting at the same time for the same issue.

    • Flag for common issues with standard solutions, like submodule updates.
    • Comment for issues requiring explanation or debugging.
      • Use a pastebin for blocks of text more than a few lines.

Latest Comments

« First ‹ Previous 1 2 3 4 Next › Last »

xiota commented on 2024-03-03 22:52 (UTC)

@LarryDave Upstream moved it from git submodule into the repo. It should still work.

LarryDave commented on 2024-03-03 17:12 (UTC)

I see retroachievements was removed. Why? I use it a lot myself but I still compiled it. Can't tell if it still works or not.

xiota commented on 2024-02-18 22:22 (UTC) (edited on 2024-02-18 22:23 (UTC) by xiota)

@LarryDave You used commas instead of space to separate the new option. The commas make the addition part of the existing option, instead of being a separate option.

march=native produces binaries that may not work when moved to another computer (illegal instruction error). If you have only one computer, or all your computers use the exact same processor (including generation), it doesn't matter.

LarryDave commented on 2024-02-18 19:40 (UTC)

Nevermind, I guess I get it now. Passed to the linker as you said. Put it at the beginning before -W1, O1 and it worked now.

Btw, what is there reason for preventing -march=native? I replaced the x86-64-v3 mentions with rocketlake as that is what my CPU family is. Just wondering.

LarryDave commented on 2024-02-18 08:32 (UTC)

So to use mold, I don't use mold? That doesn't make sense. I just followed what the wiki said. https://wiki.archlinux.org/title/Makepkg#Using_mold_linker

To use mold, append -fuse-ld=mold to LDFLAGS.

Doesn't matter if I put -fuse-ld=mold right after -Wl,-O1 or at the very end after -z,pack-relative-relocs, it fails. Maybe I don't get it...

xiota commented on 2024-02-16 23:52 (UTC) (edited on 2024-02-16 23:56 (UTC) by xiota)

@LarryDave Your initial comment did not contain details or logs needed to reproduce the problem.

From the log, LDFLAGS in your makepkg.conf most likely contains:

-Wl,-O1,-fuse-ld=mold,--sort-common,--as-needed,-z,relro,-z,now,-z,pack-relative-relocs

-Wl contains options to pass to the linker. -fuse-ld is an option for the compiler to switch linkers. When -fuse-ld is part of -Wl, it is sent directly to the linker. Consequently, your config has been linking with ld, not mold. ld ignores -fuse-ld.

The PKGBUILD does switch linkers by passing -fuse-ld to the compiler. Both mold and lld would generate errors with your config because the extraneous option is unknown to them.

LarryDave commented on 2024-02-16 11:44 (UTC)

I mean, I don't know what to tell you. Removing -fuse-ld=mold from my /etc/makepkg.conf fixes it. Can you try having that in your own makepkg.conf rather than adding it twice with LDFLAGS+?

https://privatebin.net/?0389615227a0cd9d#B4gW4MoQy7k1PdtHBknrQkhbokNXaWvAPVaXwQLiYgwS

When I have -fuse-ld=mold in my /etc/makepkg.conf, it fails when both build_clang and build_mold is set to true. Literally the only thing I do is remove -fuse-ld=mold from my own makepkg.conf and it builds without issue.

xiota commented on 2024-02-11 02:30 (UTC)

@LarryDave I doubt duplicate use-ld options is the cause of your problem. Most compilers ignore duplicate flags, respecting the last one. I was able to build successfully with:

LDFLAGS+=" -fuse-ld=mold -fuse-ld=mold"