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