Ports: Update c-ray's patches to use git patches

This commit is contained in:
Ali Mohammad Pur 2022-05-17 21:31:44 +04:30 committed by Ali Mohammad Pur
parent 8b9302890e
commit 4874465018
17 changed files with 654 additions and 105 deletions

View file

@ -0,0 +1,20 @@
From a91deb390a4765985718c4821c0306d433c036f5 Mon Sep 17 00:00:00 2001
From: Valtteri Koskivuori <vkoskiv@gmail.com>
Date: Tue, 25 Feb 2020 22:03:47 +0200
Subject: [PATCH 1/8] Add a dummy configure file
---
configure | 1 +
1 file changed, 1 insertion(+)
create mode 100644 configure
diff --git a/configure b/configure
new file mode 100644
index 0000000..04bfb39
--- /dev/null
+++ b/configure
@@ -0,0 +1 @@
+#nop
--
2.36.1

View file

@ -0,0 +1,26 @@
From dc634f4d49c98a7c0243b568631c626cd3da4125 Mon Sep 17 00:00:00 2001
From: Linus Groh <mail@linusgroh.de>
Date: Sat, 13 Mar 2021 22:11:07 +0100
Subject: [PATCH 2/8] Disable checkBuf() on serenity
Co-Authored-By: Valtteri Koskivuori <vkoskiv@gmail.com>
---
src/utils/fileio.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/utils/fileio.c b/src/utils/fileio.c
index 6365973..2edfed8 100644
--- a/src/utils/fileio.c
+++ b/src/utils/fileio.c
@@ -147,7 +147,7 @@ bool isValidFile(char *path) {
//Wait for 2 secs and abort if nothing is coming in from stdin
void checkBuf() {
-#ifndef WINDOWS
+#if !defined(WINDOWS) && !defined(__serenity__)
fd_set set;
struct timeval timeout;
int rv;
--
2.36.1

View file

@ -0,0 +1,26 @@
From e9b3bd5acd86ffe35b0f4e22bf615b53e0af261c Mon Sep 17 00:00:00 2001
From: Linus Groh <mail@linusgroh.de>
Date: Sat, 13 Mar 2021 22:11:07 +0100
Subject: [PATCH 3/8] Let c-ray define its own version of vasprintf
Co-Authored-By: Valtteri Koskivuori <vkoskiv@gmail.com>
---
src/libraries/asprintf.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/libraries/asprintf.h b/src/libraries/asprintf.h
index 70a95ac..7571e8a 100644
--- a/src/libraries/asprintf.h
+++ b/src/libraries/asprintf.h
@@ -33,7 +33,7 @@ int vscprintf(const char *format, va_list ap) {
* GNU-C-compatible compilers implement these with the same names, thus we
* don't have to do anything
*/
-#ifdef _MSC_VER
+#if defined(_MSC_VER) || defined(__serenity__)
int cray_vasprintf(char **strp, const char *format, va_list ap) {
int len = vscprintf(format, ap);
if (len == -1)
--
2.36.1

View file

@ -0,0 +1,27 @@
From 031255918e1421e343aedaaeb3a71b77a01dbe60 Mon Sep 17 00:00:00 2001
From: Linus Groh <mail@linusgroh.de>
Date: Fri, 1 Apr 2022 01:55:25 +0200
Subject: [PATCH 4/8] Link with the needed serenity libraries
Co-Authored-By: Valtteri Koskivuori <vkoskiv@gmail.com>
Co-Authored-By: EWouters <6179932+EWouters@users.noreply.github.com>
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 20f8440..dc254b5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -71,7 +71,7 @@ add_executable(c-ray ${SOURCES})
target_include_directories(c-ray PRIVATE ${c-ray_SOURCE_DIR}/src)
target_include_directories(c-ray PRIVATE ${c-ray_SOURCE_DIR}/tests)
if (NOT MSVC)
- target_link_libraries(c-ray PRIVATE -lpthread -lm)
+ target_link_libraries(c-ray PRIVATE -lSDL2 -lgui -lgfx -lipc -lcore -lpthread -lstdc++ -lm)
endif ()
include(CheckIPOSupported)
--
2.36.1

View file

@ -0,0 +1,35 @@
From 2bbcdcb8ca63d8a9cf475b148f9f11f97df14c35 Mon Sep 17 00:00:00 2001
From: Linus Groh <mail@linusgroh.de>
Date: Sat, 13 Mar 2021 22:11:07 +0100
Subject: [PATCH 5/8] Use usleep() on serenity
Co-Authored-By: Valtteri Koskivuori <vkoskiv@gmail.com>
---
src/utils/timer.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/utils/timer.c b/src/utils/timer.c
index dd83497..3a4357f 100644
--- a/src/utils/timer.c
+++ b/src/utils/timer.c
@@ -48,7 +48,7 @@ long getUs(struct timeval timer) {
return ((tmr2.tv_sec - timer.tv_sec) * 1000000) + (tmr2.tv_usec - timer.tv_usec);
}
-#ifdef __linux__
+#if defined(__linux__) || defined(__serenity__)
#define _BSD_SOURCE
#include <unistd.h>
#endif
@@ -66,7 +66,7 @@ void sleepMSec(int ms) {
ts.tv_sec = ms / 1000;
ts.tv_nsec = (ms % 1000) * 1000000;
nanosleep(&ts, NULL);
-#elif __linux__
+#elif defined(__linux__) || defined(__serenity__)
usleep(ms * 1000);
#endif
}
--
2.36.1

View file

@ -0,0 +1,413 @@
From 81f73eaff2d269158ee4cef7bd576af5bedb835e Mon Sep 17 00:00:00 2001
From: Valtteri Koskivuori <vkoskiv@gmail.com>
Date: Sat, 13 Mar 2021 22:11:07 +0100
Subject: [PATCH 6/8] Reduce HDR scene settings a bit
---
input/hdr.json | 394 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 394 insertions(+)
create mode 100644 input/hdr.json
diff --git a/input/hdr.json b/input/hdr.json
new file mode 100644
index 0000000..b7b5b63
--- /dev/null
+++ b/input/hdr.json
@@ -0,0 +1,394 @@
+{
+ "version": 1.0,
+ "renderer": {
+ "threads": 0,
+ "samples": 25,
+ "bounces": 30,
+ "tileWidth": 64,
+ "tileHeight": 64,
+ "tileOrder": "fromMiddle",
+ "outputFilePath": "output/",
+ "outputFileName": "rendered",
+ "fileType": "png",
+ "count": 0,
+ "width": 320,
+ "height": 200
+ },
+ "display": {
+ "isFullscreen": false,
+ "isBorderless": false,
+ "windowScale": 1.0
+ },
+ "camera": [
+ {
+ "FOV": 30.0,
+ "focalDistance": 0.7,
+ "fstops": 6.5,
+ "transforms": [
+ {
+ "type": "translate",
+ "x": 0,
+ "y": 0.1,
+ "z": -0.7
+ },
+ {
+ "type": "rotateX",
+ "degrees": 5
+ },
+ {
+ "type": "rotateZ",
+ "degrees": 0
+ }
+ ]
+ },
+ {
+ "FOV": 90.0,
+ "focalDistance": 0.2,
+ "fstops": 6.5,
+ "transforms": [
+ {
+ "type": "translate",
+ "x": 0,
+ "y": 0.1,
+ "z": -0.2
+ },
+ {
+ "type": "rotateX",
+ "degrees": 5
+ },
+ {
+ "type": "rotateY",
+ "degrees": 5
+ }
+ ]
+ }
+ ],
+ "scene": {
+ "ambientColor": {
+ "hdr": "HDRs/roof_garden_1k.hdr",
+ "offset": 0,
+ "down": {
+ "r": 1.0,
+ "g": 1.0,
+ "b": 1.0
+ },
+ "up": {
+ "r": 0.5,
+ "g": 0.7,
+ "b": 1.0
+ }
+ },
+ "primitives": [
+ {
+ "type": "sphere",
+ "instances": [
+ {
+ "transforms": [
+ {
+ "type": "translate",
+ "x": -0.25,
+ "y": 0.1001,
+ "z": 0.3
+ }
+ ]
+ }
+ ],
+ "color": {
+ "r": 1.0,
+ "g": 0.0,
+ "b": 1.0
+ },
+ "bsdf": "metal",
+ "roughness": 0.05,
+ "radius": 0.1
+ },
+ {
+ "type": "sphere",
+ "instances": [
+ {
+ "transforms": [
+ {
+ "type": "translate",
+ "x": 0,
+ "y": 0.05,
+ "z": 0
+ }
+ ]
+ }
+ ],
+ "color": {
+ "r": 0.8,
+ "g": 0.8,
+ "b": 0.8
+ },
+ "bsdf": "metal",
+ "roughness": 0.00,
+ "radius": 0.05
+ },
+ {
+ "type": "sphere",
+ "instances": [
+ {
+ "transforms": [
+ {
+ "type": "translate",
+ "x": 0.05,
+ "y": 0.05,
+ "z": 0.1
+ }
+ ]
+ }
+ ],
+ "color": {
+ "r": 0.0,
+ "g": 0.8,
+ "b": 0.0
+ },
+ "bsdf": "metal",
+ "roughness": 0.00,
+ "radius": 0.05
+ },
+ {
+ "type": "sphere",
+ "instances": [
+ {
+ "transforms": [
+ {
+ "type": "translate",
+ "x": 0.15,
+ "y": 0.05,
+ "z": 0
+ }
+ ]
+ }
+ ],
+ "color": {
+ "r": 1.0,
+ "g": 1.0,
+ "b": 1.0
+ },
+ "bsdf": "glass",
+ "IOR": 1.9,
+ "roughness": 0,
+ "radius": 0.05
+ },
+ {
+ "type": "sphere",
+ "instances": [
+ {
+ "transforms": [
+ {
+ "type": "translate",
+ "x": -0.15,
+ "y": 0.025,
+ "z": 0.05
+ }
+ ]
+ }
+ ],
+ "color": {
+ "r": 1.0,
+ "g": 0.1,
+ "b": 0.1
+ },
+ "bsdf": "glass",
+ "IOR": 1.9,
+ "roughness": 0,
+ "radius": 0.025
+ },
+ {
+ "type": "sphere",
+ "instances": [
+ {
+ "transforms": [
+ {
+ "type": "translate",
+ "x": -0.120,
+ "y": 0.025,
+ "z": 0.1
+ }
+ ]
+ }
+ ],
+ "color": {
+ "r": 0.1,
+ "g": 1.0,
+ "b": 0.1
+ },
+ "bsdf": "glass",
+ "IOR": 1.9,
+ "roughness": 0,
+ "radius": 0.025
+ },
+ {
+ "type": "sphere",
+ "instances": [
+ {
+ "transforms": [
+ {
+ "type": "translate",
+ "x": -0.090,
+ "y": 0.025,
+ "z": 0.15
+ }
+ ]
+ }
+ ],
+ "color": {
+ "r": 0.1,
+ "g": 0.1,
+ "b": 1.0
+ },
+ "bsdf": "glass",
+ "IOR": 1.9,
+ "roughness": 0,
+ "radius": 0.025
+ },
+ {
+ "type": "sphere",
+ "instances": [
+ {
+ "transforms": [
+ {
+ "type": "translate",
+ "x": -0.03,
+ "y": 0.01,
+ "z": -0.25
+ }
+ ]
+ }
+ ],
+ "radius": 0.01,
+ "color": {
+ "r": 1.0,
+ "g": 0.0,
+ "b": 0.0
+ },
+ "bsdf": "metal",
+ "roughness": 1.0
+ },
+ {
+ "type": "sphere",
+ "instances": [
+ {
+ "transforms": [
+ {
+ "type": "translate",
+ "x": 1070,
+ "y": 310,
+ "z": 820
+ }
+ ]
+ }
+ ],
+ "radius": 2.5,
+ "color": {
+ "r": 0.0,
+ "g": 1.0,
+ "b": 0.0
+ },
+ "bsdf": "emissive",
+ "intensity": 10.0
+ },
+ {
+ "type": "sphere",
+ "instances": [
+ {
+ "transforms": [
+ {
+ "type": "translate",
+ "x": 1090,
+ "y": 310,
+ "z": 820
+ }
+ ]
+ }
+ ],
+ "radius": 2.5,
+ "color": {
+ "r": 0.0,
+ "g": 0.0,
+ "b": 1.0
+ },
+ "bsdf": "emissive",
+ "intensity": 10.0
+ },
+ {
+ "type": "sphere",
+ "instances": [
+ {
+ "transforms": [
+ {
+ "type": "translate",
+ "x": 950,
+ "y": 420,
+ "z": 1500
+ }
+ ]
+ }
+ ],
+ "color": {
+ "r": 1.0,
+ "g": 1.0,
+ "b": 1.0
+ },
+ "bsdf": "emissive",
+ "intensity": 10.0,
+ "radius": 10
+ }
+ ],
+ "meshes": [
+ {
+ "fileName": "shapes/gridplane.obj",
+ "instances": [
+ {
+ "for": "Plane",
+ "material": [
+ {
+ "type": "diffuse",
+ "color": "shapes/grid.png"
+ }
+ ],
+ "transforms": [
+ {
+ "type": "scaleUniform",
+ "scale": 0.25
+ },
+ {
+ "type": "rotateX",
+ "degrees": 0
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "fileName": "venusscaled.obj",
+ "instances": [
+ {
+ "materials": {
+ "type": "plastic",
+ "roughness": 0,
+ "IOR": 1.45,
+ "color": [1.0, 0.2705, 0.0]
+ },
+ "transforms": [
+ {
+ "type": "scaleUniform",
+ "scale": 0.05
+ },
+ {
+ "type": "translate",
+ "X": 0.08
+ },
+ {
+ "type": "rotateY",
+ "degrees": 0
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+}
--
2.36.1

View file

@ -0,0 +1,27 @@
From bcf1e45d9975ff326d874eb60abaa148b321eb78 Mon Sep 17 00:00:00 2001
From: Valtteri Koskivuori <vkoskiv@gmail.com>
Date: Sat, 17 Apr 2021 08:30:03 +0000
Subject: [PATCH 7/8] Replace the micro symbol with a 'u'
Co-Authored-By: Linus Groh <mail@linusgroh.de>
Co-Authored-By: Valtteri Koskivuori <vkoskiv@gmail.com>
---
src/renderer/renderer.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/renderer/renderer.c b/src/renderer/renderer.c
index fe0e44e..6e5e20f 100644
--- a/src/renderer/renderer.c
+++ b/src/renderer/renderer.c
@@ -146,7 +146,7 @@ struct texture *renderFrame(struct renderer *r) {
float sps = (1000000.0f / usPerRay) * (r->prefs.threadCount + remoteThreads);
char rem[64];
smartTime((msecTillFinished) / (r->prefs.threadCount + remoteThreads), rem);
- logr(info, "[%s%.0f%%%s] μs/path: %.02f, etf: %s, %.02lfMs/s %s \r",
+ logr(info, "[%s%.0f%%%s] us/path: %.02f, etf: %s, %.02lfMs/s %s \r",
KBLU,
interactive ? ((float)r->state.finishedPasses / (float)r->prefs.sampleCount) * 100.0f :
((float)r->state.finishedTileCount / (float)r->state.tileCount) * 100.0f,
--
2.36.1

View file

@ -0,0 +1,28 @@
From e552e1be81f8873930f3a75c051cf1efb2069b64 Mon Sep 17 00:00:00 2001
From: Linus Groh <mail@linusgroh.de>
Date: Sat, 13 Mar 2021 22:11:07 +0100
Subject: [PATCH 8/8] Make SDL use software rendering
Serenity does not support accelerated rendering
Co-Authored-By: Valtteri Koskivuori <vkoskiv@gmail.com>
---
src/utils/ui.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/utils/ui.c b/src/utils/ui.c
index 89553c7..4a52e6c 100644
--- a/src/utils/ui.c
+++ b/src/utils/ui.c
@@ -120,7 +120,7 @@ void initDisplay(bool fullscreen, bool borderless, int width, int height, float
return;
}
//Init renderer
- gdisplay->renderer = SDL_CreateRenderer(gdisplay->window, -1, SDL_RENDERER_ACCELERATED);
+ gdisplay->renderer = SDL_CreateRenderer(gdisplay->window, -1, SDL_RENDERER_SOFTWARE);
if (gdisplay->renderer == NULL) {
logr(warning, "Renderer couldn't be created, error: \"%s\"\n", SDL_GetError());
destroyDisplay();
--
2.36.1

View file

@ -0,0 +1,52 @@
# Patches for c-ray on SerenityOS
## `0001-Add-a-dummy-configure-file.patch`
Add a dummy configure file
## `0002-Disable-checkBuf-on-serenity.patch`
Disable checkBuf() on serenity
## `0003-Let-c-ray-define-its-own-version-of-vasprintf.patch`
Let c-ray define its own version of vasprintf
## `0004-Link-with-the-needed-serenity-libraries.patch`
Link with the needed serenity libraries
## `0005-Use-usleep-on-serenity.patch`
Use usleep() on serenity
## `0006-Reduce-HDR-scene-settings-a-bit.patch`
Reduce HDR scene settings a bit
## `0007-Replace-the-micro-symbol-with-a-u.patch`
Replace the micro symbol with a 'u'
## `0008-Make-SDL-use-software-rendering.patch`
Make SDL use software rendering
Serenity does not support accelerated rendering

View file

@ -1,7 +0,0 @@
diff --git a/configure b/configure
new file mode 100644
index 0000000..04bfb39
--- /dev/null
+++ b/configure
@@ -0,0 +1 @@
+#nop

View file

@ -1,11 +0,0 @@
--- c-ray-master/src/utils/fileio.c 2021-03-13 00:13:46.067407670 +0100
+++ c-ray-master/src/utils/fileio.c 2021-01-11 01:01:57.000000000 +0100
@@ -83,7 +83,7 @@
//Wait for 2 secs and abort if nothing is coming in from stdin
void checkBuf() {
-#ifndef WINDOWS
+#if !defined(WINDOWS) && !defined(__serenity__)
fd_set set;
struct timeval timeout;
int rv;

View file

@ -1,11 +0,0 @@
--- c-ray-master/src/libraries/asprintf.h 2021-03-13 00:16:23.782000000 +0100
+++ c-ray-master/src/libraries/asprintf.h 2021-03-13 00:16:41.350553067 +0100
@@ -33,7 +33,7 @@
* GNU-C-compatible compilers implement these with the same names, thus we
* don't have to do anything
*/
-#ifdef _MSC_VER
+#if defined(_MSC_VER) || defined(__serenity__)
int cray_vasprintf(char **strp, const char *format, va_list ap) {
int len = vscprintf(format, ap);
if (len == -1)

View file

@ -1,11 +0,0 @@
--- c-ray-master/CMakeLists.txt 2021-03-13 00:40:48.474000000 +0100
+++ c-ray-master/CMakeLists.txt 2021-03-13 00:41:04.770789629 +0100
@@ -71,7 +71,7 @@
target_include_directories(c-ray PRIVATE ${c-ray_SOURCE_DIR}/src)
target_include_directories(c-ray PRIVATE ${c-ray_SOURCE_DIR}/tests)
if (NOT MSVC)
- target_link_libraries(c-ray PRIVATE -lpthread -lm)
+ target_link_libraries(c-ray PRIVATE -lSDL2 -lgui -lgfx -lipc -lcore -lpthread -lstdc++ -lm)
endif ()
include(CheckIPOSupported)

View file

@ -1,20 +0,0 @@
--- c-ray-master/src/utils/timer.c 2021-03-13 00:26:36.846000000 +0100
+++ c-ray-master/src/utils/timer.c 2021-03-13 00:27:29.453478737 +0100
@@ -48,7 +48,7 @@
return ((tmr2.tv_sec - timer.tv_sec) * 1000000) + (tmr2.tv_usec - timer.tv_usec);
}
-#ifdef __linux__
+#if defined(__linux__) || defined(__serenity__)
#define _BSD_SOURCE
#include <unistd.h>
#endif
@@ -66,7 +66,7 @@
ts.tv_sec = ms / 1000;
ts.tv_nsec = (ms % 1000) * 1000000;
nanosleep(&ts, NULL);
-#elif __linux__
+#elif defined(__linux__) || defined(__serenity__)
usleep(ms * 1000);
#endif
}

View file

@ -1,24 +0,0 @@
diff --git a/input/hdr.json b/input/hdr.json
index 5391ff0..138be3a 100644
--- a/input/hdr.json
+++ b/input/hdr.json
@@ -2,7 +2,7 @@
"version": 1.0,
"renderer": {
"threads": 0,
- "samples": 250,
+ "samples": 25,
"bounces": 30,
"antialiasing": true,
"tileWidth": 64,
@@ -12,8 +12,8 @@
"outputFileName": "rendered",
"fileType": "png",
"count": 0,
- "width": 1280,
- "height": 800
+ "width": 320,
+ "height": 200
},
"display": {
"isFullscreen": false,

View file

@ -1,10 +0,0 @@
+++ c-ray-master/src/renderer/renderer.c 2021-04-16 13:21:09.364524790 -0700
@@ -138,7 +138,7 @@
float sps = (1000000.0f / usPerRay) * (r->prefs.threadCount + remoteThreads);
char rem[64];
smartTime((msecTillFinished) / (r->prefs.threadCount + remoteThreads), rem);
- logr(info, "[%s%.0f%%%s] μs/path: %.02f, etf: %s, %.02lfMs/s %s \r",
+ logr(info, "[%s%.0f%%%s] us/path: %.02f, etf: %s, %.02lfMs/s %s \r",
KBLU,
interactive ? ((float)r->state.finishedPasses / (float)r->prefs.sampleCount) * 100.0f :
((float)r->state.finishedTileCount / (float)r->state.tileCount) * 100.0f,

View file

@ -1,11 +0,0 @@
--- c-ray-master/src/utils/ui.c 2021-03-13 00:30:25.488000000 +0100
+++ c-ray-master/src/utils/ui.c 2021-03-13 00:30:41.056572879 +0100
@@ -120,7 +120,7 @@
return;
}
//Init renderer
- gdisplay->renderer = SDL_CreateRenderer(gdisplay->window, -1, SDL_RENDERER_ACCELERATED);
+ gdisplay->renderer = SDL_CreateRenderer(gdisplay->window, -1, SDL_RENDERER_SOFTWARE);
if (gdisplay->renderer == NULL) {
logr(warning, "Renderer couldn't be created, error: \"%s\"\n", SDL_GetError());
destroyDisplay();