Shirakumo / trial

A fully-fledged Common Lisp game engine
https://shirakumo.github.io/trial
Other
1.02k stars 49 forks source link

failed to run cpu/gpu particle simulation test in `examples-1.6` #98

Closed sakurawald closed 3 days ago

sakurawald commented 1 week ago

I download the examples-1.6 binary from https://github.com/Shirakumo/trial/releases/download/examples-1.6/trial-examples-Linux.zip

Run it, and click the cpu particle simulation or gpu particle simulation, then the program crash, with the error file: trial.log

sakurawald commented 4 days ago

However, this only happens in the binrary version. If i clone the repository, and load the system in repl, run the trial-examples::launch, then the cpu/gpu partical simulation test is fine.

sakurawald commented 4 days ago

In commit bd81025, i can run cpu particle simulation, but failed to run gpu particle simulation, it seems there is an syntax error inside the shader source:

image

my glx info:

╰─ glxinfo | grep "OpenGL version"                                                                                                                                                                           ─╯

OpenGL version string: 4.6.0 NVIDIA 560.35.03
Shinmera commented 3 days ago

I can't reproduce your exact error, but I did fix another that prevented it from running on latest.

sakurawald commented 3 days ago

I can't reproduce your exact error, but I did fix another that prevented it from running on latest.

Thank you, i will try it later, and give feedback.

sakurawald commented 3 days ago

The test result in https://github.com/Shirakumo/trial/commit/6462155051e52334e7d94254a217bee9de563fd0

Failed to compile #<SHADER VERTEX-SHADER {100F241E83}>:
  0(5) : error C0000: syntax error, unexpected identifier, expecting reserved word or reserved word "in" or reserved word "out" or reserved word "uniform" at token "ParticleCounterBuffer"
0(9) : error C0000: syntax error, unexpected '}' at token "}"
0(10) : error C0000: syntax error, unexpected identifier, expecting reserved word or reserved word "in" or reserved word "out" or reserved word "uniform" at token "ParticleArgumentBuffer"
0(14) : error C0000: syntax error, unexpected '}' at token "}"
0(15) : error C0000: syntax error, unexpected identifier, expecting reserved word or reserved word "in" or reserved word "out" or reserved word "uniform" at token "ParticleEmitterBuffer"
0(29) : error C0000: syntax error, unexpected '}' at token "}"

  1 #version 330
  2 #define EMIT_THREADS 256
  3 #define SIMULATE_THREADS 256
  4 #define MAX_PARTICLES 1000000
  5 layout(std430, row_major) buffer ParticleCounterBuffer{
  6   uint alive_count;
  7   uint dead_count;
  8   uint real_emit_count;
  9 } ;
 10 layout(std140, row_major) buffer ParticleArgumentBuffer{
 11   uvec3 emit_args;
 12   uvec3 simulate_args;
 13   uvec4 draw_args;
 14 } ;
 15 layout(std430, row_major) buffer ParticleEmitterBuffer{
 16   mat4 model_matrix;
 17   uint emit_count;
 18   uint mesh_index_count;
 19   uint mesh_vertex_stride;
 20   float randomness;
 21   uint particle_color;
 22   float particle_size;
 23   float particle_scaling;
 24   float particle_rotation;
 25   float particle_randomness;
 26   float particle_velocity;
 27   float particle_lifespan;
 28   float particle_lifespan_randomness;
 29 } ;
 30 #define TRIAL_V_LOCATION 0
 31 #define TRIAL_V_NORMAL 1
 32 #define TRIAL_V_UV 2
 33 #define TRIAL_V_TANGENT 3
 34 #define TRIAL_V_COLOR 4
 35 #define TRIAL_V_JOINTS 5
 36 #define TRIAL_V_WEIGHTS 6
 37 #define TRIAL_V_UV_0 2
 38 #define TRIAL_V_UV_1 7
 39 #define TRIAL_V_UV_2 10
 40 #define TRIAL_V_UV_3 13
 41 #define TRIAL_V_JOINTS_0 5
 42 #define TRIAL_V_JOINTS_1 8
 43 #define TRIAL_V_JOINTS_2 11
 44 #define TRIAL_V_JOINTS_3 14
 45 #define TRIAL_V_WEIGHTS_0 6
 46 #define TRIAL_V_WEIGHTS_1 9
 47 #define TRIAL_V_WEIGHTS_2 12
 48 #define TRIAL_V_WEIGHTS_3 15
 49 #define TRIAL_V_INDEX 16
 50 
 51 void main(){
 52 }
   [Condition of type TRIAL:SHADER-COMPILATION-ERROR]

Restarts:
 0: [USE-SOURCE] Supply new source code directly.
 1: [DECLINE] Decline handling #<POINTER-UP {100A67F443}>
 2: [DECLINE] Decline handling #<POINTER-UP {100A67F443}>
 3: [DECLINE] Decline handling #<POINTER-UP {100A67F443}>
 4: [DECLINE] Decline handling #<POINTER-UP {100A67F443}>
 5: [DECLINE] Decline handling #<POINTER-UP {100A67F443}>
 6: [DECLINE] Decline handling #<POINTER-UP {100A67F443}>
 7: [ABORT] Don't handle #<MOUSE-RELEASE :LEFT> in #<UI  UI ALLOCATED {1001114493}>.
 8: [LEAVE] Leave #<UI  UI ALLOCATED {1001114493}> from the loop.
 9: [SKIP-EVENT] Skip handling the event entirely.
 10: [ABORT] Don't handle #<MOUSE-RELEASE :LEFT> in #<PIPELINED-SCENE {1004EE5643}>.
 11: [LEAVE] Leave #<PIPELINED-SCENE {1004EE5643}> from the loop.
 12: [DISCARD-EVENTS] Discard all remaining events and exit
 13: [RESET-RENDER-LOOP] Reset the render loop timing, not catching up with lost frames.
 14: [EXIT-RENDER-LOOP] Exit the render loop entirely.
 15: [ABORT] abort thread (#<THREAD tid=70272 "render-loop" RUNNING {10013575E3}>)

Backtrace:
  0: ((:METHOD TRIAL:ALLOCATE (TRIAL:SHADER)) #<TRIAL:SHADER VERTEX-SHADER {100F241E83}>) [fast-method]
  1: ((SB-PCL::EMF TRIAL:ALLOCATE) #<unused argument> #<unused argument> #<TRIAL:SHADER VERTEX-SHADER {100F241E83}>)
  2: ((:METHOD TRIAL:ALLOCATE :AROUND (TRIAL:RESOURCE)) #<TRIAL:SHADER VERTEX-SHADER {100F241E83}>) [fast-method]
  3: ((:METHOD TRIAL:STAGE (TRIAL:RESOURCE TRIAL:STAGING-AREA)) #<TRIAL:SHADER VERTEX-SHADER {100F241E83}> #<TRIAL:STAGING-AREA {100D817CB3}>) [fast-method]
  4: ((SB-PCL::EMF TRIAL:STAGE) #<unused argument> #<unused argument> #<TRIAL:SHADER VERTEX-SHADER {100F241E83}> #<TRIAL:STAGING-AREA {100D817CB3}>)
  5: ((:METHOD TRIAL:STAGE :AROUND (T TRIAL:STAGING-AREA)) #<TRIAL:SHADER VERTEX-SHADER {100F241E83}> #<TRIAL:STAGING-AREA {100D817CB3}>) [fast-method]
  6: ((:METHOD TRIAL:STAGE :BEFORE (T TRIAL:STAGING-AREA)) #<TRIAL:SHADER-PROGRAM  {100F241FC3}> #<TRIAL:STAGING-AREA {100D817CB3}>) [fast-method]
  7: ((SB-PCL::EMF TRIAL:STAGE) #<unused argument> #<unused argument> #<TRIAL:SHADER-PROGRAM  {100F241FC3}> #<TRIAL:STAGING-AREA {100D817CB3}>)
  8: ((:METHOD TRIAL:STAGE :AROUND (T TRIAL:STAGING-AREA)) #<TRIAL:SHADER-PROGRAM  {100F241FC3}> #<TRIAL:STAGING-AREA {100D817CB3}>) [fast-method]
  9: ((SB-PCL::EMF TRIAL:STAGE) #<unused argument> #<unused argument> #<TRIAL::PARTICLE-KICKOFF-PASS {101AEE77C3}> #<TRIAL:STAGING-AREA {100D817CB3}>)
 10: ((:METHOD TRIAL:STAGE :AROUND (T TRIAL:STAGING-AREA)) #<TRIAL::PARTICLE-KICKOFF-PASS {101AEE77C3}> #<TRIAL:STAGING-AREA {100D817CB3}>) [fast-method]
 11: ((:METHOD TRIAL:STAGE :AFTER (TRIAL:GPU-PARTICLE-EMITTER TRIAL:STAGING-AREA)) #<TRIAL:GPU-PARTICLE-EMITTER :EMITTER> #<TRIAL:STAGING-AREA {100D817CB3}>) [fast-method]
 12: ((SB-PCL::EMF TRIAL:STAGE) #<unused argument> #<unused argument> #<TRIAL:GPU-PARTICLE-EMITTER :EMITTER> #<TRIAL:STAGING-AREA {100D817CB3}>)
 13: ((:METHOD TRIAL:STAGE :AROUND (T TRIAL:STAGING-AREA)) #<TRIAL:GPU-PARTICLE-EMITTER :EMITTER> #<TRIAL:STAGING-AREA {100D817CB3}>) [fast-method]
 14: ((:METHOD TRIAL:STAGE :AFTER (TRIAL:CONTAINER TRIAL:STAGING-AREA)) #<ORG.SHIRAKUMO.FRAF.TRIAL.EXAMPLES::GPU-PARTICLE-SCENE {100A7B2BC3}> #<TRIAL:STAGING-AREA {100D817CB3}>) [fast-method]
 15: ((SB-PCL::EMF TRIAL:STAGE) #<unused argument> #<unused argument> #<ORG.SHIRAKUMO.FRAF.TRIAL.EXAMPLES::GPU-PARTICLE-SCENE {100A7B2BC3}> #<TRIAL:STAGING-AREA {100D817CB3}>)
 16: ((:METHOD TRIAL:STAGE :AROUND (T TRIAL:STAGING-AREA)) #<ORG.SHIRAKUMO.FRAF.TRIAL.EXAMPLES::GPU-PARTICLE-SCENE {100A7B2BC3}> #<TRIAL:STAGING-AREA {100D817CB3}>) [fast-method]
 17: ((:METHOD TRIAL:COMMIT (T TRIAL:LOADER)) #<ORG.SHIRAKUMO.FRAF.TRIAL.EXAMPLES::GPU-PARTICLE-SCENE {100A7B2BC3}> #<TRIAL:LOADER {1004F56763}>) [fast-method]
 18: ((:METHOD TRIAL:CHANGE-SCENE (TRIAL:MAIN TRIAL:SCENE)) #<ORG.SHIRAKUMO.FRAF.TRIAL.EXAMPLES::EXAMPLE {1004B98F93}> #<ORG.SHIRAKUMO.FRAF.TRIAL.EXAMPLES::GPU-PARTICLE-SCENE {100A7B2BC3}> :OLD #<TRIAL:PIP..
 19: ((SB-PCL::EMF ORG.SHIRAKUMO.ALLOY:ACTIVATE) #<unused argument> #<unused argument> #<ORG.SHIRAKUMO.ALLOY:BUTTON* Launch (ORG.SHIRAKUMO.ALLOY:EXTENT 7.5px 7.5px 3234.0px 60.0px) focus WEAK {10058CC683}>..
 --more--

And the repl:

CL-USER> (trial-examples:launch)
2024-11-05 09:40:11 [INFO ] <TRIAL.MAIN>: GENESIS
2024-11-05 09:40:11 [INFO ] <TRAIL.MAIN>: Launching version 1.2.0 (518AC3218C29BD6AC9C7276323D614A180CCD2D89F15169B2611842F)
2024-11-05 09:40:11 [INFO ] <TRIAL.BACKEND.GLFW>: Creating context #<CONTEXT {1004F56C43}>
2024-11-05 09:40:11 [INFO ] <TRIAL.BACKEND.GLFW>: Framebuffer resized to 1280x720
2024-11-05 09:40:11 [INFO ] <TRIAL.CONTEXT>: #<THREAD tid=70169 "repl-thread" RUNNING {1000BC0093}> acquiring #<CONTEXT {1004F56C43}>.
2024-11-05 09:40:11 [INFO ] <TRIAL.POWER>: Preventing powersaving.
2024-11-05 09:40:11 [INFO ] <TRIAL.MAIN>: Setting up #<PIPELINED-SCENE {1004EE5643}>
2024-11-05 09:40:12 [INFO ] <TRIAL.LOADER>: Incrementally loading #<EXAMPLE-LIST {1007A02F73}>
2024-11-05 09:40:12 [INFO ] <TRIAL.LOADER>: Operation took 0.002756s run-time 0.003338s real-time
2024-11-05 09:40:12 [INFO ] <TRIAL.LOADER>: Incrementally loading #<FONT Arial>
2024-11-05 09:40:12 [INFO ] <TRIAL.LOADER>: Operation took 0.212427s run-time 0.213666s real-time
STYLE-WARNING:
   slot names with the same SYMBOL-NAME but different SYMBOL-PACKAGE (possible package problem) for class
   #<STANDARD-CLASS ORG.SHIRAKUMO.ALLOY.RENDERERS.OPENGL.MSDF:TEXT>:
       (ORG.SHIRAKUMO.ALLOY.RENDERERS.OPENGL.MSDF::SIZE ORG.SHIRAKUMO.ALLOY.RENDERERS.SIMPLE:SIZE)
2024-11-05 09:40:12 [INFO ] <TRIAL.PIPELINE>: #<PIPELINED-SCENE {1004EE5643}> packing for 1280x720
2024-11-05 09:40:12 [INFO ] <TRIAL.PIPELINE>: #<PIPELINED-SCENE {1004EE5643}> texture allocation: 
#<UI  UI {1006564283}>
    COLOR: #<TEXTURE 1280x720 RGBA {100894C053}>
    DEPTH: #<TEXTURE 1280x720 DEPTH-STENCIL {1008990453}>
2024-11-05 09:40:12 [INFO ] <TRIAL.MAIN>: Scene setup took 0.38589s run time, 0.390612s clock time.
2024-11-05 09:40:12 [INFO ] <TRIAL.LOADER>: Incrementally loading #<PIPELINED-SCENE {1004EE5643}>
2024-11-05 09:40:12 [INFO ] <TRIAL.LOADER>: Operation took 0.190603s run-time 0.196972s real-time
2024-11-05 09:40:12 [INFO ] <TRIAL.MAIN>: Commit took 0.190892s run time, 0.196972s clock time.
2024-11-05 09:40:12 [INFO ] <TRIAL.CONTEXT>: #<THREAD tid=70169 "repl-thread" RUNNING {1000BB0093}> releasing #<CONTEXT {1004F56C43}>.
2024-11-05 09:40:12 [INFO ] <TRIAL.INPUT>: No controllers detected.
2024-11-05 09:40:12 [INFO ] <TRIAL.BACKEND.GLFW>: Window has gained focus
2024-11-05 09:40:12 [INFO ] <TRIAL.CONTEXT>: #<THREAD tid=70272 "render-loop" RUNNING {10013575E3}> acquiring #<CONTEXT {1004F56C43}>.
STYLE-WARNING:
   slot names with the same SYMBOL-NAME but different SYMBOL-PACKAGE (possible
   package problem) for class
   #<STANDARD-CLASS ORG.SHIRAKUMO.ALLOY.RENDERERS.OPENGL.MSDF:TEXT>:
       (ORG.SHIRAKUMO.ALLOY.RENDERERS.OPENGL.MSDF::SIZE
        ORG.SHIRAKUMO.ALLOY.RENDERERS.SIMPLE:SIZE)
STYLE-WARNING:
   slot names with the same SYMBOL-NAME but different SYMBOL-PACKAGE (possible
   package problem) for class
   #<STANDARD-CLASS ORG.SHIRAKUMO.ALLOY.RENDERERS.OPENGL.MSDF:TEXT>:
       (ORG.SHIRAKUMO.ALLOY.RENDERERS.OPENGL.MSDF::SIZE
        ORG.SHIRAKUMO.ALLOY.RENDERERS.SIMPLE:SIZE)
2024-11-05 09:40:13 [INFO ] <TRIAL.BACKEND.GLFW>: Framebuffer resized to 3744x2100
2024-11-05 09:40:19 [INFO ] <TRIAL.MAIN>: Setting up #<GPU-PARTICLE-SCENE {100A7B2BC3}>
2024-11-05 09:40:20 [WARN ] <TRIAL>: Coercing array of type UNSIGNED-SHORT to match element type UNSIGNED-INT
2024-11-05 09:40:20 [INFO ] <TRIAL.LOADER>: Incrementally loading #<EXAMPLE-UI {10089FF653}>
2024-11-05 09:40:20 [INFO ] <TRIAL.LOADER>: Operation took 0.000307s run-time 0.0s real-time
2024-11-05 09:40:20 [INFO ] <TRIAL.LOADER>: Incrementally loading #<FONT Arial>
2024-11-05 09:40:20 [INFO ] <TRIAL.LOADER>: Operation took 0.128519s run-time 0.130162s real-time
2024-11-05 09:40:20 [INFO ] <TRIAL.PIPELINE>: #<GPU-PARTICLE-SCENE {100A7B2BC3}> packing for 3744x2100
2024-11-05 09:40:20 [INFO ] <TRIAL.PIPELINE>: #<GPU-PARTICLE-SCENE {100A7B2BC3}> texture allocation: 
#<PBR-RENDER-PASS {101B59D093}>
    COLOR: #<TEXTURE 3744x2100 RGBA32F {100D17F793}>
    NORMAL: #<TEXTURE 3744x2100 RGB16F {100D2003E3}>
    DEPTH: #<TEXTURE 3744x2100 DEPTH-STENCIL {100D2025C3}>
    SHADOW-MAP: #<TEXTURE 2048x2048x18 DEPTH-COMPONENT {101E148F83}>
#<WARD {101B5E2233}>
    PREVIOUS-PASS: #<TEXTURE 3744x2100 RGBA32F {100D17F793}>
    COLOR: #<TEXTURE 3744x2100 RGBA {100D2046E3}>
#<UI  UI {10088E9243}>
    COLOR: #<TEXTURE 3744x2100 RGBA {100D2069C3}>
    DEPTH: #<TEXTURE 3744x2100 DEPTH-STENCIL {100D270D33}>
#<BLEND-PASS TRIAL:BLEND-PASS>
    A-PASS: #<TEXTURE 3744x2100 RGBA {100D2046E3}>
    B-PASS: #<TEXTURE 3744x2100 RGBA {100D2069C3}>
    COLOR: #<TEXTURE 3744x2100 RGBA {100D272FF3}>
2024-11-05 09:40:20 [INFO ] <TRIAL.MAIN>: Scene setup took 1.374009s run time, 1.368386s clock time.
2024-11-05 09:40:20 [INFO ] <TRIAL.LOADER>: Incrementally loading #<GPU-PARTICLE-SCENE {100A7B2BC3}>
2024-11-05 09:40:20 [SEVERE] <TRIAL.RENDER-LOOP>: Error in render thread Failed to compile #<SHADER VERTEX-SHADER {100F241E83}>:
  0(5) : error C0000: syntax error, unexpected identifier, expecting reserved word or reserved word "in" or reserved word "out" or reserved word "uniform" at token "ParticleCounterBuffer"
0(9) : error C0000: syntax error, unexpected '}' at token "}"
0(10) : error C0000: syntax error, unexpected identifier, expecting reserved word or reserved word "in" or reserved word "out" or reserved word "uniform" at token "ParticleArgumentBuffer"
0(14) : error C0000: syntax error, unexpected '}' at token "}"
0(15) : error C0000: syntax error, unexpected identifier, expecting reserved word or reserved word "in" or reserved word "out" or reserved word "uniform" at token "ParticleEmitterBuffer"
0(29) : error C0000: syntax error, unexpected '}' at token "}"

  1 #version 330
  2 #define EMIT_THREADS 256
  3 #define SIMULATE_THREADS 256
  4 #define MAX_PARTICLES 1000000
  5 layout(std430, row_major) buffer ParticleCounterBuffer{
  6   uint alive_count;
  7   uint dead_count;
  8   uint real_emit_count;
  9 } ;
 10 layout(std140, row_major) buffer ParticleArgumentBuffer{
 11   uvec3 emit_args;
 12   uvec3 simulate_args;
 13   uvec4 draw_args;
 14 } ;
 15 layout(std430, row_major) buffer ParticleEmitterBuffer{
 16   mat4 model_matrix;
 17   uint emit_count;
 18   uint mesh_index_count;
 19   uint mesh_vertex_stride;
 20   float randomness;
 21   uint particle_color;
 22   float particle_size;
 23   float particle_scaling;
 24   float particle_rotation;
 25   float particle_randomness;
 26   float particle_velocity;
 27   float particle_lifespan;
 28   float particle_lifespan_randomness;
 29 } ;
 30 #define TRIAL_V_LOCATION 0
 31 #define TRIAL_V_NORMAL 1
 32 #define TRIAL_V_UV 2
 33 #define TRIAL_V_TANGENT 3
 34 #define TRIAL_V_COLOR 4
 35 #define TRIAL_V_JOINTS 5
 36 #define TRIAL_V_WEIGHTS 6
 37 #define TRIAL_V_UV_0 2
 38 #define TRIAL_V_UV_1 7
 39 #define TRIAL_V_UV_2 10
 40 #define TRIAL_V_UV_3 13
 41 #define TRIAL_V_JOINTS_0 5
 42 #define TRIAL_V_JOINTS_1 8
 43 #define TRIAL_V_JOINTS_2 11
 44 #define TRIAL_V_JOINTS_3 14
 45 #define TRIAL_V_WEIGHTS_0 6
 46 #define TRIAL_V_WEIGHTS_1 9
 47 #define TRIAL_V_WEIGHTS_2 12
 48 #define TRIAL_V_WEIGHTS_3 15
 49 #define TRIAL_V_INDEX 16
 50 
 51 void main(){
 52 }

2024-11-05 09:40:22 [INFO ] <TRIAL.BACKEND.GLFW>: Window has lost focus
2024-11-05 09:42:53 [INFO ] <TRIAL.BACKEND.GLFW>: Window has gained focus
2024-11-05 09:42:54 [INFO ] <TRIAL.BACKEND.GLFW>: Window has lost focus
2024-11-05 09:42:54 [INFO ] <TRIAL.BACKEND.GLFW>: Window has been iconified
2024-11-05 09:42:55 [INFO ] <TRIAL.BACKEND.GLFW>: Window has been restored
2024-11-05 09:42:55 [INFO ] <TRIAL.BACKEND.GLFW>: Window has gained focus
2024-11-05 09:42:59 [INFO ] <TRIAL.BACKEND.GLFW>: Window has lost focus
2024-11-05 09:43:00 [INFO ] <TRIAL.BACKEND.GLFW>: Window has gained focus
2024-11-05 09:43:01 [INFO ] <TRIAL.BACKEND.GLFW>: Window has lost focus
2024-11-05 09:43:01 [INFO ] <TRIAL.BACKEND.GLFW>: Window has been iconified
2024-11-05 09:43:07 [INFO ] <TRIAL.LOADER>: Operation took 1.460279s run-time 166.83939s real-time
2024-11-05 09:43:07 [INFO ] <TRIAL.MAIN>: Commit took 1.460302s run time, 166.83939s clock time.
2024-11-05 09:43:07 [INFO ] <TRIAL.RENDER-LOOP>: Exiting render-loop for #<EXAMPLE {1004B98F93}>.
2024-11-05 09:43:07 [INFO ] <TRIAL.CONTEXT>: #<THREAD tid=70272 "render-loop" RUNNING {10013575E3}> releasing #<CONTEXT {1004F56C43}>.
2024-11-05 09:43:07 [INFO ] <TRIAL.MAIN>: RAPTURE
2024-11-05 09:43:07 [INFO ] <TRIAL.CONTEXT>: #<THREAD tid=70169 "repl-thread" RUNNING {1000BB0093}> acquiring #<CONTEXT {1004F56C43}>.
2024-11-05 09:43:07 [INFO ] <TRIAL.CONTEXT>: Destroying context.
2024-11-05 09:43:07 [INFO ] <TRIAL.POWER>: Restoring powersaving.
NIL
2024-11-05 09:43:07 [INFO ] <TRIAL.MAIN>: We're done
sakurawald commented 3 days ago

I would like to know, is this something related to the version compatibility about the gpu hardware or glx?

Shinmera commented 3 days ago

No. And that shouldn't be possible to happen if 11fe3eb properly applied. That vertex shader shouldn't even be compiled at all, so I don't know what's going on with your setup.

sakurawald commented 3 days ago

I delete all files in ~/.roswell/lisp/quicklisp/local-projects/ and re-download the dists from the repository. The gpu particle now works.

By the way, the convex-covering package is not inside the quicklisp center repository.

image

Shinmera commented 3 days ago

I'm aware. convex-covering is still beta software.