Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update readme.md #5

Merged
merged 220 commits into from
Feb 14, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
220 commits
Select commit Hold shift + click to select a range
a30b521
Adds two new tests to GPU driver test screen: Adreno shader logic tes…
hrydgard Jan 17, 2021
02a771c
Add texture to flat shaded test.
hrydgard Jan 17, 2021
3779ea0
Compat: Note that 3 LEGO games those are require Buffered rendering
Panderner Jan 17, 2021
ca50077
More GPU test improvements
hrydgard Jan 17, 2021
abbc8a0
Merge pull request #13937 from Panderner/lego-buffered
hrydgard Jan 17, 2021
c8bbf40
GL FB readback: Only use "inout" if we actually want to read from the…
hrydgard Jan 17, 2021
a88f6b4
Merge pull request #13928 from hrydgard/more-gpu-driver-tests
hrydgard Jan 17, 2021
e0b784f
Headless: Allow screenshot compare without backend.
unknownbrackets Jan 18, 2021
3306ac1
Headless: Read expected file as a FileLoader.
unknownbrackets Jan 18, 2021
f9ef03b
Headless: Allow PNGs and http:// for screenshot.
unknownbrackets Jan 18, 2021
a964615
Headless: Disable http disk cache.
unknownbrackets Jan 18, 2021
70d9213
Headless: Simplify executing a ppdmp via headless.
unknownbrackets Jan 18, 2021
c84cbdd
Headless: Default to PNG for ppdmp tests.
unknownbrackets Jan 18, 2021
60b354a
GPU: Fix safe size checks when rect offscreen.
unknownbrackets Jan 18, 2021
d70214c
Merge pull request #13939 from unknownbrackets/headless
hrydgard Jan 18, 2021
48bb797
Merge pull request #13941 from unknownbrackets/safesize
hrydgard Jan 18, 2021
97b68e6
Vulkan: Prevent scaling shader leak.
unknownbrackets Jan 18, 2021
cf797d8
Merge pull request #13944 from unknownbrackets/vulkan-scaling
hrydgard Jan 18, 2021
a78472b
Compat: Enable reinterpret for Kingdom Hearts.
unknownbrackets Jan 18, 2021
679a952
Merge pull request #13945 from unknownbrackets/kh-reinterpret
hrydgard Jan 18, 2021
de3277c
Debugger: Add API to trigger buttons.
unknownbrackets Jan 19, 2021
f97df5d
Debugger: Broadcast ctrl input events.
unknownbrackets Jan 19, 2021
1148e6e
Debugger: Include all press states for convenience.
unknownbrackets Jan 19, 2021
dd2bd55
Kernel: Adjust sceKernelGetThreadExitStatus timing.
unknownbrackets Jan 19, 2021
9a94031
Merge pull request #13947 from unknownbrackets/kernel-timing
hrydgard Jan 19, 2021
4595fcd
Merge pull request #13946 from unknownbrackets/debugger-input
hrydgard Jan 19, 2021
dc34bea
PGF Fixed Bold & Italic property and camouflage the Font name.
nassau-tk Jan 19, 2021
6ef196f
Merge pull request #13948 from nassau-tk/pgf-fixproperty-fakename
hrydgard Jan 19, 2021
6204754
Oops! I misstook uploading jpn0.pgf.
nassau-tk Jan 20, 2021
b76e906
Merge pull request #13953 from nassau-tk/jpn0-miss-up-fix
hrydgard Jan 20, 2021
64a51e1
Resample all mp3
sum2012 Jan 22, 2021
f1ccccd
Fix Russian (Cyrillic alphabet) on jpn0.pgf.
nassau-tk Jan 22, 2021
46e19cf
Merge pull request #13960 from nassau-tk/pgf-fixjpn0-russian
hrydgard Jan 22, 2021
8c4f11c
Some marks position fixed on jpn0.pgf
nassau-tk Jan 22, 2021
3aa099f
Merge pull request #13961 from nassau-tk/pgf-fixjpn0-mark
hrydgard Jan 22, 2021
8a1b0bd
build fix
sum2012 Jan 23, 2021
0b666d0
PPGe: Scale down by worst of window/internal res.
unknownbrackets Jan 23, 2021
d0c3a5a
compat.ini: Add Split/Second to [ReinterpretFramebuffers]. See #13957
hrydgard Jan 23, 2021
b856b5c
Merge pull request #13962 from unknownbrackets/ppge-shrink
hrydgard Jan 23, 2021
510aaa1
Plugins: Enable by default.
unknownbrackets Jan 23, 2021
938d752
Merge pull request #13963 from unknownbrackets/plugins-config
hrydgard Jan 23, 2021
25a0928
Resample only in 32000Hz
sum2012 Jan 23, 2021
6e2430f
Fix Greek characters & Roman numbers & all balance on jpn0.pgf
nassau-tk Jan 24, 2021
a8a60d3
Merge pull request #13959 from sum2012/mp3_minor
hrydgard Jan 24, 2021
5686b3a
Merge pull request #13965 from nassau-tk/pgf-fixjpn0-Greek
hrydgard Jan 24, 2021
964b8bf
Do PtpConnect internally during PtpOpen, since some games (ie. The Wa…
anr2me Jan 24, 2021
6b110af
Fix returned error code on PtpSend and PtpRecv when socket is not con…
anr2me Jan 24, 2021
65af16b
Merge pull request #13967 from ANR2ME/adhoc
anr2me Jan 24, 2021
960e2da
OpenGL fragment shader gen: Fix precision inconsistency for v_color0/1.
hrydgard Jan 24, 2021
7819195
Fix duplicate shader version in the flat shader test
hrydgard Jan 24, 2021
c7bf68c
Io: Don't allow async close while async busy.
unknownbrackets Jan 24, 2021
db76f61
Merge pull request #13969 from unknownbrackets/io-async
hrydgard Jan 24, 2021
c91a3a3
GE: Better naming of render passes for color reinterpret
hrydgard Jan 24, 2021
9857e8d
GPU: Respect stencil write mask for 5551 buffers.
unknownbrackets Jan 24, 2021
0e25f6a
D3D9: Don't allow separate alpha clears.
unknownbrackets Jan 25, 2021
acbe057
Reporting: Expose CRC queue methods for other uses.
unknownbrackets Jan 25, 2021
136c861
Merge pull request #13972 from unknownbrackets/clear-stencil
hrydgard Jan 25, 2021
3d813ae
Don't allow ForcedFirstConnect hack when using PtpConnect within PtpO…
anr2me Jan 25, 2021
72cc39f
sceMp3Init:Add layerBits and versionBits information
sum2012 Jan 25, 2021
e7e36ca
Add header information
sum2012 Jan 25, 2021
4eee5df
Merge pull request #13977 from sum2012/mp3_minor2
hrydgard Jan 25, 2021
1df5202
Merge pull request #13976 from ANR2ME/adhoc
anr2me Jan 25, 2021
1b843ef
Merge pull request #13974 from unknownbrackets/crc-simple
hrydgard Jan 25, 2021
6798d53
GLES: Remove direct khrplatform.h header include.
unknownbrackets Jan 26, 2021
de5488d
Mp3: Correct error handling for newer sdk versions.
unknownbrackets Jan 26, 2021
ff7e71f
Merge pull request #13979 from unknownbrackets/gl-header
hrydgard Jan 26, 2021
463fc3c
Mp3: Allow decode without pcm pointer.
unknownbrackets Jan 26, 2021
74f3542
Add back XCode TARGETED_DEVICE_FAMILY config line
hrydgard Jan 26, 2021
4b4be0f
Mp3: Always keep sample rate from original mp3.
unknownbrackets Jan 27, 2021
46397c4
Updated GameMode initial data sync, in case remote players aren't lis…
anr2me Jan 27, 2021
ad84e4a
Merge pull request #13982 from ANR2ME/adhoc
hrydgard Jan 27, 2021
8a437b2
Mp3: Correct logging for init.
unknownbrackets Jan 27, 2021
97e7a28
Merge pull request #13981 from unknownbrackets/mp3-sdkver
hrydgard Jan 27, 2021
c0c8329
Remove duplicates from ThreadManForKernel
Florin9doi Jan 27, 2021
a2023a1
Merge pull request #13983 from Florin9doi/thread_dups
hrydgard Jan 27, 2021
c99b4b1
Vulkan: Add MMPX upscaling texture shader.
unknownbrackets Jan 28, 2021
c630d36
Vulkan: Allow tex shaders to specify a max scale.
unknownbrackets Jan 28, 2021
6b083aa
Merge pull request #13986 from unknownbrackets/tex-mmpx
hrydgard Jan 28, 2021
bcd7856
Specify MaxScale=2 for the new MMPX texture scaling shader
hrydgard Jan 28, 2021
5742f2f
Fix Greek characters ltn0~7.pgf
nassau-tk Jan 28, 2021
a690127
Merge pull request #13992 from nassau-tk/pgf-fixltn0to7-Greek
hrydgard Jan 28, 2021
2b1c7f0
gitlab ci change requested by m4xw
hrydgard Jan 28, 2021
4c203c5
FindFFmpeg: Fix a few issues
glebm Jan 29, 2021
8471a31
Merge pull request #13994 from glebm/fix-find-ffmpeg
hrydgard Jan 29, 2021
32aa4bf
(.gitlab-ci.yml) Add windows-x64 target
jdgleaver Jan 29, 2021
1e0dc11
Merge pull request #13998 from jdgleaver/gitlab-windows
hrydgard Jan 29, 2021
6bc3cb4
Mpeg:Only allow firmware >= 3 for warmup
sum2012 Jan 29, 2021
02f1b64
Try to build fix on non-windows
sum2012 Jan 29, 2021
5484907
Merge pull request #13999 from sum2012/mpeg_minor
hrydgard Jan 29, 2021
3bd3046
CMake: Add USE_UBSAN
glebm Jan 29, 2021
0fb42e0
CMake: Rename USE_ADDRESS_SANITIZER to USE_ASAN
glebm Jan 29, 2021
08dbec5
CMake: Fix UBSAN link error
glebm Jan 29, 2021
da40ed6
Fix Russian characters ltn8~15.pgf
nassau-tk Jan 30, 2021
093a36e
Fix alignment issues in ISOFileSystem
glebm Jan 30, 2021
c179cad
jit: Make branch shift more obvious.
unknownbrackets Jan 30, 2021
2399214
Merge pull request #14001 from glebm/ubsan
hrydgard Jan 30, 2021
d907906
Fix connection issue on Dynasty Warriors (Shin Sangoku Musou) games w…
anr2me Jan 28, 2021
e7aeeb9
Merge pull request #14009 from unknownbrackets/branch-shift
hrydgard Jan 30, 2021
0af0aed
Merge pull request #14008 from glebm/fix-align-filesystem
hrydgard Jan 30, 2021
dea573a
Merge pull request #14007 from nassau-tk/pgf-fixltn8to15-Russian
hrydgard Jan 30, 2021
c18142b
Merge pull request #13997 from ANR2ME/adhoc
hrydgard Jan 30, 2021
c251d69
Minimize the Adreno shader compiler bug repro test
hrydgard Jan 30, 2021
c176856
Fix left shift of negative value in MIPSCodeUtils
glebm Jan 30, 2021
7305ba9
x64Emitter: Fix unaligned store UBSAN errors
glebm Jan 30, 2021
a367191
Merge pull request #14017 from glebm/fix-ubsan-neg-shift-mips-code-utils
hrydgard Jan 30, 2021
53b249f
Merge pull request #14018 from glebm/fix-ubsan-warning-x64-emitter
hrydgard Jan 30, 2021
f372a21
Fix logging flags
glebm Jan 30, 2021
58f1905
Attempt to fix #14022
hrydgard Jan 30, 2021
09b02a8
Merge pull request #14019 from glebm/fix-log-flags
hrydgard Jan 30, 2021
1eeebcc
Fix Apple gpu detection
hrydgard Jan 30, 2021
e397754
Core: Correct branch analysis truncation.
unknownbrackets Jan 30, 2021
e99c69f
jit: Be very clear on sign extension.
unknownbrackets Jan 30, 2021
d12d890
Merge pull request #14023 from hrydgard/ubsan-shift32-fix
unknownbrackets Jan 30, 2021
892ab51
Only force the log level if it set via an argv
glebm Jan 30, 2021
c84ddaa
Merge pull request #14027 from unknownbrackets/mips-cleanup
hrydgard Jan 30, 2021
49e9400
Io: Consistently use LE values of ISO entries.
unknownbrackets Jan 30, 2021
de02c7e
Merge pull request #14028 from glebm/fix-log-flags-2
hrydgard Jan 30, 2021
c48bdf7
Vulkan: Fix image layout issues after compute shader uploads.
hrydgard Jan 30, 2021
719aae4
Merge pull request #14029 from unknownbrackets/iso-endian
hrydgard Jan 30, 2021
8205f9b
Merge pull request #14030 from hrydgard/fix-mipmap-transition-issue
unknownbrackets Jan 30, 2021
1d2150d
Mpeg:Only allow firmware >= 6 for warmup
sum2012 Jan 31, 2021
5041a89
Ge: Improve some logging and memchecks.
unknownbrackets Jan 31, 2021
f2ad475
Ge: Restore saved context when ending a list.
unknownbrackets Jan 31, 2021
95a14be
Merge pull request #14034 from unknownbrackets/ge-pause
hrydgard Jan 31, 2021
ce2e47f
Merge pull request #14033 from sum2012/warmup_patch6
hrydgard Jan 31, 2021
e15064b
Framedump test screen. Downloads a list of framedumps.
hrydgard Jan 31, 2021
ae50534
Add a new command in developer tools to list and load framedumps from…
hrydgard Jan 31, 2021
d7de08c
Add checkbox to enable/disable driver bug workarounds.
hrydgard Jan 31, 2021
5e501fa
Fix minor rendering glitch in PPSSPP's menus on iOS
hrydgard Jan 31, 2021
294f530
Have the flat shading workaround obey the driver workarounds checkbox
hrydgard Jan 31, 2021
a6b9744
Merge pull request #14037 from hrydgard/framedump-test
hrydgard Jan 31, 2021
a20c972
Loaders: Prevent errors on 0 byte reads.
unknownbrackets Jan 31, 2021
2a545a3
Core: Maintain frame dump disc ID in SFO.
unknownbrackets Jan 31, 2021
dfbde19
Merge pull request #14039 from unknownbrackets/ge-frame-dump
hrydgard Jan 31, 2021
ddff063
vertexjit: Correct saved registers on x64.
unknownbrackets Jan 31, 2021
cc4d047
Core: Assert debug stats remain positive.
unknownbrackets Jan 31, 2021
30b6f1f
Merge pull request #14043 from unknownbrackets/vertexjit-abi
unknownbrackets Jan 31, 2021
c1fa495
vertexjit: Only save extra regs on x64.
unknownbrackets Feb 1, 2021
a51036f
Updated PdpStat and PtpStat
anr2me Feb 1, 2021
d73456e
Merge pull request #14050 from ANR2ME/adhoc
hrydgard Feb 1, 2021
875de39
Update README.md for 1.11
hrydgard Jan 30, 2021
cfb29f6
Address initial feedback by iota97
hrydgard Jan 30, 2021
8adff97
List fixed games. Thanks sum2012
hrydgard Jan 30, 2021
b2a803a
More from unknown and sum2012
hrydgard Jan 31, 2021
5037483
More stuff in README.md
hrydgard Feb 3, 2021
580c0d3
(.gitlab-ci.yml) Add linux-i686 and windows-i686 targets (+ prevent c…
jdgleaver Feb 3, 2021
b7e1e9a
Merge pull request #14059 from jdgleaver/gitlab-32bit
hrydgard Feb 3, 2021
f2e7a2a
Fix possible lock issue during AdhocMatchingStart
anr2me Feb 4, 2021
849fe4a
Updated PdpStat to prevent rcv_sb_cc from exceeding the buffer size a…
anr2me Feb 4, 2021
17d2a31
UI: Correct developer tools test run.
unknownbrackets Feb 4, 2021
1115037
Merge pull request #14061 from unknownbrackets/ui-tests
hrydgard Feb 4, 2021
5fe6492
Make a couple of UI animations refresh rate independent
hrydgard Feb 4, 2021
d3d5ff0
Merge pull request #14060 from ANR2ME/adhoc
hrydgard Feb 4, 2021
aca9953
Core: Reset state properly on CPU init failure.
unknownbrackets Feb 5, 2021
7f996f5
Windows: Prevent crash on null symbol map.
unknownbrackets Feb 5, 2021
5babc1a
Merge pull request #14062 from unknownbrackets/ui-load-error
hrydgard Feb 5, 2021
79c30ee
We don't really need to allocate a buffer when using MSG_TRUNC on rec…
anr2me Feb 5, 2021
a7eccc0
Minor renaming
anr2me Feb 5, 2021
ddc122b
Moving hleDelayResult from internal function of SetSocketAlert to pre…
anr2me Feb 5, 2021
04434ea
Fix possible race condition issue.
anr2me Feb 5, 2021
42f28ce
Fix jpn0.pgf characters position.
nassau-tk Feb 6, 2021
ef24aa6
Debugger: Populate funcs if disassembly open early.
unknownbrackets Feb 6, 2021
47523a0
PPGe: Fallback to atlas text on alloc fail.
unknownbrackets Feb 6, 2021
839be8e
PPGe: Clear text allocations on shutdown.
unknownbrackets Feb 6, 2021
f17d387
Updated some Logs to help finding the location of the call to debug.
anr2me Feb 7, 2021
8432d6c
Removing hleDelayResult from internal adhoc functions to prevent waki…
anr2me Feb 7, 2021
93478e0
Merge pull request #14067 from unknownbrackets/ppge-text-alloc
hrydgard Feb 7, 2021
9459690
Merge pull request #14066 from unknownbrackets/debugger-funcs
hrydgard Feb 7, 2021
5d97f3c
Merge pull request #14064 from nassau-tk/pgf-fixjpn0
hrydgard Feb 7, 2021
e83b4f0
Merge pull request #14072 from ANR2ME/adhoc
hrydgard Feb 7, 2021
87831f9
Run the link script
hrydgard Feb 7, 2021
3fbcf16
Run the link script, fixups
hrydgard Feb 7, 2021
3a15a3d
Merge pull request #14011 from hrydgard/readme-1.11
hrydgard Feb 7, 2021
77d2e9b
Update lang,pspautotests submodules
hrydgard Feb 7, 2021
ed8188e
Do the title screen animation by accumulator instead, to avoid a long…
hrydgard Feb 7, 2021
76a568a
Update version to 1.11
hrydgard Feb 7, 2021
c87b53a
PPGe: Decimate text images properly.
unknownbrackets Feb 8, 2021
b539ce8
Merge pull request #14078 from unknownbrackets/ppge-alloc
hrydgard Feb 8, 2021
b4f7035
Add more games to ReportSmallMemStick
Anuskuss Feb 9, 2021
6b4356a
Handle exec addr errors better - don't let IgnoreBadMemoryAccesses sk…
hrydgard Feb 9, 2021
f6b2070
Cause the correct type of exception. Never ignore EXEC_ADDR exceptions.
hrydgard Feb 9, 2021
6db8270
Buildfix
hrydgard Feb 9, 2021
252160b
GL: Call CreateDeviceObjects *after* updating render_.
hrydgard Feb 9, 2021
4b67fe4
Remove now-redundant check
hrydgard Feb 9, 2021
c4a4fbd
Merge pull request #14089 from hrydgard/opengl-restore-fix
hrydgard Feb 9, 2021
b127aac
Only allow sceMpegGetAvcAu warmup for God Eater Series
sum2012 Feb 9, 2021
3af26a2
Merge pull request #14085 from hrydgard/catch-bad-exec-addr
hrydgard Feb 9, 2021
8b05561
Merge pull request #14091 from sum2012/mpeg_god_eater
hrydgard Feb 9, 2021
8b101ae
Rename the new warmup variable from #14091
hrydgard Feb 9, 2021
45f3f45
SaveState: Prevent crash on bad cookie marker.
unknownbrackets Feb 9, 2021
242e590
Merge pull request #14092 from unknownbrackets/savestate
hrydgard Feb 9, 2021
f1ba919
Update lang submodule (it_IT updates)
hrydgard Feb 9, 2021
6d8b4b8
Merge pull request #14087 from Anuskuss/patch-1
hrydgard Feb 9, 2021
caa58c6
Remove a completely unnecessary check in BackgroundAudio.cpp that cau…
hrydgard Feb 9, 2021
c76fe9c
Assorted paranoid cleanups, inspired by #14082
hrydgard Feb 9, 2021
7095115
Merge pull request #14101 from hrydgard/menu-audio-glitchfix
hrydgard Feb 9, 2021
fc452c0
Fix frozen (0 FPS) issue on Kao Challengers and Asterix & Obelix XX (…
anr2me Feb 10, 2021
0ce2c2c
Windows recvfrom doesn't support MSG_TRUNC, so we're using dummy buff…
anr2me Feb 10, 2021
5c6251a
Merge pull request #14106 from ANR2ME/adhoc
hrydgard Feb 11, 2021
dd303ad
Update zh_CN and zh_TW
sum2012 Feb 11, 2021
2cfcd34
Merge pull request #14115 from sum2012/lang_
hrydgard Feb 11, 2021
5a10835
Fix lobby issue on The Warriors, probably also fix similar issue on o…
anr2me Feb 11, 2021
46c6f33
Merge pull request #14117 from ANR2ME/adhoc
hrydgard Feb 11, 2021
f4fb4f8
Update README.md for 1.11.1
hrydgard Feb 11, 2021
894cb9f
Slight simplification in LogoScreen
hrydgard Feb 11, 2021
d1c4b86
Update version to 1.11.1
hrydgard Feb 11, 2021
2864ff1
Some GLSL compilers are very particular about the sign of shift opera…
hrydgard Feb 12, 2021
104d7e1
Revert (partially) "compat.ini: Add Split/Second to [ReinterpretFrame…
hrydgard Feb 12, 2021
5aa3e31
GPU: Force reinterpret off without copy image.
unknownbrackets Feb 13, 2021
d23bef1
Merge pull request #14129 from unknownbrackets/gpu-copyimage
hrydgard Feb 13, 2021
c8dfa09
Add some checks trying to prevent creation of 0 sized textures.
hrydgard Feb 13, 2021
69d621d
Update lang submodule
hrydgard Feb 13, 2021
788e8c3
Io: Truncate reads/writes to valid memory.
unknownbrackets Feb 13, 2021
14e3df6
Merge pull request #14132 from unknownbrackets/io-validsize
hrydgard Feb 13, 2021
f34f554
Don't assert on invalid format in CwCheat.
hrydgard Feb 13, 2021
29171d2
Build: Allow on actions test branch.
unknownbrackets Feb 13, 2021
da62dde
Build: Cache Qt during Actions run.
unknownbrackets Feb 13, 2021
fb7e4ac
Android: Ensure shutdown waits for render.
unknownbrackets Feb 13, 2021
91f84ce
Merge pull request #14134 from unknownbrackets/android-render
hrydgard Feb 13, 2021
f1a7a70
Merge pull request #14135 from unknownbrackets/actions
hrydgard Feb 13, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ on:
push:
branches:
- master
# For testing.
- actions
paths-ignore:
- '*.{txt,md}'
- 'Tools/**'
Expand Down Expand Up @@ -176,9 +178,19 @@ jobs:
with:
submodules: recursive

- name: Cache Qt
uses: actions/cache@v1
if: matrix.extra == 'qt'
id: cache-qt
with:
path: ${{ runner.workspace }}/Qt
key: ${{ runner.os }}-QtCache

- name: Install Qt
uses: jurplel/install-qt-action@v2
if: matrix.extra == 'qt'
with:
cached: ${{ steps.cache-qt.outputs.cache-hit }}

- uses: nttld/setup-ndk@v1
if: matrix.extra == 'android'
Expand Down
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,3 @@ debian/ppsspp/

# RenderDoc
*.rdc

# bad output from libretro. don't want to accidentally add it
nul
33 changes: 28 additions & 5 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,26 +11,49 @@ variables:
variables:
EXTRA_PATH: lib

.windows-defs:
variables:
MAKEFILE_PATH: libretro

include:
- template: Jobs/Code-Quality.gitlab-ci.yml
- project: 'libretro-infrastructure/ci-templates'
file: '/android-cmake.yml'
- project: 'libretro-infrastructure/ci-templates'
file: '/linux-cmake.yml'
- project: 'libretro-infrastructure/ci-templates'
file: '/windows-x64-msvc19-msys2.yml'
- project: 'libretro-infrastructure/ci-templates'
file: '/windows-i686-msvc19-msys2.yml'

stages:
- build-prepare
- build-shared
- build-static
- test

#Desktop
libretro-build-linux-x86_64:
# Desktop
libretro-build-linux-x64:
extends:
- .libretro-linux-cmake-x86_64
- .core-defs
- .linux-defs

libretro-build-linux-i686:
extends:
- .libretro-linux-cmake-x86
- .core-defs
- .linux-defs

libretro-build-windows-x64:
extends:
- .libretro-windows-x64-msvc19-msys2-make-default
- .core-defs
- .windows-defs

libretro-build-windows-i686:
extends:
- .libretro-windows-i686-msvc19-msys2-make-default
- .core-defs
- .windows-defs

# Android
libretro-build-android-armeabi-v7a:
extends:
Expand Down
27 changes: 23 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,8 @@ option(USE_MINIUPNPC "Build with miniUPnPc support" ON)
option(USE_SYSTEM_SNAPPY "Dynamically link against system snappy" ${USE_SYSTEM_SNAPPY})
option(USE_SYSTEM_FFMPEG "Dynamically link against system FFMPEG" ${USE_SYSTEM_FFMPEG})
option(USE_SYSTEM_LIBZIP "Dynamically link against system libzip" ${USE_SYSTEM_LIBZIP})
option(USE_ADDRESS_SANITIZER "Use Clang memory sanitizer" ${USE_ADDRESS_SANITIZER})
option(USE_ASAN "Use address sanitizer" OFF)
option(USE_UBSAN "Use undefined behaviour sanitizer" OFF)

if(UNIX AND NOT (APPLE OR ANDROID) AND VULKAN)
if(USING_X11_VULKAN)
Expand Down Expand Up @@ -272,11 +273,24 @@ if(NOT MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-switch -Wno-uninitialized")
endif()

if(USE_ADDRESS_SANITIZER)
if(USE_ASAN)
message("Address sanitizer enabled (DEBUG only)")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -fsanitize=address")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=address")
set(CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fsanitize=address")
add_definitions(-DUSE_ADDRESS_SANITIZER)
add_definitions(-DUSE_ASAN)
endif()
if(USE_UBSAN)
message("Undefined behaviour sanitizer enabled (DEBUG only)")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=undefined")
set(CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fsanitize=undefined")

# UBSAN is a collection of sanitizers, including vtpr, which reqiuires RTTI.
# ext/glslang disables RTTI by default using the `ENABLE_RTTI` option.
# If RTTI is disabled, we must also disable the vtpr sanitizer.
if(NOT ENABLE_RTTI)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-sanitize=vptr")
set(CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fno-sanitize=vptr")
endif()
endif()

set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -D_DEBUG")
Expand Down Expand Up @@ -1492,6 +1506,10 @@ add_library(${CoreLibName} ${CoreLinkType}
Core/Debugger/WebSocket/GPURecordSubscriber.h
Core/Debugger/WebSocket/HLESubscriber.cpp
Core/Debugger/WebSocket/HLESubscriber.h
Core/Debugger/WebSocket/InputBroadcaster.cpp
Core/Debugger/WebSocket/InputBroadcaster.h
Core/Debugger/WebSocket/InputSubscriber.cpp
Core/Debugger/WebSocket/InputSubscriber.h
Core/Debugger/WebSocket/LogBroadcaster.cpp
Core/Debugger/WebSocket/LogBroadcaster.h
Core/Debugger/WebSocket/MemorySubscriber.cpp
Expand Down Expand Up @@ -2186,6 +2204,7 @@ if(IOS)
RESOURCE "ios/Settings.bundle"
RESOURCE "MoltenVK/iOS/Frameworks"
XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET ${DEPLOYMENT_TARGET}
XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "iPhone/iPad"
XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES
XCODE_ATTRIBUTE_ENABLE_BITCODE NO
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "-"
Expand Down
3 changes: 0 additions & 3 deletions Common/GPU/OpenGL/GLCommon.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,6 @@
#elif defined(USING_GLES2)
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
// At least Nokia platforms need the three below
#include <KHR/khrplatform.h>
typedef char GLchar;
#define GL_BGRA_EXT 0x80E1
#else // OpenGL
#include "GL/glew.h"
Expand Down
4 changes: 3 additions & 1 deletion Common/GPU/OpenGL/GLFeatures.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ void CheckGLExtensions() {
// Just for reference: Galaxy Y has renderer == "VideoCore IV HW"
} else if (vendor == "Vivante Corporation") {
gl_extensions.gpuVendor = GPU_VENDOR_VIVANTE;
} else if (vendor == "Apple Inc.") {
} else if (vendor == "Apple Inc." || vendor == "Apple") {
gl_extensions.gpuVendor = GPU_VENDOR_APPLE;
} else {
WARN_LOG(G3D, "Unknown GL vendor: '%s'", vendor.c_str());
Expand Down Expand Up @@ -594,6 +594,8 @@ std::string ApplyGLSLPrelude(const std::string &source, uint32_t stage) {
if (!gl_extensions.IsGLES && gl_extensions.IsCoreContext) {
// We need to add a corresponding #version. Apple drivers fail without an exact match.
version = StringFromFormat("#version %d\n", gl_extensions.GLSLVersion());
} else if (gl_extensions.IsGLES && gl_extensions.GLES3) {
version = StringFromFormat("#version %d es\n", gl_extensions.GLSLVersion());
}
if (stage == GL_FRAGMENT_SHADER) {
temp = version + glsl_fragment_prelude + source;
Expand Down
2 changes: 2 additions & 0 deletions Common/GPU/OpenGL/GLQueueRunner.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1369,12 +1369,14 @@ void GLQueueRunner::PerformCopy(const GLRStep &step) {

#if defined(USING_GLES2)
#ifndef IOS
_assert_msg_(gl_extensions.OES_copy_image || gl_extensions.NV_copy_image || gl_extensions.EXT_copy_image, "Image copy extension expected");
glCopyImageSubDataOES(
srcTex, target, srcLevel, srcRect.x, srcRect.y, srcZ,
dstTex, target, dstLevel, dstPos.x, dstPos.y, dstZ,
srcRect.w, srcRect.h, depth);
#endif
#else
_assert_msg_(gl_extensions.ARB_copy_image || gl_extensions.NV_copy_image, "Image copy extension expected");
if (gl_extensions.ARB_copy_image) {
glCopyImageSubData(
srcTex, target, srcLevel, srcRect.x, srcRect.y, srcZ,
Expand Down
6 changes: 3 additions & 3 deletions Common/GPU/OpenGL/thin3d_gl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ class OpenGLPipeline : public Pipeline {

// TODO: Optimize by getting the locations first and putting in a custom struct
UniformBufferDesc dynamicUniforms;
GLint samplerLocs_[8];
GLint samplerLocs_[8]{};
std::vector<GLint> dynamicUniformLocs_;
GLRProgram *program_ = nullptr;

Expand Down Expand Up @@ -1038,8 +1038,8 @@ Pipeline *OpenGLContext::CreateGraphicsPipeline(const PipelineDesc &desc) {
ERROR_LOG(G3D, "Pipeline requires at least one shader");
return nullptr;
}
if ((int)desc.prim >= (int)Primitive::PRIMITIVE_TYPE_COUNT) {
ERROR_LOG(G3D, "Invalid primitive type");
if ((uint32_t)desc.prim >= (uint32_t)Primitive::PRIMITIVE_TYPE_COUNT) {
ERROR_LOG(G3D, "Invalid primitive type");
return nullptr;
}
if (!desc.depthStencil || !desc.blend || !desc.raster) {
Expand Down
5 changes: 5 additions & 0 deletions Common/GPU/Vulkan/VulkanDebug.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,11 @@ VKAPI_ATTR VkBool32 VKAPI_CALL VulkanDebugUtilsCallback(
// UNASSIGNED-CoreValidation-Shader-OutputNotConsumed - benign perf warning
return false;
}
if (messageCode == 1303270965) {
// Benign perf warning, image blit using GENERAL layout.
// UNASSIGNED
return false;
}

const char *pLayerPrefix = "";
if (messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT) {
Expand Down
20 changes: 15 additions & 5 deletions Common/GPU/Vulkan/VulkanImage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ static bool IsDepthStencilFormat(VkFormat format) {
}

bool VulkanTexture::CreateDirect(VkCommandBuffer cmd, VulkanDeviceAllocator *allocator, int w, int h, int numMips, VkFormat format, VkImageLayout initialLayout, VkImageUsageFlags usage, const VkComponentMapping *mapping) {
if (w == 0 || h == 0 || numMips == 0) {
ERROR_LOG(G3D, "Can't create a zero-size VulkanTexture");
return false;
}

Wipe();

width_ = w;
Expand Down Expand Up @@ -196,7 +201,8 @@ void VulkanTexture::ClearMip(VkCommandBuffer cmd, int mip, uint32_t value) {
vkCmdClearColorImage(cmd, image_, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, &clearVal, 1, &range);
}

void VulkanTexture::GenerateMip(VkCommandBuffer cmd, int mip) {
// Low-quality mipmap generation by bilinear blit, but works okay.
void VulkanTexture::GenerateMip(VkCommandBuffer cmd, int mip, VkImageLayout imageLayout) {
_assert_msg_(mip != 0, "Cannot generate the first level");
_assert_msg_(mip < numMips_, "Cannot generate mipmaps past the maximum created (%d vs %d)", mip, numMips_);
VkImageBlit blit{};
Expand All @@ -214,16 +220,20 @@ void VulkanTexture::GenerateMip(VkCommandBuffer cmd, int mip) {
blit.dstOffsets[1].y = height_ >> mip;
blit.dstOffsets[1].z = 1;

// TODO: We could do better with the image transitions - would be enough with one per level
// for the memory barrier, then one final one for the whole stack when done. This function
// currently doesn't have a global enough view, though.
// We should also coalesce barriers across multiple texture uploads in a frame and all kinds of other stuff, but...

TransitionImageLayout2(cmd, image_, mip - 1, 1, VK_IMAGE_ASPECT_COLOR_BIT,
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
imageLayout, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT,
VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_TRANSFER_READ_BIT);

// Low-quality mipmap generation, but works okay.
vkCmdBlitImage(cmd, image_, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, image_, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, &blit, VK_FILTER_LINEAR);
vkCmdBlitImage(cmd, image_, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, image_, imageLayout, 1, &blit, VK_FILTER_LINEAR);

TransitionImageLayout2(cmd, image_, mip - 1, 1, VK_IMAGE_ASPECT_COLOR_BIT,
VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, imageLayout,
VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT,
VK_ACCESS_TRANSFER_READ_BIT, VK_ACCESS_TRANSFER_WRITE_BIT);
}
Expand Down
2 changes: 1 addition & 1 deletion Common/GPU/Vulkan/VulkanImage.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class VulkanTexture {
bool CreateDirect(VkCommandBuffer cmd, VulkanDeviceAllocator *allocator, int w, int h, int numMips, VkFormat format, VkImageLayout initialLayout, VkImageUsageFlags usage = VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT, const VkComponentMapping *mapping = nullptr);
void ClearMip(VkCommandBuffer cmd, int mip, uint32_t value);
void UploadMip(VkCommandBuffer cmd, int mip, int mipWidth, int mipHeight, VkBuffer buffer, uint32_t offset, size_t rowLength); // rowLength is in pixels
void GenerateMip(VkCommandBuffer cmd, int mip);
void GenerateMip(VkCommandBuffer cmd, int mip, VkImageLayout imageLayout);
void EndCreate(VkCommandBuffer cmd, bool vertexTexture = false, VkImageLayout layout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);

// When loading mips from compute shaders, you need to pass VK_IMAGE_LAYOUT_GENERAL to the above function.
Expand Down
7 changes: 4 additions & 3 deletions Common/GPU/Vulkan/thin3d_vulkan.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ bool VKShaderModule::Compile(VulkanContext *vulkan, ShaderLanguage language, con
std::vector<uint32_t> spirv;
std::string errorMessage;
if (!GLSLtoSPV(vkstage_, source_.c_str(), GLSLVariant::VULKAN, spirv, &errorMessage)) {
INFO_LOG(G3D, "Shader compile to module failed: %s", errorMessage.c_str());
WARN_LOG(G3D, "Shader compile to module failed: %s", errorMessage.c_str());
return false;
}

Expand All @@ -231,6 +231,7 @@ bool VKShaderModule::Compile(VulkanContext *vulkan, ShaderLanguage language, con
if (vulkan->CreateShaderModule(spirv, &module_)) {
ok_ = true;
} else {
WARN_LOG(G3D, "vkCreateShaderModule failed");
ok_ = false;
}
return ok_;
Expand Down Expand Up @@ -754,7 +755,7 @@ bool VKTexture::Create(VkCommandBuffer cmd, VulkanPushBuffer *push, const Textur
}
// Generate the rest of the mips automatically.
for (; i < mipLevels_; i++) {
vkTex_->GenerateMip(cmd, i);
vkTex_->GenerateMip(cmd, i, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);
}
}
vkTex_->EndCreate(cmd, false);
Expand Down Expand Up @@ -1281,7 +1282,7 @@ ShaderModule *VKContext::CreateShaderModule(ShaderStage stage, ShaderLanguage la
if (shader->Compile(vulkan_, language, data, size)) {
return shader;
} else {
ERROR_LOG(G3D, "Failed to compile shader: %s", (const char *)data);
ERROR_LOG(G3D, "Failed to compile shader:\n%s", (const char *)data);
shader->Release();
return nullptr;
}
Expand Down
2 changes: 1 addition & 1 deletion Common/MemArenaPosix.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ void MemArena::ReleaseView(void* view, size_t size) {

u8* MemArena::Find4GBBase() {
// Now, create views in high memory where there's plenty of space.
#if PPSSPP_ARCH(64BIT) && !defined(USE_ADDRESS_SANITIZER)
#if PPSSPP_ARCH(64BIT) && !defined(USE_ASAN)
// We should probably just go look in /proc/self/maps for some free space.
// But let's try the anonymous mmap trick, just like on 32-bit, but bigger and
// aligned to 4GB for the movk trick. We can ensure that we get an aligned 4GB
Expand Down
26 changes: 26 additions & 0 deletions Common/Render/DrawBuffer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,20 @@ void DrawBuffer::DrawImage(ImageID atlas_image, float x, float y, float scale, C
DrawImageStretch(atlas_image, x, y, x + w, y + h, color);
}

void DrawBuffer::DrawImageCenterTexel(ImageID atlas_image, float x1, float y1, float x2, float y2, Color color) {
const AtlasImage *image = atlas->getImage(atlas_image);
if (!image)
return;
float centerU = (image->u1 + image->u2) * 0.5f;
float centerV = (image->v1 + image->v2) * 0.5f;
V(x1, y1, color, centerU, centerV);
V(x2, y1, color, centerU, centerV);
V(x2, y2, color, centerU, centerV);
V(x1, y1, color, centerU, centerV);
V(x2, y2, color, centerU, centerV);
V(x1, y2, color, centerU, centerV);
}

void DrawBuffer::DrawImageStretch(ImageID atlas_image, float x1, float y1, float x2, float y2, Color color) {
const AtlasImage *image = atlas->getImage(atlas_image);
if (!image)
Expand All @@ -236,6 +250,18 @@ void DrawBuffer::DrawImageStretch(ImageID atlas_image, float x1, float y1, float
V(x1, y2, color, image->u1, image->v2);
}

void DrawBuffer::DrawImageStretchVGradient(ImageID atlas_image, float x1, float y1, float x2, float y2, Color color1, Color color2) {
const AtlasImage *image = atlas->getImage(atlas_image);
if (!image)
return;
V(x1, y1, color1, image->u1, image->v1);
V(x2, y1, color1, image->u2, image->v1);
V(x2, y2, color2, image->u2, image->v2);
V(x1, y1, color1, image->u1, image->v1);
V(x2, y2, color2, image->u2, image->v2);
V(x1, y2, color2, image->u1, image->v2);
}

inline void rot(float *v, float angle, float xc, float yc) {
const float x = v[0] - xc;
const float y = v[1] - yc;
Expand Down
4 changes: 4 additions & 0 deletions Common/Render/DrawBuffer.h
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,11 @@ class DrawBuffer {
const Atlas *GetAtlas() const { return atlas; }
bool MeasureImage(ImageID atlas_image, float *w, float *h);
void DrawImage(ImageID atlas_image, float x, float y, float scale, Color color = COLOR(0xFFFFFF), int align = ALIGN_TOPLEFT);

// Good for stretching out a white image without edge artifacts that I'm getting on iOS.
void DrawImageCenterTexel(ImageID atlas_image, float x1, float y1, float x2, float y2, Color color = COLOR(0xFFFFFF));
void DrawImageStretch(ImageID atlas_image, float x1, float y1, float x2, float y2, Color color = COLOR(0xFFFFFF));
void DrawImageStretchVGradient(ImageID atlas_image, float x1, float y1, float x2, float y2, Color color1, Color color2);
void DrawImageStretch(ImageID atlas_image, const Bounds &bounds, Color color = COLOR(0xFFFFFF)) {
DrawImageStretch(atlas_image, bounds.x, bounds.y, bounds.x2(), bounds.y2(), color);
}
Expand Down
2 changes: 1 addition & 1 deletion Common/Serialize/Serializer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ void PointerWrap::DoMarker(const char *prevName, u32 arbitraryNumber) {
u32 cookie = arbitraryNumber;
Do(*this, cookie);
if (mode == PointerWrap::MODE_READ && cookie != arbitraryNumber) {
_assert_msg_(false, "Error: After \"%s\", found %d (0x%X) instead of save marker %d (0x%X). Aborting savestate load...", prevName, cookie, cookie, arbitraryNumber, arbitraryNumber);
ERROR_LOG(SAVESTATE, "Error: After \"%s\", found %d (0x%X) instead of save marker %d (0x%X). Aborting savestate load...", prevName, cookie, cookie, arbitraryNumber, arbitraryNumber);
SetError(ERROR_FAILURE);
}
}
Expand Down
Loading