svn commit: r503930 - in head/emulators/rpcs3: . files
Jan Beich
jbeich at FreeBSD.org
Tue Jun 11 00:50:58 UTC 2019
Author: jbeich
Date: Tue Jun 11 00:50:56 2019
New Revision: 503930
URL: https://svnweb.freebsd.org/changeset/ports/503930
Log:
emulators/rpcs3: update to 0.0.6.8205
Changes: https://github.com/RPCS3/rpcs3/compare/2bc0ea37a...b3513cd7f
MFH: 2019Q2 (implicit for snapshots?)
Added:
head/emulators/rpcs3/files/extra-patch-revert-f9ad6358563b (contents, props changed)
head/emulators/rpcs3/files/patch-rpcs3_Emu_RSX_VK_VulkanAPI.h (contents, props changed)
Modified:
head/emulators/rpcs3/Makefile (contents, props changed)
head/emulators/rpcs3/distinfo (contents, props changed)
Modified: head/emulators/rpcs3/Makefile
==============================================================================
--- head/emulators/rpcs3/Makefile Mon Jun 10 22:48:55 2019 (r503929)
+++ head/emulators/rpcs3/Makefile Tue Jun 11 00:50:56 2019 (r503930)
@@ -2,8 +2,8 @@
PORTNAME= rpcs3
DISTVERSIONPREFIX= v
-DISTVERSION= 0.0.6-8196 # git rev-list --count HEAD
-DISTVERSIONSUFFIX= -g2bc0ea37a
+DISTVERSION= 0.0.6-8205 # git rev-list --count HEAD
+DISTVERSIONSUFFIX= -gb3513cd7f
CATEGORIES= emulators
PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
@@ -46,6 +46,11 @@ CMAKE_ON= CMAKE_SKIP_RPATH USE_SYSTEM_FFMPEG USE_SYSTE
CMAKE_OFF= USE_NATIVE_INSTRUCTIONS
CXXFLAGS+= -Wno-macro-redefined # __STDC_*_MACROS sys/cdefs.h vs. llvm-config
LDFLAGS+= -Wl,--as-needed # GLU
+
+# XXX Remove after FreeBSD 11.2/12.0 reach EOL i.e., around 2020-02-01
+.if !exists(/usr/include/c++/v1/charconv) && exists(/usr/lib/libc++.so)
+EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-revert-f9ad6358563b
+.endif
OPTIONS_DEFINE= ALSA EVDEV GDB LLVM PULSEAUDIO VULKAN
OPTIONS_DEFAULT=ALSA LLVM VULKAN
Modified: head/emulators/rpcs3/distinfo
==============================================================================
--- head/emulators/rpcs3/distinfo Mon Jun 10 22:48:55 2019 (r503929)
+++ head/emulators/rpcs3/distinfo Tue Jun 11 00:50:56 2019 (r503930)
@@ -1,6 +1,6 @@
-TIMESTAMP = 1560011695
-SHA256 (RPCS3-rpcs3-v0.0.6-8196-g2bc0ea37a_GH0.tar.gz) = 51b0f4b56e03da1d860004016ea7868ab356e4efec96031e29b61592bfc19955
-SIZE (RPCS3-rpcs3-v0.0.6-8196-g2bc0ea37a_GH0.tar.gz) = 5390668
+TIMESTAMP = 1560203291
+SHA256 (RPCS3-rpcs3-v0.0.6-8205-gb3513cd7f_GH0.tar.gz) = a7702c05bde3c01844aa6d682014ab8458550e7d0f9ee21db90e20cd814c3daa
+SIZE (RPCS3-rpcs3-v0.0.6-8205-gb3513cd7f_GH0.tar.gz) = 5436746
SHA256 (RPCS3-hidapi-hidapi-0.8.0-rc1-27-g9220f5e_GH0.tar.gz) = 3120e0b701943f452760e45f9fc1ac50bab356ad4c807b4cac4598041c5ca1a5
SIZE (RPCS3-hidapi-hidapi-0.8.0-rc1-27-g9220f5e_GH0.tar.gz) = 105400
SHA256 (RPCS3-llvm-b860b5e8f4ee_GH0.tar.gz) = c151972a0c8ceac568c24b61e63d2ecbdac0f125185e23fc2238e0a14048256e
Added: head/emulators/rpcs3/files/extra-patch-revert-f9ad6358563b
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/emulators/rpcs3/files/extra-patch-revert-f9ad6358563b Tue Jun 11 00:50:56 2019 (r503930)
@@ -0,0 +1,169 @@
+In file included from rpcs3/Emu/RSX/GL/GLGSRender.cpp:4:
+In file included from rpcs3/Emu/RSX/GL/GLGSRender.h:8:
+In file included from rpcs3/Emu/RSX/GL/GLTextOut.h:5:
+rpcs3/Emu/RSX/GL/../Common/TextGlyphs.h:4:10: fatal error: 'charconv' file not found
+#include <charconv>
+ ^~~~~~~~~~
+rpcs3/Emu/RSX/GL/../Common/TextGlyphs.h:174:9: error:
+ no member named 'from_chars' in namespace 'std'
+ std::from_chars(index.data(), index.data() + index.size(), this_glyph.character, 16);
+ ~~~~~^
+rpcs3/Emu/RSX/GL/../Common/TextGlyphs.h:182:11: error:
+ no member named 'from_chars' in namespace 'std'
+ std::from_chars(line.data(), line.data() + line.size(), this_glyph...
+ ~~~~~^
+
+--- rpcs3/Emu/RSX/Common/TextGlyphs.h.orig 2019-06-10 11:57:03 UTC
++++ rpcs3/Emu/RSX/Common/TextGlyphs.h
+@@ -1,13 +1,9 @@
+ #pragma once
+
+-#include <array>
+-#include <charconv>
+-#include <string_view>
+-#include <unordered_map>
+ #include <vector>
++#include <unordered_map>
++#include <Utilities/types.h>
+
+-#include "Utilities/types.h"
+-
+ /**
+ * FONT GLYPHS GO HERE
+ * Any font in hex format should work here.
+@@ -16,7 +12,7 @@
+ * This example is the GNU unifont glyph set
+ */
+
+-constexpr std::array<std::string_view, 128> GNU_UNIFONT_GLYPHS =
++const static std::string GNU_UNIFONT_GLYPHS[128] =
+ {
+ "0000 : AAAA00018000000180004A51EA505A51C99E0001800000018000000180005555",
+ "0001 : AAAA00018000000180003993C252325F8A527193800000018000000180005555",
+@@ -157,37 +153,40 @@ class GlyphManager (private)
+ u8 character;
+ u32 glyph_point_offset;
+ u32 points_count;
+- std::array<u8, 16> plot;
++ std::vector<u8> plot;
+ };
+
+- std::vector<glyph> glyph_map;
++ std::unordered_map<u8, glyph> glyph_map;
+
+- void decode_glyph_map(const std::array<std::string_view, 128>& font_glyphs)
++ void decode_glyph_map(const std::string glyphs[128])
+ {
+- glyph_map.reserve(font_glyphs.size());
+-
+- for (const auto &font_glyph : font_glyphs)
++ for (int i = 0; i < 128; ++i)
+ {
+- glyph this_glyph{};
++ std::string character = glyphs[i];
++ std::string index = character.substr(0, 4);
++ std::string glyph_data = character.substr(7);
+
+- const auto index = font_glyph.substr(0, 4);
+- std::from_chars(index.data(), index.data() + index.size(), this_glyph.character, 16);
++ glyph this_glyph;
++ this_glyph.character = (u8)strtol(index.c_str(), nullptr, 16);
++ this_glyph.plot.reserve(16);
+
+- const auto glyph_data = font_glyph.substr(7);
+ if (glyph_data.length() == 32)
+ {
+- for (std::size_t n = 0; n < this_glyph.plot.size(); ++n)
++ for (int n = 0; n < 16; ++n)
+ {
+- const auto line = glyph_data.substr(n * 2, 2);
+- std::from_chars(line.data(), line.data() + line.size(), this_glyph.plot[n], 16);
++ std::string line = glyph_data.substr(n * 2, 2);
++ u8 value = (u8)strtol(line.c_str(), nullptr, 16);
++ this_glyph.plot.push_back(value);
+ }
+ }
+ else
+ {
+- // TODO: Support 16-wide characters
++ //TODO: Support 16-wide characters
++ for (int n = 0; n < 16; ++n)
++ this_glyph.plot.push_back(0);
+ }
+
+- glyph_map.push_back(this_glyph);
++ glyph_map[this_glyph.character] = this_glyph;
+ }
+ }
+
+@@ -198,12 +197,13 @@ class GlyphManager (private)
+ float x;
+ float y;
+
+- explicit glyph_point(float _x, float _y) : x(_x), y(_y)
++ glyph_point(float _x, float _y) : x(_x), y(_y)
+ {}
+ };
+
+ GlyphManager()
+ {
++ glyph_map = {};
+ decode_glyph_map(GNU_UNIFONT_GLYPHS);
+ }
+
+@@ -213,11 +213,12 @@ class GlyphManager (private)
+
+ for (auto &entry : glyph_map)
+ {
+- entry.glyph_point_offset = (u32)result.size();
++ glyph& text = entry.second;
++ text.glyph_point_offset = (u32)result.size();
+
+- for (std::size_t j = 0; j < entry.plot.size(); ++j)
++ for (int j = 0; j < 16; ++j)
+ {
+- const auto &line = entry.plot[j];
++ auto &line = text.plot[j];
+ if (line == 0)
+ continue;
+
+@@ -225,29 +226,28 @@ class GlyphManager (private)
+ {
+ if (line & (1 << i))
+ {
+- // Font is inverted, so we correct it for conventional renderers
+- const auto x = (float)(7 - i);
+- const auto y = (float)(15 - j);
+- result.emplace_back(x, y);
++ //Font is inverted, so we correct it for conventional renderers
++ float x = (float)(7 - i);
++ float y = (float)(15 - j);
++ result.push_back({ x, y });
+ }
+ }
+ }
+
+- entry.points_count = (u32)result.size() - entry.glyph_point_offset;
++ text.points_count = (u32)result.size() - text.glyph_point_offset;
+ }
+
+ return result;
+ }
+
+- std::unordered_map<u8, std::pair<u32, u32>> get_glyph_offsets() const
++ std::unordered_map<u8, std::pair<u32, u32>> get_glyph_offsets()
+ {
+ std::unordered_map<u8, std::pair<u32, u32>> result = {};
+-
+- for (const auto &entry : glyph_map)
++ for (auto &entry : glyph_map)
+ {
+- result[entry.character] = std::make_pair(entry.glyph_point_offset, entry.points_count);
++ result[entry.second.character] = std::make_pair(entry.second.glyph_point_offset, entry.second.points_count);
+ }
+
+ return result;
+ }
+-};
++};
+\ No newline at end of file
Added: head/emulators/rpcs3/files/patch-rpcs3_Emu_RSX_VK_VulkanAPI.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/emulators/rpcs3/files/patch-rpcs3_Emu_RSX_VK_VulkanAPI.h Tue Jun 11 00:50:56 2019 (r503930)
@@ -0,0 +1,31 @@
+Revert https://github.com/RPCS3/rpcs3/commit/39fa1d7031e3 to unbreak
+with devel/vulkan-headers < 1.1.96
+
+In file included from rpcs3/Emu/RSX/VK/VKFormats.cpp:2:
+In file included from rpcs3/Emu/RSX/VK/VKFormats.h:2:
+rpcs3/Emu/RSX/VK/VKHelpers.h:603:5: error: unknown type name 'VkPhysicalDeviceFloat16Int8FeaturesKHR'; did you mean 'VkPhysicalDeviceMultiviewFeaturesKHR'?
+ VkPhysicalDeviceFloat16Int8FeaturesKHR shader_support_info{};
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+--- rpcs3/Emu/RSX/VK/VulkanAPI.h.orig 2019-06-10 11:57:03 UTC
++++ rpcs3/Emu/RSX/VK/VulkanAPI.h
+@@ -14,6 +14,19 @@
+ #include "define_new_memleakdetect.h"
+ #include "Utilities/types.h"
+
++#if VK_HEADER_VERSION < 95
++
++typedef struct VkPhysicalDeviceFloat16Int8FeaturesKHR {
++ VkStructureType sType;
++ void* pNext;
++ VkBool32 shaderFloat16;
++ VkBool32 shaderInt8;
++} VkPhysicalDeviceFloat16Int8FeaturesKHR;
++
++#define VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR VkStructureType(1000082000)
++
++#endif
++
+ namespace vk
+ {
+ void init();
More information about the svn-ports-all
mailing list