From d2315beda93202349212fd5c2d72d93a7e3990ad Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Mon, 24 Jul 2023 18:10:20 -0400 Subject: [PATCH 01/37] added AlertArmatureMask --- .../java/com/jme3/anim/AlertArmatureMask.java | 190 ++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java diff --git a/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java b/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java new file mode 100644 index 0000000000..33912c28e3 --- /dev/null +++ b/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java @@ -0,0 +1,190 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package com.jme3.anim; + +import com.jme3.scene.Spatial; +import java.util.Iterator; + +/** + * Extension of {@link ArmatureMask}. + * + *

Provides a feature which checks higher layers for joint use before it + * approves the layer to use a joint. + * + * @author codex + */ +public class AlertArmatureMask extends ArmatureMask { + + private final String layer; + private final AnimComposer anim; + private final SkinningControl skin; + private boolean checkUpperLayers = true; + + /** + * @param layer The layer this mask is targeted for. It is extremely important + * that this match the name of the layer this mask is (or will be) part of. You + * can use {@link makeLayer} to ensure this. + * @param spatial Spatial containing necessary controls ({@link AnimComposer} and {@link SkinningControl}) + */ + public AlertArmatureMask(String layer, Spatial spatial) { + super(); + this.layer = layer; + anim = spatial.getControl(AnimComposer.class); + skin = spatial.getControl(SkinningControl.class); + } + public AlertArmatureMask(String layer, AnimComposer anim, SkinningControl skin) { + super(); + this.layer = layer; + this.anim = anim; + this.skin = skin; + } + + /** + * Creates a copyFor of this {@code AlertArmatureMask} for the given layer. + * @param layer + * @return copyFor of this {@code AlertArmatureMask} for the layer + */ + public AlertArmatureMask copyFor(String layer) { + return new AlertArmatureMask(layer, anim, skin); + } + /** + * Makes a layer for this mask. + */ + public void makeLayer() { + anim.makeLayer(layer, this); + } + + /** + * Adds all joints to this mask. + * @return + */ + public AlertArmatureMask addAll() { + for (Joint j : skin.getArmature().getJointList()) { + super.addBones(skin.getArmature(), j.getName()); + } + return this; + } + /** + * Adds the given joint and all its children to this mask. + * @param joint + * @return + */ + public AlertArmatureMask addFromJoint(String joint) { + super.addFromJoint(skin.getArmature(), joint); + return this; + } + /** + * Adds the given joints to this mask. + * @param joints + * @return + */ + public AlertArmatureMask addJoints(String... joints) { + super.addBones(skin.getArmature(), joints); + return this; + } + + /** + * Makes this mask check if each joint is being used by a higher layer + * before it uses them. + *

Not checking is more efficient, but checking can avoid some + * interpolation issues between layers. Default=true + * @param check + */ + public void setCheckUpperLayers(boolean check) { + checkUpperLayers = check; + } + + /** + * Get the layer this mask is targeted for. + *

It is extremely important that this value match the actual layer + * this is included in, because checking upper layers may not work if + * they are different. + * @return target layer + */ + public String getTargetLayer() { + return layer; + } + /** + * Get the {@link AnimComposer} this mask is for. + * @return + */ + public AnimComposer getAnimComposer() { + return anim; + } + /** + * Get the {@link SkinningControl} this mask is for. + * @return + */ + public SkinningControl getSkinningControl() { + return skin; + } + /** + * Returns true if this mask is checking upper layers for joint use. + * @return + */ + public boolean isCheckUpperLayers() { + return checkUpperLayers; + } + + @Override + public boolean contains(Object target) { + return simpleContains(target) && (!checkUpperLayers || !isAffectedByUpperLayers(target)); + } + private boolean simpleContains(Object target) { + return super.contains(target); + } + private boolean isAffectedByUpperLayers(Object target) { + boolean higher = false; + /** + * ... Since AnimComposer does not provide a Collection that + * has a decending iterator, we will just have to skip over + * a bunch of lower layers before we actually need to do anything. + */ + for (String name : anim.getLayerNames()) { + if (name.equals(layer)) { + higher = true; + continue; + } + if (!higher) { + continue; + } + AnimLayer lyr = anim.getLayer(name); + // if there is no action playing, no joints are used, so we can skip + if (lyr.getCurrentAction() == null) continue; + if (lyr.getMask() instanceof AlertArmatureMask) { + // dodge some needless recursion by calling a simpler method + if (((AlertArmatureMask)lyr.getMask()).simpleContains(target)) { + return true; + } + } + else if (lyr.getMask().contains(target)) { + return true; + } + } + return false; + } + + /** + * Creates an {@code AlertArmatureMask} for all joints. + * @param layer + * @param spatial + * @return + */ + public static AlertArmatureMask all(String layer, Spatial spatial) { + return new AlertArmatureMask(layer, spatial).addAll(); + } + /** + * Creates an {@code AlertArmatureMask} for all joints. + * @param layer + * @param anim + * @param skin + * @return + */ + public static AlertArmatureMask all(String layer, AnimComposer anim, SkinningControl skin) { + return new AlertArmatureMask(layer, anim, skin).addAll(); + } + +} + From 2f1dae883262a0c69918fd1da445e3fa6dfb1211 Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Mon, 24 Jul 2023 18:30:50 -0400 Subject: [PATCH 02/37] fixed docs and added another helper --- .../java/com/jme3/anim/AlertArmatureMask.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java b/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java index 33912c28e3..da8d1dcaed 100644 --- a/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java +++ b/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java @@ -44,7 +44,7 @@ public AlertArmatureMask(String layer, AnimComposer anim, SkinningControl skin) /** * Creates a copyFor of this {@code AlertArmatureMask} for the given layer. * @param layer - * @return copyFor of this {@code AlertArmatureMask} for the layer + * @return copy of this {@code AlertArmatureMask} for the layer */ public AlertArmatureMask copyFor(String layer) { return new AlertArmatureMask(layer, anim, skin); @@ -185,6 +185,21 @@ public static AlertArmatureMask all(String layer, Spatial spatial) { public static AlertArmatureMask all(String layer, AnimComposer anim, SkinningControl skin) { return new AlertArmatureMask(layer, anim, skin).addAll(); } + /** + * Creates an array of masks all sharing the same joint masking as {@code base}. + *

This is useful, for example, when you want to create several layers that all cover + * the entire armature. + * @param base base mask used to create other masks + * @param layers layer names to use + * @return array of new masks + */ + public static AlertArmatureMask[] create(AlertArmatureMask base, String... layers) { + AlertArmatureMask[] masks = new AlertArmatureMask[layers.length]; + for (int i = 0; i < layers.length; i++) { + masks[i] = base.copyFor(layers[i]); + } + return masks; + } } From a750f1cf1a461853a70941bd2897c555543795ff Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Mon, 24 Jul 2023 18:33:45 -0400 Subject: [PATCH 03/37] made it easier to turn off priority checking --- jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java b/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java index da8d1dcaed..a9e25607bc 100644 --- a/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java +++ b/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java @@ -91,9 +91,11 @@ public AlertArmatureMask addJoints(String... joints) { *

Not checking is more efficient, but checking can avoid some * interpolation issues between layers. Default=true * @param check + * @return */ - public void setCheckUpperLayers(boolean check) { + public AlertArmatureMask setCheckUpperLayers(boolean check) { checkUpperLayers = check; + return this; } /** From cd876d403e8039e7831616736fc00847ac661005 Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Mon, 24 Jul 2023 20:09:58 -0400 Subject: [PATCH 04/37] removed copy methods --- .../java/com/jme3/anim/AlertArmatureMask.java | 23 ------------------- 1 file changed, 23 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java b/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java index a9e25607bc..e034b942a5 100644 --- a/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java +++ b/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java @@ -41,14 +41,6 @@ public AlertArmatureMask(String layer, AnimComposer anim, SkinningControl skin) this.skin = skin; } - /** - * Creates a copyFor of this {@code AlertArmatureMask} for the given layer. - * @param layer - * @return copy of this {@code AlertArmatureMask} for the layer - */ - public AlertArmatureMask copyFor(String layer) { - return new AlertArmatureMask(layer, anim, skin); - } /** * Makes a layer for this mask. */ @@ -187,21 +179,6 @@ public static AlertArmatureMask all(String layer, Spatial spatial) { public static AlertArmatureMask all(String layer, AnimComposer anim, SkinningControl skin) { return new AlertArmatureMask(layer, anim, skin).addAll(); } - /** - * Creates an array of masks all sharing the same joint masking as {@code base}. - *

This is useful, for example, when you want to create several layers that all cover - * the entire armature. - * @param base base mask used to create other masks - * @param layers layer names to use - * @return array of new masks - */ - public static AlertArmatureMask[] create(AlertArmatureMask base, String... layers) { - AlertArmatureMask[] masks = new AlertArmatureMask[layers.length]; - for (int i = 0; i < layers.length; i++) { - masks[i] = base.copyFor(layers[i]); - } - return masks; - } } From 9c9c2d8422bf6e216fed6e10754712651bf5906d Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Fri, 19 Jan 2024 08:06:28 -0500 Subject: [PATCH 05/37] updated license --- .../java/com/jme3/anim/AlertArmatureMask.java | 45 +++++++++++++++---- 1 file changed, 37 insertions(+), 8 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java b/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java index e034b942a5..bc797599e9 100644 --- a/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java +++ b/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java @@ -1,11 +1,37 @@ /* - * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license - * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + * Copyright (c) 2024 jMonkeyEngine + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'jMonkeyEngine' nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package com.jme3.anim; import com.jme3.scene.Spatial; -import java.util.Iterator; /** * Extension of {@link ArmatureMask}. @@ -58,6 +84,7 @@ public AlertArmatureMask addAll() { } return this; } + /** * Adds the given joint and all its children to this mask. * @param joint @@ -67,6 +94,7 @@ public AlertArmatureMask addFromJoint(String joint) { super.addFromJoint(skin.getArmature(), joint); return this; } + /** * Adds the given joints to this mask. * @param joints @@ -100,6 +128,7 @@ public AlertArmatureMask setCheckUpperLayers(boolean check) { public String getTargetLayer() { return layer; } + /** * Get the {@link AnimComposer} this mask is for. * @return @@ -107,6 +136,7 @@ public String getTargetLayer() { public AnimComposer getAnimComposer() { return anim; } + /** * Get the {@link SkinningControl} this mask is for. * @return @@ -114,6 +144,7 @@ public AnimComposer getAnimComposer() { public SkinningControl getSkinningControl() { return skin; } + /** * Returns true if this mask is checking upper layers for joint use. * @return @@ -126,16 +157,13 @@ public boolean isCheckUpperLayers() { public boolean contains(Object target) { return simpleContains(target) && (!checkUpperLayers || !isAffectedByUpperLayers(target)); } + private boolean simpleContains(Object target) { return super.contains(target); } + private boolean isAffectedByUpperLayers(Object target) { boolean higher = false; - /** - * ... Since AnimComposer does not provide a Collection that - * has a decending iterator, we will just have to skip over - * a bunch of lower layers before we actually need to do anything. - */ for (String name : anim.getLayerNames()) { if (name.equals(layer)) { higher = true; @@ -169,6 +197,7 @@ else if (lyr.getMask().contains(target)) { public static AlertArmatureMask all(String layer, Spatial spatial) { return new AlertArmatureMask(layer, spatial).addAll(); } + /** * Creates an {@code AlertArmatureMask} for all joints. * @param layer From 83c95e504b8d043e6d0f96f0ccd046d2e3429b1c Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Sat, 20 Jan 2024 16:39:33 -0500 Subject: [PATCH 06/37] updated javadoc --- .../java/com/jme3/anim/AlertArmatureMask.java | 43 +++++++++++-------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java b/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java index bc797599e9..0af9f13779 100644 --- a/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java +++ b/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java @@ -34,10 +34,8 @@ import com.jme3.scene.Spatial; /** - * Extension of {@link ArmatureMask}. - * - *

Provides a feature which checks higher layers for joint use before it - * approves the layer to use a joint. + * Mask that excludes joints from participating in the layer + * if a higher layer is using those joints in an animation. * * @author codex */ @@ -49,7 +47,7 @@ public class AlertArmatureMask extends ArmatureMask { private boolean checkUpperLayers = true; /** - * @param layer The layer this mask is targeted for. It is extremely important + * @param layer The layer this mask is targeted for. It is important * that this match the name of the layer this mask is (or will be) part of. You * can use {@link makeLayer} to ensure this. * @param spatial Spatial containing necessary controls ({@link AnimComposer} and {@link SkinningControl}) @@ -60,6 +58,13 @@ public AlertArmatureMask(String layer, Spatial spatial) { anim = spatial.getControl(AnimComposer.class); skin = spatial.getControl(SkinningControl.class); } + /** + * @param layer The layer this mask is targeted for. It is important + * that this match the name of the layer this mask is (or will be) part of. You + * can use {@link makeLayer} to ensure this. + * @param anim anim composer this mask is assigned to + * @param skin skinning control complimenting the anim composer. + */ public AlertArmatureMask(String layer, AnimComposer anim, SkinningControl skin) { super(); this.layer = layer; @@ -68,7 +73,7 @@ public AlertArmatureMask(String layer, AnimComposer anim, SkinningControl skin) } /** - * Makes a layer for this mask. + * Makes a layer from this mask. */ public void makeLayer() { anim.makeLayer(layer, this); @@ -76,7 +81,7 @@ public void makeLayer() { /** * Adds all joints to this mask. - * @return + * @return this.instance */ public AlertArmatureMask addAll() { for (Joint j : skin.getArmature().getJointList()) { @@ -88,7 +93,7 @@ public AlertArmatureMask addAll() { /** * Adds the given joint and all its children to this mask. * @param joint - * @return + * @return this instance */ public AlertArmatureMask addFromJoint(String joint) { super.addFromJoint(skin.getArmature(), joint); @@ -98,7 +103,7 @@ public AlertArmatureMask addFromJoint(String joint) { /** * Adds the given joints to this mask. * @param joints - * @return + * @return this instance */ public AlertArmatureMask addJoints(String... joints) { super.addBones(skin.getArmature(), joints); @@ -111,7 +116,7 @@ public AlertArmatureMask addJoints(String... joints) { *

Not checking is more efficient, but checking can avoid some * interpolation issues between layers. Default=true * @param check - * @return + * @return this instance */ public AlertArmatureMask setCheckUpperLayers(boolean check) { checkUpperLayers = check; @@ -131,7 +136,7 @@ public String getTargetLayer() { /** * Get the {@link AnimComposer} this mask is for. - * @return + * @return anim composer */ public AnimComposer getAnimComposer() { return anim; @@ -139,7 +144,7 @@ public AnimComposer getAnimComposer() { /** * Get the {@link SkinningControl} this mask is for. - * @return + * @return skinning control */ public SkinningControl getSkinningControl() { return skin; @@ -190,9 +195,9 @@ else if (lyr.getMask().contains(target)) { /** * Creates an {@code AlertArmatureMask} for all joints. - * @param layer - * @param spatial - * @return + * @param layer layer the returned mask is, or will be, be assigned to + * @param spatial spatial containing anim composer and skinning control + * @return new mask */ public static AlertArmatureMask all(String layer, Spatial spatial) { return new AlertArmatureMask(layer, spatial).addAll(); @@ -200,10 +205,10 @@ public static AlertArmatureMask all(String layer, Spatial spatial) { /** * Creates an {@code AlertArmatureMask} for all joints. - * @param layer - * @param anim - * @param skin - * @return + * @param layer layer the returned mask is, or will be, assigned to + * @param anim anim composer + * @param skin skinning control + * @return new mask */ public static AlertArmatureMask all(String layer, AnimComposer anim, SkinningControl skin) { return new AlertArmatureMask(layer, anim, skin).addAll(); From 90e6cd81feed8aa487998f23199f8f67a3cc51ed Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Sun, 21 Jan 2024 15:48:49 -0500 Subject: [PATCH 07/37] renamed mask --- ...ask.java => SingleLayerInfluenceMask.java} | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) rename jme3-core/src/main/java/com/jme3/anim/{AlertArmatureMask.java => SingleLayerInfluenceMask.java} (85%) diff --git a/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java b/jme3-core/src/main/java/com/jme3/anim/SingleLayerInfluenceMask.java similarity index 85% rename from jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java rename to jme3-core/src/main/java/com/jme3/anim/SingleLayerInfluenceMask.java index 0af9f13779..935cb99abd 100644 --- a/jme3-core/src/main/java/com/jme3/anim/AlertArmatureMask.java +++ b/jme3-core/src/main/java/com/jme3/anim/SingleLayerInfluenceMask.java @@ -39,7 +39,7 @@ * * @author codex */ -public class AlertArmatureMask extends ArmatureMask { +public class SingleLayerInfluenceMask extends ArmatureMask { private final String layer; private final AnimComposer anim; @@ -52,7 +52,7 @@ public class AlertArmatureMask extends ArmatureMask { * can use {@link makeLayer} to ensure this. * @param spatial Spatial containing necessary controls ({@link AnimComposer} and {@link SkinningControl}) */ - public AlertArmatureMask(String layer, Spatial spatial) { + public SingleLayerInfluenceMask(String layer, Spatial spatial) { super(); this.layer = layer; anim = spatial.getControl(AnimComposer.class); @@ -65,7 +65,7 @@ public AlertArmatureMask(String layer, Spatial spatial) { * @param anim anim composer this mask is assigned to * @param skin skinning control complimenting the anim composer. */ - public AlertArmatureMask(String layer, AnimComposer anim, SkinningControl skin) { + public SingleLayerInfluenceMask(String layer, AnimComposer anim, SkinningControl skin) { super(); this.layer = layer; this.anim = anim; @@ -83,7 +83,7 @@ public void makeLayer() { * Adds all joints to this mask. * @return this.instance */ - public AlertArmatureMask addAll() { + public SingleLayerInfluenceMask addAll() { for (Joint j : skin.getArmature().getJointList()) { super.addBones(skin.getArmature(), j.getName()); } @@ -95,7 +95,7 @@ public AlertArmatureMask addAll() { * @param joint * @return this instance */ - public AlertArmatureMask addFromJoint(String joint) { + public SingleLayerInfluenceMask addFromJoint(String joint) { super.addFromJoint(skin.getArmature(), joint); return this; } @@ -105,7 +105,7 @@ public AlertArmatureMask addFromJoint(String joint) { * @param joints * @return this instance */ - public AlertArmatureMask addJoints(String... joints) { + public SingleLayerInfluenceMask addJoints(String... joints) { super.addBones(skin.getArmature(), joints); return this; } @@ -118,7 +118,7 @@ public AlertArmatureMask addJoints(String... joints) { * @param check * @return this instance */ - public AlertArmatureMask setCheckUpperLayers(boolean check) { + public SingleLayerInfluenceMask setCheckUpperLayers(boolean check) { checkUpperLayers = check; return this; } @@ -180,9 +180,9 @@ private boolean isAffectedByUpperLayers(Object target) { AnimLayer lyr = anim.getLayer(name); // if there is no action playing, no joints are used, so we can skip if (lyr.getCurrentAction() == null) continue; - if (lyr.getMask() instanceof AlertArmatureMask) { + if (lyr.getMask() instanceof SingleLayerInfluenceMask) { // dodge some needless recursion by calling a simpler method - if (((AlertArmatureMask)lyr.getMask()).simpleContains(target)) { + if (((SingleLayerInfluenceMask)lyr.getMask()).simpleContains(target)) { return true; } } @@ -194,24 +194,24 @@ else if (lyr.getMask().contains(target)) { } /** - * Creates an {@code AlertArmatureMask} for all joints. + * Creates an {@code SingleLayerInfluenceMask} for all joints. * @param layer layer the returned mask is, or will be, be assigned to * @param spatial spatial containing anim composer and skinning control * @return new mask */ - public static AlertArmatureMask all(String layer, Spatial spatial) { - return new AlertArmatureMask(layer, spatial).addAll(); + public static SingleLayerInfluenceMask all(String layer, Spatial spatial) { + return new SingleLayerInfluenceMask(layer, spatial).addAll(); } /** - * Creates an {@code AlertArmatureMask} for all joints. + * Creates an {@code SingleLayerInfluenceMask} for all joints. * @param layer layer the returned mask is, or will be, assigned to * @param anim anim composer * @param skin skinning control * @return new mask */ - public static AlertArmatureMask all(String layer, AnimComposer anim, SkinningControl skin) { - return new AlertArmatureMask(layer, anim, skin).addAll(); + public static SingleLayerInfluenceMask all(String layer, AnimComposer anim, SkinningControl skin) { + return new SingleLayerInfluenceMask(layer, anim, skin).addAll(); } } From 0c2d187fda2757bac3722abaf8ee1c01ee7e94fd Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Mon, 23 Jun 2025 23:07:35 -0400 Subject: [PATCH 08/37] create vulkan context and prototyped vulkan instance creation in a test class --- gradle/libs.versions.toml | 1 + jme3-core/build.gradle | 49 ++ .../jme3/renderer/vulkan/VulkanRenderer.java | 10 + .../com/jme3/renderer/vulkan/VulkanUtils.java | 113 +++++ .../main/java/com/jme3/system/JmeContext.java | 19 +- jme3-examples/build.gradle | 4 +- .../main/java/jme3test/vulkan/VulkanTest.java | 215 +++++++++ jme3-lwjgl3/build.gradle | 1 + .../com/jme3/input/lwjgl/GlfwKeyInput.java | 7 +- .../com/jme3/input/lwjgl/GlfwMouseInput.java | 8 +- .../main/java/com/jme3/system/GlfwWindow.java | 17 + .../com/jme3/system/{lwjgl => }/Sync.java | 4 +- .../{lwjgl => }/WindowSizeListener.java | 4 +- .../com/jme3/system/lwjgl/LwjglWindow.java | 14 +- .../jme3/system/vulkan/DeviceEvaluator.java | 11 + .../system/vulkan/LwjglVulkanContext.java | 455 ++++++++++++++++++ 16 files changed, 911 insertions(+), 21 deletions(-) create mode 100644 jme3-core/src/main/java/com/jme3/renderer/vulkan/VulkanRenderer.java create mode 100644 jme3-core/src/main/java/com/jme3/renderer/vulkan/VulkanUtils.java create mode 100644 jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/system/GlfwWindow.java rename jme3-lwjgl3/src/main/java/com/jme3/system/{lwjgl => }/Sync.java (99%) rename jme3-lwjgl3/src/main/java/com/jme3/system/{lwjgl => }/WindowSizeListener.java (97%) create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/system/vulkan/DeviceEvaluator.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/system/vulkan/LwjglVulkanContext.java diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6b56daa8a7..fabebdcc8a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -34,6 +34,7 @@ lwjgl3-opencl = { module = "org.lwjgl:lwjgl-opencl", version.ref = "lwjgl3" lwjgl3-opengl = { module = "org.lwjgl:lwjgl-opengl", version.ref = "lwjgl3" } lwjgl3-openvr = { module = "org.lwjgl:lwjgl-openvr", version.ref = "lwjgl3" } lwjgl3-ovr = { module = "org.lwjgl:lwjgl-ovr", version.ref = "lwjgl3" } +lwjgl3-vulkan = { module = "org.lwjgl:lwjgl-vulkan", version.ref = "lwjgl3" } mokito-core = "org.mockito:mockito-core:3.12.4" diff --git a/jme3-core/build.gradle b/jme3-core/build.gradle index 58ac362921..b741fc18cc 100644 --- a/jme3-core/build.gradle +++ b/jme3-core/build.gradle @@ -19,6 +19,55 @@ dependencies { testRuntimeOnly project(':jme3-testdata') testImplementation project(':jme3-desktop') testRuntimeOnly project(':jme3-plugins') + + // Use LWJGL3 directly in core. This destroys LWJGL2 and JOGL compatibility. + api (libs.lwjgl3.awt) { + exclude group: 'org.lwjgl', module: 'lwjgl' + } + api libs.lwjgl3.base + api libs.lwjgl3.glfw + api libs.lwjgl3.jawt + api libs.lwjgl3.jemalloc + api libs.lwjgl3.openal + api libs.lwjgl3.opencl + api libs.lwjgl3.opengl + api libs.lwjgl3.vulkan + runtimeOnly(variantOf(libs.lwjgl3.base){ classifier('natives-windows') }) + runtimeOnly(variantOf(libs.lwjgl3.base){ classifier('natives-windows-x86') }) + runtimeOnly(variantOf(libs.lwjgl3.base){ classifier('natives-linux') }) + runtimeOnly(variantOf(libs.lwjgl3.base){ classifier('natives-linux-arm32') }) + runtimeOnly(variantOf(libs.lwjgl3.base){ classifier('natives-linux-arm64') }) + runtimeOnly(variantOf(libs.lwjgl3.base){ classifier('natives-macos') }) + runtimeOnly(variantOf(libs.lwjgl3.base){ classifier('natives-macos-arm64') }) + runtimeOnly(variantOf(libs.lwjgl3.glfw){ classifier('natives-windows') }) + runtimeOnly(variantOf(libs.lwjgl3.glfw){ classifier('natives-windows-x86') }) + runtimeOnly(variantOf(libs.lwjgl3.glfw){ classifier('natives-linux') }) + runtimeOnly(variantOf(libs.lwjgl3.glfw){ classifier('natives-linux-arm32') }) + runtimeOnly(variantOf(libs.lwjgl3.glfw){ classifier('natives-linux-arm64') }) + runtimeOnly(variantOf(libs.lwjgl3.glfw){ classifier('natives-macos') }) + runtimeOnly(variantOf(libs.lwjgl3.glfw){ classifier('natives-macos-arm64') }) + runtimeOnly(variantOf(libs.lwjgl3.jemalloc){ classifier('natives-windows') }) + runtimeOnly(variantOf(libs.lwjgl3.jemalloc){ classifier('natives-windows-x86') }) + runtimeOnly(variantOf(libs.lwjgl3.jemalloc){ classifier('natives-linux') }) + runtimeOnly(variantOf(libs.lwjgl3.jemalloc){ classifier('natives-linux-arm32') }) + runtimeOnly(variantOf(libs.lwjgl3.jemalloc){ classifier('natives-linux-arm64') }) + runtimeOnly(variantOf(libs.lwjgl3.jemalloc){ classifier('natives-macos') }) + runtimeOnly(variantOf(libs.lwjgl3.jemalloc){ classifier('natives-macos-arm64') }) + runtimeOnly(variantOf(libs.lwjgl3.opengl){ classifier('natives-windows') }) + runtimeOnly(variantOf(libs.lwjgl3.opengl){ classifier('natives-windows-x86') }) + runtimeOnly(variantOf(libs.lwjgl3.opengl){ classifier('natives-linux') }) + runtimeOnly(variantOf(libs.lwjgl3.opengl){ classifier('natives-linux-arm32') }) + runtimeOnly(variantOf(libs.lwjgl3.opengl){ classifier('natives-linux-arm64') }) + runtimeOnly(variantOf(libs.lwjgl3.opengl){ classifier('natives-macos') }) + runtimeOnly(variantOf(libs.lwjgl3.opengl){ classifier('natives-macos-arm64') }) + runtimeOnly(variantOf(libs.lwjgl3.openal){ classifier('natives-windows') }) + runtimeOnly(variantOf(libs.lwjgl3.openal){ classifier('natives-windows-x86') }) + runtimeOnly(variantOf(libs.lwjgl3.openal){ classifier('natives-linux') }) + runtimeOnly(variantOf(libs.lwjgl3.openal){ classifier('natives-linux-arm32') }) + runtimeOnly(variantOf(libs.lwjgl3.openal){ classifier('natives-linux-arm64') }) + runtimeOnly(variantOf(libs.lwjgl3.openal){ classifier('natives-macos') }) + runtimeOnly(variantOf(libs.lwjgl3.openal){ classifier('natives-macos-arm64') }) + } task updateVersionPropertiesFile { diff --git a/jme3-core/src/main/java/com/jme3/renderer/vulkan/VulkanRenderer.java b/jme3-core/src/main/java/com/jme3/renderer/vulkan/VulkanRenderer.java new file mode 100644 index 0000000000..a41424268c --- /dev/null +++ b/jme3-core/src/main/java/com/jme3/renderer/vulkan/VulkanRenderer.java @@ -0,0 +1,10 @@ +package com.jme3.renderer.vulkan; + +import com.jme3.system.NullRenderer; + +/** + * Temporary placeholder. + */ +public class VulkanRenderer extends NullRenderer { + +} diff --git a/jme3-core/src/main/java/com/jme3/renderer/vulkan/VulkanUtils.java b/jme3-core/src/main/java/com/jme3/renderer/vulkan/VulkanUtils.java new file mode 100644 index 0000000000..e3992ac3a3 --- /dev/null +++ b/jme3-core/src/main/java/com/jme3/renderer/vulkan/VulkanUtils.java @@ -0,0 +1,113 @@ +package com.jme3.renderer.vulkan; + +import org.lwjgl.PointerBuffer; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.vulkan.VkInstance; + +import java.nio.ByteBuffer; +import java.nio.IntBuffer; +import java.nio.LongBuffer; +import java.util.Collection; +import java.util.Iterator; +import java.util.function.*; +import java.util.stream.Stream; + +import static org.lwjgl.vulkan.VK10.*; + +public class VulkanUtils { + + public static void check(int vulkanCode, String message) { + if (vulkanCode != VK_SUCCESS) { + throw new RuntimeException(message); + } + } + + public static T enumerateBuffer(MemoryStack stack, IntFunction factory, BiConsumer fetch) { + IntBuffer count = stack.callocInt(1); + fetch.accept(count, null); + T buffer = factory.apply(count.get(0)); + fetch.accept(count, buffer); + return buffer; + } + + public static PointerBuffer toPointers(MemoryStack stack, Stream stream, int count, Function toBytes) { + PointerBuffer ptrs = stack.mallocPointer(count); + stream.map(toBytes).forEach(ptrs::put); + return ptrs.rewind(); + } + + public static long getPointer(MemoryStack stack, Consumer action) { + PointerBuffer ptr = stack.mallocPointer(1); + action.accept(ptr); + return ptr.get(0); + } + + public static long getLong(MemoryStack stack, Consumer action) { + LongBuffer l = stack.mallocLong(1); + action.accept(l); + return l.get(0); + } + + public static PointerBuffer gatherPointers(MemoryStack stack, Collection pointers) { + int size = 0; + for (PointerBuffer p : pointers) { + size += p.limit(); + } + PointerBuffer gather = stack.mallocPointer(size); + for (PointerBuffer p : pointers) { + gather.put(p); + } + return gather.rewind(); + } + + public static void printListed(String label, Iterable list, Function toString) { + System.out.println(label); + for (T o : list) { + System.out.println(" " + toString.apply(o)); + } + } + + public static void verifyExtensionMethod(VkInstance instance, String name) { + if (vkGetInstanceProcAddr(instance, name) == MemoryUtil.NULL) { + throw new NullPointerException("Extension method " + name + " does not exist."); + } + } + + public static NativeIterator iteratePointers(PointerBuffer buffer, LongFunction func) { + return new NativeIterator<>(buffer, func); + } + + public static boolean isBitSet(int n, int bit) { + return (n & bit) > 0; + } + + public static class NativeIterator implements Iterable, Iterator { + + private final PointerBuffer pointers; + private final LongFunction func; + private int index = 0; + + public NativeIterator(PointerBuffer pointers, LongFunction func) { + this.pointers = pointers; + this.func = func; + } + + @Override + public Iterator iterator() { + return this; + } + + @Override + public boolean hasNext() { + return index < pointers.limit(); + } + + @Override + public T next() { + return func.apply(pointers.get(index++)); + } + + } + +} diff --git a/jme3-core/src/main/java/com/jme3/system/JmeContext.java b/jme3-core/src/main/java/com/jme3/system/JmeContext.java index c2ffe912ef..e162fc399a 100644 --- a/jme3-core/src/main/java/com/jme3/system/JmeContext.java +++ b/jme3-core/src/main/java/com/jme3/system/JmeContext.java @@ -44,7 +44,7 @@ public interface JmeContext { /** * The type of context. */ - public enum Type { + enum Type { /** * A display can represent a windowed or a fullscreen-exclusive display. * If windowed, the graphics are rendered to a new on-screen surface @@ -79,6 +79,23 @@ public enum Type { Headless, } + /** + * Enum specifying the backend to use. + */ + enum Backend { + + /** + * Specifies the OpenGL backend. + */ + OpenGL, + + /** + * Specifies the Vulkan backend. + */ + Vulkan; + + } + /** * @return The type of the context. */ diff --git a/jme3-examples/build.gradle b/jme3-examples/build.gradle index 4f5d41b501..75d4e8c098 100644 --- a/jme3-examples/build.gradle +++ b/jme3-examples/build.gradle @@ -19,8 +19,8 @@ dependencies { implementation project(':jme3-effects') implementation project(':jme3-jbullet') implementation project(':jme3-jogg') - implementation project(':jme3-lwjgl') -// implementation project(':jme3-lwjgl3') +// implementation project(':jme3-lwjgl') + implementation project(':jme3-lwjgl3') implementation project(':jme3-networking') implementation project(':jme3-niftygui') implementation project(':jme3-plugins') diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java new file mode 100644 index 0000000000..f9baced025 --- /dev/null +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java @@ -0,0 +1,215 @@ +package jme3test.vulkan; + +import com.jme3.app.SimpleApplication; +import com.jme3.system.AppSettings; +import com.jme3.system.vulkan.DeviceEvaluator; +import com.jme3.system.vulkan.LwjglVulkanContext; +import org.lwjgl.PointerBuffer; +import org.lwjgl.glfw.GLFWVulkan; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.*; + +import java.util.*; +import java.util.logging.Level; +import java.util.logging.Logger; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.system.MemoryUtil.NULL; +import static org.lwjgl.vulkan.EXTDebugUtils.*; +import static org.lwjgl.vulkan.VK14.*; + +public class VulkanTest extends SimpleApplication { + + private static final Logger LOG = Logger.getLogger(VulkanTest.class.getName()); + + private VkInstance instance; + private VkPhysicalDevice device; + private QueueFamilies queues; + private final Collection extensions = new ArrayList<>(); + private final List layers = new ArrayList<>(); + private final Collection deviceEvaluators = new ArrayList<>(); + private final VkDebugUtilsMessengerCallbackEXT debugCallback = new VulkanDebugCallback(); + private long debugMessenger = NULL; + + public static void main(String[] args) { + VulkanTest app = new VulkanTest(); + AppSettings settings = new AppSettings(true); + settings.setWidth(800); + settings.setHeight(800); + settings.setRenderer("CUSTOM" + LwjglVulkanContext.class.getName()); + app.setSettings(settings); + app.start(); + } + + @Override + public void simpleInitApp() { + // basic validation layer from the Vulkan SDK + //layers.add("VK_LAYER_KHRONOS_validation"); + try (MemoryStack stack = MemoryStack.stackPush()) { + createInstance(stack); + createDebugMessenger(stack); + device = findPhysicalDevice(stack); + queues = populateQueueFamily(stack, device); + } + } + + @Override + public void stop() { + LOG.info("Destroying vulkan instance."); + if (debugMessenger != NULL) { + verifyExtensionMethod(instance, "vkDestroyDebugUtilsMessengerEXT"); + vkDestroyDebugUtilsMessengerEXT(instance, debugMessenger, null); + } + if (instance != null) { + vkDestroyInstance(instance, null); + } + super.stop(); + } + + private void createInstance(MemoryStack stack) { + VkApplicationInfo app = VkApplicationInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_APPLICATION_INFO) + .pApplicationName(stack.ASCII(context.getSettings().getTitle())) + .applicationVersion(VK_MAKE_VERSION(1, 0, 0)) + .pEngineName(stack.ASCII("JMonkeyEngine")) + .engineVersion(VK_MAKE_VERSION(3, 9, 0)) + .apiVersion(VK_API_VERSION_1_4); + VkInstanceCreateInfo create = VkInstanceCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO) + .pNext(createDebugger(stack, debugCallback)) + .pApplicationInfo(app); + if (!layers.isEmpty()) { + verifyValidationLayerSupport(stack); + create.ppEnabledLayerNames(toPointers(stack, layers.stream(), layers.size(), stack::UTF8)); + } + addExtension(Objects.requireNonNull(GLFWVulkan.glfwGetRequiredInstanceExtensions())); + addExtension(stack, VK_EXT_DEBUG_UTILS_EXTENSION_NAME); + create.ppEnabledExtensionNames(gatherPointers(stack, extensions)); + instance = new VkInstance(getPointer(stack, + ptr -> check(vkCreateInstance(create, null, ptr), "Failed to create instance.")), create); + } + + private void createDebugMessenger(MemoryStack stack) { + verifyExtensionMethod(instance, "vkCreateDebugUtilsMessengerEXT"); + debugMessenger = getLong(stack, ptr -> vkCreateDebugUtilsMessengerEXT(instance, createDebugger(stack, debugCallback), null, ptr)); + } + + private VkPhysicalDevice findPhysicalDevice(MemoryStack stack) { + PointerBuffer devices = enumerateBuffer(stack, stack::mallocPointer, (count, buffer) -> vkEnumeratePhysicalDevices(instance, count, buffer)); + VkPhysicalDevice device = null; + float score = 0f; + for (VkPhysicalDevice d : iteratePointers(devices, p -> new VkPhysicalDevice(p, instance))) { + Float s = evaluateDevice(stack, d); + if (s != null && (device == null || s > score) && populateQueueFamily(stack, d).isComplete()) { + device = d; + score = s; + } + } + if (device == null) { + throw new NullPointerException("Failed to find suitable GPU."); + } + return device; + } + + private Float evaluateDevice(MemoryStack stack, VkPhysicalDevice device) { + if (deviceEvaluators.isEmpty()) { + return 0f; + } + VkPhysicalDeviceProperties props = VkPhysicalDeviceProperties.malloc(stack); + VkPhysicalDeviceFeatures features = VkPhysicalDeviceFeatures.malloc(stack); + vkGetPhysicalDeviceProperties(device, props); + vkGetPhysicalDeviceFeatures(device, features); + float score = 0f; + for (DeviceEvaluator e : deviceEvaluators) { + Float s = e.evaluateDevice(device, props, features); + if (s == null) { + return null; + } + score += s; + } + return score; + } + + private QueueFamilies populateQueueFamily(MemoryStack stack, VkPhysicalDevice device) { + QueueFamilies fams = new QueueFamilies(); + VkQueueFamilyProperties.Buffer props = enumerateBuffer(stack, VkQueueFamilyProperties::malloc, + (count, buffer) -> vkGetPhysicalDeviceQueueFamilyProperties(device, count, buffer)); + int i = 0; + for (VkQueueFamilyProperties p : props) { + if (isBitSet(p.queueFlags(), VK_QUEUE_GRAPHICS_BIT)) { + fams.graphics = i; + } + i++; + } + return fams; + } + + private void verifyValidationLayerSupport(MemoryStack stack) { + VkLayerProperties.Buffer supported = enumerateBuffer(stack, n -> VkLayerProperties.malloc(n, stack), + VK10::vkEnumerateInstanceLayerProperties); + requestLoop: for (String r : layers) { + for (VkLayerProperties l : supported) { + if (r.equals(l.layerNameString())) { + continue requestLoop; + } + } + throw new NullPointerException("Validation layer " + r + " is not available."); + } + } + + private VkDebugUtilsMessengerCreateInfoEXT createDebugger(MemoryStack stack, VkDebugUtilsMessengerCallbackEXT callback) { + return VkDebugUtilsMessengerCreateInfoEXT.malloc(stack) + .sType(VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT) + .messageSeverity(VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT + | VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT) + .messageType(VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT | + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT) + .pfnUserCallback(callback); + } + + private void addExtension(MemoryStack stack, String ext) { + extensions.add(stack.mallocPointer(1).put(stack.UTF8(ext)).rewind()); + } + + private void addExtension(PointerBuffer ext) { + extensions.add(ext); + } + + private static class QueueFamilies { + + public Integer graphics; + + public boolean isComplete() { + return graphics != null; + } + + } + + private static class VulkanDebugCallback extends VkDebugUtilsMessengerCallbackEXT { + + @Override + public int invoke(int messageSeverity, int messageTypes, long pCallbackData, long pUserData) { + try (VkDebugUtilsMessengerCallbackDataEXT data = VkDebugUtilsMessengerCallbackDataEXT.create(pCallbackData)) { + LOG.log(getLoggingLevel(messageSeverity), data.pMessageString()); + } + return VK_FALSE; // always return false, true is only really used for testing validation layers + } + + public Level getLoggingLevel(int messageSeverity) { + switch (messageSeverity) { + case EXTDebugUtils.VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT: + return Level.SEVERE; + case EXTDebugUtils.VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT: + return Level.WARNING; + case EXTDebugUtils.VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT: + return Level.INFO; + case EXTDebugUtils.VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT: + return Level.FINE; + default: throw new UnsupportedOperationException("Unsupported severity bit: " + + Integer.numberOfTrailingZeros(Integer.highestOneBit(messageSeverity))); + } + } + + } + +} diff --git a/jme3-lwjgl3/build.gradle b/jme3-lwjgl3/build.gradle index 5e929e8c2f..82a83ac21c 100644 --- a/jme3-lwjgl3/build.gradle +++ b/jme3-lwjgl3/build.gradle @@ -12,6 +12,7 @@ dependencies { api libs.lwjgl3.openal api libs.lwjgl3.opencl api libs.lwjgl3.opengl + api libs.lwjgl3.vulkan runtimeOnly(variantOf(libs.lwjgl3.base){ classifier('natives-windows') }) runtimeOnly(variantOf(libs.lwjgl3.base){ classifier('natives-windows-x86') }) diff --git a/jme3-lwjgl3/src/main/java/com/jme3/input/lwjgl/GlfwKeyInput.java b/jme3-lwjgl3/src/main/java/com/jme3/input/lwjgl/GlfwKeyInput.java index 980b07527e..a0662f1ff3 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/input/lwjgl/GlfwKeyInput.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/input/lwjgl/GlfwKeyInput.java @@ -35,6 +35,7 @@ import com.jme3.input.KeyInput; import com.jme3.input.RawInputListener; import com.jme3.input.event.KeyInputEvent; +import com.jme3.system.GlfwWindow; import com.jme3.system.lwjgl.LwjglWindow; import java.util.ArrayDeque; import java.util.Queue; @@ -56,9 +57,9 @@ public class GlfwKeyInput implements KeyInput { private final Queue keyInputEvents = new ArrayDeque<>(); /** - * The LWJGL context. + * The GLFW window. */ - private final LwjglWindow context; + private final GlfwWindow context; /** * The key callback. @@ -77,7 +78,7 @@ public class GlfwKeyInput implements KeyInput { private boolean initialized; - public GlfwKeyInput(final LwjglWindow context) { + public GlfwKeyInput(final GlfwWindow context) { this.context = context; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/input/lwjgl/GlfwMouseInput.java b/jme3-lwjgl3/src/main/java/com/jme3/input/lwjgl/GlfwMouseInput.java index 1aba44d570..94562060f1 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/input/lwjgl/GlfwMouseInput.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/input/lwjgl/GlfwMouseInput.java @@ -37,8 +37,8 @@ import com.jme3.input.event.MouseButtonEvent; import com.jme3.input.event.MouseMotionEvent; import com.jme3.math.Vector2f; -import com.jme3.system.lwjgl.LwjglWindow; -import com.jme3.system.lwjgl.WindowSizeListener; +import com.jme3.system.GlfwWindow; +import com.jme3.system.WindowSizeListener; import com.jme3.util.BufferUtils; import java.nio.ByteBuffer; import java.nio.IntBuffer; @@ -114,7 +114,7 @@ private static ByteBuffer transformCursorImage(final IntBuffer imageData, final private final Queue mouseMotionEvents = new ArrayDeque<>(); private final Queue mouseButtonEvents = new ArrayDeque<>(); - private final LwjglWindow context; + private final GlfwWindow context; private WindowSizeListener windowSizeListener; private RawInputListener listener; @@ -138,7 +138,7 @@ private static ByteBuffer transformCursorImage(final IntBuffer imageData, final private boolean initialized; private final Vector2f inputScale = new Vector2f(); - public GlfwMouseInput(final LwjglWindow context) { + public GlfwMouseInput(final GlfwWindow context) { this.context = context; this.cursorVisible = true; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/system/GlfwWindow.java b/jme3-lwjgl3/src/main/java/com/jme3/system/GlfwWindow.java new file mode 100644 index 0000000000..e18f38f0d8 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/system/GlfwWindow.java @@ -0,0 +1,17 @@ +package com.jme3.system; + +import com.jme3.math.Vector2f; + +public interface GlfwWindow { + + long getWindowHandle(); + + Vector2f getWindowContentScale(Vector2f store); + + boolean isRenderable(); + + void registerWindowSizeListener(WindowSizeListener listener); + + void removeWindowSizeListener(WindowSizeListener listener); + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/system/lwjgl/Sync.java b/jme3-lwjgl3/src/main/java/com/jme3/system/Sync.java similarity index 99% rename from jme3-lwjgl3/src/main/java/com/jme3/system/lwjgl/Sync.java rename to jme3-lwjgl3/src/main/java/com/jme3/system/Sync.java index 3161f00a9b..6c0200c5ca 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/system/lwjgl/Sync.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/system/Sync.java @@ -29,7 +29,7 @@ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package com.jme3.system.lwjgl; +package com.jme3.system; /** * A highly accurate sync method that continually adapts to the system @@ -38,7 +38,7 @@ * @author Riven * @author kappaOne */ -class Sync { +public class Sync { /** number of nanoseconds in a second */ private static final long NANOS_IN_SECOND = 1000L * 1000L * 1000L; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/system/lwjgl/WindowSizeListener.java b/jme3-lwjgl3/src/main/java/com/jme3/system/WindowSizeListener.java similarity index 97% rename from jme3-lwjgl3/src/main/java/com/jme3/system/lwjgl/WindowSizeListener.java rename to jme3-lwjgl3/src/main/java/com/jme3/system/WindowSizeListener.java index 2d2105b802..b3b687f0fc 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/system/lwjgl/WindowSizeListener.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/system/WindowSizeListener.java @@ -29,7 +29,9 @@ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package com.jme3.system.lwjgl; +package com.jme3.system; + +import com.jme3.system.lwjgl.LwjglWindow; /** * Listen to window size changes. Note, GLFW does not support registering multiple callbacks diff --git a/jme3-lwjgl3/src/main/java/com/jme3/system/lwjgl/LwjglWindow.java b/jme3-lwjgl3/src/main/java/com/jme3/system/lwjgl/LwjglWindow.java index 03085401a7..6a24633944 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/system/lwjgl/LwjglWindow.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/system/lwjgl/LwjglWindow.java @@ -43,21 +43,15 @@ import com.jme3.input.lwjgl.GlfwKeyInput; import com.jme3.input.lwjgl.GlfwMouseInput; import com.jme3.math.Vector2f; -import com.jme3.system.AppSettings; -import com.jme3.system.Displays; -import com.jme3.system.JmeContext; -import com.jme3.system.JmeSystem; -import com.jme3.system.NanoTimer; +import com.jme3.system.*; import com.jme3.util.BufferUtils; import com.jme3.util.SafeArrayList; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.nio.ByteBuffer; -import java.nio.IntBuffer; import java.util.EnumSet; import java.util.HashMap; import java.util.Map; -import java.util.Objects; import java.util.concurrent.atomic.AtomicBoolean; import java.util.logging.Level; import java.util.logging.Logger; @@ -76,7 +70,7 @@ * * @author Daniel Johansson */ -public abstract class LwjglWindow extends LwjglContext implements Runnable { +public abstract class LwjglWindow extends LwjglContext implements Runnable, GlfwWindow { private static final Logger LOGGER = Logger.getLogger(LwjglWindow.class.getName()); @@ -212,6 +206,7 @@ public LwjglWindow(final JmeContext.Type type) { * * @param listener The WindowSizeListener to register. */ + @Override public void registerWindowSizeListener(WindowSizeListener listener) { windowSizeListeners.add(listener); } @@ -221,6 +216,7 @@ public void registerWindowSizeListener(WindowSizeListener listener) { * * @param listener The WindowSizeListener to remove. */ + @Override public void removeWindowSizeListener(WindowSizeListener listener) { windowSizeListeners.remove(listener); } @@ -863,6 +859,7 @@ public void destroy(boolean waitFor) { } } + @Override public long getWindowHandle() { return window; } @@ -880,6 +877,7 @@ public long getWindowHandle() { * @return The window content scale * @see Window content scale */ + @Override public Vector2f getWindowContentScale(Vector2f store) { if (store == null) store = new Vector2f(); diff --git a/jme3-lwjgl3/src/main/java/com/jme3/system/vulkan/DeviceEvaluator.java b/jme3-lwjgl3/src/main/java/com/jme3/system/vulkan/DeviceEvaluator.java new file mode 100644 index 0000000000..2cde580774 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/system/vulkan/DeviceEvaluator.java @@ -0,0 +1,11 @@ +package com.jme3.system.vulkan; + +import org.lwjgl.vulkan.VkPhysicalDevice; +import org.lwjgl.vulkan.VkPhysicalDeviceFeatures; +import org.lwjgl.vulkan.VkPhysicalDeviceProperties; + +public interface DeviceEvaluator { + + Float evaluateDevice(VkPhysicalDevice device, VkPhysicalDeviceProperties props, VkPhysicalDeviceFeatures features); + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/system/vulkan/LwjglVulkanContext.java b/jme3-lwjgl3/src/main/java/com/jme3/system/vulkan/LwjglVulkanContext.java new file mode 100644 index 0000000000..406b9c667d --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/system/vulkan/LwjglVulkanContext.java @@ -0,0 +1,455 @@ +package com.jme3.system.vulkan; + +import com.jme3.input.JoyInput; +import com.jme3.input.KeyInput; +import com.jme3.input.MouseInput; +import com.jme3.input.TouchInput; +import com.jme3.input.lwjgl.GlfwJoystickInput; +import com.jme3.input.lwjgl.GlfwKeyInput; +import com.jme3.input.lwjgl.GlfwMouseInput; +import com.jme3.math.Vector2f; +import com.jme3.opencl.Context; +import com.jme3.renderer.Renderer; +import com.jme3.renderer.vulkan.VulkanRenderer; +import com.jme3.system.*; +import com.jme3.system.Sync; +import com.jme3.system.WindowSizeListener; +import org.lwjgl.PointerBuffer; +import org.lwjgl.glfw.*; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.logging.Level; +import java.util.logging.Logger; + +import static org.lwjgl.system.MemoryUtil.NULL; +import static org.lwjgl.glfw.GLFW.*; + +public class LwjglVulkanContext implements JmeContext, GlfwWindow, Runnable { + + private static final Logger LOGGER = Logger.getLogger(LwjglVulkanContext.class.getName()); + + private long window = NULL; + private SystemListener engine; + private VulkanRenderer renderer; + private Thread engineThread; + private Timer engineTimer; + private final AtomicBoolean created = new AtomicBoolean(false); + private final AtomicBoolean destroy = new AtomicBoolean(false); + private final AtomicBoolean restart = new AtomicBoolean(false); + private final AtomicBoolean focused = new AtomicBoolean(true); + private final AppSettings settings = new AppSettings(true); + private final Collection sizeListeners = new ArrayList<>(); + private final Vector2f windowScale = new Vector2f(1, 1); + private int frameBufferWidth, frameBufferHeight; + + private GLFWErrorCallback errorCallback; + private GLFWWindowFocusCallback focusCallback; + private GLFWWindowSizeCallback sizeCallback; + private GLFWFramebufferSizeCallback fbSizeCallback; + + private GlfwMouseInput mouseInput; + private GlfwKeyInput keyInput; + private JoyInput joyInput; + + private final int[] width = new int[1]; + private final int[] height = new int[1]; + + private boolean autoFlush = true; + + @Override + public void run() { + engineInitialize(); + engineLoop(); + engineTerminate(); + } + + @Override + public void create(boolean waitFor) { + (engineThread = new Thread(this, getClass().getSimpleName())).start(); + if (waitFor) { + waitForContextLifeEvent(true); + } + } + + protected void waitForContextLifeEvent(boolean creation) { + synchronized (created) { + while (created.get() != creation) try { + created.wait(); + } catch (InterruptedException ignored) {} + } + } + + protected void engineInitialize() { + glfwInitialize(); + rendererInitialize(); + engineTimer = new NanoTimer(); + engine.initialize(); + synchronized (created) { + created.set(true); + created.notifyAll(); + } + } + + protected void glfwInitialize() { + //if (!GLFWVulkan.glfwVulkanSupported()) { + // throw new NullPointerException("Hardware does not support Vulkan."); + //} + glfwSetErrorCallback(errorCallback = new GLFWErrorCallback() { + @Override + public void invoke(int error, long description) { + final String message = GLFWErrorCallback.getDescription(description); + engine.handleError(message, new Exception(message)); + } + }); + if (glfwPlatformSupported(GLFW_PLATFORM_WAYLAND)) { + // Disables the libdecor bar when creating a fullscreen context + // https://www.glfw.org/docs/latest/intro_guide.html#init_hints_wayland + glfwInitHint(GLFW_WAYLAND_LIBDECOR, settings.isFullscreen() ? GLFW_WAYLAND_DISABLE_LIBDECOR : GLFW_WAYLAND_PREFER_LIBDECOR); + } + glfwInit(); + glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API); + glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE); + window = glfwCreateWindow(getSettings().getWidth(), getSettings().getHeight(), getSettings().getTitle(), NULL, NULL); + glfwSetWindowFocusCallback(window, focusCallback = new GLFWWindowFocusCallback() { + @Override + public void invoke(long window, boolean focus) { + if (focus != focused.get()) { + if (!focus) { + engine.loseFocus(); + } else { + engine.gainFocus(); + engineTimer.reset(); + } + focused.set(focus); + } + } + }); + glfwSetWindowSizeCallback(window, sizeCallback = new GLFWWindowSizeCallback() { + @Override + public void invoke(final long window, final int width, final int height) { + updateSizes(); + } + }); + glfwSetFramebufferSizeCallback(window, fbSizeCallback = new GLFWFramebufferSizeCallback() { + @Override + public void invoke(final long window, final int width, final int height) { + updateSizes(); + } + }); + } + + protected void rendererInitialize() { + renderer = new VulkanRenderer(); + } + + protected void engineLoop() { + while (true) { + if (restart.get()) { + restartContext(); + } + engine.update(); + if (renderer != null) { + renderer.postFrame(); + } + syncFrames(); + glfwPollEvents(); + if (destroy.get()) { + break; + } + if (glfwWindowShouldClose(window)) { + engine.requestClose(false); + } + } + } + + protected void syncFrames() { + if (autoFlush) { + Sync.sync(getSettings().getFrameRate()); + } else { + Sync.sync(20); + } + } + + protected void engineTerminate() { + engine.destroy(); + glfwDestroyWindow(window); + glfwTerminate(); + LOGGER.fine("Display destroyed."); + } + + protected void updateSizes() { + // framebuffer size (resolution) may differ from window size (e.g. HiDPI) + // resize window informants + glfwGetWindowSize(window, width, height); + int w = Math.max(width[0], 1); + int h = Math.max(height[0], 1); + if (settings.getWindowWidth() != w || settings.getWindowHeight() != h) { + settings.setWindowSize(w, h); + for (WindowSizeListener l : sizeListeners) { + l.onWindowSizeChanged(w, h); + } + } + // resize framebuffer informants + glfwGetFramebufferSize(window, width, height); + if (width[0] != frameBufferWidth || height[0] != frameBufferHeight) { + settings.setResolution(width[0], height[0]); + engine.reshape(width[0], height[0]); + frameBufferWidth = width[0]; + frameBufferHeight = height[0]; + } + // rescale engine + float xScale = (float)width[0] / w; + float yScale = (float)height[0] / h; + if (windowScale.x != xScale || windowScale.y != yScale) { + engine.rescale(xScale, yScale); + windowScale.set(xScale, yScale); + } + } + + protected void restartContext() { + try { + glfwDestroy(); + glfwInitialize(); + } catch (Exception ex) { + LOGGER.log(Level.SEVERE, "Failed to set display settings!", ex); + } + // Reinitialize context flags and such + rendererInitialize(); + + // We need to reinit the mouse and keyboard input as they are tied to a window handle + if (keyInput != null && keyInput.isInitialized()) { + keyInput.resetContext(); + } + if (mouseInput != null && mouseInput.isInitialized()) { + mouseInput.resetContext(); + } + + LOGGER.fine("Display restarted."); + } + + protected void glfwDestroy() { + try { + if (renderer != null) { + renderer.cleanup(); + } + if (errorCallback != null) { + // We need to specifically set this to null as we might set a new callback before we reinit GLFW + glfwSetErrorCallback(null); + errorCallback.close(); + errorCallback = null; + } + if (sizeCallback != null) { + sizeCallback.close(); + sizeCallback = null; + } + if (fbSizeCallback != null) { + fbSizeCallback.close(); + fbSizeCallback = null; + } + if (focusCallback != null) { + focusCallback.close(); + focusCallback = null; + } + if (window != NULL) { + glfwDestroyWindow(window); + window = NULL; + } + } catch (final Exception ex) { + engine.handleError("Failed to destroy context", ex); + } + } + + @Override + public Type getType() { + return Type.Display; + } + + @Override + public void setSettings(AppSettings settings) { + this.settings.copyFrom(settings); + } + + @Override + public SystemListener getSystemListener() { + return engine; + } + + @Override + public void setSystemListener(SystemListener listener) { + this.engine = listener; + } + + @Override + public AppSettings getSettings() { + return settings; + } + + @Override + public Renderer getRenderer() { + return renderer; + } + + @Override + public Context getOpenCLContext() { + return null; + } + + @Override + public MouseInput getMouseInput() { + if (mouseInput == null) { + mouseInput = new GlfwMouseInput(this); + } + return mouseInput; + } + + @Override + public KeyInput getKeyInput() { + if (keyInput == null) { + keyInput = new GlfwKeyInput(this); + } + return keyInput; + } + + @Override + public JoyInput getJoyInput() { + if (joyInput == null) { + joyInput = new GlfwJoystickInput(); + } + return joyInput; + } + + @Override + public TouchInput getTouchInput() { + return null; + } + + @Override + public Timer getTimer() { + return engineTimer; + } + + @Override + public void setTitle(String title) { + if (window != NULL) { + glfwSetWindowTitle(window, title); + } + } + + @Override + public boolean isCreated() { + return created.get(); + } + + @Override + public long getWindowHandle() { + return window; + } + + @Override + public Vector2f getWindowContentScale(Vector2f store) { + if (store == null) store = new Vector2f(); + glfwGetFramebufferSize(window, width, height); + store.set(width[0], height[0]); + glfwGetWindowSize(window, width, height); + store.x /= width[0]; + store.y /= height[0]; + return store; + } + + @Override + public boolean isRenderable() { + return renderer != null; + } + + @Override + public void registerWindowSizeListener(WindowSizeListener listener) { + sizeListeners.add(listener); + } + + @Override + public void removeWindowSizeListener(WindowSizeListener listener) { + sizeListeners.remove(listener); + } + + @Override + public void setAutoFlushFrames(boolean enabled) { + autoFlush = enabled; + } + + @Override + public void restart() { + if (created.get()) { + restart.set(true); + } else { + LOGGER.warning("Cannot restart context: not yet initialized."); + } + } + + @Override + public void destroy(boolean waitFor) { + destroy.set(true); + if (Thread.currentThread() != engineThread) { + waitForContextLifeEvent(false); + } + } + + @Override + public int getFramebufferHeight() { + glfwGetFramebufferSize(window, width, height); + return width[0]; + } + + @Override + public int getFramebufferWidth() { + glfwGetFramebufferSize(window, width, height); + return height[0]; + } + + @Override + public int getWindowXPosition() { + glfwGetWindowPos(window, width, height); + return width[0]; + } + + @Override + public int getWindowYPosition() { + glfwGetWindowPos(window, width, height); + return height[0]; + } + + @Override + public Displays getDisplays() { + PointerBuffer displays = glfwGetMonitors(); + long primary = glfwGetPrimaryMonitor(); + Displays displayList = new Displays(); + + for (int i = 0; i < displays.limit(); i++) { + long monitorI = displays.get(i); + int monPos = displayList.addNewMonitor(monitorI); + if (primary == monitorI) displayList.setPrimaryDisplay(monPos); + final GLFWVidMode modes = glfwGetVideoMode(monitorI); + String name = glfwGetMonitorName(monitorI); + int width = modes.width(); + int height = modes.height(); + int rate = modes.refreshRate(); + displayList.setInfo(monPos, name, width, height, rate); + LOGGER.log(Level.INFO, "Display id: " + monitorI + " Resolution: " + width + " x " + height + " @ " + rate); + } + return displayList; + } + + @Override + public int getPrimaryDisplay() { + long prim = glfwGetPrimaryMonitor(); + Displays monitors = getDisplays(); + for (int i = 0; i < monitors.size(); i++) { + long monitorI = monitors.get(i).getDisplay(); + if (monitorI == prim) return i; + } + LOGGER.log(Level.SEVERE, "Couldn't locate Primary Monitor in the list of Monitors."); + return -1; + } + +} From 061a7822438fe7d95eb874b2a54972d0a19f5fb0 Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Tue, 24 Jun 2025 07:10:10 -0400 Subject: [PATCH 09/37] vulkan logical device --- .../main/java/jme3test/vulkan/VulkanTest.java | 119 ++++++++++++++---- 1 file changed, 94 insertions(+), 25 deletions(-) diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java index f9baced025..82580359ae 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java @@ -23,8 +23,8 @@ public class VulkanTest extends SimpleApplication { private static final Logger LOG = Logger.getLogger(VulkanTest.class.getName()); private VkInstance instance; - private VkPhysicalDevice device; - private QueueFamilies queues; + private VkDevice device; + private VkQueue graphics; private final Collection extensions = new ArrayList<>(); private final List layers = new ArrayList<>(); private final Collection deviceEvaluators = new ArrayList<>(); @@ -46,27 +46,38 @@ public void simpleInitApp() { // basic validation layer from the Vulkan SDK //layers.add("VK_LAYER_KHRONOS_validation"); try (MemoryStack stack = MemoryStack.stackPush()) { - createInstance(stack); + PointerBuffer layerPtrs = createLayerBuffer(stack, layers); + LOG.info("Validation layers: " + layers.size() + ", buffer: " + layerPtrs); + createInstance(stack, layerPtrs); createDebugMessenger(stack); - device = findPhysicalDevice(stack); - queues = populateQueueFamily(stack, device); + //PhysicalDevice physDevice = findPhysicalDevice(stack); + //QueueFamilyIndices queues = populateQueueFamily(stack, physDevice.getDevice()); + //device = createLogicalDevice(stack, physDevice, queues, layerPtrs); + //graphics = getQueue(stack, device, queues, 0); } } @Override public void stop() { - LOG.info("Destroying vulkan instance."); + LOG.info("Destroying vulkan device and instance."); + if (device != null) { + System.out.println("Destroy device"); + vkDeviceWaitIdle(device); + vkDestroyDevice(device, null); + } if (debugMessenger != NULL) { + System.out.println("Destroy messenger"); verifyExtensionMethod(instance, "vkDestroyDebugUtilsMessengerEXT"); vkDestroyDebugUtilsMessengerEXT(instance, debugMessenger, null); } if (instance != null) { + System.out.println("Destroy instance"); vkDestroyInstance(instance, null); } super.stop(); } - private void createInstance(MemoryStack stack) { + private void createInstance(MemoryStack stack, PointerBuffer layers) { VkApplicationInfo app = VkApplicationInfo.calloc(stack) .sType(VK_STRUCTURE_TYPE_APPLICATION_INFO) .pApplicationName(stack.ASCII(context.getSettings().getTitle())) @@ -78,15 +89,22 @@ private void createInstance(MemoryStack stack) { .sType(VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO) .pNext(createDebugger(stack, debugCallback)) .pApplicationInfo(app); - if (!layers.isEmpty()) { - verifyValidationLayerSupport(stack); - create.ppEnabledLayerNames(toPointers(stack, layers.stream(), layers.size(), stack::UTF8)); + if (layers != null) { + create.ppEnabledLayerNames(layers); } addExtension(Objects.requireNonNull(GLFWVulkan.glfwGetRequiredInstanceExtensions())); addExtension(stack, VK_EXT_DEBUG_UTILS_EXTENSION_NAME); create.ppEnabledExtensionNames(gatherPointers(stack, extensions)); instance = new VkInstance(getPointer(stack, ptr -> check(vkCreateInstance(create, null, ptr), "Failed to create instance.")), create); + if (instance.address() == NULL) { + throw new NullPointerException("Instance pointer is null."); + } + } + + private PointerBuffer createLayerBuffer(MemoryStack stack, Collection layers) { + verifyValidationLayerSupport(stack); + return layers.isEmpty() ? null : toPointers(stack, layers.stream(), layers.size(), stack::UTF8); } private void createDebugMessenger(MemoryStack stack) { @@ -94,13 +112,13 @@ private void createDebugMessenger(MemoryStack stack) { debugMessenger = getLong(stack, ptr -> vkCreateDebugUtilsMessengerEXT(instance, createDebugger(stack, debugCallback), null, ptr)); } - private VkPhysicalDevice findPhysicalDevice(MemoryStack stack) { + private PhysicalDevice findPhysicalDevice(MemoryStack stack) { PointerBuffer devices = enumerateBuffer(stack, stack::mallocPointer, (count, buffer) -> vkEnumeratePhysicalDevices(instance, count, buffer)); - VkPhysicalDevice device = null; + PhysicalDevice device = null; float score = 0f; - for (VkPhysicalDevice d : iteratePointers(devices, p -> new VkPhysicalDevice(p, instance))) { - Float s = evaluateDevice(stack, d); - if (s != null && (device == null || s > score) && populateQueueFamily(stack, d).isComplete()) { + for (PhysicalDevice d : iteratePointers(devices, p -> new PhysicalDevice(new VkPhysicalDevice(p, instance)))) { + Float s = evaluateDevice(d); + if (s != null && (device == null || s > score) && populateQueueFamily(stack, d.getDevice()).isComplete()) { device = d; score = s; } @@ -111,17 +129,13 @@ private VkPhysicalDevice findPhysicalDevice(MemoryStack stack) { return device; } - private Float evaluateDevice(MemoryStack stack, VkPhysicalDevice device) { + private Float evaluateDevice(PhysicalDevice device) { if (deviceEvaluators.isEmpty()) { return 0f; } - VkPhysicalDeviceProperties props = VkPhysicalDeviceProperties.malloc(stack); - VkPhysicalDeviceFeatures features = VkPhysicalDeviceFeatures.malloc(stack); - vkGetPhysicalDeviceProperties(device, props); - vkGetPhysicalDeviceFeatures(device, features); float score = 0f; for (DeviceEvaluator e : deviceEvaluators) { - Float s = e.evaluateDevice(device, props, features); + Float s = e.evaluateDevice(device.getDevice(), device.getProps(), device.getFeatures()); if (s == null) { return null; } @@ -130,8 +144,8 @@ private Float evaluateDevice(MemoryStack stack, VkPhysicalDevice device) { return score; } - private QueueFamilies populateQueueFamily(MemoryStack stack, VkPhysicalDevice device) { - QueueFamilies fams = new QueueFamilies(); + private QueueFamilyIndices populateQueueFamily(MemoryStack stack, VkPhysicalDevice device) { + QueueFamilyIndices fams = new QueueFamilyIndices(); VkQueueFamilyProperties.Buffer props = enumerateBuffer(stack, VkQueueFamilyProperties::malloc, (count, buffer) -> vkGetPhysicalDeviceQueueFamilyProperties(device, count, buffer)); int i = 0; @@ -144,6 +158,27 @@ private QueueFamilies populateQueueFamily(MemoryStack stack, VkPhysicalDevice de return fams; } + private VkDevice createLogicalDevice(MemoryStack stack, PhysicalDevice device, QueueFamilyIndices fams, PointerBuffer layers) { + VkDeviceQueueCreateInfo.Buffer queueCreate = VkDeviceQueueCreateInfo.malloc(1, stack) + .sType(VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO) + .queueFamilyIndex(fams.graphics) + .pQueuePriorities(stack.floats(1f)); + VkDeviceCreateInfo deviceCreate = VkDeviceCreateInfo.malloc(stack) + .sType(VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO) + .pQueueCreateInfos(queueCreate) + .pEnabledFeatures(device.getFeatures()); + if (layers != null) { + deviceCreate.ppEnabledLayerNames(layers); + } + return new VkDevice(getPointer(stack, + ptr -> check(vkCreateDevice(device.getDevice(), deviceCreate, null, ptr), "Failed to create logical device.")), + device.getDevice(), deviceCreate); + } + + private VkQueue getQueue(MemoryStack stack, VkDevice device, QueueFamilyIndices fams, int i) { + return new VkQueue(getPointer(stack, ptr -> vkGetDeviceQueue(device, fams.graphics, i, ptr)), device); + } + private void verifyValidationLayerSupport(MemoryStack stack) { VkLayerProperties.Buffer supported = enumerateBuffer(stack, n -> VkLayerProperties.malloc(n, stack), VK10::vkEnumerateInstanceLayerProperties); @@ -175,7 +210,7 @@ private void addExtension(PointerBuffer ext) { extensions.add(ext); } - private static class QueueFamilies { + private static class QueueFamilyIndices { public Integer graphics; @@ -185,12 +220,46 @@ public boolean isComplete() { } + private static class PhysicalDevice { + + private final VkPhysicalDevice device; + private final VkPhysicalDeviceProperties props; + private final VkPhysicalDeviceFeatures features; + + private PhysicalDevice(VkPhysicalDevice device) { + props = VkPhysicalDeviceProperties.create(); + features = VkPhysicalDeviceFeatures.create(); + vkGetPhysicalDeviceProperties(device, props); + vkGetPhysicalDeviceFeatures(device, features); + this.device = device; + } + private PhysicalDevice(VkPhysicalDevice device, VkPhysicalDeviceProperties props, VkPhysicalDeviceFeatures features) { + this.device = device; + this.props = props; + this.features = features; + } + + public VkPhysicalDevice getDevice() { + return device; + } + + public VkPhysicalDeviceProperties getProps() { + return props; + } + + public VkPhysicalDeviceFeatures getFeatures() { + return features; + } + + } + private static class VulkanDebugCallback extends VkDebugUtilsMessengerCallbackEXT { @Override public int invoke(int messageSeverity, int messageTypes, long pCallbackData, long pUserData) { try (VkDebugUtilsMessengerCallbackDataEXT data = VkDebugUtilsMessengerCallbackDataEXT.create(pCallbackData)) { - LOG.log(getLoggingLevel(messageSeverity), data.pMessageString()); + //LOG.log(getLoggingLevel(messageSeverity), data.pMessageString()); + System.err.println(getLoggingLevel(messageSeverity).getName() + " " + data.pMessageString()); } return VK_FALSE; // always return false, true is only really used for testing validation layers } From 1b9f2e358d9a03beef5349eaa742b89b4f2f06b2 Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Tue, 24 Jun 2025 07:21:58 -0400 Subject: [PATCH 10/37] vulkan logical device --- .../src/main/java/jme3test/vulkan/VulkanTest.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java index 82580359ae..935d8bc973 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java @@ -16,7 +16,7 @@ import static com.jme3.renderer.vulkan.VulkanUtils.*; import static org.lwjgl.system.MemoryUtil.NULL; import static org.lwjgl.vulkan.EXTDebugUtils.*; -import static org.lwjgl.vulkan.VK14.*; +import static org.lwjgl.vulkan.VK10.*; public class VulkanTest extends SimpleApplication { @@ -50,10 +50,10 @@ public void simpleInitApp() { LOG.info("Validation layers: " + layers.size() + ", buffer: " + layerPtrs); createInstance(stack, layerPtrs); createDebugMessenger(stack); - //PhysicalDevice physDevice = findPhysicalDevice(stack); - //QueueFamilyIndices queues = populateQueueFamily(stack, physDevice.getDevice()); - //device = createLogicalDevice(stack, physDevice, queues, layerPtrs); - //graphics = getQueue(stack, device, queues, 0); + PhysicalDevice physDevice = findPhysicalDevice(stack); + QueueFamilyIndices queues = populateQueueFamily(stack, physDevice.getDevice()); + device = createLogicalDevice(stack, physDevice, queues, layerPtrs); + graphics = getQueue(stack, device, queues, 0); } } @@ -84,10 +84,10 @@ private void createInstance(MemoryStack stack, PointerBuffer layers) { .applicationVersion(VK_MAKE_VERSION(1, 0, 0)) .pEngineName(stack.ASCII("JMonkeyEngine")) .engineVersion(VK_MAKE_VERSION(3, 9, 0)) - .apiVersion(VK_API_VERSION_1_4); + .apiVersion(VK_API_VERSION_1_0); VkInstanceCreateInfo create = VkInstanceCreateInfo.calloc(stack) .sType(VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO) - .pNext(createDebugger(stack, debugCallback)) + //.pNext(createDebugger(stack, debugCallback)) // causing native crashes when destroying instance .pApplicationInfo(app); if (layers != null) { create.ppEnabledLayerNames(layers); From 863e6a9fe14202bce384684b331af83421239158 Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Wed, 2 Jul 2025 22:38:28 -0400 Subject: [PATCH 11/37] create interface over vulkan API --- gradle/libs.versions.toml | 1 + hs_err_pid76953.log | 1571 ++++++++++++++++ hs_err_pid77449.log | 1426 +++++++++++++++ hs_err_pid84545.log | 1595 ++++++++++++++++ hs_err_pid84939.log | 1600 +++++++++++++++++ hs_err_pid85302.log | 1596 ++++++++++++++++ hs_err_pid85657.log | 1598 ++++++++++++++++ jme3-core/build.gradle | 1 + .../com/jme3/renderer/vulkan/VulkanUtils.java | 55 +- .../jme3/util/natives/BasicNativeManager.java | 104 ++ .../java/com/jme3/util/natives/Native.java | 36 + .../com/jme3/util/natives/NativeManager.java | 13 + .../jme3/util/natives/NativeReference.java | 9 + .../jme3test/vulkan/VulkanHelperTest.java | 394 ++++ .../main/java/jme3test/vulkan/VulkanTest.java | 755 +++++++- jme3-lwjgl3/build.gradle | 1 + .../java/com/jme3/shaderc/ShaderType.java | 37 + .../java/com/jme3/shaderc/ShadercLoader.java | 130 ++ .../jme3/system/vulkan/DeviceEvaluator.java | 11 - .../system/vulkan/LwjglVulkanContext.java | 9 +- .../main/java/com/jme3/vulkan/Attachment.java | 54 + .../java/com/jme3/vulkan/CommandBuffer.java | 87 + .../java/com/jme3/vulkan/CommandPool.java | 73 + .../java/com/jme3/vulkan/DeviceEvaluator.java | 57 + .../src/main/java/com/jme3/vulkan/Fence.java | 76 + .../java/com/jme3/vulkan/FrameBuffer.java | 83 + .../com/jme3/vulkan/GraphicsPipeline.java | 132 ++ .../src/main/java/com/jme3/vulkan/Image.java | 121 ++ .../main/java/com/jme3/vulkan/ImageView.java | 53 + .../java/com/jme3/vulkan/InstanceBuilder.java | 146 ++ .../java/com/jme3/vulkan/LogicalDevice.java | 68 + .../java/com/jme3/vulkan/MemoryBarrier.java | 4 + .../com/jme3/vulkan/OneTimeCommandBuffer.java | 62 + .../java/com/jme3/vulkan/PhysicalDevice.java | 138 ++ .../java/com/jme3/vulkan/PipelineLayout.java | 53 + .../src/main/java/com/jme3/vulkan/Queue.java | 57 + .../java/com/jme3/vulkan/QueueFamilies.java | 21 + .../main/java/com/jme3/vulkan/RenderPass.java | 73 + .../com/jme3/vulkan/RenderPassBuilder.java | 76 + .../com/jme3/vulkan/RenderStateToVulkan.java | 70 + .../main/java/com/jme3/vulkan/Semaphore.java | 60 + .../java/com/jme3/vulkan/ShaderModule.java | 58 + .../main/java/com/jme3/vulkan/Surface.java | 70 + .../main/java/com/jme3/vulkan/Swapchain.java | 189 ++ .../com/jme3/vulkan/SwapchainSupport.java | 18 + .../java/com/jme3/vulkan/VulkanInstance.java | 60 + .../com/jme3/vulkan/VulkanRenderManager.java | 34 + .../resources/Shaders/VulkanFragTest.glsl | 9 + .../resources/Shaders/VulkanVertTest.glsl | 19 + 49 files changed, 12880 insertions(+), 83 deletions(-) create mode 100644 hs_err_pid76953.log create mode 100644 hs_err_pid77449.log create mode 100644 hs_err_pid84545.log create mode 100644 hs_err_pid84939.log create mode 100644 hs_err_pid85302.log create mode 100644 hs_err_pid85657.log create mode 100644 jme3-core/src/main/java/com/jme3/util/natives/BasicNativeManager.java create mode 100644 jme3-core/src/main/java/com/jme3/util/natives/Native.java create mode 100644 jme3-core/src/main/java/com/jme3/util/natives/NativeManager.java create mode 100644 jme3-core/src/main/java/com/jme3/util/natives/NativeReference.java create mode 100644 jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/shaderc/ShaderType.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/shaderc/ShadercLoader.java delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/system/vulkan/DeviceEvaluator.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/Attachment.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandBuffer.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandPool.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/DeviceEvaluator.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/Fence.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/FrameBuffer.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/Image.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/ImageView.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/InstanceBuilder.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/LogicalDevice.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/MemoryBarrier.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/OneTimeCommandBuffer.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/Queue.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/QueueFamilies.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPass.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPassBuilder.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderStateToVulkan.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/Semaphore.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/ShaderModule.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/Surface.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/SwapchainSupport.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanInstance.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanRenderManager.java create mode 100644 jme3-testdata/src/main/resources/Shaders/VulkanFragTest.glsl create mode 100644 jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index fabebdcc8a..b08ae5bd7f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -35,6 +35,7 @@ lwjgl3-opengl = { module = "org.lwjgl:lwjgl-opengl", version.ref = "lwjgl3" lwjgl3-openvr = { module = "org.lwjgl:lwjgl-openvr", version.ref = "lwjgl3" } lwjgl3-ovr = { module = "org.lwjgl:lwjgl-ovr", version.ref = "lwjgl3" } lwjgl3-vulkan = { module = "org.lwjgl:lwjgl-vulkan", version.ref = "lwjgl3" } +lwjgl3-shaderc = { module = "org.lwjgl:lwjgl-shaderc", version.ref = "lwjgl3" } mokito-core = "org.mockito:mockito-core:3.12.4" diff --git a/hs_err_pid76953.log b/hs_err_pid76953.log new file mode 100644 index 0000000000..ed37f27859 --- /dev/null +++ b/hs_err_pid76953.log @@ -0,0 +1,1571 @@ +# +# A fatal error has been detected by the Java Runtime Environment: +# +# SIGSEGV (0xb) at pc=0x000078ab98a15645, pid=76953, tid=76987 +# +# JRE version: Java(TM) SE Runtime Environment (23.0.2+7) (build 23.0.2+7-58) +# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64) +# Problematic frame: +# C [libjemalloc.so+0x15645] +# +# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/codex/java/prj/jmonkeyengine/core.76953) +# +# If you would like to submit a bug report, please visit: +# https://bugreport.java.com/bugreport/crash.jsp +# The crash happened outside the Java Virtual Machine in native code. +# See problematic frame for where to report the bug. +# + +--------------- S U M M A R Y ------------ + +Command Line: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant jme3test.vulkan.VulkanHelperTest + +Host: Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz, 8 cores, 31G, Pop!_OS 22.04 LTS +Time: Wed Jul 2 22:32:45 2025 EDT elapsed time: 0.808817 seconds (0d 0h 0m 0s) + +--------------- T H R E A D --------------- + +Current thread (0x000078abc05a8d30): JavaThread "LwjglVulkanContext" [_thread_in_native, id=76987, stack(0x000078ab98100000,0x000078ab98200000) (1024K)] + +Stack: [0x000078ab98100000,0x000078ab98200000], sp=0x000078ab981fe350, free space=1016k +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +C [libjemalloc.so+0x15645] +Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) +j org.lwjgl.system.JNI.invokePV(JJ)V+0 +j org.lwjgl.system.jemalloc.JEmalloc.nje_free(J)V+6 +j org.lwjgl.system.jemalloc.JEmallocAllocator.free(J)V+1 +j org.lwjgl.system.MemoryUtil.nmemFree(J)V+4 +j org.lwjgl.system.Struct.free()V+4 +j com.jme3.vulkan.VulkanInstance.(Lorg/lwjgl/vulkan/VkApplicationInfo;Lorg/lwjgl/PointerBuffer;Lorg/lwjgl/PointerBuffer;)V+73 +j com.jme3.vulkan.InstanceBuilder.build()Lcom/jme3/vulkan/VulkanInstance;+16 +j jme3test.vulkan.VulkanHelperTest.simpleInitApp()V+52 +j com.jme3.app.SimpleApplication.initialize()V+282 +j com.jme3.system.vulkan.LwjglVulkanContext.engineInitialize()V+23 +j com.jme3.system.vulkan.LwjglVulkanContext.run()V+1 +j java.lang.Thread.runWith(Ljava/lang/Object;Ljava/lang/Runnable;)V+5 java.base@23.0.2 +j java.lang.Thread.run()V+19 java.base@23.0.2 +v ~StubRoutines::call_stub 0x000078abafd37c86 + +siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000002700 + +Registers: +RAX=0x0000000000002700, RBX=0x000078aaf0002510, RCX=0x000078ab98b71cf0, RDX=0x000078aaf00025d8 +RSP=0x000078ab981fe350, RBP=0x000078aaf0002420, RSI=0x000078aaf00026d8, RDI=0x000078aaf00026e8 +R8 =0x0000000000000001, R9 =0x000078aaf00026c8, R10=0x0000000000000001, R11=0x0000000000000000 +R12=0x000078abc04e00e0, R13=0x000078abc0000000, R14=0x000078aaf0002780, R15=0x000078abc05a8d30 +RIP=0x000078ab98a15645, EFLAGS=0x0000000000010206, CSGSFS=0x002b000000000033, ERR=0x0000000000000004 + TRAPNO=0x000000000000000e + + +Register to memory mapping: + +RAX=0x0000000000002700 is an unknown value +RBX=0x000078aaf0002510 points into unknown readable memory: 0x0000000000000000 | 00 00 00 00 00 00 00 00 +RCX=0x000078ab98b71cf0: in /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so at 0x000078ab98a00000 +RDX=0x000078aaf00025d8 points into unknown readable memory: 0x0000000000000001 | 01 00 00 00 00 00 00 00 +RSP=0x000078ab981fe350 is pointing into the stack for thread: 0x000078abc05a8d30 +RBP=0x000078aaf0002420 points into unknown readable memory: 0x0000000000000001 | 01 00 00 00 00 00 00 00 +RSI=0x000078aaf00026d8 points into unknown readable memory: 0x0000000000000001 | 01 00 00 00 00 00 00 00 +RDI=0x000078aaf00026e8 points into unknown readable memory: 0x0000000000000001 | 01 00 00 00 00 00 00 00 +R8 =0x0000000000000001 is an unknown value +R9 =0x000078aaf00026c8 points into unknown readable memory: 0x000078abc0000000 | 00 00 00 c0 ab 78 00 00 +R10=0x0000000000000001 is an unknown value +R11=0x0 is null +R12=0x000078abc04e00e0 points into unknown readable memory: 0x0000000000000001 | 01 00 00 00 00 00 00 00 +R13=0x000078abc0000000 points into unknown readable memory: 0x000078abc0000030 | 30 00 00 c0 ab 78 00 00 +R14=0x000078aaf0002780 points into unknown readable memory: 0x000078aaf0002520 | 20 25 00 f0 aa 78 00 00 +R15=0x000078abc05a8d30 is a thread + +Top of Stack: (sp=0x000078ab981fe350) +0x000078ab981fe350: 000078aaf00025d8 000078ab430ac9b8 +0x000078ab981fe360: 0000000000000004 0000000000000000 +0x000078ab981fe370: 000078ab981fe390 000000000000000f +0x000078ab981fe380: 000078ab98a77fe0 000078abc0000000 +0x000078ab981fe390: 000078ab3852b1c8 000078ab981fe498 +0x000078ab981fe3a0: 000078abc05a8d30 000078abc915fd0c +0x000078ab981fe3b0: 000078ab981fe3c0 000078ab3852b1c8 +0x000078ab981fe3c0: 000078ab981fe460 0000000000000000 +0x000078ab981fe3d0: 000078ab3852b1c8 000078ab981fe498 +0x000078ab981fe3e0: 000078abc05a8d30 000078abafd43d7c +0x000078ab981fe3f0: 000078abc0475a48 000078ab424b05f0 +0x000078ab981fe400: 000078ab43011660 000078ab4301e4d8 +0x000078ab981fe410: 0000000000000000 fffffffffffffff7 +0x000078ab981fe420: 0000000000000000 0000000000000007 +0x000078ab981fe430: 000078ab38562f28 0000000000000000 +0x000078ab981fe440: 000000062a844740 000078ab3852b1c8 +0x000078ab981fe450: 0000000000000000 000078ab981fe480 +0x000078ab981fe460: 000078ab981fe4e8 000078abafd3f020 +0x000078ab981fe470: 000000062a844740 000078abafd411f7 +0x000078ab981fe480: 000078ab98a16160 0000000000000000 +0x000078ab981fe490: 000078abc04e00e0 0000000000000000 +0x000078ab981fe4a0: fffffffffffffff7 000078ab3850b486 +0x000078ab981fe4b0: 0000000000000005 000078ab385107a0 +0x000078ab981fe4c0: 0000000000000000 000000062aff01d0 +0x000078ab981fe4d0: 000078ab3850b4b0 fffffffffffffff3 +0x000078ab981fe4e0: 000078ab981fe508 000078ab981fe560 +0x000078ab981fe4f0: 000078abafd3f020 000078ab98a16160 +0x000078ab981fe500: 0000000000000000 000078abc04e00e0 +0x000078ab981fe510: 0000000000000000 fffffffffffffff7 +0x000078ab981fe520: 000078ab38508c71 0000000000000004 +0x000078ab981fe530: 000078ab385090b0 0000000000000000 +0x000078ab981fe540: 000000062afdf250 000078ab38508c98 + +Instructions: (pc=0x000078ab98a15645) +0x000078ab98a15545: 06 00 48 89 3c 24 48 89 ef 4c 89 44 24 10 e8 28 +0x000078ab98a15555: a7 ff ff 4c 8b 44 24 10 48 8b 3c 24 48 89 c3 e9 +0x000078ab98a15565: fb fb ff ff 4d 89 df e9 5d f6 ff ff b9 07 00 00 +0x000078ab98a15575: 00 48 c1 e1 3c 49 39 cc 77 37 4f 8d 34 24 41 ba +0x000078ab98a15585: 07 00 00 00 be 01 00 00 00 49 83 ee 01 49 0f bd +0x000078ab98a15595: c6 48 98 4c 39 d0 49 0f 42 c2 48 8d 48 fd 48 d3 +0x000078ab98a155a5: e6 4a 8d 54 26 ff 48 f7 de 48 21 f2 e9 c8 fe ff +0x000078ab98a155b5: ff 31 d2 e9 c1 fe ff ff 0f 1f 00 48 85 ff 0f 84 +0x000078ab98a155c5: 57 01 00 00 41 57 41 56 41 55 41 54 49 89 fc 55 +0x000078ab98a155d5: 53 48 83 ec 68 66 48 8d 3d fe 29 06 00 66 66 48 +0x000078ab98a155e5: e8 f6 2b ff ff 80 b8 38 03 00 00 00 48 89 c5 0f +0x000078ab98a155f5: 85 2e 01 00 00 4c 89 e3 4d 89 e5 4c 8d b5 60 03 +0x000078ab98a15605: 00 00 48 c1 eb 1a 49 81 e5 00 00 00 c0 48 8d 95 +0x000078ab98a15615: b8 01 00 00 81 e3 f0 00 00 00 48 01 eb 4c 8b 93 +0x000078ab98a15625: b8 01 00 00 4d 39 d5 0f 85 0e 03 00 00 4c 89 e0 +0x000078ab98a15635: 48 c1 e8 09 25 f8 ff 1f 00 48 03 83 c0 01 00 00 +0x000078ab98a15645: 4c 8b 10 4c 8d 3d 31 c4 26 00 4c 89 d0 48 c1 e8 +0x000078ab98a15655: 30 41 83 e2 01 89 c1 41 89 c1 4d 8b 3c cf 0f 84 +0x000078ab98a15665: 37 02 00 00 48 8d 3c 40 4c 8d 04 49 48 c1 e7 03 +0x000078ab98a15675: 4e 8d 6c c5 00 48 8d 5c 3d 00 48 8b b3 68 03 00 +0x000078ab98a15685: 00 66 41 39 b5 7a 03 00 00 0f 84 fc 02 00 00 4c +0x000078ab98a15695: 8d 5e f8 4c 89 9b 68 03 00 00 4c 89 66 f8 48 8b +0x000078ab98a156a5: 9d 50 03 00 00 4c 8b 45 20 4c 8d 4d 18 48 8d 55 +0x000078ab98a156b5: 20 66 49 0f 6e f1 66 48 0f 6e fa c6 44 24 30 00 +0x000078ab98a156c5: 4c 8d a5 50 03 00 00 48 8d bd 58 03 00 00 66 49 +0x000078ab98a156d5: 0f 6e ec 49 8d 34 1f 49 29 d8 66 4c 0f 6e c7 66 +0x000078ab98a156e5: 0f 6c ee 66 41 0f 6c f8 0f 11 6c 24 38 0f 11 7c +0x000078ab98a156f5: 24 48 48 89 b5 50 03 00 00 4d 39 c7 0f 83 81 01 +0x000078ab98a15705: 00 00 48 83 c4 68 5b 5d 41 5c 41 5d 41 5e 41 5f +0x000078ab98a15715: c3 66 2e 0f 1f 84 00 00 00 00 00 c3 0f 1f 80 00 +0x000078ab98a15725: 00 00 00 be 01 00 00 00 48 89 c7 e8 7b 8f 04 00 +0x000078ab98a15735: 80 b8 38 03 00 00 00 48 89 c5 0f 84 b5 fe ff ff + + +Stack slot to memory mapping: + +stack at sp + 0 slots: 0x000078aaf00025d8 points into unknown readable memory: 0x0000000000000001 | 01 00 00 00 00 00 00 00 +stack at sp + 1 slots: 0x000078ab430ac9b8 is a pointer to class: +org.lwjgl.vulkan.VkInstanceCreateInfo {0x000078ab430ac9b8} + - instance size: 3 + - klass size: 108 + - access: public synchronized + - flags: rewritten has_nonstatic_fields should_verify_class has_nonstatic_concrete_methods has_localvariable_table has_miranda_methods + - state: fully_initialized + - name: 'org/lwjgl/vulkan/VkInstanceCreateInfo' + - super: 'org/lwjgl/system/Struct' + - sub: + - arrays: null + - methods: Array(0x000078ab387e9640) + - method ordering: Array(0x000078ab426f1b90) + - default_methods: Array(0x000078ab387ed0c0) + - default vtable indices: Array(0x000078ab387ed0d0) + - local interfaces: Array(0x000078ab387e9630) + - trans. interfaces: Array(0x000078ab387ed028) + - secondary supers: Array(0x000078ab387ed0a0) + - hash_slot: 62 + - bitmap: 0x8a00000000000000 + - constants: constant pool [373] {0x000078ab387e8978} for 'org/lwjgl/vulkan/VkInstanceCreateInfo' cache=0x000078ab387ed8b0 + - class loader data: loader data: 0x000078abc01474b0 for instance a 'jdk/internal/loader/ClassLoaders$AppClassLoader'{0x00000007ffd01490} + - source file: 'VkInstanceCreateInfo.java' + - generic signature: 'Lorg/lwjgl/system/Struct;Lorg/lwjgl/system/NativeResource;' + - inner classes: Array(0x000078ab387ed000) + - nest members: Array(0x000078ab42676730) + - permitted subclasses: Array(0x000078ab42676730) + - java mirror: a 'java/lang/Class'{0x0000000629d4a1e0} = 'org/lwjgl/vulkan/VkInstanceCreateInfo' + - vtable length 37 (start addr: 0x000078ab430acb88) + - itable length 12 (start addr: 0x000078ab430accb0) + - ---- static fields (5 words): + - public static final 'SIZEOF' 'I' @112 + - public static final 'ALIGNOF' 'I' @116 + - public static final 'STYPE' 'I' @120 + - public static final 'PNEXT' 'I' @124 + - public static final 'FLAGS' 'I' @128 + - public static final 'PAPPLICATIONINFO' 'I' @132 + - public static final 'ENABLEDLAYERCOUNT' 'I' @136 + - public static final 'PPENABLEDLAYERNAMES' 'I' @140 + - public static final 'ENABLEDEXTENSIONCOUNT' 'I' @144 + - public static final 'PPENABLEDEXTENSIONNAMES' 'I' @148 + - ---- non-static fields (3 words): + - protected 'address' 'J' @16 + - protected 'container' 'Ljava/nio/ByteBuffer;' @12 + - non-static oop maps: 12-12 +stack at sp + 2 slots: 0x0000000000000004 is an unknown value +stack at sp + 3 slots: 0x0 is null +stack at sp + 4 slots: 0x000078ab981fe390 is pointing into the stack for thread: 0x000078abc05a8d30 +stack at sp + 5 slots: 0x000000000000000f is an unknown value +stack at sp + 6 slots: 0x000078ab98a77fe0: in /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so at 0x000078ab98a00000 +stack at sp + 7 slots: 0x000078abc0000000 points into unknown readable memory: 0x000078abc0000030 | 30 00 00 c0 ab 78 00 00 + +Lock stack of current Java thread (top to bottom): + + +--------------- P R O C E S S --------------- + +Threads class SMR info: +_java_thread_list=0x000078aaf07641e0, length=14, elements={ +0x000078abc0137930, 0x000078abc0138ea0, 0x000078abc013a6b0, 0x000078abc013bcf0, +0x000078abc013d290, 0x000078abc013edb0, 0x000078abc01404c0, 0x000078abc014d1b0, +0x000078abc014fc90, 0x000078abc05a8d30, 0x000078abc002d0f0, 0x000078aaf05acb60, +0x000078ab084b7a10, 0x000078aaf0763530 +} + +Java Threads: ( => current thread ) + 0x000078abc0137930 JavaThread "Reference Handler" daemon [_thread_blocked, id=76967, stack(0x000078aba8700000,0x000078aba8800000) (1024K)] + 0x000078abc0138ea0 JavaThread "Finalizer" daemon [_thread_blocked, id=76968, stack(0x000078aba05fd000,0x000078aba06fd000) (1024K)] + 0x000078abc013a6b0 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=76969, stack(0x000078aba04fd000,0x000078aba05fd000) (1024K)] + 0x000078abc013bcf0 JavaThread "Service Thread" daemon [_thread_blocked, id=76970, stack(0x000078aba03fd000,0x000078aba04fd000) (1024K)] + 0x000078abc013d290 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=76971, stack(0x000078aba02fd000,0x000078aba03fd000) (1024K)] + 0x000078abc013edb0 JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=76972, stack(0x000078aba01fd000,0x000078aba02fd000) (1024K)] + 0x000078abc01404c0 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=76973, stack(0x000078aba00fd000,0x000078aba01fd000) (1024K)] + 0x000078abc014d1b0 JavaThread "Notification Thread" daemon [_thread_blocked, id=76974, stack(0x000078ab98f00000,0x000078ab99000000) (1024K)] + 0x000078abc014fc90 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=76975, stack(0x000078ab98e00000,0x000078ab98f00000) (1024K)] +=>0x000078abc05a8d30 JavaThread "LwjglVulkanContext" [_thread_in_native, id=76987, stack(0x000078ab98100000,0x000078ab98200000) (1024K)] + 0x000078abc002d0f0 JavaThread "DestroyJavaVM" [_thread_blocked, id=76959, stack(0x000078abc7700000,0x000078abc7800000) (1024K)] + 0x000078aaf05acb60 JavaThread "jME3 Audio Decoder" daemon [_thread_blocked, id=76998, stack(0x000078ab98d00000,0x000078ab98e00000) (1024K)] + 0x000078ab084b7a10 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=76999, stack(0x000078ab40d00000,0x000078ab40e00000) (1024K)] + 0x000078aaf0763530 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=77000, stack(0x000078ab40300000,0x000078ab40400000) (1024K)] +Total: 14 + +Other Threads: + 0x000078abc012e310 VMThread "VM Thread" [id=76966, stack(0x000078aba06fe000,0x000078aba07fe000) (1024K)] + 0x000078abc011c630 WatcherThread "VM Periodic Task Thread" [id=76965, stack(0x000078aba07ff000,0x000078aba08ff000) (1024K)] + 0x000078abc0058660 WorkerThread "GC Thread#0" [id=76960, stack(0x000078abc6ba1000,0x000078abc6ca1000) (1024K)] + 0x000078abc006d560 ConcurrentGCThread "G1 Main Marker" [id=76961, stack(0x000078abc4b00000,0x000078abc4c00000) (1024K)] + 0x000078abc006e500 WorkerThread "G1 Conc#0" [id=76962, stack(0x000078abc49ff000,0x000078abc4aff000) (1024K)] + 0x000078abc0101ec0 ConcurrentGCThread "G1 Refine#0" [id=76963, stack(0x000078abc40f6000,0x000078abc41f6000) (1024K)] + 0x000078abc0102e80 ConcurrentGCThread "G1 Service" [id=76964, stack(0x000078aba0900000,0x000078aba0a00000) (1024K)] +Total: 7 + +Threads with active compile tasks: +C2 CompilerThread0 813 1245 4 java.util.HashMap::putVal (300 bytes) +Total: 1 + +VM state: not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap address: 0x000000060c000000, size: 8000 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 + +CDS archive(s) mapped at: [0x000078ab42000000-0x000078ab42d91000-0x000078ab42d91000), size 14225408, SharedBaseAddress: 0x000078ab42000000, ArchiveRelocationMode: 1. +Compressed class space mapped at: 0x000078ab43000000-0x000078ab83000000, reserved size: 1073741824 +Narrow klass base: 0x000078ab42000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 + +GC Precious Log: + CardTable entry size: 512 + Card Set container configuration: InlinePtr #cards 4 size 8 Array Of Cards #cards 32 size 80 Howl #buckets 8 coarsen threshold 7372 Howl Bitmap #cards 1024 size 144 coarsen threshold 921 Card regions per heap region 1 cards per card region 8192 + CPUs: 8 total, 8 available + Memory: 31999M + Large Page Support: Disabled + NUMA Support: Disabled + Compressed Oops: Enabled (Zero based) + Heap Region Size: 4M + Heap Min Capacity: 8M + Heap Initial Capacity: 500M + Heap Max Capacity: 8000M + Pre-touch: Disabled + Parallel Workers: 8 + Concurrent Workers: 2 + Concurrent Refinement Workers: 8 + Periodic GC: Disabled + +Heap: + garbage-first heap total reserved 8192000K, committed 516096K, used 17531K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 6 young (24576K), 0 survivors (0K) + Metaspace used 8549K, committed 8768K, reserved 1114112K + class space used 754K, committed 832K, reserved 1048576K + +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, TAMS=top-at-mark-start, PB=parsable bottom +| 0|0x000000060c000000, 0x000000060c000000, 0x000000060c400000| 0%| F| |TAMS 0x000000060c000000| PB 0x000000060c000000| Untracked | 0 +| 1|0x000000060c400000, 0x000000060c400000, 0x000000060c800000| 0%| F| |TAMS 0x000000060c400000| PB 0x000000060c400000| Untracked | 0 +| 2|0x000000060c800000, 0x000000060c800000, 0x000000060cc00000| 0%| F| |TAMS 0x000000060c800000| PB 0x000000060c800000| Untracked | 0 +| 3|0x000000060cc00000, 0x000000060cc00000, 0x000000060d000000| 0%| F| |TAMS 0x000000060cc00000| PB 0x000000060cc00000| Untracked | 0 +| 4|0x000000060d000000, 0x000000060d000000, 0x000000060d400000| 0%| F| |TAMS 0x000000060d000000| PB 0x000000060d000000| Untracked | 0 +| 5|0x000000060d400000, 0x000000060d400000, 0x000000060d800000| 0%| F| |TAMS 0x000000060d400000| PB 0x000000060d400000| Untracked | 0 +| 6|0x000000060d800000, 0x000000060d800000, 0x000000060dc00000| 0%| F| |TAMS 0x000000060d800000| PB 0x000000060d800000| Untracked | 0 +| 7|0x000000060dc00000, 0x000000060dc00000, 0x000000060e000000| 0%| F| |TAMS 0x000000060dc00000| PB 0x000000060dc00000| Untracked | 0 +| 8|0x000000060e000000, 0x000000060e000000, 0x000000060e400000| 0%| F| |TAMS 0x000000060e000000| PB 0x000000060e000000| Untracked | 0 +| 9|0x000000060e400000, 0x000000060e400000, 0x000000060e800000| 0%| F| |TAMS 0x000000060e400000| PB 0x000000060e400000| Untracked | 0 +| 10|0x000000060e800000, 0x000000060e800000, 0x000000060ec00000| 0%| F| |TAMS 0x000000060e800000| PB 0x000000060e800000| Untracked | 0 +| 11|0x000000060ec00000, 0x000000060ec00000, 0x000000060f000000| 0%| F| |TAMS 0x000000060ec00000| PB 0x000000060ec00000| Untracked | 0 +| 12|0x000000060f000000, 0x000000060f000000, 0x000000060f400000| 0%| F| |TAMS 0x000000060f000000| PB 0x000000060f000000| Untracked | 0 +| 13|0x000000060f400000, 0x000000060f400000, 0x000000060f800000| 0%| F| |TAMS 0x000000060f400000| PB 0x000000060f400000| Untracked | 0 +| 14|0x000000060f800000, 0x000000060f800000, 0x000000060fc00000| 0%| F| |TAMS 0x000000060f800000| PB 0x000000060f800000| Untracked | 0 +| 15|0x000000060fc00000, 0x000000060fc00000, 0x0000000610000000| 0%| F| |TAMS 0x000000060fc00000| PB 0x000000060fc00000| Untracked | 0 +| 16|0x0000000610000000, 0x0000000610000000, 0x0000000610400000| 0%| F| |TAMS 0x0000000610000000| PB 0x0000000610000000| Untracked | 0 +| 17|0x0000000610400000, 0x0000000610400000, 0x0000000610800000| 0%| F| |TAMS 0x0000000610400000| PB 0x0000000610400000| Untracked | 0 +| 18|0x0000000610800000, 0x0000000610800000, 0x0000000610c00000| 0%| F| |TAMS 0x0000000610800000| PB 0x0000000610800000| Untracked | 0 +| 19|0x0000000610c00000, 0x0000000610c00000, 0x0000000611000000| 0%| F| |TAMS 0x0000000610c00000| PB 0x0000000610c00000| Untracked | 0 +| 20|0x0000000611000000, 0x0000000611000000, 0x0000000611400000| 0%| F| |TAMS 0x0000000611000000| PB 0x0000000611000000| Untracked | 0 +| 21|0x0000000611400000, 0x0000000611400000, 0x0000000611800000| 0%| F| |TAMS 0x0000000611400000| PB 0x0000000611400000| Untracked | 0 +| 22|0x0000000611800000, 0x0000000611800000, 0x0000000611c00000| 0%| F| |TAMS 0x0000000611800000| PB 0x0000000611800000| Untracked | 0 +| 23|0x0000000611c00000, 0x0000000611c00000, 0x0000000612000000| 0%| F| |TAMS 0x0000000611c00000| PB 0x0000000611c00000| Untracked | 0 +| 24|0x0000000612000000, 0x0000000612000000, 0x0000000612400000| 0%| F| |TAMS 0x0000000612000000| PB 0x0000000612000000| Untracked | 0 +| 25|0x0000000612400000, 0x0000000612400000, 0x0000000612800000| 0%| F| |TAMS 0x0000000612400000| PB 0x0000000612400000| Untracked | 0 +| 26|0x0000000612800000, 0x0000000612800000, 0x0000000612c00000| 0%| F| |TAMS 0x0000000612800000| PB 0x0000000612800000| Untracked | 0 +| 27|0x0000000612c00000, 0x0000000612c00000, 0x0000000613000000| 0%| F| |TAMS 0x0000000612c00000| PB 0x0000000612c00000| Untracked | 0 +| 28|0x0000000613000000, 0x0000000613000000, 0x0000000613400000| 0%| F| |TAMS 0x0000000613000000| PB 0x0000000613000000| Untracked | 0 +| 29|0x0000000613400000, 0x0000000613400000, 0x0000000613800000| 0%| F| |TAMS 0x0000000613400000| PB 0x0000000613400000| Untracked | 0 +| 30|0x0000000613800000, 0x0000000613800000, 0x0000000613c00000| 0%| F| |TAMS 0x0000000613800000| PB 0x0000000613800000| Untracked | 0 +| 31|0x0000000613c00000, 0x0000000613c00000, 0x0000000614000000| 0%| F| |TAMS 0x0000000613c00000| PB 0x0000000613c00000| Untracked | 0 +| 32|0x0000000614000000, 0x0000000614000000, 0x0000000614400000| 0%| F| |TAMS 0x0000000614000000| PB 0x0000000614000000| Untracked | 0 +| 33|0x0000000614400000, 0x0000000614400000, 0x0000000614800000| 0%| F| |TAMS 0x0000000614400000| PB 0x0000000614400000| Untracked | 0 +| 34|0x0000000614800000, 0x0000000614800000, 0x0000000614c00000| 0%| F| |TAMS 0x0000000614800000| PB 0x0000000614800000| Untracked | 0 +| 35|0x0000000614c00000, 0x0000000614c00000, 0x0000000615000000| 0%| F| |TAMS 0x0000000614c00000| PB 0x0000000614c00000| Untracked | 0 +| 36|0x0000000615000000, 0x0000000615000000, 0x0000000615400000| 0%| F| |TAMS 0x0000000615000000| PB 0x0000000615000000| Untracked | 0 +| 37|0x0000000615400000, 0x0000000615400000, 0x0000000615800000| 0%| F| |TAMS 0x0000000615400000| PB 0x0000000615400000| Untracked | 0 +| 38|0x0000000615800000, 0x0000000615800000, 0x0000000615c00000| 0%| F| |TAMS 0x0000000615800000| PB 0x0000000615800000| Untracked | 0 +| 39|0x0000000615c00000, 0x0000000615c00000, 0x0000000616000000| 0%| F| |TAMS 0x0000000615c00000| PB 0x0000000615c00000| Untracked | 0 +| 40|0x0000000616000000, 0x0000000616000000, 0x0000000616400000| 0%| F| |TAMS 0x0000000616000000| PB 0x0000000616000000| Untracked | 0 +| 41|0x0000000616400000, 0x0000000616400000, 0x0000000616800000| 0%| F| |TAMS 0x0000000616400000| PB 0x0000000616400000| Untracked | 0 +| 42|0x0000000616800000, 0x0000000616800000, 0x0000000616c00000| 0%| F| |TAMS 0x0000000616800000| PB 0x0000000616800000| Untracked | 0 +| 43|0x0000000616c00000, 0x0000000616c00000, 0x0000000617000000| 0%| F| |TAMS 0x0000000616c00000| PB 0x0000000616c00000| Untracked | 0 +| 44|0x0000000617000000, 0x0000000617000000, 0x0000000617400000| 0%| F| |TAMS 0x0000000617000000| PB 0x0000000617000000| Untracked | 0 +| 45|0x0000000617400000, 0x0000000617400000, 0x0000000617800000| 0%| F| |TAMS 0x0000000617400000| PB 0x0000000617400000| Untracked | 0 +| 46|0x0000000617800000, 0x0000000617800000, 0x0000000617c00000| 0%| F| |TAMS 0x0000000617800000| PB 0x0000000617800000| Untracked | 0 +| 47|0x0000000617c00000, 0x0000000617c00000, 0x0000000618000000| 0%| F| |TAMS 0x0000000617c00000| PB 0x0000000617c00000| Untracked | 0 +| 48|0x0000000618000000, 0x0000000618000000, 0x0000000618400000| 0%| F| |TAMS 0x0000000618000000| PB 0x0000000618000000| Untracked | 0 +| 49|0x0000000618400000, 0x0000000618400000, 0x0000000618800000| 0%| F| |TAMS 0x0000000618400000| PB 0x0000000618400000| Untracked | 0 +| 50|0x0000000618800000, 0x0000000618800000, 0x0000000618c00000| 0%| F| |TAMS 0x0000000618800000| PB 0x0000000618800000| Untracked | 0 +| 51|0x0000000618c00000, 0x0000000618c00000, 0x0000000619000000| 0%| F| |TAMS 0x0000000618c00000| PB 0x0000000618c00000| Untracked | 0 +| 52|0x0000000619000000, 0x0000000619000000, 0x0000000619400000| 0%| F| |TAMS 0x0000000619000000| PB 0x0000000619000000| Untracked | 0 +| 53|0x0000000619400000, 0x0000000619400000, 0x0000000619800000| 0%| F| |TAMS 0x0000000619400000| PB 0x0000000619400000| Untracked | 0 +| 54|0x0000000619800000, 0x0000000619800000, 0x0000000619c00000| 0%| F| |TAMS 0x0000000619800000| PB 0x0000000619800000| Untracked | 0 +| 55|0x0000000619c00000, 0x0000000619c00000, 0x000000061a000000| 0%| F| |TAMS 0x0000000619c00000| PB 0x0000000619c00000| Untracked | 0 +| 56|0x000000061a000000, 0x000000061a000000, 0x000000061a400000| 0%| F| |TAMS 0x000000061a000000| PB 0x000000061a000000| Untracked | 0 +| 57|0x000000061a400000, 0x000000061a400000, 0x000000061a800000| 0%| F| |TAMS 0x000000061a400000| PB 0x000000061a400000| Untracked | 0 +| 58|0x000000061a800000, 0x000000061a800000, 0x000000061ac00000| 0%| F| |TAMS 0x000000061a800000| PB 0x000000061a800000| Untracked | 0 +| 59|0x000000061ac00000, 0x000000061ac00000, 0x000000061b000000| 0%| F| |TAMS 0x000000061ac00000| PB 0x000000061ac00000| Untracked | 0 +| 60|0x000000061b000000, 0x000000061b000000, 0x000000061b400000| 0%| F| |TAMS 0x000000061b000000| PB 0x000000061b000000| Untracked | 0 +| 61|0x000000061b400000, 0x000000061b400000, 0x000000061b800000| 0%| F| |TAMS 0x000000061b400000| PB 0x000000061b400000| Untracked | 0 +| 62|0x000000061b800000, 0x000000061b800000, 0x000000061bc00000| 0%| F| |TAMS 0x000000061b800000| PB 0x000000061b800000| Untracked | 0 +| 63|0x000000061bc00000, 0x000000061bc00000, 0x000000061c000000| 0%| F| |TAMS 0x000000061bc00000| PB 0x000000061bc00000| Untracked | 0 +| 64|0x000000061c000000, 0x000000061c000000, 0x000000061c400000| 0%| F| |TAMS 0x000000061c000000| PB 0x000000061c000000| Untracked | 0 +| 65|0x000000061c400000, 0x000000061c400000, 0x000000061c800000| 0%| F| |TAMS 0x000000061c400000| PB 0x000000061c400000| Untracked | 0 +| 66|0x000000061c800000, 0x000000061c800000, 0x000000061cc00000| 0%| F| |TAMS 0x000000061c800000| PB 0x000000061c800000| Untracked | 0 +| 67|0x000000061cc00000, 0x000000061cc00000, 0x000000061d000000| 0%| F| |TAMS 0x000000061cc00000| PB 0x000000061cc00000| Untracked | 0 +| 68|0x000000061d000000, 0x000000061d000000, 0x000000061d400000| 0%| F| |TAMS 0x000000061d000000| PB 0x000000061d000000| Untracked | 0 +| 69|0x000000061d400000, 0x000000061d400000, 0x000000061d800000| 0%| F| |TAMS 0x000000061d400000| PB 0x000000061d400000| Untracked | 0 +| 70|0x000000061d800000, 0x000000061d800000, 0x000000061dc00000| 0%| F| |TAMS 0x000000061d800000| PB 0x000000061d800000| Untracked | 0 +| 71|0x000000061dc00000, 0x000000061dc00000, 0x000000061e000000| 0%| F| |TAMS 0x000000061dc00000| PB 0x000000061dc00000| Untracked | 0 +| 72|0x000000061e000000, 0x000000061e000000, 0x000000061e400000| 0%| F| |TAMS 0x000000061e000000| PB 0x000000061e000000| Untracked | 0 +| 73|0x000000061e400000, 0x000000061e400000, 0x000000061e800000| 0%| F| |TAMS 0x000000061e400000| PB 0x000000061e400000| Untracked | 0 +| 74|0x000000061e800000, 0x000000061e800000, 0x000000061ec00000| 0%| F| |TAMS 0x000000061e800000| PB 0x000000061e800000| Untracked | 0 +| 75|0x000000061ec00000, 0x000000061ec00000, 0x000000061f000000| 0%| F| |TAMS 0x000000061ec00000| PB 0x000000061ec00000| Untracked | 0 +| 76|0x000000061f000000, 0x000000061f000000, 0x000000061f400000| 0%| F| |TAMS 0x000000061f000000| PB 0x000000061f000000| Untracked | 0 +| 77|0x000000061f400000, 0x000000061f400000, 0x000000061f800000| 0%| F| |TAMS 0x000000061f400000| PB 0x000000061f400000| Untracked | 0 +| 78|0x000000061f800000, 0x000000061f800000, 0x000000061fc00000| 0%| F| |TAMS 0x000000061f800000| PB 0x000000061f800000| Untracked | 0 +| 79|0x000000061fc00000, 0x000000061fc00000, 0x0000000620000000| 0%| F| |TAMS 0x000000061fc00000| PB 0x000000061fc00000| Untracked | 0 +| 80|0x0000000620000000, 0x0000000620000000, 0x0000000620400000| 0%| F| |TAMS 0x0000000620000000| PB 0x0000000620000000| Untracked | 0 +| 81|0x0000000620400000, 0x0000000620400000, 0x0000000620800000| 0%| F| |TAMS 0x0000000620400000| PB 0x0000000620400000| Untracked | 0 +| 82|0x0000000620800000, 0x0000000620800000, 0x0000000620c00000| 0%| F| |TAMS 0x0000000620800000| PB 0x0000000620800000| Untracked | 0 +| 83|0x0000000620c00000, 0x0000000620c00000, 0x0000000621000000| 0%| F| |TAMS 0x0000000620c00000| PB 0x0000000620c00000| Untracked | 0 +| 84|0x0000000621000000, 0x0000000621000000, 0x0000000621400000| 0%| F| |TAMS 0x0000000621000000| PB 0x0000000621000000| Untracked | 0 +| 85|0x0000000621400000, 0x0000000621400000, 0x0000000621800000| 0%| F| |TAMS 0x0000000621400000| PB 0x0000000621400000| Untracked | 0 +| 86|0x0000000621800000, 0x0000000621800000, 0x0000000621c00000| 0%| F| |TAMS 0x0000000621800000| PB 0x0000000621800000| Untracked | 0 +| 87|0x0000000621c00000, 0x0000000621c00000, 0x0000000622000000| 0%| F| |TAMS 0x0000000621c00000| PB 0x0000000621c00000| Untracked | 0 +| 88|0x0000000622000000, 0x0000000622000000, 0x0000000622400000| 0%| F| |TAMS 0x0000000622000000| PB 0x0000000622000000| Untracked | 0 +| 89|0x0000000622400000, 0x0000000622400000, 0x0000000622800000| 0%| F| |TAMS 0x0000000622400000| PB 0x0000000622400000| Untracked | 0 +| 90|0x0000000622800000, 0x0000000622800000, 0x0000000622c00000| 0%| F| |TAMS 0x0000000622800000| PB 0x0000000622800000| Untracked | 0 +| 91|0x0000000622c00000, 0x0000000622c00000, 0x0000000623000000| 0%| F| |TAMS 0x0000000622c00000| PB 0x0000000622c00000| Untracked | 0 +| 92|0x0000000623000000, 0x0000000623000000, 0x0000000623400000| 0%| F| |TAMS 0x0000000623000000| PB 0x0000000623000000| Untracked | 0 +| 93|0x0000000623400000, 0x0000000623400000, 0x0000000623800000| 0%| F| |TAMS 0x0000000623400000| PB 0x0000000623400000| Untracked | 0 +| 94|0x0000000623800000, 0x0000000623800000, 0x0000000623c00000| 0%| F| |TAMS 0x0000000623800000| PB 0x0000000623800000| Untracked | 0 +| 95|0x0000000623c00000, 0x0000000623c00000, 0x0000000624000000| 0%| F| |TAMS 0x0000000623c00000| PB 0x0000000623c00000| Untracked | 0 +| 96|0x0000000624000000, 0x0000000624000000, 0x0000000624400000| 0%| F| |TAMS 0x0000000624000000| PB 0x0000000624000000| Untracked | 0 +| 97|0x0000000624400000, 0x0000000624400000, 0x0000000624800000| 0%| F| |TAMS 0x0000000624400000| PB 0x0000000624400000| Untracked | 0 +| 98|0x0000000624800000, 0x0000000624800000, 0x0000000624c00000| 0%| F| |TAMS 0x0000000624800000| PB 0x0000000624800000| Untracked | 0 +| 99|0x0000000624c00000, 0x0000000624c00000, 0x0000000625000000| 0%| F| |TAMS 0x0000000624c00000| PB 0x0000000624c00000| Untracked | 0 +| 100|0x0000000625000000, 0x0000000625000000, 0x0000000625400000| 0%| F| |TAMS 0x0000000625000000| PB 0x0000000625000000| Untracked | 0 +| 101|0x0000000625400000, 0x0000000625400000, 0x0000000625800000| 0%| F| |TAMS 0x0000000625400000| PB 0x0000000625400000| Untracked | 0 +| 102|0x0000000625800000, 0x0000000625800000, 0x0000000625c00000| 0%| F| |TAMS 0x0000000625800000| PB 0x0000000625800000| Untracked | 0 +| 103|0x0000000625c00000, 0x0000000625c00000, 0x0000000626000000| 0%| F| |TAMS 0x0000000625c00000| PB 0x0000000625c00000| Untracked | 0 +| 104|0x0000000626000000, 0x0000000626000000, 0x0000000626400000| 0%| F| |TAMS 0x0000000626000000| PB 0x0000000626000000| Untracked | 0 +| 105|0x0000000626400000, 0x0000000626400000, 0x0000000626800000| 0%| F| |TAMS 0x0000000626400000| PB 0x0000000626400000| Untracked | 0 +| 106|0x0000000626800000, 0x0000000626800000, 0x0000000626c00000| 0%| F| |TAMS 0x0000000626800000| PB 0x0000000626800000| Untracked | 0 +| 107|0x0000000626c00000, 0x0000000626c00000, 0x0000000627000000| 0%| F| |TAMS 0x0000000626c00000| PB 0x0000000626c00000| Untracked | 0 +| 108|0x0000000627000000, 0x0000000627000000, 0x0000000627400000| 0%| F| |TAMS 0x0000000627000000| PB 0x0000000627000000| Untracked | 0 +| 109|0x0000000627400000, 0x0000000627400000, 0x0000000627800000| 0%| F| |TAMS 0x0000000627400000| PB 0x0000000627400000| Untracked | 0 +| 110|0x0000000627800000, 0x0000000627800000, 0x0000000627c00000| 0%| F| |TAMS 0x0000000627800000| PB 0x0000000627800000| Untracked | 0 +| 111|0x0000000627c00000, 0x0000000627c00000, 0x0000000628000000| 0%| F| |TAMS 0x0000000627c00000| PB 0x0000000627c00000| Untracked | 0 +| 112|0x0000000628000000, 0x0000000628000000, 0x0000000628400000| 0%| F| |TAMS 0x0000000628000000| PB 0x0000000628000000| Untracked | 0 +| 113|0x0000000628400000, 0x0000000628400000, 0x0000000628800000| 0%| F| |TAMS 0x0000000628400000| PB 0x0000000628400000| Untracked | 0 +| 114|0x0000000628800000, 0x0000000628800000, 0x0000000628c00000| 0%| F| |TAMS 0x0000000628800000| PB 0x0000000628800000| Untracked | 0 +| 115|0x0000000628c00000, 0x0000000628c00000, 0x0000000629000000| 0%| F| |TAMS 0x0000000628c00000| PB 0x0000000628c00000| Untracked | 0 +| 116|0x0000000629000000, 0x0000000629000000, 0x0000000629400000| 0%| F| |TAMS 0x0000000629000000| PB 0x0000000629000000| Untracked | 0 +| 117|0x0000000629400000, 0x0000000629400000, 0x0000000629800000| 0%| F| |TAMS 0x0000000629400000| PB 0x0000000629400000| Untracked | 0 +| 118|0x0000000629800000, 0x0000000629800000, 0x0000000629c00000| 0%| F| |TAMS 0x0000000629800000| PB 0x0000000629800000| Untracked | 0 +| 119|0x0000000629c00000, 0x0000000629e0f148, 0x000000062a000000| 51%| E| |TAMS 0x0000000629c00000| PB 0x0000000629c00000| Complete | 0 +| 120|0x000000062a000000, 0x000000062a400000, 0x000000062a400000|100%| E|CS|TAMS 0x000000062a000000| PB 0x000000062a000000| Complete | 0 +| 121|0x000000062a400000, 0x000000062a800000, 0x000000062a800000|100%| E| |TAMS 0x000000062a400000| PB 0x000000062a400000| Complete | 0 +| 122|0x000000062a800000, 0x000000062ac00000, 0x000000062ac00000|100%| E|CS|TAMS 0x000000062a800000| PB 0x000000062a800000| Complete | 0 +| 123|0x000000062ac00000, 0x000000062b000000, 0x000000062b000000|100%| E|CS|TAMS 0x000000062ac00000| PB 0x000000062ac00000| Complete | 0 +| 124|0x000000062b000000, 0x000000062b400000, 0x000000062b400000|100%| E|CS|TAMS 0x000000062b000000| PB 0x000000062b000000| Complete | 0 +|1999|0x00000007ffc00000, 0x00000007ffd1ec18, 0x0000000800000000| 28%| O| |TAMS 0x00000007ffc00000| PB 0x00000007ffc00000| Untracked | 0 + +Card table byte_map: [0x000078abc4c00000,0x000078abc5ba0000] _byte_map_base: 0x000078abc1ba0000 + +Marking Bits: (CMBitMap*) 0x000078abc0059190 + Bits: [0x000078aba0a00000, 0x000078aba8700000) + +Polling page: 0x000078abc9130000 + +Metaspace: + +Usage: + Non-class: 7.61 MB used. + Class: 754.40 KB used. + Both: 8.35 MB used. + +Virtual space: + Non-class space: 64.00 MB reserved, 7.75 MB ( 12%) committed, 1 nodes. + Class space: 1.00 GB reserved, 832.00 KB ( <1%) committed, 1 nodes. + Both: 1.06 GB reserved, 8.56 MB ( <1%) committed. + +Chunk freelists: + Non-Class: 7.98 MB + Class: 15.06 MB + Both: 23.05 MB + +MaxMetaspaceSize: unlimited +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 21.00 MB +Current GC threshold: 21.00 MB +CDS: on + - commit_granule_bytes: 65536. + - commit_granule_words: 8192. + - virtual_space_node_default_size: 8388608. + - enlarge_chunks_in_place: 1. + - use_allocation_guard: 0. + + +Internal statistics: + +num_allocs_failed_limit: 0. +num_arena_births: 142. +num_arena_deaths: 0. +num_vsnodes_births: 2. +num_vsnodes_deaths: 0. +num_space_committed: 137. +num_space_uncommitted: 0. +num_chunks_returned_to_freelist: 0. +num_chunks_taken_from_freelist: 355. +num_chunk_merges: 0. +num_chunk_splits: 242. +num_chunks_enlarged: 165. +num_inconsistent_stats: 0. + +CodeHeap 'non-profiled nmethods': size=120032Kb used=387Kb max_used=387Kb free=119645Kb + bounds [0x000078abb02c8000, 0x000078abb0538000, 0x000078abb7800000] +CodeHeap 'profiled nmethods': size=120028Kb used=1638Kb max_used=1638Kb free=118389Kb + bounds [0x000078aba8800000, 0x000078aba8a70000, 0x000078abafd37000] +CodeHeap 'non-nmethods': size=5700Kb used=2151Kb max_used=2169Kb free=3548Kb + bounds [0x000078abafd37000, 0x000078abaffa7000, 0x000078abb02c8000] +CodeCache: size=245760Kb, used=4176Kb, max_used=4194Kb, free=241582Kb + total_blobs=2418, nmethods=1248, adapters=1077, full_count=0 +Compilation: enabled, stopped_count=0, restarted_count=0 + +Compilation events (20 events): +Event: 0.803 Thread 0x000078abc01404c0 1235 3 java.lang.invoke.DirectMethodHandle::preparedLambdaForm (244 bytes) +Event: 0.804 Thread 0x000078abc01404c0 nmethod 1235 0x000078aba8994508 code [0x000078aba8994780, 0x000078aba8995630] +Event: 0.807 Thread 0x000078abc01404c0 1236 3 org.lwjgl.system.Checks::check (16 bytes) +Event: 0.807 Thread 0x000078abc01404c0 nmethod 1236 0x000078aba8995708 code [0x000078aba8995840, 0x000078aba8995a28] +Event: 0.807 Thread 0x000078abc01404c0 1237 3 sun.misc.Unsafe::getByte (12 bytes) +Event: 0.807 Thread 0x000078abc01404c0 nmethod 1237 0x000078aba8995a88 code [0x000078aba8995ba0, 0x000078aba8995d18] +Event: 0.807 Thread 0x000078abc01404c0 1238 ! 3 jdk.internal.misc.ScopedMemoryAccess::copyMemory (27 bytes) +Event: 0.807 Thread 0x000078abc01404c0 nmethod 1238 0x000078aba8995d88 code [0x000078aba8995f20, 0x000078aba8996530] +Event: 0.807 Thread 0x000078abc01404c0 1239 ! 3 jdk.internal.misc.ScopedMemoryAccess::copyMemoryInternal (56 bytes) +Event: 0.808 Thread 0x000078abc01404c0 nmethod 1239 0x000078aba8996588 code [0x000078aba8996700, 0x000078aba8996c20] +Event: 0.808 Thread 0x000078abc01404c0 1240 3 java.lang.ThreadLocal$ThreadLocalMap::nextIndex (15 bytes) +Event: 0.808 Thread 0x000078abc01404c0 nmethod 1240 0x000078aba8996c88 code [0x000078aba8996da0, 0x000078aba8996ed0] +Event: 0.808 Thread 0x000078abc01404c0 1241 3 org.lwjgl.system.Struct:: (11 bytes) +Event: 0.808 Thread 0x000078abc013edb0 1245 4 java.util.HashMap::putVal (300 bytes) +Event: 0.808 Thread 0x000078abc01404c0 nmethod 1241 0x000078aba8996f88 code [0x000078aba89970c0, 0x000078aba8997400] +Event: 0.808 Thread 0x000078abc01404c0 1244 3 org.lwjgl.system.MemoryUtil::strlen64NT1 (119 bytes) +Event: 0.808 Thread 0x000078abc01404c0 nmethod 1244 0x000078aba8997488 code [0x000078aba8997640, 0x000078aba8997ec0] +Event: 0.808 Thread 0x000078abc01404c0 1247 3 java.lang.ThreadLocal$ThreadLocalMap::getEntryAfterMiss (59 bytes) +Event: 0.808 Thread 0x000078abc01404c0 nmethod 1247 0x000078aba8997f08 code [0x000078aba8998080, 0x000078aba8998668] +Event: 0.808 Thread 0x000078abc01404c0 1242 3 org.lwjgl.system.StructBuffer::get (36 bytes) + +GC Heap History (0 events): +No events + +Dll operation events (10 events): +Event: 0.001 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +Event: 0.016 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +Event: 0.016 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +Event: 0.024 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +Event: 0.027 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +Event: 0.067 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +Event: 0.117 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +Event: 0.122 Loaded shared library /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +Event: 0.387 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +Event: 0.390 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so + +Deoptimization events (20 events): +Event: 0.703 Thread 0x000078abc05a8d30 Uncommon trap: trap_request=0xffffff45 fr.pc=0x000078abb0306f5c relative=0x000000000000015c +Event: 0.703 Thread 0x000078abc05a8d30 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000078abb0306f5c method=java.util.concurrent.locks.ReentrantLock$NonfairSync.initialTryLock()Z @ 10 c2 +Event: 0.703 Thread 0x000078abc05a8d30 DEOPT PACKING pc=0x000078abb0306f5c sp=0x000078ab981fdec0 +Event: 0.703 Thread 0x000078abc05a8d30 DEOPT UNPACKING pc=0x000078abafd8abf9 sp=0x000078ab981fde68 mode 2 +Event: 0.746 Thread 0x000078abc05a8d30 Uncommon trap: trap_request=0xffffffde fr.pc=0x000078abb03051cc relative=0x00000000000014cc +Event: 0.746 Thread 0x000078abc05a8d30 Uncommon trap: reason=class_check action=maybe_recompile pc=0x000078abb03051cc method=java.io.BufferedInputStream.implRead([BII)I @ 100 c2 +Event: 0.746 Thread 0x000078abc05a8d30 DEOPT PACKING pc=0x000078abb03051cc sp=0x000078ab981fdc40 +Event: 0.746 Thread 0x000078abc05a8d30 DEOPT UNPACKING pc=0x000078abafd8abf9 sp=0x000078ab981fdb40 mode 2 +Event: 0.746 Thread 0x000078abc05a8d30 Uncommon trap: trap_request=0xffffffde fr.pc=0x000078abb03051cc relative=0x00000000000014cc +Event: 0.746 Thread 0x000078abc05a8d30 Uncommon trap: reason=class_check action=maybe_recompile pc=0x000078abb03051cc method=java.io.BufferedInputStream.implRead([BII)I @ 100 c2 +Event: 0.746 Thread 0x000078abc05a8d30 DEOPT PACKING pc=0x000078abb03051cc sp=0x000078ab981fdc40 +Event: 0.746 Thread 0x000078abc05a8d30 DEOPT UNPACKING pc=0x000078abafd8abf9 sp=0x000078ab981fdb40 mode 2 +Event: 0.746 Thread 0x000078abc05a8d30 Uncommon trap: trap_request=0xffffffde fr.pc=0x000078abb03051cc relative=0x00000000000014cc +Event: 0.746 Thread 0x000078abc05a8d30 Uncommon trap: reason=class_check action=maybe_recompile pc=0x000078abb03051cc method=java.io.BufferedInputStream.implRead([BII)I @ 100 c2 +Event: 0.746 Thread 0x000078abc05a8d30 DEOPT PACKING pc=0x000078abb03051cc sp=0x000078ab981fdc40 +Event: 0.746 Thread 0x000078abc05a8d30 DEOPT UNPACKING pc=0x000078abafd8abf9 sp=0x000078ab981fdb40 mode 2 +Event: 0.746 Thread 0x000078abc05a8d30 Uncommon trap: trap_request=0xffffffde fr.pc=0x000078abb03051cc relative=0x00000000000014cc +Event: 0.746 Thread 0x000078abc05a8d30 Uncommon trap: reason=class_check action=maybe_recompile pc=0x000078abb03051cc method=java.io.BufferedInputStream.implRead([BII)I @ 100 c2 +Event: 0.746 Thread 0x000078abc05a8d30 DEOPT PACKING pc=0x000078abb03051cc sp=0x000078ab981fdc40 +Event: 0.746 Thread 0x000078abc05a8d30 DEOPT UNPACKING pc=0x000078abafd8abf9 sp=0x000078ab981fdb40 mode 2 + +Classes loaded (20 events): +Event: 0.745 Loading class java/awt/image/WritableRenderedImage done +Event: 0.745 Loading class java/awt/Image +Event: 0.745 Loading class java/awt/Image done +Event: 0.745 Loading class java/awt/image/BufferedImage done +Event: 0.745 Loading class java/awt/ImageCapabilities +Event: 0.745 Loading class java/awt/ImageCapabilities done +Event: 0.745 Loading class java/awt/Image$1 +Event: 0.745 Loading class sun/awt/image/SurfaceManager$ImageAccessor +Event: 0.745 Loading class sun/awt/image/SurfaceManager$ImageAccessor done +Event: 0.745 Loading class java/awt/Image$1 done +Event: 0.745 Loading class sun/awt/image/SurfaceManager +Event: 0.745 Loading class sun/awt/image/SurfaceManager done +Event: 0.745 Loading class java/awt/image/BufferedImage$1 +Event: 0.745 Loading class java/awt/image/BufferedImage$1 done +Event: 0.745 Loading class sun/awt/image/IntegerComponentRaster +Event: 0.745 Loading class sun/awt/image/IntegerComponentRaster done +Event: 0.745 Loading class java/awt/image/IndexColorModel +Event: 0.745 Loading class java/awt/image/IndexColorModel done +Event: 0.745 Loading class sun/awt/image/ShortComponentRaster +Event: 0.745 Loading class sun/awt/image/ShortComponentRaster done + +Classes unloaded (0 events): +No events + +Classes redefined (0 events): +No events + +Internal exceptions (20 events): +Event: 0.108 Thread 0x000078abc002d0f0 Exception (0x000000062ae524c0) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.109 Thread 0x000078abc002d0f0 Exception (0x000000062ae5dc50) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.109 Thread 0x000078abc002d0f0 Exception (0x000000062ae61b38) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.112 Thread 0x000078abc002d0f0 Exception (0x000000062ae7bf30) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.163 Thread 0x000078abc002d0f0 Exception (0x000000062af599d0) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.163 Thread 0x000078abc002d0f0 Exception (0x000000062af5eb08) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.165 Thread 0x000078abc002d0f0 Exception (0x000000062af70568) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.166 Thread 0x000078abc002d0f0 Exception (0x000000062af76038) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.166 Thread 0x000078abc002d0f0 Exception (0x000000062af7a408) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.167 Thread 0x000078abc002d0f0 Exception (0x000000062af81660) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.227 Thread 0x000078abc002d0f0 Exception (0x000000062a929cf8) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.237 Thread 0x000078abc002d0f0 Exception (0x000000062a981740) +thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] +Event: 0.246 Thread 0x000078abc002d0f0 Exception (0x000000062a9ec330) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.248 Thread 0x000078abc002d0f0 Exception (0x000000062a9fa148) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.399 Thread 0x000078abc05a8d30 Exception (0x000000062a5b9fe8) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.399 Thread 0x000078abc05a8d30 Exception (0x000000062a5bd538) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 863] +Event: 0.672 Thread 0x000078abc05a8d30 Exception (0x000000062a763a50) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.730 Thread 0x000078abc05a8d30 Exception (0x000000062a173530) +thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] +Event: 0.731 Thread 0x000078abc05a8d30 Exception (0x000000062a179508) +thrown [open/src/hotspot/share/prims/jni.cpp, line 520] +Event: 0.735 Thread 0x000078abc05a8d30 Exception (0x000000062a1a4298) +thrown [open/src/hotspot/share/prims/jni.cpp, line 520] + +VM Operations (14 events): +Event: 0.099 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.099 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.107 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.107 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.119 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.119 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.129 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.130 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.404 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.404 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.687 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.687 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.728 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.728 Executing VM operation: HandshakeAllThreads (Deoptimize) done + +Memory protections (16 events): +Event: 0.001 Protecting memory [0x000078abc7700000,0x000078abc7704000] with protection modes 0 +Event: 0.015 Protecting memory [0x000078aba8700000,0x000078aba8704000] with protection modes 0 +Event: 0.015 Protecting memory [0x000078aba05fd000,0x000078aba0601000] with protection modes 0 +Event: 0.015 Protecting memory [0x000078aba04fd000,0x000078aba0501000] with protection modes 0 +Event: 0.015 Protecting memory [0x000078aba03fd000,0x000078aba0401000] with protection modes 0 +Event: 0.015 Protecting memory [0x000078aba02fd000,0x000078aba0301000] with protection modes 0 +Event: 0.015 Protecting memory [0x000078aba01fd000,0x000078aba0201000] with protection modes 0 +Event: 0.015 Protecting memory [0x000078aba00fd000,0x000078aba0101000] with protection modes 0 +Event: 0.021 Protecting memory [0x000078ab98f00000,0x000078ab98f04000] with protection modes 0 +Event: 0.022 Protecting memory [0x000078ab98e00000,0x000078ab98e04000] with protection modes 0 +Event: 0.163 Protecting memory [0x000078ab98d00000,0x000078ab98d04000] with protection modes 0 +Event: 0.252 Protecting memory [0x000078ab98100000,0x000078ab98104000] with protection modes 0 +Event: 0.252 Protecting memory [0x000078abc7700000,0x000078abc7704000] with protection modes 0 +Event: 0.697 Protecting memory [0x000078ab98d00000,0x000078ab98d04000] with protection modes 0 +Event: 0.705 Protecting memory [0x000078ab40d00000,0x000078ab40d04000] with protection modes 0 +Event: 0.742 Protecting memory [0x000078ab40300000,0x000078ab40304000] with protection modes 0 + +Nmethod flushes (0 events): +No events + +Events (18 events): +Event: 0.010 Thread 0x000078abc002d0f0 Thread added: 0x000078abc002d0f0 +Event: 0.014 Thread 0x000078abc002d0f0 Thread added: 0x000078abc0137930 +Event: 0.015 Thread 0x000078abc002d0f0 Thread added: 0x000078abc0138ea0 +Event: 0.015 Thread 0x000078abc002d0f0 Thread added: 0x000078abc013a6b0 +Event: 0.015 Thread 0x000078abc002d0f0 Thread added: 0x000078abc013bcf0 +Event: 0.015 Thread 0x000078abc002d0f0 Thread added: 0x000078abc013d290 +Event: 0.015 Thread 0x000078abc002d0f0 Thread added: 0x000078abc013edb0 +Event: 0.015 Thread 0x000078abc002d0f0 Thread added: 0x000078abc01404c0 +Event: 0.021 Thread 0x000078abc002d0f0 Thread added: 0x000078abc014d1b0 +Event: 0.022 Thread 0x000078abc002d0f0 Thread added: 0x000078abc014fc90 +Event: 0.163 Thread 0x000078abc01404c0 Thread added: 0x000078ab0815bc30 +Event: 0.252 Thread 0x000078abc002d0f0 Thread added: 0x000078abc05a8d30 +Event: 0.252 Thread 0x000078abc002d0f0 Thread exited: 0x000078abc002d0f0 +Event: 0.252 Thread 0x000078abc002d0f0 Thread added: 0x000078abc002d0f0 +Event: 0.672 Thread 0x000078ab0815bc30 Thread exited: 0x000078ab0815bc30 +Event: 0.697 Thread 0x000078abc05a8d30 Thread added: 0x000078aaf05acb60 +Event: 0.705 Thread 0x000078abc01404c0 Thread added: 0x000078ab084b7a10 +Event: 0.741 Thread 0x000078abc05a8d30 Thread added: 0x000078aaf0763530 + + +Dynamic libraries: +60c000000-62b400000 rw-p 00000000 00:00 0 +62b400000-7ffc00000 ---p 00000000 00:00 0 +7ffc00000-7ffd1f000 rw-p 00dc0000 103:03 10498862 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/classes.jsa +7ffd1f000-800000000 rw-p 00000000 00:00 0 +649e5204b000-649e5204c000 r-xp 00000000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java +649e5204d000-649e5204e000 r--p 00001000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java +649e5204e000-649e5204f000 rw-p 00002000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java +649e57a11000-649e57a5a000 rw-p 00000000 00:00 0 [heap] +78aab8000000-78aab8021000 rw-p 00000000 00:00 0 +78aab8021000-78aabc000000 ---p 00000000 00:00 0 +78aabc000000-78aabc021000 rw-p 00000000 00:00 0 +78aabc021000-78aac0000000 ---p 00000000 00:00 0 +78aac4000000-78aac4034000 rw-p 00000000 00:00 0 +78aac4034000-78aac8000000 ---p 00000000 00:00 0 +78aac8000000-78aac8021000 rw-p 00000000 00:00 0 +78aac8021000-78aacc000000 ---p 00000000 00:00 0 +78aad0000000-78aad00c8000 rw-p 00000000 00:00 0 +78aad00c8000-78aad4000000 ---p 00000000 00:00 0 +78aad4000000-78aad4021000 rw-p 00000000 00:00 0 +78aad4021000-78aad8000000 ---p 00000000 00:00 0 +78aadc000000-78aadc021000 rw-p 00000000 00:00 0 +78aadc021000-78aae0000000 ---p 00000000 00:00 0 +78aae1000000-78aae7712000 r-xp 00000000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 +78aae7712000-78aae7f30000 r--p 06711000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 +78aae7f30000-78aae7f76000 rw-p 06f2f000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 +78aae7f76000-78aae7ff2000 rw-p 00000000 00:00 0 +78aae8000000-78aae8021000 rw-p 00000000 00:00 0 +78aae8021000-78aaec000000 ---p 00000000 00:00 0 +78aaf0000000-78aaf0f2e000 rw-p 00000000 00:00 0 +78aaf0f2e000-78aaf4000000 ---p 00000000 00:00 0 +78aaf4000000-78aaf41d4000 rw-p 00000000 00:00 0 +78aaf41d4000-78aaf8000000 ---p 00000000 00:00 0 +78aafc000000-78aafc021000 rw-p 00000000 00:00 0 +78aafc021000-78ab00000000 ---p 00000000 00:00 0 +78ab00000000-78ab00021000 rw-p 00000000 00:00 0 +78ab00021000-78ab04000000 ---p 00000000 00:00 0 +78ab08000000-78ab084d8000 rw-p 00000000 00:00 0 +78ab084d8000-78ab0c000000 ---p 00000000 00:00 0 +78ab0c000000-78ab0c327000 rw-p 00000000 00:00 0 +78ab0c327000-78ab10000000 ---p 00000000 00:00 0 +78ab12000000-78ab12cf5000 r--p 00000000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +78ab12cf5000-78ab136d8000 r-xp 00cf5000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +78ab136d8000-78ab13ae9000 r--p 016d8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +78ab13ae9000-78ab13f6b000 r--p 01ae8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +78ab13f6b000-78ab13f73000 rw-p 01f6a000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +78ab13f73000-78ab13f7e000 rw-p 00000000 00:00 0 +78ab14000000-78ab14021000 rw-p 00000000 00:00 0 +78ab14021000-78ab18000000 ---p 00000000 00:00 0 +78ab18000000-78ab18021000 rw-p 00000000 00:00 0 +78ab18021000-78ab1c000000 ---p 00000000 00:00 0 +78ab1c400000-78ab1c401000 ---p 00000000 00:00 0 +78ab1c401000-78ab1cc01000 rw-p 00000000 00:00 0 +78ab1ce00000-78ab1ce2f000 r--p 00000000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +78ab1ce2f000-78ab1d502000 r-xp 0002f000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +78ab1d502000-78ab1d624000 r--p 00702000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +78ab1d624000-78ab1d635000 r--p 00823000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +78ab1d635000-78ab1d6b3000 rw-p 00834000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +78ab1d6b3000-78ab1d6c7000 rw-p 00000000 00:00 0 +78ab1d800000-78ab1d801000 ---p 00000000 00:00 0 +78ab1d801000-78ab1e001000 rw-p 00000000 00:00 0 +78ab1e200000-78ab1e201000 ---p 00000000 00:00 0 +78ab1e201000-78ab1ea01000 rw-p 00000000 00:00 0 +78ab1ec00000-78ab1ec01000 ---p 00000000 00:00 0 +78ab1ec01000-78ab1f401000 rw-p 00000000 00:00 0 +78ab1f600000-78ab1f601000 ---p 00000000 00:00 0 +78ab1f601000-78ab1fe01000 rw-p 00000000 00:00 0 +78ab20000000-78ab20021000 rw-p 00000000 00:00 0 +78ab20021000-78ab24000000 ---p 00000000 00:00 0 +78ab24000000-78ab24021000 rw-p 00000000 00:00 0 +78ab24021000-78ab28000000 ---p 00000000 00:00 0 +78ab28400000-78ab28422000 r-xp 00000000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +78ab28422000-78ab28621000 ---p 00022000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +78ab28621000-78ab28629000 r--p 00021000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +78ab28629000-78ab2862a000 rw-p 00029000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +78ab2862a000-78ab2862b000 rw-p 00000000 00:00 0 +78ab28a00000-78ab28a01000 ---p 00000000 00:00 0 +78ab28a01000-78ab29201000 rw-p 00000000 00:00 0 +78ab29400000-78ab29401000 ---p 00000000 00:00 0 +78ab29401000-78ab29c01000 rw-p 00000000 00:00 0 +78ab29e00000-78ab29e16000 r--p 00000000 103:03 4325447 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +78ab29e16000-78ab29f06000 r-xp 00016000 103:03 4325447 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +78ab29f06000-78ab29f79000 r--p 00106000 103:03 4325447 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +78ab29f79000-78ab29f80000 r--p 00178000 103:03 4325447 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +78ab29f80000-78ab29f87000 rw-p 0017f000 103:03 4325447 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +78ab29f87000-78ab2a002000 rw-p 00000000 00:00 0 +78ab2a200000-78ab2a201000 r--p 00000000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +78ab2a201000-78ab2a202000 r-xp 00001000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +78ab2a202000-78ab2be1c000 r--p 00002000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +78ab2be1c000-78ab2be1d000 r--p 01c1b000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +78ab2be1d000-78ab2be1e000 rw-p 01c1c000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +78ab2c000000-78ab2c021000 rw-p 00000000 00:00 0 +78ab2c021000-78ab30000000 ---p 00000000 00:00 0 +78ab30000000-78ab30021000 rw-p 00000000 00:00 0 +78ab30021000-78ab34000000 ---p 00000000 00:00 0 +78ab34400000-78ab3448d000 r--p 00000000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +78ab3448d000-78ab34bf5000 r-xp 0008d000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +78ab34bf5000-78ab35482000 r--p 007f5000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +78ab35482000-78ab354c4000 r--p 01081000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +78ab354c4000-78ab354c7000 rw-p 010c3000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +78ab354c7000-78ab354cd000 rw-p 00000000 00:00 0 +78ab35600000-78ab357c4000 r--p 00000000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +78ab357c4000-78ab374c4000 r-xp 001c4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +78ab374c4000-78ab37b39000 r--p 01ec4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +78ab37b39000-78ab37b3a000 ---p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +78ab37b3a000-78ab37d1a000 r--p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +78ab37d1a000-78ab37d93000 rw-p 02719000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +78ab37d93000-78ab37e08000 rw-p 00000000 00:00 0 +78ab38000000-78ab383b0000 rw-p 00000000 00:00 0 +78ab383b0000-78ab38400000 ---p 00000000 00:00 0 +78ab38400000-78ab38810000 rw-p 00000000 00:00 0 +78ab38810000-78ab3c000000 ---p 00000000 00:00 0 +78ab3c000000-78ab3c021000 rw-p 00000000 00:00 0 +78ab3c021000-78ab40000000 ---p 00000000 00:00 0 +78ab401bf000-78ab40300000 rw-s 00000000 103:03 13372247 /home/codex/.cache/mesa_shader_cache/index +78ab40300000-78ab40304000 ---p 00000000 00:00 0 +78ab40304000-78ab40400000 rw-p 00000000 00:00 0 +78ab40400000-78ab4045b000 r--p 00000000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +78ab4045b000-78ab407d9000 r-xp 0005b000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +78ab407d9000-78ab40bd5000 r--p 003d9000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +78ab40bd5000-78ab40c10000 r--p 007d4000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +78ab40c10000-78ab40c15000 rw-p 0080f000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +78ab40c15000-78ab40c40000 rw-p 00000000 00:00 0 +78ab40d00000-78ab40d04000 ---p 00000000 00:00 0 +78ab40d04000-78ab40e00000 rw-p 00000000 00:00 0 +78ab40e00000-78ab40e6e000 r--p 00000000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +78ab40e6e000-78ab413d5000 r-xp 0006e000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +78ab413d5000-78ab41ae8000 r--p 005d5000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +78ab41ae8000-78ab41ae9000 ---p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +78ab41ae9000-78ab41b26000 r--p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +78ab41b26000-78ab41b29000 rw-p 00d25000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +78ab41b29000-78ab41b2b000 rw-p 00000000 00:00 0 +78ab41bed000-78ab41bef000 r--p 00000000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +78ab41bef000-78ab41bf8000 r-xp 00002000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +78ab41bf8000-78ab41bfb000 r--p 0000b000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +78ab41bfb000-78ab41bfc000 ---p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +78ab41bfc000-78ab41bfd000 r--p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +78ab41bfd000-78ab41bfe000 rw-p 0000f000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +78ab41bfe000-78ab41c00000 rw-p 00000000 00:00 0 +78ab41c00000-78ab41c9a000 r--p 00000000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +78ab41c9a000-78ab41dab000 r-xp 0009a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +78ab41dab000-78ab41e1a000 r--p 001ab000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +78ab41e1a000-78ab41e1b000 ---p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +78ab41e1b000-78ab41e26000 r--p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +78ab41e26000-78ab41e29000 rw-p 00225000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +78ab41e29000-78ab41e2c000 rw-p 00000000 00:00 0 +78ab41e31000-78ab41e42000 r--p 00000000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +78ab41e42000-78ab41e84000 r-xp 00011000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +78ab41e84000-78ab41e9c000 r--p 00053000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +78ab41e9c000-78ab41eaa000 r--p 0006a000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +78ab41eaa000-78ab41eac000 rw-p 00078000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +78ab41eac000-78ab41eb0000 r--p 00000000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +78ab41eb0000-78ab41ecc000 r-xp 00004000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +78ab41ecc000-78ab41ed2000 r--p 00020000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +78ab41ed2000-78ab41ed3000 ---p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +78ab41ed3000-78ab41ed5000 r--p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +78ab41ed5000-78ab41ed6000 rw-p 00028000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +78ab41ed6000-78ab41ee2000 r--p 00000000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +78ab41ee2000-78ab41f02000 r-xp 0000c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +78ab41f02000-78ab41f0e000 r--p 0002c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +78ab41f0e000-78ab41f18000 r--p 00037000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +78ab41f18000-78ab41f19000 rw-p 00041000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +78ab41f19000-78ab41f1b000 r--p 00000000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +78ab41f1b000-78ab41f86000 r-xp 00002000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +78ab41f86000-78ab41fae000 r--p 0006d000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +78ab41fae000-78ab41faf000 r--p 00094000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +78ab41faf000-78ab41fb0000 rw-p 00095000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +78ab41fb0000-78ab41fc3000 r--p 00000000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +78ab41fc3000-78ab41fe2000 r-xp 00013000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +78ab41fe2000-78ab41fef000 r--p 00032000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +78ab41fef000-78ab41fff000 r--p 0003e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +78ab41fff000-78ab42000000 rw-p 0004e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +78ab42000000-78ab42d91000 rw-p 00001000 103:03 10498862 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/classes.jsa +78ab42d91000-78ab43000000 ---p 00000000 00:00 0 +78ab43000000-78ab43030000 rw-p 00000000 00:00 0 +78ab43030000-78ab430b0000 rw-p 00000000 00:00 0 +78ab430b0000-78ab430c0000 ---p 00000000 00:00 0 +78ab430c0000-78ab430e0000 rw-p 00000000 00:00 0 +78ab430e0000-78ab83000000 ---p 00000000 00:00 0 +78ab83002000-78ab8300c000 r--p 00000000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +78ab8300c000-78ab83016000 r-xp 0000a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +78ab83016000-78ab8301d000 r--p 00014000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +78ab8301d000-78ab83026000 r--p 0001a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +78ab83026000-78ab83027000 rw-p 00023000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +78ab83027000-78ab83036000 r--p 00000000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +78ab83036000-78ab8311c000 r-xp 0000f000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +78ab8311c000-78ab8315a000 r--p 000f5000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +78ab8315a000-78ab8315b000 ---p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +78ab8315b000-78ab8315e000 r--p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +78ab8315e000-78ab83164000 rw-p 00136000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +78ab83164000-78ab83165000 rw-p 00000000 00:00 0 +78ab83165000-78ab83178000 r--p 00000000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +78ab83178000-78ab831f7000 r-xp 00013000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +78ab831f7000-78ab83222000 r--p 00092000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +78ab83222000-78ab83223000 ---p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +78ab83223000-78ab8322a000 r--p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +78ab8322a000-78ab8322b000 rw-p 000c4000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +78ab8322b000-78ab8322c000 rw-p 00000000 00:00 0 +78ab8322c000-78ab8325f000 r--p 00000000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +78ab8325f000-78ab832c2000 r-xp 00033000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +78ab832c2000-78ab832e1000 r--p 00096000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +78ab832e1000-78ab8330c000 r--p 000b4000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +78ab8330c000-78ab8330d000 rw-p 000df000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +78ab8330d000-78ab8330e000 rw-p 00000000 00:00 0 +78ab8330e000-78ab833cf000 r-xp 00000000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +78ab833cf000-78ab833d0000 r--p 000c0000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +78ab833d0000-78ab833db000 rw-p 000c1000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +78ab833db000-78ab83400000 rw-p 00000000 00:00 0 +78ab83400000-78ab83493000 r--p 00000000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +78ab83493000-78ab838e6000 r-xp 00093000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +78ab838e6000-78ab83dfc000 r--p 004e6000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +78ab83dfc000-78ab83e34000 r--p 009fb000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +78ab83e34000-78ab83e44000 rw-p 00a33000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +78ab83e44000-78ab83e49000 rw-p 00000000 00:00 0 +78ab83e52000-78ab83e56000 r--p 00000000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +78ab83e56000-78ab83e66000 r-xp 00004000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +78ab83e66000-78ab83e69000 r--p 00014000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +78ab83e69000-78ab83e6a000 r--p 00016000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +78ab83e6a000-78ab83e6b000 rw-p 00017000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +78ab83e6b000-78ab83e76000 r--p 00000000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +78ab83e76000-78ab83ea4000 r-xp 0000b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +78ab83ea4000-78ab83eb6000 r--p 00039000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +78ab83eb6000-78ab83eb7000 ---p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +78ab83eb7000-78ab83eb8000 r--p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +78ab83eb8000-78ab83eb9000 rw-p 0004c000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +78ab83eb9000-78ab83ee8000 r--p 00000000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +78ab83ee8000-78ab83fa4000 r-xp 0002f000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +78ab83fa4000-78ab83fef000 r--p 000eb000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +78ab83fef000-78ab83ffd000 r--p 00135000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +78ab83ffd000-78ab83fff000 rw-p 00143000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +78ab83fff000-78ab84000000 rw-p 00000000 00:00 0 +78ab84000000-78ab84021000 rw-p 00000000 00:00 0 +78ab84021000-78ab88000000 ---p 00000000 00:00 0 +78ab88000000-78ab88021000 rw-p 00000000 00:00 0 +78ab88021000-78ab8c000000 ---p 00000000 00:00 0 +78ab8c023000-78ab8c089000 r--p 00000000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +78ab8c089000-78ab8c17c000 r-xp 00066000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +78ab8c17c000-78ab8c208000 r--p 00159000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +78ab8c208000-78ab8c21b000 r--p 001e4000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +78ab8c21b000-78ab8c21c000 rw-p 001f7000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +78ab8c21c000-78ab8c21e000 rw-p 00000000 00:00 0 +78ab8c21e000-78ab8c24d000 r--p 00000000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +78ab8c24d000-78ab8c3a0000 r-xp 0002f000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +78ab8c3a0000-78ab8c3f4000 r--p 00182000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +78ab8c3f4000-78ab8c3f5000 ---p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +78ab8c3f5000-78ab8c3fe000 r--p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +78ab8c3fe000-78ab8c3ff000 rw-p 001df000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +78ab8c3ff000-78ab8cd22000 rw-p 00000000 00:00 0 +78ab8cd2b000-78ab8cd34000 rw-s 00000000 00:01 903423 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) +78ab8cd34000-78ab8cd3a000 r--p 00000000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +78ab8cd3a000-78ab8cd54000 r-xp 00006000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +78ab8cd54000-78ab8cd5b000 r--p 00020000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +78ab8cd5b000-78ab8cd5c000 ---p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +78ab8cd5c000-78ab8cd5d000 r--p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +78ab8cd5d000-78ab8cd5e000 rw-p 00028000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +78ab8cd5e000-78ab8cd60000 rw-p 00000000 00:00 0 +78ab8cd60000-78ab8cd64000 r--p 00000000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +78ab8cd64000-78ab8cd7a000 r-xp 00004000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +78ab8cd7a000-78ab8cd84000 r--p 0001a000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +78ab8cd84000-78ab8cd85000 r--p 00023000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +78ab8cd85000-78ab8cd86000 rw-p 00024000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +78ab8cd86000-78ab8cdf6000 r-xp 00000000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +78ab8cdf6000-78ab8cdf7000 ---p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +78ab8cdf7000-78ab8cdfc000 r--p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +78ab8cdfc000-78ab8cdfe000 rw-p 00075000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +78ab8cdfe000-78ab8ce00000 rw-p 00000000 00:00 0 +78ab8ce00000-78ab8ce01000 ---p 00000000 00:00 0 +78ab8ce01000-78ab8d601000 rw-p 00000000 00:00 0 +78ab8d606000-78ab8d60f000 rw-s 00000000 00:01 903422 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) +78ab8d60f000-78ab8d611000 r--p 00000000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +78ab8d611000-78ab8d62a000 r-xp 00002000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +78ab8d62a000-78ab8d62c000 r--p 0001b000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +78ab8d62c000-78ab8d62d000 ---p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +78ab8d62d000-78ab8d62e000 r--p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +78ab8d62e000-78ab8d62f000 rw-p 0001e000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +78ab8d633000-78ab8d635000 r--p 00000000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +78ab8d635000-78ab8d63d000 r-xp 00002000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +78ab8d63d000-78ab8d63f000 r--p 0000a000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +78ab8d63f000-78ab8d640000 r--p 0000b000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +78ab8d640000-78ab8d641000 rw-p 0000c000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +78ab8d641000-78ab8d643000 r--p 00000000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +78ab8d643000-78ab8d64b000 r-xp 00002000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +78ab8d64b000-78ab8d64c000 r--p 0000a000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +78ab8d64c000-78ab8d64d000 ---p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +78ab8d64d000-78ab8d64e000 r--p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +78ab8d64e000-78ab8d64f000 rw-p 0000c000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +78ab8d64f000-78ab8d653000 r--p 00000000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +78ab8d653000-78ab8d668000 r-xp 00004000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +78ab8d668000-78ab8d66e000 r--p 00019000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +78ab8d66e000-78ab8d66f000 ---p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +78ab8d66f000-78ab8d671000 r--p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +78ab8d671000-78ab8d672000 rw-p 00021000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +78ab8d672000-78ab8d675000 r--p 00000000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +78ab8d675000-78ab8d696000 r-xp 00003000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +78ab8d696000-78ab8d6a2000 r--p 00024000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +78ab8d6a2000-78ab8d6a3000 ---p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +78ab8d6a3000-78ab8d6a4000 r--p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +78ab8d6a4000-78ab8d6a5000 rw-p 00031000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +78ab8d6a5000-78ab8d6b3000 r--p 00000000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +78ab8d6b3000-78ab8d6c4000 r-xp 0000e000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +78ab8d6c4000-78ab8d6d2000 r--p 0001f000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +78ab8d6d2000-78ab8d6d6000 r--p 0002c000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +78ab8d6d6000-78ab8d6d7000 rw-p 00030000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +78ab8d6d7000-78ab8d6df000 r--p 00000000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +78ab8d6df000-78ab8d6fd000 r-xp 00008000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +78ab8d6fd000-78ab8d70a000 r--p 00026000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +78ab8d70a000-78ab8d70c000 r--p 00032000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +78ab8d70c000-78ab8d70d000 rw-p 00034000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +78ab8d70d000-78ab8d711000 rw-p 00000000 00:00 0 +78ab8d711000-78ab8d714000 r--p 00000000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +78ab8d714000-78ab8d72b000 r-xp 00003000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +78ab8d72b000-78ab8d72f000 r--p 0001a000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +78ab8d72f000-78ab8d730000 r--p 0001d000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +78ab8d730000-78ab8d731000 rw-p 0001e000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +78ab8d731000-78ab8d73b000 r--p 00000000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +78ab8d73b000-78ab8d7ed000 r-xp 0000a000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +78ab8d7ed000-78ab8d7fe000 r--p 000bc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +78ab8d7fe000-78ab8d7ff000 r--p 000cc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +78ab8d7ff000-78ab8d800000 rw-p 000cd000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +78ab8d800000-78ab8da41000 r-xp 00000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +78ab8da41000-78ab8da62000 rwxp 00241000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +78ab8da62000-78ab8dc00000 r-xp 00262000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +78ab8dc00000-78ab8e800000 r-xp 00400000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +78ab8e800000-78ab8f6ab000 r-xp 01000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +78ab8f6ab000-78ab8f810000 r--p 01eaa000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +78ab8f810000-78ab8f87e000 rw-p 0200f000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +78ab8f87e000-78ab8f89c000 rw-p 00000000 00:00 0 +78ab8f89d000-78ab8f89f000 r--p 00000000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +78ab8f89f000-78ab8f8a3000 r-xp 00002000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +78ab8f8a3000-78ab8f8a5000 r--p 00006000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +78ab8f8a5000-78ab8f8a6000 r--p 00007000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +78ab8f8a6000-78ab8f8a7000 rw-p 00008000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +78ab8f8a7000-78ab8f8a9000 r--p 00000000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +78ab8f8a9000-78ab8f8b0000 r-xp 00002000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +78ab8f8b0000-78ab8f8b1000 r--p 00009000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +78ab8f8b1000-78ab8f8b2000 ---p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +78ab8f8b2000-78ab8f8b3000 r--p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +78ab8f8b3000-78ab8f8b4000 rw-p 0000b000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +78ab8f8b4000-78ab8f8b8000 r--p 00000000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +78ab8f8b8000-78ab8f8d7000 r-xp 00004000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +78ab8f8d7000-78ab8f8e1000 r--p 00023000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +78ab8f8e1000-78ab8f8e2000 ---p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +78ab8f8e2000-78ab8f8e4000 r--p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +78ab8f8e4000-78ab8f8e5000 rw-p 0002f000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +78ab8f8e5000-78ab8f8ea000 r--p 00000000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +78ab8f8ea000-78ab8f8f5000 r-xp 00005000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +78ab8f8f5000-78ab8f8f9000 r--p 00010000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +78ab8f8f9000-78ab8f8fa000 ---p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +78ab8f8fa000-78ab8f8fb000 r--p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +78ab8f8fb000-78ab8f8fc000 rw-p 00015000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +78ab8f8fc000-78ab8f90c000 r--p 00000000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +78ab8f90c000-78ab8f96a000 r-xp 00010000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +78ab8f96a000-78ab8f986000 r--p 0006e000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +78ab8f986000-78ab8f987000 ---p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +78ab8f987000-78ab8f98d000 r--p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +78ab8f98d000-78ab8f98e000 rw-p 00090000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +78ab8f98e000-78ab8f996000 rw-p 00000000 00:00 0 +78ab8f996000-78ab8f9e7000 r--p 00000000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +78ab8f9e7000-78ab8fa43000 r-xp 00051000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +78ab8fa43000-78ab8fa78000 rwxp 000ad000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +78ab8fa78000-78ab8fa79000 r-xp 000e2000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +78ab8fa79000-78ab8fa99000 r--p 000e3000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +78ab8fa99000-78ab8fab9000 r--p 00102000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +78ab8fab9000-78ab8fabe000 rw-p 00122000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +78ab8fabe000-78ab8fac0000 rw-p 00000000 00:00 0 +78ab8fac0000-78ab8fad9000 r--p 00000000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +78ab8fad9000-78ab8fb65000 r-xp 00019000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +78ab8fb65000-78ab8fbfa000 r--p 000a5000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +78ab8fbfa000-78ab8fbfb000 ---p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +78ab8fbfb000-78ab8fbfc000 r--p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +78ab8fbfc000-78ab8fc00000 rw-p 0013b000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +78ab8fc00000-78ab90021000 rw-p 00000000 00:00 0 +78ab90021000-78ab94000000 ---p 00000000 00:00 0 +78ab94000000-78ab94021000 rw-p 00000000 00:00 0 +78ab94021000-78ab98000000 ---p 00000000 00:00 0 +78ab98002000-78ab98004000 r--p 00000000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +78ab98004000-78ab98007000 r-xp 00002000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +78ab98007000-78ab98008000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +78ab98008000-78ab98009000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +78ab98009000-78ab9800a000 rw-p 00006000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +78ab9800a000-78ab9800b000 r--p 00000000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +78ab9800b000-78ab9800c000 r-xp 00001000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +78ab9800c000-78ab9800d000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +78ab9800d000-78ab9800e000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +78ab9800e000-78ab9800f000 rw-p 00003000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +78ab9800f000-78ab98010000 r--p 00000000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +78ab98010000-78ab98011000 r-xp 00001000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +78ab98011000-78ab98012000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +78ab98012000-78ab98013000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +78ab98013000-78ab98014000 rw-p 00003000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +78ab98014000-78ab98017000 r--p 00000000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +78ab98017000-78ab9801a000 r-xp 00003000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +78ab9801a000-78ab9801b000 r--p 00006000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +78ab9801b000-78ab9801c000 ---p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +78ab9801c000-78ab9801d000 r--p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +78ab9801d000-78ab9801e000 rw-p 00008000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +78ab9801e000-78ab98021000 r--p 00000000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +78ab98021000-78ab98024000 r-xp 00003000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +78ab98024000-78ab98025000 r--p 00006000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +78ab98025000-78ab98026000 ---p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +78ab98026000-78ab98027000 r--p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +78ab98027000-78ab98028000 rw-p 00008000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +78ab98028000-78ab98029000 r--p 00000000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +78ab98029000-78ab9802a000 r-xp 00001000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +78ab9802a000-78ab9802b000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +78ab9802b000-78ab9802c000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +78ab9802c000-78ab9802d000 rw-p 00003000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +78ab9802d000-78ab98032000 r--p 00000000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +78ab98032000-78ab98038000 r-xp 00005000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +78ab98038000-78ab9803b000 r--p 0000b000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +78ab9803b000-78ab9803d000 r--p 0000d000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +78ab9803d000-78ab9803e000 rw-p 0000f000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +78ab9803e000-78ab98041000 r--p 00000000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +78ab98041000-78ab98055000 r-xp 00003000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +78ab98055000-78ab98059000 r--p 00017000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +78ab98059000-78ab9805a000 ---p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +78ab9805a000-78ab9805b000 r--p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +78ab9805b000-78ab9805c000 rw-p 0001c000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +78ab9805c000-78ab9805f000 r--p 00000000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +78ab9805f000-78ab98065000 r-xp 00003000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +78ab98065000-78ab98067000 r--p 00009000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +78ab98067000-78ab98068000 r--p 0000a000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +78ab98068000-78ab98069000 rw-p 0000b000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +78ab98069000-78ab98079000 r--p 00000000 103:03 4325445 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +78ab98079000-78ab9809a000 r-xp 00010000 103:03 4325445 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +78ab9809a000-78ab980d6000 r--p 00031000 103:03 4325445 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +78ab980d6000-78ab980da000 r--p 0006c000 103:03 4325445 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +78ab980da000-78ab980dd000 rw-p 00070000 103:03 4325445 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +78ab980dd000-78ab98100000 rw-p 00000000 00:00 0 +78ab98100000-78ab98104000 ---p 00000000 00:00 0 +78ab98104000-78ab98200000 rw-p 00000000 00:00 0 +78ab98200000-78ab98a00000 rw-p 00000000 00:00 0 +78ab98a00000-78ab98a08000 r--p 00000000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +78ab98a08000-78ab98a60000 r-xp 00008000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +78ab98a60000-78ab98a71000 r--p 00060000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +78ab98a71000-78ab98a72000 ---p 00071000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +78ab98a72000-78ab98a78000 r--p 00071000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +78ab98a78000-78ab98a79000 rw-p 00077000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +78ab98a79000-78ab98c83000 rw-p 00000000 00:00 0 +78ab98c84000-78ab98c8a000 r--p 00000000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +78ab98c8a000-78ab98cd4000 r-xp 00006000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +78ab98cd4000-78ab98cfe000 r--p 00050000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +78ab98cfe000-78ab98cff000 r--p 00079000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +78ab98cff000-78ab98d00000 rw-p 0007a000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +78ab98d00000-78ab98d04000 ---p 00000000 00:00 0 +78ab98d04000-78ab98e00000 rw-p 00000000 00:00 0 +78ab98e00000-78ab98e04000 ---p 00000000 00:00 0 +78ab98e04000-78ab98f00000 rw-p 00000000 00:00 0 +78ab98f00000-78ab98f04000 ---p 00000000 00:00 0 +78ab98f04000-78ab99000000 rw-p 00000000 00:00 0 +78ab99000000-78ab99f06000 r--p 00000000 103:03 10618858 /usr/lib/locale/locale-archive +78ab99f08000-78ab99f0a000 r--p 00000000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +78ab99f0a000-78ab99f0c000 r-xp 00002000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +78ab99f0c000-78ab99f0d000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +78ab99f0d000-78ab99f0e000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +78ab99f0e000-78ab99f0f000 rw-p 00005000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +78ab99f0f000-78ab99f16000 r--p 00000000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +78ab99f16000-78ab99f1c000 r-xp 00007000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +78ab99f1c000-78ab99f1f000 r--p 0000d000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +78ab99f1f000-78ab99f20000 ---p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +78ab99f20000-78ab99f21000 r--p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +78ab99f21000-78ab99f22000 rw-p 00011000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +78ab99f22000-78ab99f2d000 r--p 00000000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +78ab99f2d000-78ab99f36000 r-xp 0000b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +78ab99f36000-78ab99f3b000 r--p 00014000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +78ab99f3b000-78ab99f3c000 ---p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +78ab99f3c000-78ab99f3e000 r--p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +78ab99f3e000-78ab99f3f000 rw-p 0001b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +78ab99f3f000-78ab99f40000 r--p 00000000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +78ab99f40000-78ab99f42000 r-xp 00001000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +78ab99f42000-78ab99f43000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +78ab99f43000-78ab99f44000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +78ab99f44000-78ab99f45000 rw-p 00004000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +78ab99f45000-78ab99f46000 r--p 00000000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +78ab99f46000-78ab99f47000 r-xp 00001000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +78ab99f47000-78ab99f48000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +78ab99f48000-78ab99f49000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +78ab99f49000-78ab99f4a000 rw-p 00003000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +78ab99f4a000-78ab99f4c000 r--p 00000000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +78ab99f4c000-78ab99f52000 r-xp 00002000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +78ab99f52000-78ab99f54000 r--p 00008000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +78ab99f54000-78ab99f55000 r--p 00009000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +78ab99f55000-78ab99f56000 rw-p 0000a000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +78ab99f56000-78ab99f58000 r--p 00000000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +78ab99f58000-78ab99f5f000 r-xp 00002000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +78ab99f5f000-78ab99f61000 r--p 00009000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +78ab99f61000-78ab99f62000 r--p 0000a000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +78ab99f62000-78ab99f63000 rw-p 0000b000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +78ab99f63000-78ab99f65000 r--p 00000000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +78ab99f65000-78ab99f6c000 r-xp 00002000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +78ab99f6c000-78ab99f6e000 r--p 00009000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +78ab99f6e000-78ab99f6f000 r--p 0000a000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +78ab99f6f000-78ab99f70000 rw-p 0000b000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +78ab99f70000-78ab99f73000 r--p 00000000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +78ab99f73000-78ab99f7f000 r-xp 00003000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +78ab99f7f000-78ab99f82000 r--p 0000f000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +78ab99f82000-78ab99f83000 r--p 00011000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +78ab99f83000-78ab99f84000 rw-p 00012000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +78ab99f84000-78ab99fb0000 r--p 00000000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +78ab99fb0000-78ab99fe4000 r-xp 0002c000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +78ab99fe4000-78ab99ffe000 r--p 00060000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +78ab99ffe000-78ab99fff000 r--p 00079000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +78ab99fff000-78ab9a000000 rw-p 0007a000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +78ab9a000000-78ab9c000000 rw-p 00000000 00:00 0 +78ab9c000000-78ab9c021000 rw-p 00000000 00:00 0 +78ab9c021000-78aba0000000 ---p 00000000 00:00 0 +78aba0003000-78aba000e000 r--p 00000000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +78aba000e000-78aba0022000 r-xp 0000b000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +78aba0022000-78aba002b000 r--p 0001f000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +78aba002b000-78aba002c000 r--p 00027000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +78aba002c000-78aba002d000 rw-p 00028000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +78aba002d000-78aba00fb000 r-xp 00000000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +78aba00fb000-78aba00fc000 r--p 000cd000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +78aba00fc000-78aba00fd000 rw-p 000ce000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +78aba00fd000-78aba0101000 ---p 00000000 00:00 0 +78aba0101000-78aba01fd000 rw-p 00000000 00:00 0 +78aba01fd000-78aba0201000 ---p 00000000 00:00 0 +78aba0201000-78aba02fd000 rw-p 00000000 00:00 0 +78aba02fd000-78aba0301000 ---p 00000000 00:00 0 +78aba0301000-78aba03fd000 rw-p 00000000 00:00 0 +78aba03fd000-78aba0401000 ---p 00000000 00:00 0 +78aba0401000-78aba04fd000 rw-p 00000000 00:00 0 +78aba04fd000-78aba0501000 ---p 00000000 00:00 0 +78aba0501000-78aba05fd000 rw-p 00000000 00:00 0 +78aba05fd000-78aba0601000 ---p 00000000 00:00 0 +78aba0601000-78aba06fd000 rw-p 00000000 00:00 0 +78aba06fd000-78aba06fe000 ---p 00000000 00:00 0 +78aba06fe000-78aba07fe000 rw-p 00000000 00:00 0 +78aba07fe000-78aba07ff000 ---p 00000000 00:00 0 +78aba07ff000-78aba08ff000 rw-p 00000000 00:00 0 +78aba08ff000-78aba0900000 ---p 00000000 00:00 0 +78aba0900000-78aba0a00000 rw-p 00000000 00:00 0 +78aba0a00000-78aba11d0000 rw-p 00000000 00:00 0 +78aba11d0000-78aba86f0000 ---p 00000000 00:00 0 +78aba86f0000-78aba8700000 rw-p 00000000 00:00 0 +78aba8700000-78aba8704000 ---p 00000000 00:00 0 +78aba8704000-78aba8800000 rw-p 00000000 00:00 0 +78aba8800000-78aba8a70000 rwxp 00000000 00:00 0 +78aba8a70000-78abafd37000 ---p 00000000 00:00 0 +78abafd37000-78abaffa7000 rwxp 00000000 00:00 0 +78abaffa7000-78abb02c8000 ---p 00000000 00:00 0 +78abb02c8000-78abb0538000 rwxp 00000000 00:00 0 +78abb0538000-78abb7800000 ---p 00000000 00:00 0 +78abb7800000-78abbffb5000 r--s 00000000 103:03 10498840 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/modules +78abbffb7000-78abbffb9000 r--p 00000000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +78abbffb9000-78abbffbc000 r-xp 00002000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +78abbffbc000-78abbffbd000 r--p 00005000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +78abbffbd000-78abbffbe000 r--p 00006000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +78abbffbe000-78abbffbf000 rw-p 00007000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +78abbffbf000-78abbfffd000 r-xp 00000000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +78abbfffd000-78abbfffe000 ---p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +78abbfffe000-78abbffff000 r--p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +78abbffff000-78abc0000000 rw-p 0003f000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +78abc0000000-78abc05ad000 rw-p 00000000 00:00 0 +78abc05ad000-78abc4000000 ---p 00000000 00:00 0 +78abc4004000-78abc4008000 r--p 00000000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +78abc4008000-78abc4013000 r-xp 00004000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +78abc4013000-78abc4017000 r--p 0000f000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +78abc4017000-78abc4018000 r--p 00012000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +78abc4018000-78abc4019000 rw-p 00013000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +78abc4019000-78abc40f5000 rw-p 00000000 00:00 0 +78abc40f5000-78abc40f6000 ---p 00000000 00:00 0 +78abc40f6000-78abc41f6000 rw-p 00000000 00:00 0 +78abc41f6000-78abc49fe000 rw-p 00000000 00:00 0 +78abc49fe000-78abc49ff000 ---p 00000000 00:00 0 +78abc49ff000-78abc4aff000 rw-p 00000000 00:00 0 +78abc4aff000-78abc4b00000 ---p 00000000 00:00 0 +78abc4b00000-78abc4c00000 rw-p 00000000 00:00 0 +78abc4c00000-78abc4cfa000 rw-p 00000000 00:00 0 +78abc4cfa000-78abc5b9e000 ---p 00000000 00:00 0 +78abc5b9e000-78abc5ba0000 rw-p 00000000 00:00 0 +78abc5ba0000-78abc5ba1000 r--s 00000000 00:06 1017 /dev/nvidiactl +78abc5ba1000-78abc5ba2000 rw-s 00000000 00:01 5128 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) +78abc5ba2000-78abc5ba3000 r--p 00000000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +78abc5ba3000-78abc5ba4000 r-xp 00001000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +78abc5ba4000-78abc5ba5000 r--p 00002000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +78abc5ba5000-78abc5ba6000 r--p 00003000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +78abc5ba6000-78abc5ba7000 rw-p 00004000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +78abc5ba7000-78abc5bab000 r--p 00000000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +78abc5bab000-78abc5bb8000 r-xp 00004000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +78abc5bb8000-78abc5bbb000 r--p 00011000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +78abc5bbb000-78abc5bbc000 ---p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +78abc5bbc000-78abc5bbd000 r--p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +78abc5bbd000-78abc5bbe000 rw-p 00015000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +78abc5bbe000-78abc5cfa000 rw-p 00000000 00:00 0 +78abc5cfa000-78abc6b9e000 ---p 00000000 00:00 0 +78abc6b9e000-78abc6ba0000 rw-p 00000000 00:00 0 +78abc6ba0000-78abc6ba1000 ---p 00000000 00:00 0 +78abc6ba1000-78abc6ca1000 rw-p 00000000 00:00 0 +78abc6ca1000-78abc752f000 rw-p 00000000 00:00 0 +78abc752f000-78abc7615000 ---p 00000000 00:00 0 +78abc7615000-78abc761a000 rw-p 00000000 00:00 0 +78abc761a000-78abc7700000 ---p 00000000 00:00 0 +78abc7700000-78abc7704000 ---p 00000000 00:00 0 +78abc7704000-78abc7800000 rw-p 00000000 00:00 0 +78abc7800000-78abc8b30000 r-xp 00000000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so +78abc8b30000-78abc8c00000 r--p 0132f000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so +78abc8c00000-78abc8c2e000 rw-p 013ff000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so +78abc8c2e000-78abc8ca4000 rw-p 00000000 00:00 0 +78abc8ca4000-78abc8ca5000 rw-s 00000000 00:01 903421 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=4096 (deleted) +78abc8ca5000-78abc8ca6000 rw-s 00000000 00:01 903420 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) +78abc8ca6000-78abc8ca7000 r--p 00000000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +78abc8ca7000-78abc8caa000 r-xp 00001000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +78abc8caa000-78abc8cab000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +78abc8cab000-78abc8cac000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +78abc8cac000-78abc8cad000 rw-p 00005000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +78abc8cad000-78abc8caf000 r--p 00000000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +78abc8caf000-78abc8cb6000 r-xp 00002000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +78abc8cb6000-78abc8cb8000 r--p 00009000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +78abc8cb8000-78abc8cb9000 r--p 0000a000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +78abc8cb9000-78abc8cba000 rw-p 0000b000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +78abc8cba000-78abc8cc1000 r--s 00000000 103:03 11147989 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache +78abc8cc1000-78abc8cc2000 r--p 00000000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +78abc8cc2000-78abc8cc5000 r-xp 00001000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +78abc8cc5000-78abc8cc6000 r--p 00004000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +78abc8cc6000-78abc8cc7000 ---p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +78abc8cc7000-78abc8cc8000 r--p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +78abc8cc8000-78abc8cc9000 rw-p 00006000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +78abc8cc9000-78abc8ccc000 r--p 00000000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +78abc8ccc000-78abc8cd0000 r-xp 00003000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +78abc8cd0000-78abc8cd2000 r--p 00007000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +78abc8cd2000-78abc8cd3000 r--p 00008000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +78abc8cd3000-78abc8cd4000 rw-p 00009000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +78abc8cd4000-78abc8cd5000 r--p 00000000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +78abc8cd5000-78abc8cd7000 r-xp 00001000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +78abc8cd7000-78abc8cd8000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +78abc8cd8000-78abc8cd9000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +78abc8cd9000-78abc8cda000 rw-p 00004000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +78abc8cda000-78abc8d19000 rw-p 00000000 00:00 0 +78abc8d19000-78abc8d27000 r--p 00000000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +78abc8d27000-78abc8da3000 r-xp 0000e000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +78abc8da3000-78abc8dfe000 r--p 0008a000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +78abc8dfe000-78abc8dff000 r--p 000e4000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +78abc8dff000-78abc8e00000 rw-p 000e5000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +78abc8e00000-78abc8e28000 r--p 00000000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +78abc8e28000-78abc8fbd000 r-xp 00028000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +78abc8fbd000-78abc9015000 r--p 001bd000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +78abc9015000-78abc9016000 ---p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +78abc9016000-78abc901a000 r--p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +78abc901a000-78abc901c000 rw-p 00219000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +78abc901c000-78abc9029000 rw-p 00000000 00:00 0 +78abc9029000-78abc902a000 rw-s 00000000 00:01 903419 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) +78abc902a000-78abc902b000 r-xp 00000000 00:00 0 +78abc902b000-78abc902d000 r--p 00000000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +78abc902d000-78abc902f000 r-xp 00002000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +78abc902f000-78abc9031000 r--p 00004000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +78abc9031000-78abc9032000 r--p 00005000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +78abc9032000-78abc9033000 rw-p 00006000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +78abc9033000-78abc9034000 r--p 00000000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +78abc9034000-78abc9036000 r-xp 00001000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +78abc9036000-78abc9037000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +78abc9037000-78abc9038000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +78abc9038000-78abc9039000 rw-p 00004000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +78abc9039000-78abc903a000 rw-p 00000000 00:00 0 +78abc903a000-78abc903b000 r-xp 0005e000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +78abc903b000-78abc903c000 rw-p 00000000 00:00 0 +78abc903c000-78abc9047000 r-xp 00000000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +78abc9047000-78abc9048000 ---p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +78abc9048000-78abc9049000 r--p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +78abc9049000-78abc904a000 rw-p 0000c000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +78abc904a000-78abc905d000 r-xp 00000000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +78abc905d000-78abc905e000 ---p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +78abc905e000-78abc905f000 r--p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +78abc905f000-78abc9060000 rw-p 00014000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +78abc9060000-78abc909f000 rw-p 00000000 00:00 0 +78abc909f000-78abc90bf000 r-xp 00000000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +78abc90bf000-78abc90c0000 r--p 0001f000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +78abc90c0000-78abc90c1000 rw-p 00020000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +78abc90c1000-78abc90c2000 rw-p 00000000 00:00 0 +78abc90c2000-78abc90e0000 r-xp 00000000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +78abc90e0000-78abc90e2000 r--p 0001d000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +78abc90e2000-78abc90e3000 rw-p 0001f000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +78abc90e3000-78abc90e4000 r--p 00000000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +78abc90e4000-78abc90e5000 r-xp 00001000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +78abc90e5000-78abc90e6000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +78abc90e6000-78abc90e7000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +78abc90e7000-78abc90e8000 rw-p 00003000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +78abc90e8000-78abc90ec000 rw-p 00000000 00:00 0 +78abc90ec000-78abc90ed000 r--p 00000000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +78abc90ed000-78abc90ee000 r-xp 00001000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +78abc90ee000-78abc90ef000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +78abc90ef000-78abc90f0000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +78abc90f0000-78abc90f1000 rw-p 00003000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +78abc90f1000-78abc90f2000 r--p 00000000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +78abc90f2000-78abc90f3000 r-xp 00001000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +78abc90f3000-78abc90f4000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +78abc90f4000-78abc90f5000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +78abc90f5000-78abc90f6000 rw-p 00003000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +78abc90f6000-78abc90f8000 r--p 00000000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +78abc90f8000-78abc9109000 r-xp 00002000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +78abc9109000-78abc910f000 r--p 00013000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +78abc910f000-78abc9110000 ---p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +78abc9110000-78abc9111000 r--p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +78abc9111000-78abc9112000 rw-p 0001a000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +78abc9112000-78abc9119000 r-xp 00000000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +78abc9119000-78abc911a000 ---p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +78abc911a000-78abc911b000 r--p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +78abc911b000-78abc911c000 rw-p 00008000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +78abc911c000-78abc9121000 rw-p 00000000 00:00 0 +78abc9121000-78abc9128000 ---p 00000000 00:00 0 +78abc9128000-78abc9130000 rw-s 00000000 103:03 4325438 /tmp/hsperfdata_codex/76953 +78abc9130000-78abc9131000 ---p 00000000 00:00 0 +78abc9131000-78abc9132000 r--p 00000000 00:00 0 +78abc9132000-78abc9141000 r-xp 00000000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so +78abc9141000-78abc9142000 r--p 0000e000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so +78abc9142000-78abc9143000 rw-p 0000f000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so +78abc9143000-78abc9145000 rw-p 00000000 00:00 0 +78abc9145000-78abc9149000 r--p 00000000 00:00 0 [vvar] +78abc9149000-78abc914b000 r-xp 00000000 00:00 0 [vdso] +78abc914b000-78abc914d000 r--p 00000000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +78abc914d000-78abc9177000 r-xp 00002000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +78abc9177000-78abc9182000 r--p 0002c000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +78abc9182000-78abc9183000 ---p 00000000 00:00 0 +78abc9183000-78abc9185000 r--p 00037000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +78abc9185000-78abc9187000 rw-p 00039000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +7fffe1030000-7fffe1053000 rw-p 00000000 00:00 0 [stack] +ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall] +Total number of mappings: 716 + + +VM Arguments: +jvm_args: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant +java_command: jme3test.vulkan.VulkanHelperTest +java_class_path (initial): /home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/java/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/groovy/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/resources/main:/home/codex/java/prj/jmonkeyengine/jme3-lwjgl3/build/libs/jme3-lwjgl3-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-desktop/build/libs/jme3-desktop-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-effects/build/libs/jme3-effects-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jbullet/build/libs/jme3-jbullet-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jogg/build/libs/jme3-jogg-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-networking/build/libs/jme3-networking-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-niftygui/build/libs/jme3-niftygui-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins/build/libs/jme3-plugins-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-terrain/build/libs/jme3-terrain-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-awt-dialogs/build/libs/jme3-awt-dialogs-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-core/build/libs/jme3-core-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json-gson/build/libs/jme3-plugins-json-gson-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json/build/libs/jme3-plugins-json-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-testdata/build/libs/jme3-testdata-null-SNAPSHOT.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-examples/1.4.3/4a41c559851c0c5a77ba3a9d1ccc8e6e92207dc7/nifty-examples-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjglx/lwjgl3-awt/0.2.3/2be63e81d6b73300d8203ce7235b2660c62eb3ea/lwjgl3-awt-0.2.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/7119f7d0eeb1e5502ff0ca71d2b4d47317da015/lwjgl-glfw-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/99ef08056feb9627f90425a4d2a22cd9fae8e39b/lwjgl-glfw-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/cfa8f1e96d572ed56da5945adf5167628f5eecdb/lwjgl-glfw-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/797e0965709ad180d9b00c88a086dbda15002203/lwjgl-glfw-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/671adf04a6bc4f792af13892e37f804be30b7070/lwjgl-glfw-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/b54023af492b4c2c72451f3a7aa0f385e9969474/lwjgl-glfw-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/82c8d748a654241b5961ddd1c098e8b648e38a48/lwjgl-glfw-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/399b42b491c5dfa6595ae6fd79dcba61b93538a7/lwjgl-glfw-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jawt/3.3.6/43299e222bd7db5e99254a8e620330954b73c2a6/lwjgl-jawt-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/245910eb57f2444429c74e6bf96030e5ec0a6739/lwjgl-jemalloc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/f9da76351e14a695be172d6915c8a7b2905307f/lwjgl-jemalloc-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c86043a342a33e5d32fabf962578580633db3c6e/lwjgl-jemalloc-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/26f8b467dc2e0f3000d608de3564b572bb46f927/lwjgl-jemalloc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c484cae39a718010dbc7931fe5e12664600a13c2/lwjgl-jemalloc-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1bc2e16e70df7f418d668c2984ac8066f1f6f5b1/lwjgl-jemalloc-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/9a42df0f2e9747815490311d7db7b4a046d5f40/lwjgl-jemalloc-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1f828c1fc06792475850162725433adf5ad001c0/lwjgl-jemalloc-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ad313317ff399fd2a7f4dd74716a68cf3976c6ad/lwjgl-openal-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/9c2b9b660e085bb0b47a4453dc0e26f24a5475e4/lwjgl-openal-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/82f693541d69aa125750bf8be9c4194435c56f03/lwjgl-openal-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ef356c04ef141d4efbde07793f31784f1f1a1bae/lwjgl-openal-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/7830af894fa110e65bf5075deb9183efbdbc50f5/lwjgl-openal-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/fd2c17603c63e8d543cb57d1db77ebd4574f3b7a/lwjgl-openal-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/c39f6827f0bd97601fc4e389801d5c813f59a5f2/lwjgl-openal-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/13f692aec4ae4b2d3c468aa0008472175f0ea1e0/lwjgl-openal-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opencl/3.3.6/93fdcea16d27b1466450e38dc28c8e1b4819ec25/lwjgl-opencl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ac2532612a4df374e9a9282bcf8ce2573018ebbb/lwjgl-opengl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/18dc639ebc94aa5202c2157f7490d28997b697c5/lwjgl-opengl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b0ab1d0e315d2fcc50d6cab7e8feaf4688d5d9a0/lwjgl-opengl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b8dc6467fe232d552793c53dc56f9fa8a385299c/lwjgl-opengl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ee815fbf454b916f13c10fff62e513eb09042ef0/lwjgl-opengl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/44de180f79e0b45c9e5bee10ca7540dcb5ddd373/lwjgl-opengl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/59f708eb4bf0be0204bbc9c06807911724673db6/lwjgl-opengl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/fee4fb2ee786af6530b6f9188205a76bc4e05268/lwjgl-opengl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-vulkan/3.3.6/a403e0931b03b138854bb2ba9c48dab646cba6d8/lwjgl-vulkan-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/9d0964fe2b75f64d9dab9839c2b059b7e8f71115/lwjgl-shaderc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/ab69a0e011f057ed25857c97fa3c87f20ab8f670/lwjgl-shaderc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/ce7721d30cfaf47feaed10213e0c43eb55c49d68/lwjgl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9a29b6a22fc5184604b8cb434ee5d5ecc4bfcbee/lwjgl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/7a6f04e02429ba2f4bda9be191347bb7d3c71127/lwjgl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/dc7db8fc4f1e6563867f9155b9a42d9c73d8992f/lwjgl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/2c9d698e76c3d0fe307d94cc6f428038492f25df/lwjgl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9eeb8887b5e3aa672efd2e1b0973ffa5891a3151/lwjgl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/f14e7a5289d2355822f4f83b3fd38d158c939acd/lwjgl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/832e2964ce74e02e768814a29c06d60645115b9a/lwjgl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/jbullet/1.0.3/362f53e8aa981037c2523ac24eb4d9b190a49036/jbullet-1.0.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/javax.vecmath/vecmath/1.5.2/fd17bc3e67f909573dfc039d8e2abecf407c4e27/vecmath-1.5.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/j-ogg-vorbis/1.0.6/a69d1cf62eaf75b71af61f9c23265d278a966735/j-ogg-vorbis-1.0.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-default-controls/1.4.3/2ccafe0182a73da87657ca24b639b6e8c1accd50/nifty-default-controls-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty/1.4.3/fa9ac16e00d1b375d10f58d1c1eb576950ae8c9d/nifty-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-style-black/1.4.3/c20a02dbdeb0bd9d2be258955fceb55c13185a8/nifty-style-black-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.9.1/2cc2131b98ebfb04e2b2c7dfb84431f4045096b/gson-2.9.1.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/stack-alloc/1.0.2/13cbb10c01ec09d0f5879f988946a97998175dfc/stack-alloc-1.0.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/xpp3/xpp3/1.1.4c/9b988ea84b9e4e9f1874e390ce099b8ac12cfff5/xpp3-1.1.4c.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/2.0.2/516c03b21d50a644d538de0f0369c620989cd8f0/jsr305-2.0.2.jar +Launcher Type: SUN_STANDARD + +[Global flags] + intx CICompilerCount = 4 {product} {ergonomic} + uint ConcGCThreads = 2 {product} {ergonomic} + uint G1ConcRefinementThreads = 8 {product} {ergonomic} + size_t G1HeapRegionSize = 4194304 {product} {ergonomic} + size_t InitialHeapSize = 524288000 {product} {ergonomic} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MarkStackSizeMax = 536870912 {product} {ergonomic} + size_t MaxHeapSize = 8388608000 {product} {ergonomic} + size_t MaxNewSize = 5033164800 {product} {ergonomic} + size_t MinHeapDeltaBytes = 4194304 {product} {ergonomic} + size_t MinHeapSize = 8388608 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 5836800 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 122912768 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 122908672 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + size_t SoftMaxHeapSize = 8388608000 {manageable} {ergonomic} + bool UseCompressedOops = true {product lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags foldmultilines=false + #1: stderr all=off uptime,level,tags foldmultilines=false + +Environment Variables: +PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin +USERNAME=codex +SHELL=/bin/bash +DISPLAY=:1 +LANG=en_US.UTF-8 + +Active Locale: +LC_ALL=en_US.UTF-8 +LC_COLLATE=en_US.UTF-8 +LC_CTYPE=en_US.UTF-8 +LC_MESSAGES=en_US.UTF-8 +LC_MONETARY=en_US.UTF-8 +LC_NUMERIC=en_US.UTF-8 +LC_TIME=en_US.UTF-8 + +Signal Handlers: + SIGSEGV: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGBUS: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGFPE: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGPIPE: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGXFSZ: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGILL: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGUSR2: SR_handler in libjvm.so, mask=00000000000000000000000000000000, flags=SA_RESTART|SA_SIGINFO, blocked + SIGHUP: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGINT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGTERM: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGQUIT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGTRAP: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + + +Periodic native trim disabled + +--------------- S Y S T E M --------------- + +OS: +DISTRIB_ID=Pop +DISTRIB_RELEASE=22.04 +DISTRIB_CODENAME=jammy +DISTRIB_DESCRIPTION="Pop!_OS 22.04 LTS" +uname: Linux 6.9.3-76060903-generic #202405300957~1726766035~22.04~4092a0e SMP PREEMPT_DYNAMIC Thu S x86_64 +OS uptime: 0 days 15:05 hours +libc: glibc 2.35 NPTL 2.35 +rlimit (soft/hard): STACK 8192k/infinity , CORE 0k/infinity , NPROC 127655/127655 , NOFILE 1048576/1048576 , AS infinity/infinity , CPU infinity/infinity , DATA infinity/infinity , FSIZE infinity/infinity , MEMLOCK 4095956k/4095956k +load average: 0.54 0.94 1.14 + +/proc/meminfo: +MemTotal: 32767656 kB +MemFree: 19737520 kB +MemAvailable: 22385836 kB +Buffers: 331016 kB +Cached: 4278336 kB +SwapCached: 0 kB +Active: 10029528 kB +Inactive: 2104856 kB +Active(anon): 7554720 kB +Inactive(anon): 0 kB +Active(file): 2474808 kB +Inactive(file): 2104856 kB +Unevictable: 15220 kB +Mlocked: 88 kB +SwapTotal: 20970996 kB +SwapFree: 20970996 kB +Zswap: 0 kB +Zswapped: 0 kB +Dirty: 7772 kB +Writeback: 0 kB +AnonPages: 7540512 kB +Mapped: 1827672 kB +Shmem: 29688 kB +KReclaimable: 176164 kB +Slab: 356116 kB +SReclaimable: 176164 kB +SUnreclaim: 179952 kB +KernelStack: 20096 kB +PageTables: 52628 kB +SecPageTables: 0 kB +NFS_Unstable: 0 kB +Bounce: 0 kB +WritebackTmp: 0 kB +CommitLimit: 37354824 kB +Committed_AS: 13773180 kB +VmallocTotal: 34359738367 kB +VmallocUsed: 249512 kB +VmallocChunk: 0 kB +Percpu: 9152 kB +HardwareCorrupted: 0 kB +AnonHugePages: 0 kB +ShmemHugePages: 6144 kB +ShmemPmdMapped: 0 kB +FileHugePages: 0 kB +FilePmdMapped: 0 kB +Unaccepted: 0 kB +HugePages_Total: 0 +HugePages_Free: 0 +HugePages_Rsvd: 0 +HugePages_Surp: 0 +Hugepagesize: 2048 kB +Hugetlb: 0 kB +DirectMap4k: 796472 kB +DirectMap2M: 12736512 kB +DirectMap1G: 19922944 kB + +/sys/kernel/mm/transparent_hugepage/enabled: always [madvise] never +/sys/kernel/mm/transparent_hugepage/hpage_pmd_size: 2097152 +/sys/kernel/mm/transparent_hugepage/shmem_enabled: always within_size advise [never] deny force +/sys/kernel/mm/transparent_hugepage/defrag (defrag/compaction efforts parameter): always defer defer+madvise [madvise] never + +Process Memory: +Virtual Size: 12184092K (peak: 12184092K) +Resident Set Size: 228396K (peak: 228396K) (anon: 112048K, file: 116348K, shmem: 0K) +Swapped out: 0K +C-Heap outstanding allocations: 58423K, retained: 7232K +glibc malloc tunables: (default) + +/proc/sys/kernel/threads-max (system-wide limit on the number of threads): 255310 +/proc/sys/vm/max_map_count (maximum number of memory map areas a process may have): 2147483642 +/proc/sys/vm/swappiness (control to define how aggressively the kernel swaps out anonymous memory): 180 +/proc/sys/kernel/pid_max (system-wide limit on number of process identifiers): 4194304 + +container (cgroup) information: +container_type: cgroupv2 +cpu_cpuset_cpus: not supported +cpu_memory_nodes: not supported +active_processor_count: 8 +cpu_quota: not supported +cpu_period: not supported +cpu_shares: not supported +memory_limit_in_bytes: unlimited +memory_and_swap_limit_in_bytes: unlimited +memory_soft_limit_in_bytes: 0 +memory_usage_in_bytes: 5899768 k +memory_max_usage_in_bytes: not supported +rss_usage_in_bytes: 4042328 k +cache_usage_in_bytes: 1784848 k +memory_swap_current_in_bytes: 0 +memory_swap_max_limit_in_bytes: unlimited +maximum number of tasks: 38296 +current number of tasks: 295 + +Steal ticks since vm start: 0 +Steal ticks percentage since vm start: 0.000 + +CPU: total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 158 stepping 9 microcode 0xf8, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, adx, fma, vzeroupper, clflush, clflushopt, rdtscp, f16c +CPU Model and flags from /proc/cpuinfo: +model name : Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz +flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities + +Online cpus: 0-7 +Offline cpus: +BIOS frequency limitation: +Frequency switch latency (ns): 0 +Available cpu frequencies: +Current governor: powersave +Core performance/turbo boost: + +Memory: 4k page, physical 32767656k(22385836k free), swap 20970996k(20970996k free) +Page Sizes: 4k + +vm_info: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58) for linux-amd64 JRE (23.0.2+7-58), built on 2024-11-29T09:34:55Z with gcc 13.2.0 + +END. diff --git a/hs_err_pid77449.log b/hs_err_pid77449.log new file mode 100644 index 0000000000..735aab6e1c --- /dev/null +++ b/hs_err_pid77449.log @@ -0,0 +1,1426 @@ +# +# A fatal error has been detected by the Java Runtime Environment: +# +# SIGSEGV (0xb) at pc=0x0000744bc7a5933a, pid=77449, tid=77480 +# +# JRE version: Java(TM) SE Runtime Environment (23.0.2+7) (build 23.0.2+7-58) +# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64) +# Problematic frame: +# C [libjemalloc.so+0x5933a] +# +# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/codex/java/prj/jmonkeyengine/core.77449) +# +# If you would like to submit a bug report, please visit: +# https://bugreport.java.com/bugreport/crash.jsp +# + +--------------- S U M M A R Y ------------ + +Command Line: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant jme3test.vulkan.VulkanHelperTest + +Host: Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz, 8 cores, 31G, Pop!_OS 22.04 LTS +Time: Wed Jul 2 22:36:18 2025 EDT elapsed time: 0.812162 seconds (0d 0h 0m 0s) + +--------------- T H R E A D --------------- + +Current thread is native thread + +Stack: [0x0000744bc7100000,0x0000744bc7200000], sp=0x0000744bc71fe9d0, free space=1018k +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +C [libjemalloc.so+0x5933a] + +siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000000 + +Registers: +RAX=0x0000000000000000, RBX=0x0000000000000180, RCX=0x0000000000000000, RDX=0x0000744bc7a78440 +RSP=0x0000744bc71fe9d0, RBP=0x0000744bc71fedb0, RSI=0x0000000000000000, RDI=0x0000744bc7239020 +R8 =0x0000000000000000, R9 =0x0000000000000000, R10=0x0000000000000000, R11=0x0000744bc7239060 +R12=0x000000000000002f, R13=0x0000744bc71fed70, R14=0x000000000000002f, R15=0x0000744bc71feb50 +RIP=0x0000744bc7a5933a, EFLAGS=0x0000000000010246, CSGSFS=0x002b000000000033, ERR=0x0000000000000004 + TRAPNO=0x000000000000000e + + +Top of Stack: (sp=0x0000744bc71fe9d0) +0x0000744bc71fe9d0: 0000744bf801cae8 0000000000000004 +0x0000744bc71fe9e0: 0000744bc71ffb58 0000744bf80dff71 +0x0000744bc71fe9f0: 0000000000000005 0000000000000000 +0x0000744bc71fea00: 0000744bf7e0d4d0 0000744bf7ea53e0 +0x0000744bc71fea10: 0000000000000000 0000744bc71fee00 +0x0000744bc71fea20: 0000744bf801caf8 0000000000000000 +0x0000744bc71fea30: 0000744bf801cae8 0000744bf80e2dae +0x0000744bc71fea40: 0000000000000001 000000000000006f +0x0000744bc71fea50: 0000744bc7cb17d0 0000000000000000 +0x0000744bc71fea60: 0000744b1cbc2dc0 0000000000000000 +0x0000744bc71fea70: 00000000000000ca b61693604baf4427 +0x0000744bc71fea80: 0000000000000213 0000744bf8017300 +0x0000744bc71fea90: 0000000000000000 0000ffff00001fa2 +0x0000744bc71feaa0: 0000000000000010 0000000000000002 +0x0000744bc71feab0: 0000000000000000 000000770000007c +0x0000744bc71feac0: 0000006b00000070 ffffffffffffffb8 +0x0000744bc71fead0: 0000000000000070 ffffffffffffffb8 +0x0000744bc71feae0: 0000000000000002 c5db6681efe38100 +0x0000744bc71feaf0: 0000744bc71feb90 0000000000000100 +0x0000744bc71feb00: 0000744bc71feb40 0000744bf001e698 +0x0000744bc71feb10: 0000744bf001ccb0 0000000000000180 +0x0000744bc71feb20: 0000744bc71fedb0 000000000000002f +0x0000744bc71feb30: 0000744bc71fed70 0000744bc71feb50 +0x0000744bc71feb40: 0000744b1c002420 0000744bc7a592f8 +0x0000744bc71feb50: 0000000000000000 0000000000000000 +0x0000744bc71feb60: 0000000000000000 0000000000000000 +0x0000744bc71feb70: 0000000000000000 0000000000000000 +0x0000744bc71feb80: 0000000000000000 0000000000000000 +0x0000744bc71feb90: 0000000000000000 0000000000000000 +0x0000744bc71feba0: 0000000000000000 0000000000000000 +0x0000744bc71febb0: 0000000000000000 0000000000000000 +0x0000744bc71febc0: 0000000000000000 0000000000000000 + +Instructions: (pc=0x0000744bc7a5933a) +0x0000744bc7a5923a: f4 66 41 c1 ec 03 41 0f b7 d4 2b 95 40 ff ff ff +0x0000744bc7a5924a: 48 c1 e2 03 e8 bd f0 fa ff 49 8b 4d 00 41 0f b7 +0x0000744bc7a5925a: 7d 14 48 01 d9 89 fe 66 41 2b 7d 10 29 ce 66 c1 +0x0000744bc7a5926a: ef 03 49 89 4d 00 66 c1 ee 03 66 39 fe 73 0c 4c +0x0000744bc7a5927a: 8b bd 50 ff ff ff 66 41 89 4f 10 48 8d 65 d8 5b +0x0000744bc7a5928a: 41 5c 41 5d 41 5e 41 5f 5d c3 29 d8 48 89 a5 48 +0x0000744bc7a5929a: ff ff ff 4c 89 ff 44 0f b7 e0 44 0f b7 c0 66 89 +0x0000744bc7a592aa: 45 c0 45 8d 74 24 01 4e 8d 1c c5 00 00 00 00 44 +0x0000744bc7a592ba: 89 a5 40 ff ff ff 4a 8d 1c f5 0f 00 00 00 4c 29 +0x0000744bc7a592ca: da 4c 89 9d 38 ff ff ff 81 e3 f0 ff 1f 00 4c 8d +0x0000744bc7a592da: 14 16 4c 89 c2 48 8b b5 30 ff ff ff 48 29 dc 4c +0x0000744bc7a592ea: 89 55 c8 49 89 e6 4c 89 f1 e8 28 ed ff ff 48 29 +0x0000744bc7a592fa: dc 48 89 65 80 45 85 e4 0f 84 07 ff ff ff 44 8b +0x0000744bc7a5930a: 8d 2c ff ff ff c7 45 b8 00 00 00 00 4c 89 7d b0 +0x0000744bc7a5931a: 4d 89 f7 45 89 e6 4b 8d 0c 89 4c 89 4d a0 48 c1 +0x0000744bc7a5932a: e1 03 48 89 4d 88 49 8b 37 48 8d 15 06 f1 01 00 +0x0000744bc7a5933a: 44 8b 2e 41 81 e5 ff 0f 00 00 44 89 e8 4c 8b 24 +0x0000744bc7a5934a: c2 4c 89 65 a8 4c 8b 06 48 8d 3d 67 72 02 00 4c +0x0000744bc7a5935a: 8b 5d a0 49 c1 e8 26 41 83 e0 3f 46 8b 14 9f 44 +0x0000744bc7a5936a: 89 c3 44 89 45 bc 4c 8d 0c dd 00 00 00 00 49 29 +0x0000744bc7a5937a: d9 49 c1 e1 05 4d 01 ca 4d 01 e2 49 8d 7a 48 4c +0x0000744bc7a5938a: 89 55 90 48 89 7d 98 e8 6a f0 fa ff 4c 8b 4d 90 +0x0000744bc7a5939a: 85 c0 0f 85 ce 03 00 00 49 8d 49 40 48 89 4d 90 +0x0000744bc7a593aa: 49 8b 1f 48 8b 55 a0 45 8d 5e ff 45 31 e4 48 8d +0x0000744bc7a593ba: 05 a1 72 02 00 41 ba 01 00 00 00 41 83 e3 01 48 +0x0000744bc7a593ca: 8b 3b 44 8b 04 90 48 8b 45 c8 89 fe 81 e6 ff 0f +0x0000744bc7a593da: 00 00 48 8b 08 41 39 f5 0f 84 c0 02 00 00 4a 89 +0x0000744bc7a593ea: 0c e0 4b 89 1c e7 41 bc 01 00 00 00 bb 01 00 00 +0x0000744bc7a593fa: 00 41 83 fe 01 0f 86 51 02 00 00 45 85 db 74 38 +0x0000744bc7a5940a: 49 8b 57 08 48 8b 48 08 48 8b 32 89 f7 81 e7 ff +0x0000744bc7a5941a: 0f 00 00 41 39 fd 0f 84 6a 04 00 00 45 89 e3 41 +0x0000744bc7a5942a: 83 c4 01 4a 89 0c d8 4b 89 14 df 48 83 c3 01 41 + + + +--------------- P R O C E S S --------------- + +VM state: not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap address: 0x000000060c000000, size: 8000 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 + +CDS archive(s) mapped at: [0x0000744b6e000000-0x0000744b6ed91000-0x0000744b6ed91000), size 14225408, SharedBaseAddress: 0x0000744b6e000000, ArchiveRelocationMode: 1. +Compressed class space mapped at: 0x0000744b6f000000-0x0000744baf000000, reserved size: 1073741824 +Narrow klass base: 0x0000744b6e000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 + +GC Precious Log: + + +Heap: + garbage-first heap total reserved 8192000K, committed 516096K, used 25198K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 6 young (24576K), 0 survivors (0K) + Metaspace used 8759K, committed 9024K, reserved 1114112K + class space used 779K, committed 896K, reserved 1048576K + +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, TAMS=top-at-mark-start, PB=parsable bottom +| 0|0x000000060c000000, 0x000000060c000000, 0x000000060c400000| 0%| F| |TAMS 0x000000060c000000| PB 0x000000060c000000| Untracked | 0 +| 1|0x000000060c400000, 0x000000060c400000, 0x000000060c800000| 0%| F| |TAMS 0x000000060c400000| PB 0x000000060c400000| Untracked | 0 +| 2|0x000000060c800000, 0x000000060c800000, 0x000000060cc00000| 0%| F| |TAMS 0x000000060c800000| PB 0x000000060c800000| Untracked | 0 +| 3|0x000000060cc00000, 0x000000060cc00000, 0x000000060d000000| 0%| F| |TAMS 0x000000060cc00000| PB 0x000000060cc00000| Untracked | 0 +| 4|0x000000060d000000, 0x000000060d000000, 0x000000060d400000| 0%| F| |TAMS 0x000000060d000000| PB 0x000000060d000000| Untracked | 0 +| 5|0x000000060d400000, 0x000000060d400000, 0x000000060d800000| 0%| F| |TAMS 0x000000060d400000| PB 0x000000060d400000| Untracked | 0 +| 6|0x000000060d800000, 0x000000060d800000, 0x000000060dc00000| 0%| F| |TAMS 0x000000060d800000| PB 0x000000060d800000| Untracked | 0 +| 7|0x000000060dc00000, 0x000000060dc00000, 0x000000060e000000| 0%| F| |TAMS 0x000000060dc00000| PB 0x000000060dc00000| Untracked | 0 +| 8|0x000000060e000000, 0x000000060e000000, 0x000000060e400000| 0%| F| |TAMS 0x000000060e000000| PB 0x000000060e000000| Untracked | 0 +| 9|0x000000060e400000, 0x000000060e400000, 0x000000060e800000| 0%| F| |TAMS 0x000000060e400000| PB 0x000000060e400000| Untracked | 0 +| 10|0x000000060e800000, 0x000000060e800000, 0x000000060ec00000| 0%| F| |TAMS 0x000000060e800000| PB 0x000000060e800000| Untracked | 0 +| 11|0x000000060ec00000, 0x000000060ec00000, 0x000000060f000000| 0%| F| |TAMS 0x000000060ec00000| PB 0x000000060ec00000| Untracked | 0 +| 12|0x000000060f000000, 0x000000060f000000, 0x000000060f400000| 0%| F| |TAMS 0x000000060f000000| PB 0x000000060f000000| Untracked | 0 +| 13|0x000000060f400000, 0x000000060f400000, 0x000000060f800000| 0%| F| |TAMS 0x000000060f400000| PB 0x000000060f400000| Untracked | 0 +| 14|0x000000060f800000, 0x000000060f800000, 0x000000060fc00000| 0%| F| |TAMS 0x000000060f800000| PB 0x000000060f800000| Untracked | 0 +| 15|0x000000060fc00000, 0x000000060fc00000, 0x0000000610000000| 0%| F| |TAMS 0x000000060fc00000| PB 0x000000060fc00000| Untracked | 0 +| 16|0x0000000610000000, 0x0000000610000000, 0x0000000610400000| 0%| F| |TAMS 0x0000000610000000| PB 0x0000000610000000| Untracked | 0 +| 17|0x0000000610400000, 0x0000000610400000, 0x0000000610800000| 0%| F| |TAMS 0x0000000610400000| PB 0x0000000610400000| Untracked | 0 +| 18|0x0000000610800000, 0x0000000610800000, 0x0000000610c00000| 0%| F| |TAMS 0x0000000610800000| PB 0x0000000610800000| Untracked | 0 +| 19|0x0000000610c00000, 0x0000000610c00000, 0x0000000611000000| 0%| F| |TAMS 0x0000000610c00000| PB 0x0000000610c00000| Untracked | 0 +| 20|0x0000000611000000, 0x0000000611000000, 0x0000000611400000| 0%| F| |TAMS 0x0000000611000000| PB 0x0000000611000000| Untracked | 0 +| 21|0x0000000611400000, 0x0000000611400000, 0x0000000611800000| 0%| F| |TAMS 0x0000000611400000| PB 0x0000000611400000| Untracked | 0 +| 22|0x0000000611800000, 0x0000000611800000, 0x0000000611c00000| 0%| F| |TAMS 0x0000000611800000| PB 0x0000000611800000| Untracked | 0 +| 23|0x0000000611c00000, 0x0000000611c00000, 0x0000000612000000| 0%| F| |TAMS 0x0000000611c00000| PB 0x0000000611c00000| Untracked | 0 +| 24|0x0000000612000000, 0x0000000612000000, 0x0000000612400000| 0%| F| |TAMS 0x0000000612000000| PB 0x0000000612000000| Untracked | 0 +| 25|0x0000000612400000, 0x0000000612400000, 0x0000000612800000| 0%| F| |TAMS 0x0000000612400000| PB 0x0000000612400000| Untracked | 0 +| 26|0x0000000612800000, 0x0000000612800000, 0x0000000612c00000| 0%| F| |TAMS 0x0000000612800000| PB 0x0000000612800000| Untracked | 0 +| 27|0x0000000612c00000, 0x0000000612c00000, 0x0000000613000000| 0%| F| |TAMS 0x0000000612c00000| PB 0x0000000612c00000| Untracked | 0 +| 28|0x0000000613000000, 0x0000000613000000, 0x0000000613400000| 0%| F| |TAMS 0x0000000613000000| PB 0x0000000613000000| Untracked | 0 +| 29|0x0000000613400000, 0x0000000613400000, 0x0000000613800000| 0%| F| |TAMS 0x0000000613400000| PB 0x0000000613400000| Untracked | 0 +| 30|0x0000000613800000, 0x0000000613800000, 0x0000000613c00000| 0%| F| |TAMS 0x0000000613800000| PB 0x0000000613800000| Untracked | 0 +| 31|0x0000000613c00000, 0x0000000613c00000, 0x0000000614000000| 0%| F| |TAMS 0x0000000613c00000| PB 0x0000000613c00000| Untracked | 0 +| 32|0x0000000614000000, 0x0000000614000000, 0x0000000614400000| 0%| F| |TAMS 0x0000000614000000| PB 0x0000000614000000| Untracked | 0 +| 33|0x0000000614400000, 0x0000000614400000, 0x0000000614800000| 0%| F| |TAMS 0x0000000614400000| PB 0x0000000614400000| Untracked | 0 +| 34|0x0000000614800000, 0x0000000614800000, 0x0000000614c00000| 0%| F| |TAMS 0x0000000614800000| PB 0x0000000614800000| Untracked | 0 +| 35|0x0000000614c00000, 0x0000000614c00000, 0x0000000615000000| 0%| F| |TAMS 0x0000000614c00000| PB 0x0000000614c00000| Untracked | 0 +| 36|0x0000000615000000, 0x0000000615000000, 0x0000000615400000| 0%| F| |TAMS 0x0000000615000000| PB 0x0000000615000000| Untracked | 0 +| 37|0x0000000615400000, 0x0000000615400000, 0x0000000615800000| 0%| F| |TAMS 0x0000000615400000| PB 0x0000000615400000| Untracked | 0 +| 38|0x0000000615800000, 0x0000000615800000, 0x0000000615c00000| 0%| F| |TAMS 0x0000000615800000| PB 0x0000000615800000| Untracked | 0 +| 39|0x0000000615c00000, 0x0000000615c00000, 0x0000000616000000| 0%| F| |TAMS 0x0000000615c00000| PB 0x0000000615c00000| Untracked | 0 +| 40|0x0000000616000000, 0x0000000616000000, 0x0000000616400000| 0%| F| |TAMS 0x0000000616000000| PB 0x0000000616000000| Untracked | 0 +| 41|0x0000000616400000, 0x0000000616400000, 0x0000000616800000| 0%| F| |TAMS 0x0000000616400000| PB 0x0000000616400000| Untracked | 0 +| 42|0x0000000616800000, 0x0000000616800000, 0x0000000616c00000| 0%| F| |TAMS 0x0000000616800000| PB 0x0000000616800000| Untracked | 0 +| 43|0x0000000616c00000, 0x0000000616c00000, 0x0000000617000000| 0%| F| |TAMS 0x0000000616c00000| PB 0x0000000616c00000| Untracked | 0 +| 44|0x0000000617000000, 0x0000000617000000, 0x0000000617400000| 0%| F| |TAMS 0x0000000617000000| PB 0x0000000617000000| Untracked | 0 +| 45|0x0000000617400000, 0x0000000617400000, 0x0000000617800000| 0%| F| |TAMS 0x0000000617400000| PB 0x0000000617400000| Untracked | 0 +| 46|0x0000000617800000, 0x0000000617800000, 0x0000000617c00000| 0%| F| |TAMS 0x0000000617800000| PB 0x0000000617800000| Untracked | 0 +| 47|0x0000000617c00000, 0x0000000617c00000, 0x0000000618000000| 0%| F| |TAMS 0x0000000617c00000| PB 0x0000000617c00000| Untracked | 0 +| 48|0x0000000618000000, 0x0000000618000000, 0x0000000618400000| 0%| F| |TAMS 0x0000000618000000| PB 0x0000000618000000| Untracked | 0 +| 49|0x0000000618400000, 0x0000000618400000, 0x0000000618800000| 0%| F| |TAMS 0x0000000618400000| PB 0x0000000618400000| Untracked | 0 +| 50|0x0000000618800000, 0x0000000618800000, 0x0000000618c00000| 0%| F| |TAMS 0x0000000618800000| PB 0x0000000618800000| Untracked | 0 +| 51|0x0000000618c00000, 0x0000000618c00000, 0x0000000619000000| 0%| F| |TAMS 0x0000000618c00000| PB 0x0000000618c00000| Untracked | 0 +| 52|0x0000000619000000, 0x0000000619000000, 0x0000000619400000| 0%| F| |TAMS 0x0000000619000000| PB 0x0000000619000000| Untracked | 0 +| 53|0x0000000619400000, 0x0000000619400000, 0x0000000619800000| 0%| F| |TAMS 0x0000000619400000| PB 0x0000000619400000| Untracked | 0 +| 54|0x0000000619800000, 0x0000000619800000, 0x0000000619c00000| 0%| F| |TAMS 0x0000000619800000| PB 0x0000000619800000| Untracked | 0 +| 55|0x0000000619c00000, 0x0000000619c00000, 0x000000061a000000| 0%| F| |TAMS 0x0000000619c00000| PB 0x0000000619c00000| Untracked | 0 +| 56|0x000000061a000000, 0x000000061a000000, 0x000000061a400000| 0%| F| |TAMS 0x000000061a000000| PB 0x000000061a000000| Untracked | 0 +| 57|0x000000061a400000, 0x000000061a400000, 0x000000061a800000| 0%| F| |TAMS 0x000000061a400000| PB 0x000000061a400000| Untracked | 0 +| 58|0x000000061a800000, 0x000000061a800000, 0x000000061ac00000| 0%| F| |TAMS 0x000000061a800000| PB 0x000000061a800000| Untracked | 0 +| 59|0x000000061ac00000, 0x000000061ac00000, 0x000000061b000000| 0%| F| |TAMS 0x000000061ac00000| PB 0x000000061ac00000| Untracked | 0 +| 60|0x000000061b000000, 0x000000061b000000, 0x000000061b400000| 0%| F| |TAMS 0x000000061b000000| PB 0x000000061b000000| Untracked | 0 +| 61|0x000000061b400000, 0x000000061b400000, 0x000000061b800000| 0%| F| |TAMS 0x000000061b400000| PB 0x000000061b400000| Untracked | 0 +| 62|0x000000061b800000, 0x000000061b800000, 0x000000061bc00000| 0%| F| |TAMS 0x000000061b800000| PB 0x000000061b800000| Untracked | 0 +| 63|0x000000061bc00000, 0x000000061bc00000, 0x000000061c000000| 0%| F| |TAMS 0x000000061bc00000| PB 0x000000061bc00000| Untracked | 0 +| 64|0x000000061c000000, 0x000000061c000000, 0x000000061c400000| 0%| F| |TAMS 0x000000061c000000| PB 0x000000061c000000| Untracked | 0 +| 65|0x000000061c400000, 0x000000061c400000, 0x000000061c800000| 0%| F| |TAMS 0x000000061c400000| PB 0x000000061c400000| Untracked | 0 +| 66|0x000000061c800000, 0x000000061c800000, 0x000000061cc00000| 0%| F| |TAMS 0x000000061c800000| PB 0x000000061c800000| Untracked | 0 +| 67|0x000000061cc00000, 0x000000061cc00000, 0x000000061d000000| 0%| F| |TAMS 0x000000061cc00000| PB 0x000000061cc00000| Untracked | 0 +| 68|0x000000061d000000, 0x000000061d000000, 0x000000061d400000| 0%| F| |TAMS 0x000000061d000000| PB 0x000000061d000000| Untracked | 0 +| 69|0x000000061d400000, 0x000000061d400000, 0x000000061d800000| 0%| F| |TAMS 0x000000061d400000| PB 0x000000061d400000| Untracked | 0 +| 70|0x000000061d800000, 0x000000061d800000, 0x000000061dc00000| 0%| F| |TAMS 0x000000061d800000| PB 0x000000061d800000| Untracked | 0 +| 71|0x000000061dc00000, 0x000000061dc00000, 0x000000061e000000| 0%| F| |TAMS 0x000000061dc00000| PB 0x000000061dc00000| Untracked | 0 +| 72|0x000000061e000000, 0x000000061e000000, 0x000000061e400000| 0%| F| |TAMS 0x000000061e000000| PB 0x000000061e000000| Untracked | 0 +| 73|0x000000061e400000, 0x000000061e400000, 0x000000061e800000| 0%| F| |TAMS 0x000000061e400000| PB 0x000000061e400000| Untracked | 0 +| 74|0x000000061e800000, 0x000000061e800000, 0x000000061ec00000| 0%| F| |TAMS 0x000000061e800000| PB 0x000000061e800000| Untracked | 0 +| 75|0x000000061ec00000, 0x000000061ec00000, 0x000000061f000000| 0%| F| |TAMS 0x000000061ec00000| PB 0x000000061ec00000| Untracked | 0 +| 76|0x000000061f000000, 0x000000061f000000, 0x000000061f400000| 0%| F| |TAMS 0x000000061f000000| PB 0x000000061f000000| Untracked | 0 +| 77|0x000000061f400000, 0x000000061f400000, 0x000000061f800000| 0%| F| |TAMS 0x000000061f400000| PB 0x000000061f400000| Untracked | 0 +| 78|0x000000061f800000, 0x000000061f800000, 0x000000061fc00000| 0%| F| |TAMS 0x000000061f800000| PB 0x000000061f800000| Untracked | 0 +| 79|0x000000061fc00000, 0x000000061fc00000, 0x0000000620000000| 0%| F| |TAMS 0x000000061fc00000| PB 0x000000061fc00000| Untracked | 0 +| 80|0x0000000620000000, 0x0000000620000000, 0x0000000620400000| 0%| F| |TAMS 0x0000000620000000| PB 0x0000000620000000| Untracked | 0 +| 81|0x0000000620400000, 0x0000000620400000, 0x0000000620800000| 0%| F| |TAMS 0x0000000620400000| PB 0x0000000620400000| Untracked | 0 +| 82|0x0000000620800000, 0x0000000620800000, 0x0000000620c00000| 0%| F| |TAMS 0x0000000620800000| PB 0x0000000620800000| Untracked | 0 +| 83|0x0000000620c00000, 0x0000000620c00000, 0x0000000621000000| 0%| F| |TAMS 0x0000000620c00000| PB 0x0000000620c00000| Untracked | 0 +| 84|0x0000000621000000, 0x0000000621000000, 0x0000000621400000| 0%| F| |TAMS 0x0000000621000000| PB 0x0000000621000000| Untracked | 0 +| 85|0x0000000621400000, 0x0000000621400000, 0x0000000621800000| 0%| F| |TAMS 0x0000000621400000| PB 0x0000000621400000| Untracked | 0 +| 86|0x0000000621800000, 0x0000000621800000, 0x0000000621c00000| 0%| F| |TAMS 0x0000000621800000| PB 0x0000000621800000| Untracked | 0 +| 87|0x0000000621c00000, 0x0000000621c00000, 0x0000000622000000| 0%| F| |TAMS 0x0000000621c00000| PB 0x0000000621c00000| Untracked | 0 +| 88|0x0000000622000000, 0x0000000622000000, 0x0000000622400000| 0%| F| |TAMS 0x0000000622000000| PB 0x0000000622000000| Untracked | 0 +| 89|0x0000000622400000, 0x0000000622400000, 0x0000000622800000| 0%| F| |TAMS 0x0000000622400000| PB 0x0000000622400000| Untracked | 0 +| 90|0x0000000622800000, 0x0000000622800000, 0x0000000622c00000| 0%| F| |TAMS 0x0000000622800000| PB 0x0000000622800000| Untracked | 0 +| 91|0x0000000622c00000, 0x0000000622c00000, 0x0000000623000000| 0%| F| |TAMS 0x0000000622c00000| PB 0x0000000622c00000| Untracked | 0 +| 92|0x0000000623000000, 0x0000000623000000, 0x0000000623400000| 0%| F| |TAMS 0x0000000623000000| PB 0x0000000623000000| Untracked | 0 +| 93|0x0000000623400000, 0x0000000623400000, 0x0000000623800000| 0%| F| |TAMS 0x0000000623400000| PB 0x0000000623400000| Untracked | 0 +| 94|0x0000000623800000, 0x0000000623800000, 0x0000000623c00000| 0%| F| |TAMS 0x0000000623800000| PB 0x0000000623800000| Untracked | 0 +| 95|0x0000000623c00000, 0x0000000623c00000, 0x0000000624000000| 0%| F| |TAMS 0x0000000623c00000| PB 0x0000000623c00000| Untracked | 0 +| 96|0x0000000624000000, 0x0000000624000000, 0x0000000624400000| 0%| F| |TAMS 0x0000000624000000| PB 0x0000000624000000| Untracked | 0 +| 97|0x0000000624400000, 0x0000000624400000, 0x0000000624800000| 0%| F| |TAMS 0x0000000624400000| PB 0x0000000624400000| Untracked | 0 +| 98|0x0000000624800000, 0x0000000624800000, 0x0000000624c00000| 0%| F| |TAMS 0x0000000624800000| PB 0x0000000624800000| Untracked | 0 +| 99|0x0000000624c00000, 0x0000000624c00000, 0x0000000625000000| 0%| F| |TAMS 0x0000000624c00000| PB 0x0000000624c00000| Untracked | 0 +| 100|0x0000000625000000, 0x0000000625000000, 0x0000000625400000| 0%| F| |TAMS 0x0000000625000000| PB 0x0000000625000000| Untracked | 0 +| 101|0x0000000625400000, 0x0000000625400000, 0x0000000625800000| 0%| F| |TAMS 0x0000000625400000| PB 0x0000000625400000| Untracked | 0 +| 102|0x0000000625800000, 0x0000000625800000, 0x0000000625c00000| 0%| F| |TAMS 0x0000000625800000| PB 0x0000000625800000| Untracked | 0 +| 103|0x0000000625c00000, 0x0000000625c00000, 0x0000000626000000| 0%| F| |TAMS 0x0000000625c00000| PB 0x0000000625c00000| Untracked | 0 +| 104|0x0000000626000000, 0x0000000626000000, 0x0000000626400000| 0%| F| |TAMS 0x0000000626000000| PB 0x0000000626000000| Untracked | 0 +| 105|0x0000000626400000, 0x0000000626400000, 0x0000000626800000| 0%| F| |TAMS 0x0000000626400000| PB 0x0000000626400000| Untracked | 0 +| 106|0x0000000626800000, 0x0000000626800000, 0x0000000626c00000| 0%| F| |TAMS 0x0000000626800000| PB 0x0000000626800000| Untracked | 0 +| 107|0x0000000626c00000, 0x0000000626c00000, 0x0000000627000000| 0%| F| |TAMS 0x0000000626c00000| PB 0x0000000626c00000| Untracked | 0 +| 108|0x0000000627000000, 0x0000000627000000, 0x0000000627400000| 0%| F| |TAMS 0x0000000627000000| PB 0x0000000627000000| Untracked | 0 +| 109|0x0000000627400000, 0x0000000627400000, 0x0000000627800000| 0%| F| |TAMS 0x0000000627400000| PB 0x0000000627400000| Untracked | 0 +| 110|0x0000000627800000, 0x0000000627800000, 0x0000000627c00000| 0%| F| |TAMS 0x0000000627800000| PB 0x0000000627800000| Untracked | 0 +| 111|0x0000000627c00000, 0x0000000627c00000, 0x0000000628000000| 0%| F| |TAMS 0x0000000627c00000| PB 0x0000000627c00000| Untracked | 0 +| 112|0x0000000628000000, 0x0000000628000000, 0x0000000628400000| 0%| F| |TAMS 0x0000000628000000| PB 0x0000000628000000| Untracked | 0 +| 113|0x0000000628400000, 0x0000000628400000, 0x0000000628800000| 0%| F| |TAMS 0x0000000628400000| PB 0x0000000628400000| Untracked | 0 +| 114|0x0000000628800000, 0x0000000628800000, 0x0000000628c00000| 0%| F| |TAMS 0x0000000628800000| PB 0x0000000628800000| Untracked | 0 +| 115|0x0000000628c00000, 0x0000000628c00000, 0x0000000629000000| 0%| F| |TAMS 0x0000000628c00000| PB 0x0000000628c00000| Untracked | 0 +| 116|0x0000000629000000, 0x0000000629000000, 0x0000000629400000| 0%| F| |TAMS 0x0000000629000000| PB 0x0000000629000000| Untracked | 0 +| 117|0x0000000629400000, 0x0000000629400000, 0x0000000629800000| 0%| F| |TAMS 0x0000000629400000| PB 0x0000000629400000| Untracked | 0 +| 118|0x0000000629800000, 0x0000000629800000, 0x0000000629c00000| 0%| F| |TAMS 0x0000000629800000| PB 0x0000000629800000| Untracked | 0 +| 119|0x0000000629c00000, 0x0000000629f7cd70, 0x000000062a000000| 87%| E| |TAMS 0x0000000629c00000| PB 0x0000000629c00000| Complete | 0 +| 120|0x000000062a000000, 0x000000062a400000, 0x000000062a400000|100%| E|CS|TAMS 0x000000062a000000| PB 0x000000062a000000| Complete | 0 +| 121|0x000000062a400000, 0x000000062a800000, 0x000000062a800000|100%| E|CS|TAMS 0x000000062a400000| PB 0x000000062a400000| Complete | 0 +| 122|0x000000062a800000, 0x000000062ac00000, 0x000000062ac00000|100%| E|CS|TAMS 0x000000062a800000| PB 0x000000062a800000| Complete | 0 +| 123|0x000000062ac00000, 0x000000062b000000, 0x000000062b000000|100%| E|CS|TAMS 0x000000062ac00000| PB 0x000000062ac00000| Complete | 0 +| 124|0x000000062b000000, 0x000000062b400000, 0x000000062b400000|100%| E|CS|TAMS 0x000000062b000000| PB 0x000000062b000000| Complete | 0 +|1999|0x00000007ffc00000, 0x00000007ffd1ec18, 0x0000000800000000| 28%| O| |TAMS 0x00000007ffc00000| PB 0x00000007ffc00000| Untracked | 0 + +Card table byte_map: [0x0000744bd7800000,0x0000744bd87a0000] _byte_map_base: 0x0000744bd47a0000 + +Marking Bits: (CMBitMap*) 0x0000744bf0059190 + Bits: [0x0000744bcfa00000, 0x0000744bd7700000) + +Polling page: 0x0000744bf80b2000 + +Metaspace: + +Usage: + Non-class: 7.79 MB used. + Class: 779.01 KB used. + Both: 8.55 MB used. + +Virtual space: + Non-class space: 64.00 MB reserved, 7.94 MB ( 12%) committed, 1 nodes. + Class space: 1.00 GB reserved, 896.00 KB ( <1%) committed, 1 nodes. + Both: 1.06 GB reserved, 8.81 MB ( <1%) committed. + +Chunk freelists: + Non-Class: 7.84 MB + Class: 15.04 MB + Both: 22.89 MB + +MaxMetaspaceSize: unlimited +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 21.00 MB +Current GC threshold: 21.00 MB +CDS: on + - commit_granule_bytes: 65536. + - commit_granule_words: 8192. + - virtual_space_node_default_size: 8388608. + - enlarge_chunks_in_place: 1. + - use_allocation_guard: 0. + + +Internal statistics: + +num_allocs_failed_limit: 0. +num_arena_births: 152. +num_arena_deaths: 0. +num_vsnodes_births: 2. +num_vsnodes_deaths: 0. +num_space_committed: 141. +num_space_uncommitted: 0. +num_chunks_returned_to_freelist: 0. +num_chunks_taken_from_freelist: 378. +num_chunk_merges: 0. +num_chunk_splits: 252. +num_chunks_enlarged: 172. +num_inconsistent_stats: 0. + +CodeHeap 'non-profiled nmethods': size=120032Kb used=404Kb max_used=404Kb free=119628Kb + bounds [0x0000744be02c8000, 0x0000744be0538000, 0x0000744be7800000] +CodeHeap 'profiled nmethods': size=120028Kb used=1701Kb max_used=1701Kb free=118326Kb + bounds [0x0000744bd8800000, 0x0000744bd8a70000, 0x0000744bdfd37000] +CodeHeap 'non-nmethods': size=5700Kb used=2156Kb max_used=2182Kb free=3543Kb + bounds [0x0000744bdfd37000, 0x0000744bdffa7000, 0x0000744be02c8000] +CodeCache: size=245760Kb, used=4261Kb, max_used=4287Kb, free=241497Kb + total_blobs=2458, nmethods=1285, adapters=1080, full_count=0 +Compilation: enabled, stopped_count=0, restarted_count=0 + +Compilation events (20 events): +Event: 0.802 Thread 0x0000744b3441f420 nmethod 1266 0x0000744be032ad88 code [0x0000744be032ae80, 0x0000744be032af50] +Event: 0.803 Thread 0x0000744b3441f420 1271 4 java.lang.StringBuilder::append (8 bytes) +Event: 0.803 Thread 0x0000744bf01485d0 1272 3 java.lang.reflect.Modifier::isPrivate (12 bytes) +Event: 0.803 Thread 0x0000744bf01485d0 nmethod 1272 0x0000744bd89a6088 code [0x0000744bd89a61a0, 0x0000744bd89a62d0] +Event: 0.804 Thread 0x0000744bf01485d0 1274 3 jdk.internal.org.objectweb.asm.Frame::setLocal (65 bytes) +Event: 0.804 Thread 0x0000744bf01485d0 nmethod 1274 0x0000744bd89a6388 code [0x0000744bd89a64e0, 0x0000744bd89a69e0] +Event: 0.804 Thread 0x0000744bf01485d0 1275 3 jdk.internal.org.objectweb.asm.Frame::pop (46 bytes) +Event: 0.805 Thread 0x0000744bf01485d0 nmethod 1275 0x0000744bd89a6a08 code [0x0000744bd89a6b20, 0x0000744bd89a6cb0] +Event: 0.805 Thread 0x0000744bf01485d0 1276 3 jdk.internal.org.objectweb.asm.ClassWriter::visitMethod (57 bytes) +Event: 0.805 Thread 0x0000744bf01485d0 nmethod 1276 0x0000744bd89a6d08 code [0x0000744bd89a6e40, 0x0000744bd89a71b8] +Event: 0.805 Thread 0x0000744bf01485d0 1277 1 jdk.internal.org.objectweb.asm.SymbolTable::getConstantPoolCount (5 bytes) +Event: 0.805 Thread 0x0000744bf01485d0 nmethod 1277 0x0000744be032bc08 code [0x0000744be032bd20, 0x0000744be032bde0] +Event: 0.808 Thread 0x0000744b3441f420 nmethod 1271 0x0000744be032bf08 code [0x0000744be032c060, 0x0000744be032c930] +Event: 0.811 Thread 0x0000744bf01485d0 1278 3 java.lang.invoke.MethodHandleNatives::refKindIsMethod (19 bytes) +Event: 0.811 Thread 0x0000744bf01485d0 nmethod 1278 0x0000744bd89a7208 code [0x0000744bd89a7320, 0x0000744bd89a7538] +Event: 0.811 Thread 0x0000744bf01485d0 1279 ! 3 java.lang.invoke.MethodHandle::setVarargs (50 bytes) +Event: 0.811 Thread 0x0000744bf01485d0 nmethod 1279 0x0000744bd89a7588 code [0x0000744bd89a77c0, 0x0000744bd89a83c0] +Event: 0.811 Thread 0x0000744bf01485d0 1281 3 jdk.internal.misc.VM::isModuleSystemInited (13 bytes) +Event: 0.812 Thread 0x0000744bf01485d0 nmethod 1281 0x0000744bd89a8488 code [0x0000744bd89a85a0, 0x0000744bd89a86e0] +Event: 0.812 Thread 0x0000744bf01485d0 1280 3 jdk.internal.org.objectweb.asm.MethodWriter::endCurrentBasicBlockWithNoSuccessor (98 bytes) + +GC Heap History (0 events): +No events + +Dll operation events (10 events): +Event: 0.001 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +Event: 0.017 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +Event: 0.017 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +Event: 0.027 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +Event: 0.029 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +Event: 0.078 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +Event: 0.125 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +Event: 0.130 Loaded shared library /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +Event: 0.381 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +Event: 0.383 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so + +Deoptimization events (20 events): +Event: 0.724 Thread 0x0000744bf05c1120 Uncommon trap: trap_request=0xffffffde fr.pc=0x0000744be03036cc relative=0x00000000000014cc +Event: 0.724 Thread 0x0000744bf05c1120 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000744be03036cc method=java.io.BufferedInputStream.implRead([BII)I @ 100 c2 +Event: 0.724 Thread 0x0000744bf05c1120 DEOPT PACKING pc=0x0000744be03036cc sp=0x0000744bc71fdc40 +Event: 0.724 Thread 0x0000744bf05c1120 DEOPT UNPACKING pc=0x0000744bdfd8abf9 sp=0x0000744bc71fdb40 mode 2 +Event: 0.725 Thread 0x0000744bf05c1120 Uncommon trap: trap_request=0xffffffde fr.pc=0x0000744be03036cc relative=0x00000000000014cc +Event: 0.725 Thread 0x0000744bf05c1120 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000744be03036cc method=java.io.BufferedInputStream.implRead([BII)I @ 100 c2 +Event: 0.725 Thread 0x0000744bf05c1120 DEOPT PACKING pc=0x0000744be03036cc sp=0x0000744bc71fdc40 +Event: 0.725 Thread 0x0000744bf05c1120 DEOPT UNPACKING pc=0x0000744bdfd8abf9 sp=0x0000744bc71fdb40 mode 2 +Event: 0.725 Thread 0x0000744bf05c1120 Uncommon trap: trap_request=0xffffffde fr.pc=0x0000744be03036cc relative=0x00000000000014cc +Event: 0.725 Thread 0x0000744bf05c1120 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000744be03036cc method=java.io.BufferedInputStream.implRead([BII)I @ 100 c2 +Event: 0.725 Thread 0x0000744bf05c1120 DEOPT PACKING pc=0x0000744be03036cc sp=0x0000744bc71fdc40 +Event: 0.725 Thread 0x0000744bf05c1120 DEOPT UNPACKING pc=0x0000744bdfd8abf9 sp=0x0000744bc71fdb40 mode 2 +Event: 0.725 Thread 0x0000744bf05c1120 Uncommon trap: trap_request=0xffffffde fr.pc=0x0000744be0301adc relative=0x0000000000000afc +Event: 0.725 Thread 0x0000744bf05c1120 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000744be0301adc method=java.io.BufferedInputStream.implRead([BII)I @ 100 c2 +Event: 0.725 Thread 0x0000744bf05c1120 DEOPT PACKING pc=0x0000744be0301adc sp=0x0000744bc71fdb20 +Event: 0.725 Thread 0x0000744bf05c1120 DEOPT UNPACKING pc=0x0000744bdfd8abf9 sp=0x0000744bc71fdad8 mode 2 +Event: 0.744 Thread 0x0000744bf05c1120 Uncommon trap: trap_request=0xffffff6e fr.pc=0x0000744be03238e8 relative=0x0000000000000148 +Event: 0.744 Thread 0x0000744bf05c1120 Uncommon trap: reason=loop_limit_check action=maybe_recompile pc=0x0000744be03238e8 method=java.util.regex.Pattern$Start.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 34 c2 +Event: 0.744 Thread 0x0000744bf05c1120 DEOPT PACKING pc=0x0000744be03238e8 sp=0x0000744bc71fe0a0 +Event: 0.744 Thread 0x0000744bf05c1120 DEOPT UNPACKING pc=0x0000744bdfd8abf9 sp=0x0000744bc71fe050 mode 2 + +Classes loaded (20 events): +Event: 0.724 Loading class sun/awt/image/SurfaceManager$ImageAccessor done +Event: 0.724 Loading class java/awt/Image$1 done +Event: 0.724 Loading class sun/awt/image/SurfaceManager +Event: 0.724 Loading class sun/awt/image/SurfaceManager done +Event: 0.724 Loading class java/awt/image/BufferedImage$1 +Event: 0.724 Loading class java/awt/image/BufferedImage$1 done +Event: 0.724 Loading class sun/awt/image/IntegerComponentRaster +Event: 0.724 Loading class sun/awt/image/IntegerComponentRaster done +Event: 0.724 Loading class java/awt/image/IndexColorModel +Event: 0.724 Loading class java/awt/image/IndexColorModel done +Event: 0.724 Loading class sun/awt/image/ShortComponentRaster +Event: 0.724 Loading class sun/awt/image/ShortComponentRaster done +Event: 0.803 Loading class java/util/function/LongFunction +Event: 0.803 Loading class java/util/function/LongFunction done +Event: 0.811 Loading class java/lang/Throwable$WrappedPrintStream +Event: 0.811 Loading class java/lang/Throwable$PrintStreamOrWriter +Event: 0.811 Loading class java/lang/Throwable$PrintStreamOrWriter done +Event: 0.811 Loading class java/lang/Throwable$WrappedPrintStream done +Event: 0.811 Loading class java/lang/StackTraceElement$HashedModules +Event: 0.811 Loading class java/lang/StackTraceElement$HashedModules done + +Classes unloaded (0 events): +No events + +Classes redefined (0 events): +No events + +Internal exceptions (20 events): +Event: 0.166 Thread 0x0000744bf002d0f0 Exception (0x000000062af599d0) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.166 Thread 0x0000744bf002d0f0 Exception (0x000000062af5eb08) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.167 Thread 0x0000744bf002d0f0 Exception (0x000000062af70568) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.168 Thread 0x0000744bf002d0f0 Exception (0x000000062af76038) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.168 Thread 0x0000744bf002d0f0 Exception (0x000000062af7a408) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.168 Thread 0x0000744bf002d0f0 Exception (0x000000062af81660) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.212 Thread 0x0000744bf002d0f0 Exception (0x000000062a929cf8) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.221 Thread 0x0000744bf002d0f0 Exception (0x000000062a981740) +thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] +Event: 0.230 Thread 0x0000744bf002d0f0 Exception (0x000000062a9ec330) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.231 Thread 0x0000744bf002d0f0 Exception (0x000000062a9fa148) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.389 Thread 0x0000744bf05c1120 Exception (0x000000062a5b9f98) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.390 Thread 0x0000744bf05c1120 Exception (0x000000062a5bd4e8) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 863] +Event: 0.649 Thread 0x0000744bf05c1120 Exception (0x000000062a76c258) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.710 Thread 0x0000744bf05c1120 Exception (0x000000062a1ebea0) +thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] +Event: 0.711 Thread 0x0000744bf05c1120 Exception (0x000000062a1f1e78) +thrown [open/src/hotspot/share/prims/jni.cpp, line 520] +Event: 0.713 Thread 0x0000744bf05c1120 Exception (0x000000062a21cd28) +thrown [open/src/hotspot/share/prims/jni.cpp, line 520] +Event: 0.800 Thread 0x0000744bf05c1120 Exception (0x0000000629e5fe30) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.800 Thread 0x0000744bf05c1120 Exception (0x0000000629e65678) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.803 Thread 0x0000744bf05c1120 Exception (0x0000000629e7d8a0) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.804 Thread 0x0000744bf05c1120 Exception (0x0000000629e8e9b0) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] + +VM Operations (12 events): +Event: 0.110 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.110 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.117 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.117 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.127 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.127 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.138 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.138 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.664 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.664 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.707 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.707 Executing VM operation: HandshakeAllThreads (Deoptimize) done + +Memory protections (16 events): +Event: 0.001 Protecting memory [0x0000744bf6700000,0x0000744bf6704000] with protection modes 0 +Event: 0.015 Protecting memory [0x0000744bd7700000,0x0000744bd7704000] with protection modes 0 +Event: 0.015 Protecting memory [0x0000744bcc500000,0x0000744bcc504000] with protection modes 0 +Event: 0.015 Protecting memory [0x0000744bcc400000,0x0000744bcc404000] with protection modes 0 +Event: 0.015 Protecting memory [0x0000744bcc300000,0x0000744bcc304000] with protection modes 0 +Event: 0.015 Protecting memory [0x0000744bcc200000,0x0000744bcc204000] with protection modes 0 +Event: 0.015 Protecting memory [0x0000744bcc100000,0x0000744bcc104000] with protection modes 0 +Event: 0.015 Protecting memory [0x0000744bcc000000,0x0000744bcc004000] with protection modes 0 +Event: 0.024 Protecting memory [0x0000744bc7f00000,0x0000744bc7f04000] with protection modes 0 +Event: 0.025 Protecting memory [0x0000744bc7e00000,0x0000744bc7e04000] with protection modes 0 +Event: 0.057 Protecting memory [0x0000744bc7d00000,0x0000744bc7d04000] with protection modes 0 +Event: 0.235 Protecting memory [0x0000744bc7100000,0x0000744bc7104000] with protection modes 0 +Event: 0.235 Protecting memory [0x0000744bf6700000,0x0000744bf6704000] with protection modes 0 +Event: 0.675 Protecting memory [0x0000744bc7d00000,0x0000744bc7d04000] with protection modes 0 +Event: 0.685 Protecting memory [0x0000744baf285000,0x0000744baf289000] with protection modes 0 +Event: 0.720 Protecting memory [0x0000744baf185000,0x0000744baf189000] with protection modes 0 + +Nmethod flushes (0 events): +No events + +Events (19 events): +Event: 0.010 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf002d0f0 +Event: 0.015 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf0137930 +Event: 0.015 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf0138ea0 +Event: 0.015 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf013a7d0 +Event: 0.015 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf013be10 +Event: 0.015 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf013d3b0 +Event: 0.015 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf013eed0 +Event: 0.015 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf01485d0 +Event: 0.024 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf01552a0 +Event: 0.025 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf0157d80 +Event: 0.057 Thread 0x0000744bf013eed0 Thread added: 0x0000744b380d8d00 +Event: 0.235 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf05c1120 +Event: 0.235 Thread 0x0000744bf002d0f0 Thread exited: 0x0000744bf002d0f0 +Event: 0.235 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf002d0f0 +Event: 0.649 Thread 0x0000744b380d8d00 Thread exited: 0x0000744b380d8d00 +Event: 0.675 Thread 0x0000744bf05c1120 Thread added: 0x0000744b1c5acd90 +Event: 0.685 Thread 0x0000744bf01485d0 Thread added: 0x0000744b3441f420 +Event: 0.720 Thread 0x0000744bf05c1120 Thread added: 0x0000744b1c763640 +Event: 0.812 Thread 0x0000744bf05c1120 Thread exited: 0x0000744bf05c1120 + + +Dynamic libraries: +60c000000-62b400000 rw-p 00000000 00:00 0 +62b400000-7ffc00000 ---p 00000000 00:00 0 +7ffc00000-7ffd1f000 rw-p 00dc0000 103:03 10498862 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/classes.jsa +7ffd1f000-800000000 rw-p 00000000 00:00 0 +574fbc634000-574fbc635000 r-xp 00000000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java +574fbc636000-574fbc637000 r--p 00001000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java +574fbc637000-574fbc638000 rw-p 00002000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java +574fdef4a000-574fdef93000 rw-p 00000000 00:00 0 [heap] +744adc000000-744adc021000 rw-p 00000000 00:00 0 +744adc021000-744ae0000000 ---p 00000000 00:00 0 +744ae4000000-744ae4021000 rw-p 00000000 00:00 0 +744ae4021000-744ae8000000 ---p 00000000 00:00 0 +744ae8000000-744ae8021000 rw-p 00000000 00:00 0 +744ae8021000-744aec000000 ---p 00000000 00:00 0 +744af0000000-744af007c000 rw-p 00000000 00:00 0 +744af007c000-744af4000000 ---p 00000000 00:00 0 +744af4000000-744af4021000 rw-p 00000000 00:00 0 +744af4021000-744af8000000 ---p 00000000 00:00 0 +744afc000000-744afc0c8000 rw-p 00000000 00:00 0 +744afc0c8000-744b00000000 ---p 00000000 00:00 0 +744b00000000-744b00021000 rw-p 00000000 00:00 0 +744b00021000-744b04000000 ---p 00000000 00:00 0 +744b08000000-744b08021000 rw-p 00000000 00:00 0 +744b08021000-744b0c000000 ---p 00000000 00:00 0 +744b0d000000-744b13712000 r-xp 00000000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 +744b13712000-744b13f30000 r--p 06711000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 +744b13f30000-744b13f76000 rw-p 06f2f000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 +744b13f76000-744b13ff2000 rw-p 00000000 00:00 0 +744b14000000-744b14021000 rw-p 00000000 00:00 0 +744b14021000-744b18000000 ---p 00000000 00:00 0 +744b1c000000-744b1cff0000 rw-p 00000000 00:00 0 +744b1cff0000-744b20000000 ---p 00000000 00:00 0 +744b20000000-744b20263000 rw-p 00000000 00:00 0 +744b20263000-744b24000000 ---p 00000000 00:00 0 +744b28000000-744b28021000 rw-p 00000000 00:00 0 +744b28021000-744b2c000000 ---p 00000000 00:00 0 +744b2c000000-744b2c021000 rw-p 00000000 00:00 0 +744b2c021000-744b30000000 ---p 00000000 00:00 0 +744b34000000-744b34447000 rw-p 00000000 00:00 0 +744b34447000-744b38000000 ---p 00000000 00:00 0 +744b38000000-744b3838a000 rw-p 00000000 00:00 0 +744b3838a000-744b3c000000 ---p 00000000 00:00 0 +744b40000000-744b40021000 rw-p 00000000 00:00 0 +744b40021000-744b44000000 ---p 00000000 00:00 0 +744b44000000-744b44021000 rw-p 00000000 00:00 0 +744b44021000-744b48000000 ---p 00000000 00:00 0 +744b49600000-744b49601000 ---p 00000000 00:00 0 +744b49601000-744b49e01000 rw-p 00000000 00:00 0 +744b4a000000-744b4acf5000 r--p 00000000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +744b4acf5000-744b4b6d8000 r-xp 00cf5000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +744b4b6d8000-744b4bae9000 r--p 016d8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +744b4bae9000-744b4bf6b000 r--p 01ae8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +744b4bf6b000-744b4bf73000 rw-p 01f6a000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +744b4bf73000-744b4bf7e000 rw-p 00000000 00:00 0 +744b4c000000-744b4c021000 rw-p 00000000 00:00 0 +744b4c021000-744b50000000 ---p 00000000 00:00 0 +744b50000000-744b50021000 rw-p 00000000 00:00 0 +744b50021000-744b54000000 ---p 00000000 00:00 0 +744b54400000-744b5442f000 r--p 00000000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +744b5442f000-744b54b02000 r-xp 0002f000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +744b54b02000-744b54c24000 r--p 00702000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +744b54c24000-744b54c35000 r--p 00823000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +744b54c35000-744b54cb3000 rw-p 00834000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +744b54cb3000-744b54cc7000 rw-p 00000000 00:00 0 +744b54e00000-744b54e01000 ---p 00000000 00:00 0 +744b54e01000-744b55601000 rw-p 00000000 00:00 0 +744b55800000-744b55801000 ---p 00000000 00:00 0 +744b55801000-744b56001000 rw-p 00000000 00:00 0 +744b56200000-744b56201000 ---p 00000000 00:00 0 +744b56201000-744b56a01000 rw-p 00000000 00:00 0 +744b56c00000-744b56c01000 ---p 00000000 00:00 0 +744b56c01000-744b57401000 rw-p 00000000 00:00 0 +744b57600000-744b57601000 ---p 00000000 00:00 0 +744b57601000-744b57e01000 rw-p 00000000 00:00 0 +744b58000000-744b58021000 rw-p 00000000 00:00 0 +744b58021000-744b5c000000 ---p 00000000 00:00 0 +744b5c000000-744b5c021000 rw-p 00000000 00:00 0 +744b5c021000-744b60000000 ---p 00000000 00:00 0 +744b60200000-744b60222000 r-xp 00000000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +744b60222000-744b60421000 ---p 00022000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +744b60421000-744b60429000 r--p 00021000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +744b60429000-744b6042a000 rw-p 00029000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +744b6042a000-744b6042b000 rw-p 00000000 00:00 0 +744b605bb000-744b60800000 rw-s 00000000 00:01 8 /memfd:/.nvidia_drv.XXXXXX (deleted) +744b60800000-744b60801000 ---p 00000000 00:00 0 +744b60801000-744b61001000 rw-p 00000000 00:00 0 +744b61200000-744b61216000 r--p 00000000 103:03 4325447 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +744b61216000-744b61306000 r-xp 00016000 103:03 4325447 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +744b61306000-744b61379000 r--p 00106000 103:03 4325447 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +744b61379000-744b61380000 r--p 00178000 103:03 4325447 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +744b61380000-744b61387000 rw-p 0017f000 103:03 4325447 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +744b61387000-744b61402000 rw-p 00000000 00:00 0 +744b61600000-744b6168d000 r--p 00000000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +744b6168d000-744b61df5000 r-xp 0008d000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +744b61df5000-744b62682000 r--p 007f5000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +744b62682000-744b626c4000 r--p 01081000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +744b626c4000-744b626c7000 rw-p 010c3000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +744b626c7000-744b626cd000 rw-p 00000000 00:00 0 +744b62800000-744b6285b000 r--p 00000000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +744b6285b000-744b62bd9000 r-xp 0005b000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +744b62bd9000-744b62fd5000 r--p 003d9000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +744b62fd5000-744b63010000 r--p 007d4000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +744b63010000-744b63015000 rw-p 0080f000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +744b63015000-744b63040000 rw-p 00000000 00:00 0 +744b63200000-744b6326e000 r--p 00000000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +744b6326e000-744b637d5000 r-xp 0006e000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +744b637d5000-744b63ee8000 r--p 005d5000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +744b63ee8000-744b63ee9000 ---p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +744b63ee9000-744b63f26000 r--p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +744b63f26000-744b63f29000 rw-p 00d25000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +744b63f29000-744b63f2b000 rw-p 00000000 00:00 0 +744b64000000-744b643c0000 rw-p 00000000 00:00 0 +744b643c0000-744b64400000 ---p 00000000 00:00 0 +744b64400000-744b64830000 rw-p 00000000 00:00 0 +744b64830000-744b68000000 ---p 00000000 00:00 0 +744b68000000-744b68021000 rw-p 00000000 00:00 0 +744b68021000-744b6c000000 ---p 00000000 00:00 0 +744b6c200000-744b6c201000 r--p 00000000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +744b6c201000-744b6c202000 r-xp 00001000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +744b6c202000-744b6de1c000 r--p 00002000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +744b6de1c000-744b6de1d000 r--p 01c1b000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +744b6de1d000-744b6de1e000 rw-p 01c1c000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +744b6df00000-744b6df04000 ---p 00000000 00:00 0 +744b6df04000-744b6e000000 rw-p 00000000 00:00 0 +744b6e000000-744b6ed91000 rw-p 00001000 103:03 10498862 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/classes.jsa +744b6ed91000-744b6f000000 ---p 00000000 00:00 0 +744b6f000000-744b6f030000 rw-p 00000000 00:00 0 +744b6f030000-744b6f0b0000 rw-p 00000000 00:00 0 +744b6f0b0000-744b6f0e0000 rw-p 00000000 00:00 0 +744b6f0e0000-744baf000000 ---p 00000000 00:00 0 +744baf018000-744baf159000 rw-s 00000000 103:03 13372247 /home/codex/.cache/mesa_shader_cache/index +744baf159000-744baf15b000 r--p 00000000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +744baf15b000-744baf164000 r-xp 00002000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +744baf164000-744baf167000 r--p 0000b000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +744baf167000-744baf168000 ---p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +744baf168000-744baf169000 r--p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +744baf169000-744baf16a000 rw-p 0000f000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +744baf16a000-744baf16c000 rw-p 00000000 00:00 0 +744baf16c000-744baf170000 r--p 00000000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +744baf170000-744baf180000 r-xp 00004000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +744baf180000-744baf183000 r--p 00014000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +744baf183000-744baf184000 r--p 00016000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +744baf184000-744baf185000 rw-p 00017000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +744baf185000-744baf189000 ---p 00000000 00:00 0 +744baf189000-744baf285000 rw-p 00000000 00:00 0 +744baf285000-744baf289000 ---p 00000000 00:00 0 +744baf289000-744baf385000 rw-p 00000000 00:00 0 +744baf385000-744baf396000 r--p 00000000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +744baf396000-744baf3d8000 r-xp 00011000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +744baf3d8000-744baf3f0000 r--p 00053000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +744baf3f0000-744baf3fe000 r--p 0006a000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +744baf3fe000-744baf400000 rw-p 00078000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +744baf400000-744baf493000 r--p 00000000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +744baf493000-744baf8e6000 r-xp 00093000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +744baf8e6000-744bafdfc000 r--p 004e6000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +744bafdfc000-744bafe34000 r--p 009fb000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +744bafe34000-744bafe44000 rw-p 00a33000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +744bafe44000-744bafe49000 rw-p 00000000 00:00 0 +744bafe55000-744bafe59000 r--p 00000000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +744bafe59000-744bafe75000 r-xp 00004000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +744bafe75000-744bafe7b000 r--p 00020000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +744bafe7b000-744bafe7c000 ---p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +744bafe7c000-744bafe7e000 r--p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +744bafe7e000-744bafe7f000 rw-p 00028000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +744bafe7f000-744bafe8b000 r--p 00000000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +744bafe8b000-744bafeab000 r-xp 0000c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +744bafeab000-744bafeb7000 r--p 0002c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +744bafeb7000-744bafec1000 r--p 00037000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +744bafec1000-744bafec2000 rw-p 00041000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +744bafec2000-744bafed1000 r--p 00000000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +744bafed1000-744baffb7000 r-xp 0000f000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +744baffb7000-744bafff5000 r--p 000f5000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +744bafff5000-744bafff6000 ---p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +744bafff6000-744bafff9000 r--p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +744bafff9000-744baffff000 rw-p 00136000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +744baffff000-744bb0000000 rw-p 00000000 00:00 0 +744bb0000000-744bb0021000 rw-p 00000000 00:00 0 +744bb0021000-744bb4000000 ---p 00000000 00:00 0 +744bb4000000-744bb4021000 rw-p 00000000 00:00 0 +744bb4021000-744bb8000000 ---p 00000000 00:00 0 +744bb8026000-744bb8028000 r--p 00000000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +744bb8028000-744bb8093000 r-xp 00002000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +744bb8093000-744bb80bb000 r--p 0006d000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +744bb80bb000-744bb80bc000 r--p 00094000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +744bb80bc000-744bb80bd000 rw-p 00095000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +744bb80bd000-744bb80c3000 r--p 00000000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +744bb80c3000-744bb80dd000 r-xp 00006000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +744bb80dd000-744bb80e4000 r--p 00020000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +744bb80e4000-744bb80e5000 ---p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +744bb80e5000-744bb80e6000 r--p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +744bb80e6000-744bb80e7000 rw-p 00028000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +744bb80e7000-744bb80e9000 rw-p 00000000 00:00 0 +744bb80e9000-744bb80fc000 r--p 00000000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +744bb80fc000-744bb811b000 r-xp 00013000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +744bb811b000-744bb8128000 r--p 00032000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +744bb8128000-744bb8138000 r--p 0003e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +744bb8138000-744bb8139000 rw-p 0004e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +744bb8139000-744bb814c000 r--p 00000000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +744bb814c000-744bb81cb000 r-xp 00013000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +744bb81cb000-744bb81f6000 r--p 00092000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +744bb81f6000-744bb81f7000 ---p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +744bb81f7000-744bb81fe000 r--p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +744bb81fe000-744bb81ff000 rw-p 000c4000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +744bb81ff000-744bb8b22000 rw-p 00000000 00:00 0 +744bb8b27000-744bb8b31000 r--p 00000000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +744bb8b31000-744bb8b3b000 r-xp 0000a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +744bb8b3b000-744bb8b42000 r--p 00014000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +744bb8b42000-744bb8b4b000 r--p 0001a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +744bb8b4b000-744bb8b4c000 rw-p 00023000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +744bb8b4c000-744bb8b57000 r--p 00000000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +744bb8b57000-744bb8b85000 r-xp 0000b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +744bb8b85000-744bb8b97000 r--p 00039000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +744bb8b97000-744bb8b98000 ---p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +744bb8b98000-744bb8b99000 r--p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +744bb8b99000-744bb8b9a000 rw-p 0004c000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +744bb8b9a000-744bb8b9e000 r--p 00000000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +744bb8b9e000-744bb8bb4000 r-xp 00004000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +744bb8bb4000-744bb8bbe000 r--p 0001a000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +744bb8bbe000-744bb8bbf000 r--p 00023000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +744bb8bbf000-744bb8bc0000 rw-p 00024000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +744bb8bc0000-744bb8bc2000 r--p 00000000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +744bb8bc2000-744bb8bdb000 r-xp 00002000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +744bb8bdb000-744bb8bdd000 r--p 0001b000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +744bb8bdd000-744bb8bde000 ---p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +744bb8bde000-744bb8bdf000 r--p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +744bb8bdf000-744bb8be0000 rw-p 0001e000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +744bb8bee000-744bb8bf7000 rw-s 00000000 00:01 904560 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) +744bb8bf7000-744bb8c00000 rw-s 00000000 00:01 904559 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) +744bb8c00000-744bb8c01000 ---p 00000000 00:00 0 +744bb8c01000-744bb9401000 rw-p 00000000 00:00 0 +744bb9405000-744bb946b000 r--p 00000000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +744bb946b000-744bb955e000 r-xp 00066000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +744bb955e000-744bb95ea000 r--p 00159000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +744bb95ea000-744bb95fd000 r--p 001e4000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +744bb95fd000-744bb95fe000 rw-p 001f7000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +744bb95fe000-744bb9600000 rw-p 00000000 00:00 0 +744bb9600000-744bb97c4000 r--p 00000000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +744bb97c4000-744bbb4c4000 r-xp 001c4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +744bbb4c4000-744bbbb39000 r--p 01ec4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +744bbbb39000-744bbbb3a000 ---p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +744bbbb3a000-744bbbd1a000 r--p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +744bbbd1a000-744bbbd93000 rw-p 02719000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +744bbbd93000-744bbbe08000 rw-p 00000000 00:00 0 +744bbbe09000-744bbbe0d000 r--p 00000000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +744bbbe0d000-744bbbe22000 r-xp 00004000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +744bbbe22000-744bbbe28000 r--p 00019000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +744bbbe28000-744bbbe29000 ---p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +744bbbe29000-744bbbe2b000 r--p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +744bbbe2b000-744bbbe2c000 rw-p 00021000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +744bbbe2c000-744bbbe5f000 r--p 00000000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +744bbbe5f000-744bbbec2000 r-xp 00033000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +744bbbec2000-744bbbee1000 r--p 00096000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +744bbbee1000-744bbbf0c000 r--p 000b4000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +744bbbf0c000-744bbbf0d000 rw-p 000df000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +744bbbf0d000-744bbbf0e000 rw-p 00000000 00:00 0 +744bbbf0e000-744bbbfcf000 r-xp 00000000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +744bbbfcf000-744bbbfd0000 r--p 000c0000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +744bbbfd0000-744bbbfdb000 rw-p 000c1000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +744bbbfdb000-744bbc000000 rw-p 00000000 00:00 0 +744bbc000000-744bbc021000 rw-p 00000000 00:00 0 +744bbc021000-744bc0000000 ---p 00000000 00:00 0 +744bc0000000-744bc0021000 rw-p 00000000 00:00 0 +744bc0021000-744bc4000000 ---p 00000000 00:00 0 +744bc4006000-744bc4008000 r--p 00000000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +744bc4008000-744bc400c000 r-xp 00002000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +744bc400c000-744bc400e000 r--p 00006000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +744bc400e000-744bc400f000 r--p 00007000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +744bc400f000-744bc4010000 rw-p 00008000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +744bc4010000-744bc4012000 r--p 00000000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +744bc4012000-744bc401a000 r-xp 00002000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +744bc401a000-744bc401c000 r--p 0000a000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +744bc401c000-744bc401d000 r--p 0000b000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +744bc401d000-744bc401e000 rw-p 0000c000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +744bc401e000-744bc404d000 r--p 00000000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +744bc404d000-744bc41a0000 r-xp 0002f000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +744bc41a0000-744bc41f4000 r--p 00182000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +744bc41f4000-744bc41f5000 ---p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +744bc41f5000-744bc41fe000 r--p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +744bc41fe000-744bc41ff000 rw-p 001df000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +744bc41ff000-744bc4200000 rw-p 00000000 00:00 0 +744bc4200000-744bc429a000 r--p 00000000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +744bc429a000-744bc43ab000 r-xp 0009a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +744bc43ab000-744bc441a000 r--p 001ab000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +744bc441a000-744bc441b000 ---p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +744bc441b000-744bc4426000 r--p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +744bc4426000-744bc4429000 rw-p 00225000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +744bc4429000-744bc442c000 rw-p 00000000 00:00 0 +744bc4431000-744bc4433000 r--p 00000000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +744bc4433000-744bc443b000 r-xp 00002000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +744bc443b000-744bc443c000 r--p 0000a000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +744bc443c000-744bc443d000 ---p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +744bc443d000-744bc443e000 r--p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +744bc443e000-744bc443f000 rw-p 0000c000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +744bc443f000-744bc44af000 r-xp 00000000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +744bc44af000-744bc44b0000 ---p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +744bc44b0000-744bc44b5000 r--p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +744bc44b5000-744bc44b7000 rw-p 00075000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +744bc44b7000-744bc44b9000 rw-p 00000000 00:00 0 +744bc44b9000-744bc44e8000 r--p 00000000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +744bc44e8000-744bc45a4000 r-xp 0002f000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +744bc45a4000-744bc45ef000 r--p 000eb000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +744bc45ef000-744bc45fd000 r--p 00135000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +744bc45fd000-744bc45ff000 rw-p 00143000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +744bc45ff000-744bc4600000 rw-p 00000000 00:00 0 +744bc4600000-744bc4841000 r-xp 00000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +744bc4841000-744bc4862000 rwxp 00241000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +744bc4862000-744bc4a00000 r-xp 00262000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +744bc4a00000-744bc5600000 r-xp 00400000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +744bc5600000-744bc64ab000 r-xp 01000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +744bc64ab000-744bc6610000 r--p 01eaa000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +744bc6610000-744bc667e000 rw-p 0200f000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +744bc667e000-744bc669c000 rw-p 00000000 00:00 0 +744bc66a2000-744bc66a4000 r--p 00000000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +744bc66a4000-744bc66a7000 r-xp 00002000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +744bc66a7000-744bc66a8000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +744bc66a8000-744bc66a9000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +744bc66a9000-744bc66aa000 rw-p 00006000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +744bc66aa000-744bc66ad000 r--p 00000000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +744bc66ad000-744bc66ce000 r-xp 00003000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +744bc66ce000-744bc66da000 r--p 00024000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +744bc66da000-744bc66db000 ---p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +744bc66db000-744bc66dc000 r--p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +744bc66dc000-744bc66dd000 rw-p 00031000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +744bc66dd000-744bc66eb000 r--p 00000000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +744bc66eb000-744bc66fc000 r-xp 0000e000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +744bc66fc000-744bc670a000 r--p 0001f000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +744bc670a000-744bc670e000 r--p 0002c000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +744bc670e000-744bc670f000 rw-p 00030000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +744bc670f000-744bc6717000 r--p 00000000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +744bc6717000-744bc6735000 r-xp 00008000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +744bc6735000-744bc6742000 r--p 00026000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +744bc6742000-744bc6744000 r--p 00032000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +744bc6744000-744bc6745000 rw-p 00034000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +744bc6745000-744bc6749000 rw-p 00000000 00:00 0 +744bc6749000-744bc674c000 r--p 00000000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +744bc674c000-744bc6763000 r-xp 00003000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +744bc6763000-744bc6767000 r--p 0001a000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +744bc6767000-744bc6768000 r--p 0001d000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +744bc6768000-744bc6769000 rw-p 0001e000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +744bc6769000-744bc676d000 r--p 00000000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +744bc676d000-744bc678c000 r-xp 00004000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +744bc678c000-744bc6796000 r--p 00023000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +744bc6796000-744bc6797000 ---p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +744bc6797000-744bc6799000 r--p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +744bc6799000-744bc679a000 rw-p 0002f000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +744bc679a000-744bc679f000 r--p 00000000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +744bc679f000-744bc67aa000 r-xp 00005000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +744bc67aa000-744bc67ae000 r--p 00010000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +744bc67ae000-744bc67af000 ---p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +744bc67af000-744bc67b0000 r--p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +744bc67b0000-744bc67b1000 rw-p 00015000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +744bc67b1000-744bc67bb000 r--p 00000000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +744bc67bb000-744bc686d000 r-xp 0000a000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +744bc686d000-744bc687e000 r--p 000bc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +744bc687e000-744bc687f000 r--p 000cc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +744bc687f000-744bc6880000 rw-p 000cd000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +744bc6880000-744bc6890000 r--p 00000000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +744bc6890000-744bc68ee000 r-xp 00010000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +744bc68ee000-744bc690a000 r--p 0006e000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +744bc690a000-744bc690b000 ---p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +744bc690b000-744bc6911000 r--p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +744bc6911000-744bc6912000 rw-p 00090000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +744bc6912000-744bc691a000 rw-p 00000000 00:00 0 +744bc691a000-744bc696b000 r--p 00000000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +744bc696b000-744bc69c7000 r-xp 00051000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +744bc69c7000-744bc69fc000 rwxp 000ad000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +744bc69fc000-744bc69fd000 r-xp 000e2000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +744bc69fd000-744bc6a1d000 r--p 000e3000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +744bc6a1d000-744bc6a3d000 r--p 00102000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +744bc6a3d000-744bc6a42000 rw-p 00122000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +744bc6a42000-744bc6a44000 rw-p 00000000 00:00 0 +744bc6a44000-744bc6a4a000 r--p 00000000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +744bc6a4a000-744bc6a94000 r-xp 00006000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +744bc6a94000-744bc6abe000 r--p 00050000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +744bc6abe000-744bc6abf000 r--p 00079000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +744bc6abf000-744bc6ac0000 rw-p 0007a000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +744bc6ac0000-744bc6ad9000 r--p 00000000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +744bc6ad9000-744bc6b65000 r-xp 00019000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +744bc6b65000-744bc6bfa000 r--p 000a5000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +744bc6bfa000-744bc6bfb000 ---p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +744bc6bfb000-744bc6bfc000 r--p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +744bc6bfc000-744bc6c00000 rw-p 0013b000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +744bc6c00000-744bc7000000 rw-p 00000000 00:00 0 +744bc7002000-744bc7004000 r--p 00000000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +744bc7004000-744bc700b000 r-xp 00002000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +744bc700b000-744bc700c000 r--p 00009000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +744bc700c000-744bc700d000 ---p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +744bc700d000-744bc700e000 r--p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +744bc700e000-744bc700f000 rw-p 0000b000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +744bc700f000-744bc7010000 r--p 00000000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +744bc7010000-744bc7011000 r-xp 00001000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +744bc7011000-744bc7012000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +744bc7012000-744bc7013000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +744bc7013000-744bc7014000 rw-p 00003000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +744bc7014000-744bc7015000 r--p 00000000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +744bc7015000-744bc7016000 r-xp 00001000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +744bc7016000-744bc7017000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +744bc7017000-744bc7018000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +744bc7018000-744bc7019000 rw-p 00003000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +744bc7019000-744bc701c000 r--p 00000000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +744bc701c000-744bc701f000 r-xp 00003000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +744bc701f000-744bc7020000 r--p 00006000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +744bc7020000-744bc7021000 ---p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +744bc7021000-744bc7022000 r--p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +744bc7022000-744bc7023000 rw-p 00008000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +744bc7023000-744bc7026000 r--p 00000000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +744bc7026000-744bc7029000 r-xp 00003000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +744bc7029000-744bc702a000 r--p 00006000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +744bc702a000-744bc702b000 ---p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +744bc702b000-744bc702c000 r--p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +744bc702c000-744bc702d000 rw-p 00008000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +744bc702d000-744bc7032000 r--p 00000000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +744bc7032000-744bc7038000 r-xp 00005000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +744bc7038000-744bc703b000 r--p 0000b000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +744bc703b000-744bc703d000 r--p 0000d000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +744bc703d000-744bc703e000 rw-p 0000f000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +744bc703e000-744bc7041000 r--p 00000000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +744bc7041000-744bc7055000 r-xp 00003000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +744bc7055000-744bc7059000 r--p 00017000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +744bc7059000-744bc705a000 ---p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +744bc705a000-744bc705b000 r--p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +744bc705b000-744bc705c000 rw-p 0001c000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +744bc705c000-744bc705f000 r--p 00000000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +744bc705f000-744bc7065000 r-xp 00003000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +744bc7065000-744bc7067000 r--p 00009000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +744bc7067000-744bc7068000 r--p 0000a000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +744bc7068000-744bc7069000 rw-p 0000b000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +744bc7069000-744bc7079000 r--p 00000000 103:03 4325445 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +744bc7079000-744bc709a000 r-xp 00010000 103:03 4325445 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +744bc709a000-744bc70d6000 r--p 00031000 103:03 4325445 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +744bc70d6000-744bc70da000 r--p 0006c000 103:03 4325445 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +744bc70da000-744bc70dd000 rw-p 00070000 103:03 4325445 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +744bc70dd000-744bc7100000 rw-p 00000000 00:00 0 +744bc7100000-744bc7104000 ---p 00000000 00:00 0 +744bc7104000-744bc7200000 rw-p 00000000 00:00 0 +744bc7200000-744bc7a00000 rw-p 00000000 00:00 0 +744bc7a00000-744bc7a08000 r--p 00000000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +744bc7a08000-744bc7a60000 r-xp 00008000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +744bc7a60000-744bc7a71000 r--p 00060000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +744bc7a71000-744bc7a72000 ---p 00071000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +744bc7a72000-744bc7a78000 r--p 00071000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +744bc7a78000-744bc7a79000 rw-p 00077000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +744bc7a79000-744bc7c83000 rw-p 00000000 00:00 0 +744bc7c84000-744bc7cb0000 r--p 00000000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +744bc7cb0000-744bc7ce4000 r-xp 0002c000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +744bc7ce4000-744bc7cfe000 r--p 00060000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +744bc7cfe000-744bc7cff000 r--p 00079000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +744bc7cff000-744bc7d00000 rw-p 0007a000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +744bc7d00000-744bc7d04000 ---p 00000000 00:00 0 +744bc7d04000-744bc7e00000 rw-p 00000000 00:00 0 +744bc7e00000-744bc7e04000 ---p 00000000 00:00 0 +744bc7e04000-744bc7f00000 rw-p 00000000 00:00 0 +744bc7f00000-744bc7f04000 ---p 00000000 00:00 0 +744bc7f04000-744bc8000000 rw-p 00000000 00:00 0 +744bc8000000-744bc8021000 rw-p 00000000 00:00 0 +744bc8021000-744bcc000000 ---p 00000000 00:00 0 +744bcc000000-744bcc004000 ---p 00000000 00:00 0 +744bcc004000-744bcc100000 rw-p 00000000 00:00 0 +744bcc100000-744bcc104000 ---p 00000000 00:00 0 +744bcc104000-744bcc200000 rw-p 00000000 00:00 0 +744bcc200000-744bcc204000 ---p 00000000 00:00 0 +744bcc204000-744bcc300000 rw-p 00000000 00:00 0 +744bcc300000-744bcc304000 ---p 00000000 00:00 0 +744bcc304000-744bcc400000 rw-p 00000000 00:00 0 +744bcc400000-744bcc404000 ---p 00000000 00:00 0 +744bcc404000-744bcc500000 rw-p 00000000 00:00 0 +744bcc500000-744bcc504000 ---p 00000000 00:00 0 +744bcc504000-744bcc600000 rw-p 00000000 00:00 0 +744bcc600000-744bcd506000 r--p 00000000 103:03 10618858 /usr/lib/locale/locale-archive +744bcd50a000-744bcd50b000 r--p 00000000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +744bcd50b000-744bcd50c000 r-xp 00001000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +744bcd50c000-744bcd50d000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +744bcd50d000-744bcd50e000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +744bcd50e000-744bcd50f000 rw-p 00003000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +744bcd50f000-744bcd51a000 r--p 00000000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +744bcd51a000-744bcd523000 r-xp 0000b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +744bcd523000-744bcd528000 r--p 00014000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +744bcd528000-744bcd529000 ---p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +744bcd529000-744bcd52b000 r--p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +744bcd52b000-744bcd52c000 rw-p 0001b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +744bcd52c000-744bcd5fa000 r-xp 00000000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +744bcd5fa000-744bcd5fb000 r--p 000cd000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +744bcd5fb000-744bcd5fc000 rw-p 000ce000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +744bcd5fc000-744bcd5fd000 ---p 00000000 00:00 0 +744bcd5fd000-744bcd6fd000 rw-p 00000000 00:00 0 +744bcd6fd000-744bcd6fe000 ---p 00000000 00:00 0 +744bcd6fe000-744bcd7fe000 rw-p 00000000 00:00 0 +744bcd7fe000-744bcd7ff000 ---p 00000000 00:00 0 +744bcd7ff000-744bcd8ff000 rw-p 00000000 00:00 0 +744bcd8ff000-744bcd900000 ---p 00000000 00:00 0 +744bcd900000-744bcda00000 rw-p 00000000 00:00 0 +744bcda00000-744bd01d0000 rw-p 00000000 00:00 0 +744bd01d0000-744bd76f0000 ---p 00000000 00:00 0 +744bd76f0000-744bd7700000 rw-p 00000000 00:00 0 +744bd7700000-744bd7704000 ---p 00000000 00:00 0 +744bd7704000-744bd7800000 rw-p 00000000 00:00 0 +744bd7800000-744bd78fa000 rw-p 00000000 00:00 0 +744bd78fa000-744bd879e000 ---p 00000000 00:00 0 +744bd879e000-744bd87a0000 rw-p 00000000 00:00 0 +744bd87a0000-744bd87a1000 r--s 00000000 00:06 1017 /dev/nvidiactl +744bd87a1000-744bd87a3000 r--p 00000000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +744bd87a3000-744bd87a5000 r-xp 00002000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +744bd87a5000-744bd87a6000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +744bd87a6000-744bd87a7000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +744bd87a7000-744bd87a8000 rw-p 00005000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +744bd87a8000-744bd87af000 r--p 00000000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +744bd87af000-744bd87b5000 r-xp 00007000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +744bd87b5000-744bd87b8000 r--p 0000d000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +744bd87b8000-744bd87b9000 ---p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +744bd87b9000-744bd87ba000 r--p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +744bd87ba000-744bd87bb000 rw-p 00011000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +744bd87bb000-744bd87bc000 r--p 00000000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +744bd87bc000-744bd87be000 r-xp 00001000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +744bd87be000-744bd87bf000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +744bd87bf000-744bd87c0000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +744bd87c0000-744bd87c1000 rw-p 00004000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +744bd87c1000-744bd87c2000 r--p 00000000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +744bd87c2000-744bd87c3000 r-xp 00001000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +744bd87c3000-744bd87c4000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +744bd87c4000-744bd87c5000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +744bd87c5000-744bd87c6000 rw-p 00003000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +744bd87c6000-744bd87c8000 r--p 00000000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +744bd87c8000-744bd87ce000 r-xp 00002000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +744bd87ce000-744bd87d0000 r--p 00008000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +744bd87d0000-744bd87d1000 r--p 00009000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +744bd87d1000-744bd87d2000 rw-p 0000a000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +744bd87d2000-744bd87d4000 r--p 00000000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +744bd87d4000-744bd87db000 r-xp 00002000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +744bd87db000-744bd87dd000 r--p 00009000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +744bd87dd000-744bd87de000 r--p 0000a000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +744bd87de000-744bd87df000 rw-p 0000b000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +744bd87df000-744bd87e1000 r--p 00000000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +744bd87e1000-744bd87e8000 r-xp 00002000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +744bd87e8000-744bd87ea000 r--p 00009000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +744bd87ea000-744bd87eb000 r--p 0000a000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +744bd87eb000-744bd87ec000 rw-p 0000b000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +744bd87ec000-744bd87ef000 r--p 00000000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +744bd87ef000-744bd87fb000 r-xp 00003000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +744bd87fb000-744bd87fe000 r--p 0000f000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +744bd87fe000-744bd87ff000 r--p 00011000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +744bd87ff000-744bd8800000 rw-p 00012000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +744bd8800000-744bd8a70000 rwxp 00000000 00:00 0 +744bd8a70000-744bdfd37000 ---p 00000000 00:00 0 +744bdfd37000-744bdffa7000 rwxp 00000000 00:00 0 +744bdffa7000-744be02c8000 ---p 00000000 00:00 0 +744be02c8000-744be0538000 rwxp 00000000 00:00 0 +744be0538000-744be7800000 ---p 00000000 00:00 0 +744be7800000-744beffb5000 r--s 00000000 103:03 10498840 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/modules +744beffb5000-744beffb6000 rw-s 00000000 00:01 5128 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) +744beffb6000-744beffb7000 rw-s 00000000 00:01 905529 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=4096 (deleted) +744beffb7000-744beffb9000 r--p 00000000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +744beffb9000-744beffbc000 r-xp 00002000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +744beffbc000-744beffbd000 r--p 00005000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +744beffbd000-744beffbe000 r--p 00006000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +744beffbe000-744beffbf000 rw-p 00007000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +744beffbf000-744beffc3000 r--p 00000000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +744beffc3000-744beffce000 r-xp 00004000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +744beffce000-744beffd2000 r--p 0000f000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +744beffd2000-744beffd3000 r--p 00012000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +744beffd3000-744beffd4000 rw-p 00013000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +744beffd4000-744beffd5000 r--p 00000000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +744beffd5000-744beffd8000 r-xp 00001000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +744beffd8000-744beffd9000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +744beffd9000-744beffda000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +744beffda000-744beffdb000 rw-p 00005000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +744beffdb000-744beffdd000 r--p 00000000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +744beffdd000-744beffe4000 r-xp 00002000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +744beffe4000-744beffe6000 r--p 00009000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +744beffe6000-744beffe7000 r--p 0000a000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +744beffe7000-744beffe8000 rw-p 0000b000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +744beffe8000-744beffec000 r--p 00000000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +744beffec000-744befff9000 r-xp 00004000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +744befff9000-744befffc000 r--p 00011000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +744befffc000-744befffd000 ---p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +744befffd000-744befffe000 r--p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +744befffe000-744beffff000 rw-p 00015000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +744beffff000-744bf0000000 rw-p 00000000 00:00 0 +744bf0000000-744bf05c5000 rw-p 00000000 00:00 0 +744bf05c5000-744bf4000000 ---p 00000000 00:00 0 +744bf4000000-744bf4001000 rw-s 00000000 00:01 905528 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) +744bf4001000-744bf4003000 r--p 00000000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +744bf4003000-744bf4005000 r-xp 00002000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +744bf4005000-744bf4007000 r--p 00004000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +744bf4007000-744bf4008000 r--p 00005000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +744bf4008000-744bf4009000 rw-p 00006000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +744bf4009000-744bf4014000 r--p 00000000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +744bf4014000-744bf4028000 r-xp 0000b000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +744bf4028000-744bf4031000 r--p 0001f000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +744bf4031000-744bf4032000 r--p 00027000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +744bf4032000-744bf4033000 rw-p 00028000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +744bf4033000-744bf4071000 r-xp 00000000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +744bf4071000-744bf4072000 ---p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +744bf4072000-744bf4073000 r--p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +744bf4073000-744bf4074000 rw-p 0003f000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +744bf4074000-744bf48fd000 rw-p 00000000 00:00 0 +744bf48fd000-744bf48fe000 ---p 00000000 00:00 0 +744bf48fe000-744bf49fe000 rw-p 00000000 00:00 0 +744bf49fe000-744bf49ff000 ---p 00000000 00:00 0 +744bf49ff000-744bf4aff000 rw-p 00000000 00:00 0 +744bf4aff000-744bf4b00000 ---p 00000000 00:00 0 +744bf4b00000-744bf4c00000 rw-p 00000000 00:00 0 +744bf4c00000-744bf4cfa000 rw-p 00000000 00:00 0 +744bf4cfa000-744bf5b9e000 ---p 00000000 00:00 0 +744bf5b9e000-744bf5ba0000 rw-p 00000000 00:00 0 +744bf5ba0000-744bf5ba1000 r--p 00000000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +744bf5ba1000-744bf5ba3000 r-xp 00001000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +744bf5ba3000-744bf5ba4000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +744bf5ba4000-744bf5ba5000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +744bf5ba5000-744bf5ba6000 rw-p 00004000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +744bf5ba6000-744bf5bad000 r--s 00000000 103:03 11147989 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache +744bf5bad000-744bf5bae000 r--p 00000000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +744bf5bae000-744bf5bb1000 r-xp 00001000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +744bf5bb1000-744bf5bb2000 r--p 00004000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +744bf5bb2000-744bf5bb3000 ---p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +744bf5bb3000-744bf5bb4000 r--p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +744bf5bb4000-744bf5bb5000 rw-p 00006000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +744bf5bb5000-744bf5bb8000 r--p 00000000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +744bf5bb8000-744bf5bbc000 r-xp 00003000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +744bf5bbc000-744bf5bbe000 r--p 00007000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +744bf5bbe000-744bf5bbf000 r--p 00008000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +744bf5bbf000-744bf5bc0000 rw-p 00009000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +744bf5bc0000-744bf5bc1000 r--p 00000000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +744bf5bc1000-744bf5bc3000 r-xp 00001000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +744bf5bc3000-744bf5bc4000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +744bf5bc4000-744bf5bc5000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +744bf5bc5000-744bf5bc6000 rw-p 00004000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +744bf5bc6000-744bf652f000 rw-p 00000000 00:00 0 +744bf652f000-744bf6615000 ---p 00000000 00:00 0 +744bf6615000-744bf661a000 rw-p 00000000 00:00 0 +744bf661a000-744bf6700000 ---p 00000000 00:00 0 +744bf6700000-744bf6704000 ---p 00000000 00:00 0 +744bf6704000-744bf6800000 rw-p 00000000 00:00 0 +744bf6800000-744bf7b30000 r-xp 00000000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so +744bf7b30000-744bf7c00000 r--p 0132f000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so +744bf7c00000-744bf7c2e000 rw-p 013ff000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so +744bf7c2e000-744bf7ca4000 rw-p 00000000 00:00 0 +744bf7ca4000-744bf7ca5000 r--p 00000000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +744bf7ca5000-744bf7ca6000 r-xp 00001000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +744bf7ca6000-744bf7ca7000 r--p 00002000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +744bf7ca7000-744bf7ca8000 r--p 00003000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +744bf7ca8000-744bf7ca9000 rw-p 00004000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +744bf7ca9000-744bf7cb4000 r-xp 00000000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +744bf7cb4000-744bf7cb5000 ---p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +744bf7cb5000-744bf7cb6000 r--p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +744bf7cb6000-744bf7cb7000 rw-p 0000c000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +744bf7cb7000-744bf7cf6000 rw-p 00000000 00:00 0 +744bf7cf6000-744bf7d16000 r-xp 00000000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +744bf7d16000-744bf7d17000 r--p 0001f000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +744bf7d17000-744bf7d18000 rw-p 00020000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +744bf7d18000-744bf7d19000 rw-p 00000000 00:00 0 +744bf7d19000-744bf7d27000 r--p 00000000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +744bf7d27000-744bf7da3000 r-xp 0000e000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +744bf7da3000-744bf7dfe000 r--p 0008a000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +744bf7dfe000-744bf7dff000 r--p 000e4000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +744bf7dff000-744bf7e00000 rw-p 000e5000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +744bf7e00000-744bf7e28000 r--p 00000000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +744bf7e28000-744bf7fbd000 r-xp 00028000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +744bf7fbd000-744bf8015000 r--p 001bd000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +744bf8015000-744bf8016000 ---p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +744bf8016000-744bf801a000 r--p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +744bf801a000-744bf801c000 rw-p 00219000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +744bf801c000-744bf8029000 rw-p 00000000 00:00 0 +744bf8029000-744bf802a000 rw-s 00000000 00:01 902416 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) +744bf802a000-744bf802b000 r-xp 00000000 00:00 0 +744bf802b000-744bf802c000 rw-p 00000000 00:00 0 +744bf802c000-744bf802d000 r-xp 0005e000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +744bf802d000-744bf802e000 rw-p 00000000 00:00 0 +744bf802e000-744bf8041000 r-xp 00000000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +744bf8041000-744bf8042000 ---p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +744bf8042000-744bf8043000 r--p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +744bf8043000-744bf8044000 rw-p 00014000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +744bf8044000-744bf8062000 r-xp 00000000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +744bf8062000-744bf8064000 r--p 0001d000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +744bf8064000-744bf8065000 rw-p 0001f000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +744bf8065000-744bf8066000 r--p 00000000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +744bf8066000-744bf8067000 r-xp 00001000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +744bf8067000-744bf8068000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +744bf8068000-744bf8069000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +744bf8069000-744bf806a000 rw-p 00003000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +744bf806a000-744bf806e000 rw-p 00000000 00:00 0 +744bf806e000-744bf806f000 r--p 00000000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +744bf806f000-744bf8070000 r-xp 00001000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +744bf8070000-744bf8071000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +744bf8071000-744bf8072000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +744bf8072000-744bf8073000 rw-p 00003000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +744bf8073000-744bf8074000 r--p 00000000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +744bf8074000-744bf8075000 r-xp 00001000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +744bf8075000-744bf8076000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +744bf8076000-744bf8077000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +744bf8077000-744bf8078000 rw-p 00003000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +744bf8078000-744bf807a000 r--p 00000000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +744bf807a000-744bf808b000 r-xp 00002000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +744bf808b000-744bf8091000 r--p 00013000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +744bf8091000-744bf8092000 ---p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +744bf8092000-744bf8093000 r--p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +744bf8093000-744bf8094000 rw-p 0001a000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +744bf8094000-744bf809b000 r-xp 00000000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +744bf809b000-744bf809c000 ---p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +744bf809c000-744bf809d000 r--p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +744bf809d000-744bf809e000 rw-p 00008000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +744bf809e000-744bf80a3000 rw-p 00000000 00:00 0 +744bf80a3000-744bf80aa000 ---p 00000000 00:00 0 +744bf80aa000-744bf80b2000 rw-s 00000000 103:03 4325438 /tmp/hsperfdata_codex/77449 +744bf80b2000-744bf80b3000 ---p 00000000 00:00 0 +744bf80b3000-744bf80b4000 r--p 00000000 00:00 0 +744bf80b4000-744bf80c3000 r-xp 00000000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so +744bf80c3000-744bf80c4000 r--p 0000e000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so +744bf80c4000-744bf80c5000 rw-p 0000f000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so +744bf80c5000-744bf80c7000 rw-p 00000000 00:00 0 +744bf80c7000-744bf80cb000 r--p 00000000 00:00 0 [vvar] +744bf80cb000-744bf80cd000 r-xp 00000000 00:00 0 [vdso] +744bf80cd000-744bf80cf000 r--p 00000000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +744bf80cf000-744bf80f9000 r-xp 00002000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +744bf80f9000-744bf8104000 r--p 0002c000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +744bf8104000-744bf8105000 ---p 00000000 00:00 0 +744bf8105000-744bf8107000 r--p 00037000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +744bf8107000-744bf8109000 rw-p 00039000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +7ffd7475d000-7ffd74780000 rw-p 00000000 00:00 0 [stack] +ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall] +Total number of mappings: 719 + + +VM Arguments: +jvm_args: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant +java_command: jme3test.vulkan.VulkanHelperTest +java_class_path (initial): /home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/java/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/groovy/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/resources/main:/home/codex/java/prj/jmonkeyengine/jme3-lwjgl3/build/libs/jme3-lwjgl3-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-desktop/build/libs/jme3-desktop-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-effects/build/libs/jme3-effects-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jbullet/build/libs/jme3-jbullet-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jogg/build/libs/jme3-jogg-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-networking/build/libs/jme3-networking-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-niftygui/build/libs/jme3-niftygui-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins/build/libs/jme3-plugins-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-terrain/build/libs/jme3-terrain-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-awt-dialogs/build/libs/jme3-awt-dialogs-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-core/build/libs/jme3-core-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json-gson/build/libs/jme3-plugins-json-gson-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json/build/libs/jme3-plugins-json-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-testdata/build/libs/jme3-testdata-null-SNAPSHOT.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-examples/1.4.3/4a41c559851c0c5a77ba3a9d1ccc8e6e92207dc7/nifty-examples-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjglx/lwjgl3-awt/0.2.3/2be63e81d6b73300d8203ce7235b2660c62eb3ea/lwjgl3-awt-0.2.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/7119f7d0eeb1e5502ff0ca71d2b4d47317da015/lwjgl-glfw-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/99ef08056feb9627f90425a4d2a22cd9fae8e39b/lwjgl-glfw-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/cfa8f1e96d572ed56da5945adf5167628f5eecdb/lwjgl-glfw-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/797e0965709ad180d9b00c88a086dbda15002203/lwjgl-glfw-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/671adf04a6bc4f792af13892e37f804be30b7070/lwjgl-glfw-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/b54023af492b4c2c72451f3a7aa0f385e9969474/lwjgl-glfw-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/82c8d748a654241b5961ddd1c098e8b648e38a48/lwjgl-glfw-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/399b42b491c5dfa6595ae6fd79dcba61b93538a7/lwjgl-glfw-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jawt/3.3.6/43299e222bd7db5e99254a8e620330954b73c2a6/lwjgl-jawt-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/245910eb57f2444429c74e6bf96030e5ec0a6739/lwjgl-jemalloc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/f9da76351e14a695be172d6915c8a7b2905307f/lwjgl-jemalloc-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c86043a342a33e5d32fabf962578580633db3c6e/lwjgl-jemalloc-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/26f8b467dc2e0f3000d608de3564b572bb46f927/lwjgl-jemalloc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c484cae39a718010dbc7931fe5e12664600a13c2/lwjgl-jemalloc-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1bc2e16e70df7f418d668c2984ac8066f1f6f5b1/lwjgl-jemalloc-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/9a42df0f2e9747815490311d7db7b4a046d5f40/lwjgl-jemalloc-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1f828c1fc06792475850162725433adf5ad001c0/lwjgl-jemalloc-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ad313317ff399fd2a7f4dd74716a68cf3976c6ad/lwjgl-openal-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/9c2b9b660e085bb0b47a4453dc0e26f24a5475e4/lwjgl-openal-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/82f693541d69aa125750bf8be9c4194435c56f03/lwjgl-openal-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ef356c04ef141d4efbde07793f31784f1f1a1bae/lwjgl-openal-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/7830af894fa110e65bf5075deb9183efbdbc50f5/lwjgl-openal-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/fd2c17603c63e8d543cb57d1db77ebd4574f3b7a/lwjgl-openal-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/c39f6827f0bd97601fc4e389801d5c813f59a5f2/lwjgl-openal-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/13f692aec4ae4b2d3c468aa0008472175f0ea1e0/lwjgl-openal-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opencl/3.3.6/93fdcea16d27b1466450e38dc28c8e1b4819ec25/lwjgl-opencl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ac2532612a4df374e9a9282bcf8ce2573018ebbb/lwjgl-opengl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/18dc639ebc94aa5202c2157f7490d28997b697c5/lwjgl-opengl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b0ab1d0e315d2fcc50d6cab7e8feaf4688d5d9a0/lwjgl-opengl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b8dc6467fe232d552793c53dc56f9fa8a385299c/lwjgl-opengl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ee815fbf454b916f13c10fff62e513eb09042ef0/lwjgl-opengl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/44de180f79e0b45c9e5bee10ca7540dcb5ddd373/lwjgl-opengl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/59f708eb4bf0be0204bbc9c06807911724673db6/lwjgl-opengl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/fee4fb2ee786af6530b6f9188205a76bc4e05268/lwjgl-opengl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-vulkan/3.3.6/a403e0931b03b138854bb2ba9c48dab646cba6d8/lwjgl-vulkan-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/9d0964fe2b75f64d9dab9839c2b059b7e8f71115/lwjgl-shaderc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/ab69a0e011f057ed25857c97fa3c87f20ab8f670/lwjgl-shaderc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/ce7721d30cfaf47feaed10213e0c43eb55c49d68/lwjgl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9a29b6a22fc5184604b8cb434ee5d5ecc4bfcbee/lwjgl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/7a6f04e02429ba2f4bda9be191347bb7d3c71127/lwjgl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/dc7db8fc4f1e6563867f9155b9a42d9c73d8992f/lwjgl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/2c9d698e76c3d0fe307d94cc6f428038492f25df/lwjgl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9eeb8887b5e3aa672efd2e1b0973ffa5891a3151/lwjgl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/f14e7a5289d2355822f4f83b3fd38d158c939acd/lwjgl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/832e2964ce74e02e768814a29c06d60645115b9a/lwjgl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/jbullet/1.0.3/362f53e8aa981037c2523ac24eb4d9b190a49036/jbullet-1.0.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/javax.vecmath/vecmath/1.5.2/fd17bc3e67f909573dfc039d8e2abecf407c4e27/vecmath-1.5.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/j-ogg-vorbis/1.0.6/a69d1cf62eaf75b71af61f9c23265d278a966735/j-ogg-vorbis-1.0.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-default-controls/1.4.3/2ccafe0182a73da87657ca24b639b6e8c1accd50/nifty-default-controls-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty/1.4.3/fa9ac16e00d1b375d10f58d1c1eb576950ae8c9d/nifty-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-style-black/1.4.3/c20a02dbdeb0bd9d2be258955fceb55c13185a8/nifty-style-black-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.9.1/2cc2131b98ebfb04e2b2c7dfb84431f4045096b/gson-2.9.1.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/stack-alloc/1.0.2/13cbb10c01ec09d0f5879f988946a97998175dfc/stack-alloc-1.0.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/xpp3/xpp3/1.1.4c/9b988ea84b9e4e9f1874e390ce099b8ac12cfff5/xpp3-1.1.4c.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/2.0.2/516c03b21d50a644d538de0f0369c620989cd8f0/jsr305-2.0.2.jar +Launcher Type: SUN_STANDARD + +[Global flags] + intx CICompilerCount = 4 {product} {ergonomic} + uint ConcGCThreads = 2 {product} {ergonomic} + uint G1ConcRefinementThreads = 8 {product} {ergonomic} + size_t G1HeapRegionSize = 4194304 {product} {ergonomic} + size_t InitialHeapSize = 524288000 {product} {ergonomic} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MarkStackSizeMax = 536870912 {product} {ergonomic} + size_t MaxHeapSize = 8388608000 {product} {ergonomic} + size_t MaxNewSize = 5033164800 {product} {ergonomic} + size_t MinHeapDeltaBytes = 4194304 {product} {ergonomic} + size_t MinHeapSize = 8388608 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 5836800 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 122912768 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 122908672 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + size_t SoftMaxHeapSize = 8388608000 {manageable} {ergonomic} + bool UseCompressedOops = true {product lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags foldmultilines=false + #1: stderr all=off uptime,level,tags foldmultilines=false + +Environment Variables: +PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin +USERNAME=codex +SHELL=/bin/bash +DISPLAY=:1 +LANG=en_US.UTF-8 + +Active Locale: +LC_ALL=en_US.UTF-8 +LC_COLLATE=en_US.UTF-8 +LC_CTYPE=en_US.UTF-8 +LC_MESSAGES=en_US.UTF-8 +LC_MONETARY=en_US.UTF-8 +LC_NUMERIC=en_US.UTF-8 +LC_TIME=en_US.UTF-8 + +Signal Handlers: + SIGSEGV: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGBUS: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGFPE: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGPIPE: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGXFSZ: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGILL: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGUSR2: SR_handler in libjvm.so, mask=00000000000000000000000000000000, flags=SA_RESTART|SA_SIGINFO, blocked + SIGHUP: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGINT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGTERM: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGQUIT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGTRAP: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + + +Periodic native trim disabled + +--------------- S Y S T E M --------------- + +OS: +DISTRIB_ID=Pop +DISTRIB_RELEASE=22.04 +DISTRIB_CODENAME=jammy +DISTRIB_DESCRIPTION="Pop!_OS 22.04 LTS" +uname: Linux 6.9.3-76060903-generic #202405300957~1726766035~22.04~4092a0e SMP PREEMPT_DYNAMIC Thu S x86_64 +OS uptime: 0 days 15:09 hours +libc: glibc 2.35 NPTL 2.35 +rlimit (soft/hard): STACK 8192k/infinity , CORE 0k/infinity , NPROC 127655/127655 , NOFILE 1048576/1048576 , AS infinity/infinity , CPU infinity/infinity , DATA infinity/infinity , FSIZE infinity/infinity , MEMLOCK 4095956k/4095956k +load average: 1.73 1.04 1.12 + +/proc/meminfo: +MemTotal: 32767656 kB +MemFree: 19696668 kB +MemAvailable: 22349024 kB +Buffers: 331384 kB +Cached: 4282304 kB +SwapCached: 0 kB +Active: 10072868 kB +Inactive: 2105852 kB +Active(anon): 7594960 kB +Inactive(anon): 0 kB +Active(file): 2477908 kB +Inactive(file): 2105852 kB +Unevictable: 15148 kB +Mlocked: 16 kB +SwapTotal: 20970996 kB +SwapFree: 20970996 kB +Zswap: 0 kB +Zswapped: 0 kB +Dirty: 15100 kB +Writeback: 0 kB +AnonPages: 7580348 kB +Mapped: 1830520 kB +Shmem: 29636 kB +KReclaimable: 176052 kB +Slab: 355840 kB +SReclaimable: 176052 kB +SUnreclaim: 179788 kB +KernelStack: 20232 kB +PageTables: 51972 kB +SecPageTables: 0 kB +NFS_Unstable: 0 kB +Bounce: 0 kB +WritebackTmp: 0 kB +CommitLimit: 37354824 kB +Committed_AS: 13813280 kB +VmallocTotal: 34359738367 kB +VmallocUsed: 249800 kB +VmallocChunk: 0 kB +Percpu: 9152 kB +HardwareCorrupted: 0 kB +AnonHugePages: 0 kB +ShmemHugePages: 6144 kB +ShmemPmdMapped: 0 kB +FileHugePages: 0 kB +FilePmdMapped: 0 kB +Unaccepted: 0 kB +HugePages_Total: 0 +HugePages_Free: 0 +HugePages_Rsvd: 0 +HugePages_Surp: 0 +Hugepagesize: 2048 kB +Hugetlb: 0 kB +DirectMap4k: 796472 kB +DirectMap2M: 12736512 kB +DirectMap1G: 19922944 kB + +/sys/kernel/mm/transparent_hugepage/enabled: always [madvise] never +/sys/kernel/mm/transparent_hugepage/hpage_pmd_size: 2097152 +/sys/kernel/mm/transparent_hugepage/shmem_enabled: always within_size advise [never] deny force +/sys/kernel/mm/transparent_hugepage/defrag (defrag/compaction efforts parameter): always defer defer+madvise [madvise] never + +Process Memory: +Virtual Size: 12252976K (peak: 12315664K) +Resident Set Size: 232084K (peak: 232084K) (anon: 114836K, file: 117248K, shmem: 0K) +Swapped out: 0K +C-Heap outstanding allocations: 58799K, retained: 8528K +glibc malloc tunables: (default) + +/proc/sys/kernel/threads-max (system-wide limit on the number of threads): 255310 +/proc/sys/vm/max_map_count (maximum number of memory map areas a process may have): 2147483642 +/proc/sys/vm/swappiness (control to define how aggressively the kernel swaps out anonymous memory): 180 +/proc/sys/kernel/pid_max (system-wide limit on number of process identifiers): 4194304 + +container (cgroup) information: +container_type: cgroupv2 +cpu_cpuset_cpus: not supported +cpu_memory_nodes: not supported +active_processor_count: 8 +cpu_quota: not supported +cpu_period: not supported +cpu_shares: not supported +memory_limit_in_bytes: unlimited +memory_and_swap_limit_in_bytes: unlimited +memory_soft_limit_in_bytes: 0 +memory_usage_in_bytes: 5940604 k +memory_max_usage_in_bytes: not supported +rss_usage_in_bytes: 4078804 k +cache_usage_in_bytes: 1788376 k +memory_swap_current_in_bytes: 0 +memory_swap_max_limit_in_bytes: unlimited +maximum number of tasks: 38296 +current number of tasks: 302 + +Steal ticks since vm start: 0 +Steal ticks percentage since vm start: 0.000 + +CPU: total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 158 stepping 9 microcode 0xf8, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, adx, fma, vzeroupper, clflush, clflushopt, rdtscp, f16c +CPU Model and flags from /proc/cpuinfo: +model name : Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz +flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities + +Online cpus: 0-7 +Offline cpus: +BIOS frequency limitation: +Frequency switch latency (ns): 0 +Available cpu frequencies: +Current governor: powersave +Core performance/turbo boost: + +Memory: 4k page, physical 32767656k(22349024k free), swap 20970996k(20970996k free) +Page Sizes: 4k + +vm_info: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58) for linux-amd64 JRE (23.0.2+7-58), built on 2024-11-29T09:34:55Z with gcc 13.2.0 + +END. diff --git a/hs_err_pid84545.log b/hs_err_pid84545.log new file mode 100644 index 0000000000..de478df0ec --- /dev/null +++ b/hs_err_pid84545.log @@ -0,0 +1,1595 @@ +# +# A fatal error has been detected by the Java Runtime Environment: +# +# SIGSEGV (0xb) at pc=0x0000732d79c5933a, pid=84545, tid=84592 +# +# JRE version: Java(TM) SE Runtime Environment (23.0.2+7) (build 23.0.2+7-58) +# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64) +# Problematic frame: +# C [libjemalloc.so+0x5933a] +# +# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/codex/java/prj/jmonkeyengine/core.84545) +# +# If you would like to submit a bug report, please visit: +# https://bugreport.java.com/bugreport/crash.jsp +# + +--------------- S U M M A R Y ------------ + +Command Line: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant jme3test.vulkan.VulkanTest + +Host: Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz, 8 cores, 31G, Pop!_OS 22.04 LTS +Time: Thu Jun 26 22:31:30 2025 EDT elapsed time: 7.166298 seconds (0d 0h 0m 7s) + +--------------- T H R E A D --------------- + +Current thread is native thread + +Stack: [0x0000732d78bb2000,0x0000732d78cb2000], sp=0x0000732d78cb08d0, free space=1018k +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +C [libjemalloc.so+0x5933a] + +siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000000 + +Registers: +RAX=0x0000000000000000, RBX=0x0000000000000200, RCX=0x0000000000000000, RDX=0x0000732d79c78440 +RSP=0x0000732d78cb08d0, RBP=0x0000732d78cb0db0, RSI=0x0000000000000000, RDI=0x0000732d795c65b0 +R8 =0x0000000000000000, R9 =0x0000000000000000, R10=0x0000000000000000, R11=0x0000732d795c65f0 +R12=0x000000000000003e, R13=0x0000732d78cb0d70, R14=0x000000000000003e, R15=0x0000732d78cb0ad0 +RIP=0x0000732d79c5933a, EFLAGS=0x0000000000010246, CSGSFS=0x002b000000000033, ERR=0x0000000000000004 + TRAPNO=0x000000000000000e + + +Top of Stack: (sp=0x0000732d78cb08d0) +0x0000732d78cb08d0: 0000732da44c43d0 0000732d78cb0960 +0x0000732d78cb08e0: 0000732d78cb0970 0000732daa5c6211 +0x0000732d78cb08f0: 0000000000000005 0000732da44c4588 +0x0000732d78cb0900: 0000000000000005 0000000000000000 +0x0000732d78cb0910: 0000000000000001 0000732da44c4060 +0x0000732d78cb0920: 0000732da44c4588 0000732da44c4060 +0x0000732d78cb0930: 0000000193d3f020 0000732da44c43d0 +0x0000732d78cb0940: 0000000000000000 6432333700000000 +0x0000732d78cb0950: 3035636300000000 d6dd233100000004 +0x0000732d78cb0960: 00000000ffffffff 0000000000000000 +0x0000732d78cb0970: 0000732daa20d4d0 0000732daa5b37c0 +0x0000732d78cb0980: 0000732d78cb09b0 0000732da9c78613 +0x0000732d78cb0990: 0000732d78cb0b88 0000732daa28849a +0x0000732d78cb09a0: 0000000000000000 0000732d78cb0aa0 +0x0000732d78cb09b0: 00000000fbad8001 0000000000000002 +0x0000732d78cb09c0: 0000732da44c4060 0000732d8a77e028 +0x0000732d78cb09d0: 0000732daa41cae8 0000000000000004 +0x0000732d78cb09e0: 0000732d78cb1b58 0000732daa5ccf71 +0x0000732d78cb09f0: 0000000000000005 0000000000000000 +0x0000732d78cb0a00: 0000732daa20d4d0 0000732daa2a53e0 +0x0000732d78cb0a10: 0000000000000000 0000732d78cb0e00 +0x0000732d78cb0a20: 0000732daa41caf8 0000000000000000 +0x0000732d78cb0a30: 0000732daa41cae8 0000732daa5cfdae +0x0000732d78cb0a40: 0000000000000001 000000000000006f +0x0000732d78cb0a50: 0000732d8a7307d0 0000000000000000 +0x0000732d78cb0a60: 0000732c80b80500 0000000000000000 +0x0000732d78cb0a70: 00000000000000ca 3a92cd60ea629989 +0x0000732d78cb0a80: 0000000000000213 0000732daa417300 +0x0000732d78cb0a90: 0000000000000000 0000000000000200 +0x0000732d78cb0aa0: 0000732d78cb0db0 000000000000003e +0x0000732d78cb0ab0: 0000732d78cb0d70 0000732d78cb0ad0 +0x0000732d78cb0ac0: 0000732c800024d0 0000732d79c592f8 + +Instructions: (pc=0x0000732d79c5933a) +0x0000732d79c5923a: f4 66 41 c1 ec 03 41 0f b7 d4 2b 95 40 ff ff ff +0x0000732d79c5924a: 48 c1 e2 03 e8 bd f0 fa ff 49 8b 4d 00 41 0f b7 +0x0000732d79c5925a: 7d 14 48 01 d9 89 fe 66 41 2b 7d 10 29 ce 66 c1 +0x0000732d79c5926a: ef 03 49 89 4d 00 66 c1 ee 03 66 39 fe 73 0c 4c +0x0000732d79c5927a: 8b bd 50 ff ff ff 66 41 89 4f 10 48 8d 65 d8 5b +0x0000732d79c5928a: 41 5c 41 5d 41 5e 41 5f 5d c3 29 d8 48 89 a5 48 +0x0000732d79c5929a: ff ff ff 4c 89 ff 44 0f b7 e0 44 0f b7 c0 66 89 +0x0000732d79c592aa: 45 c0 45 8d 74 24 01 4e 8d 1c c5 00 00 00 00 44 +0x0000732d79c592ba: 89 a5 40 ff ff ff 4a 8d 1c f5 0f 00 00 00 4c 29 +0x0000732d79c592ca: da 4c 89 9d 38 ff ff ff 81 e3 f0 ff 1f 00 4c 8d +0x0000732d79c592da: 14 16 4c 89 c2 48 8b b5 30 ff ff ff 48 29 dc 4c +0x0000732d79c592ea: 89 55 c8 49 89 e6 4c 89 f1 e8 28 ed ff ff 48 29 +0x0000732d79c592fa: dc 48 89 65 80 45 85 e4 0f 84 07 ff ff ff 44 8b +0x0000732d79c5930a: 8d 2c ff ff ff c7 45 b8 00 00 00 00 4c 89 7d b0 +0x0000732d79c5931a: 4d 89 f7 45 89 e6 4b 8d 0c 89 4c 89 4d a0 48 c1 +0x0000732d79c5932a: e1 03 48 89 4d 88 49 8b 37 48 8d 15 06 f1 01 00 +0x0000732d79c5933a: 44 8b 2e 41 81 e5 ff 0f 00 00 44 89 e8 4c 8b 24 +0x0000732d79c5934a: c2 4c 89 65 a8 4c 8b 06 48 8d 3d 67 72 02 00 4c +0x0000732d79c5935a: 8b 5d a0 49 c1 e8 26 41 83 e0 3f 46 8b 14 9f 44 +0x0000732d79c5936a: 89 c3 44 89 45 bc 4c 8d 0c dd 00 00 00 00 49 29 +0x0000732d79c5937a: d9 49 c1 e1 05 4d 01 ca 4d 01 e2 49 8d 7a 48 4c +0x0000732d79c5938a: 89 55 90 48 89 7d 98 e8 6a f0 fa ff 4c 8b 4d 90 +0x0000732d79c5939a: 85 c0 0f 85 ce 03 00 00 49 8d 49 40 48 89 4d 90 +0x0000732d79c593aa: 49 8b 1f 48 8b 55 a0 45 8d 5e ff 45 31 e4 48 8d +0x0000732d79c593ba: 05 a1 72 02 00 41 ba 01 00 00 00 41 83 e3 01 48 +0x0000732d79c593ca: 8b 3b 44 8b 04 90 48 8b 45 c8 89 fe 81 e6 ff 0f +0x0000732d79c593da: 00 00 48 8b 08 41 39 f5 0f 84 c0 02 00 00 4a 89 +0x0000732d79c593ea: 0c e0 4b 89 1c e7 41 bc 01 00 00 00 bb 01 00 00 +0x0000732d79c593fa: 00 41 83 fe 01 0f 86 51 02 00 00 45 85 db 74 38 +0x0000732d79c5940a: 49 8b 57 08 48 8b 48 08 48 8b 32 89 f7 81 e7 ff +0x0000732d79c5941a: 0f 00 00 41 39 fd 0f 84 6a 04 00 00 45 89 e3 41 +0x0000732d79c5942a: 83 c4 01 4a 89 0c d8 4b 89 14 df 48 83 c3 01 41 + + + +--------------- P R O C E S S --------------- + +VM state: not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap address: 0x000000060c000000, size: 8000 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 + +CDS archive(s) mapped at: [0x0000732d22000000-0x0000732d22d91000-0x0000732d22d91000), size 14225408, SharedBaseAddress: 0x0000732d22000000, ArchiveRelocationMode: 1. +Compressed class space mapped at: 0x0000732d23000000-0x0000732d63000000, reserved size: 1073741824 +Narrow klass base: 0x0000732d22000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 + +GC Precious Log: + + +Heap: + garbage-first heap total reserved 8192000K, committed 28672K, used 13653K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 3 young (12288K), 1 survivors (4096K) + Metaspace used 22010K, committed 22336K, reserved 1114112K + class space used 2288K, committed 2432K, reserved 1048576K + +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, TAMS=top-at-mark-start, PB=parsable bottom +| 0|0x000000060c000000, 0x000000060c367620, 0x000000060c400000| 85%| O| |TAMS 0x000000060c000000| PB 0x000000060c000000| Untracked | 0 +| 1|0x000000060c400000, 0x000000060c6be0b8, 0x000000060c800000| 68%| O| |TAMS 0x000000060c400000| PB 0x000000060c400000| Untracked | 0 +| 2|0x000000060c800000, 0x000000060c800000, 0x000000060cc00000| 0%| F| |TAMS 0x000000060c800000| PB 0x000000060c800000| Untracked | 0 +| 3|0x000000060cc00000, 0x000000060cc00000, 0x000000060d000000| 0%| F| |TAMS 0x000000060cc00000| PB 0x000000060cc00000| Untracked | 0 +| 4|0x000000060d000000, 0x000000060d1d0e28, 0x000000060d400000| 45%| E| |TAMS 0x000000060d000000| PB 0x000000060d000000| Complete | 0 +| 5|0x000000060d400000, 0x000000060d55ef70, 0x000000060d800000| 34%| S|CS|TAMS 0x000000060d400000| PB 0x000000060d400000| Complete | 0 +| 6|0x000000060d800000, 0x000000060dc00000, 0x000000060dc00000|100%| E|CS|TAMS 0x000000060d800000| PB 0x000000060d800000| Complete | 0 + +Card table byte_map: [0x0000732d8a800000,0x0000732d8b7a0000] _byte_map_base: 0x0000732d877a0000 + +Marking Bits: (CMBitMap*) 0x0000732da4059190 + Bits: [0x0000732d82a00000, 0x0000732d8a700000) + +Polling page: 0x0000732daa59f000 + +Metaspace: + +Usage: + Non-class: 19.26 MB used. + Class: 2.24 MB used. + Both: 21.49 MB used. + +Virtual space: + Non-class space: 64.00 MB reserved, 19.44 MB ( 30%) committed, 1 nodes. + Class space: 1.00 GB reserved, 2.38 MB ( <1%) committed, 1 nodes. + Both: 1.06 GB reserved, 21.81 MB ( 2%) committed. + +Chunk freelists: + Non-Class: 11.98 MB + Class: 13.45 MB + Both: 25.44 MB + +MaxMetaspaceSize: unlimited +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 21.00 MB +Current GC threshold: 27.12 MB +CDS: on + - commit_granule_bytes: 65536. + - commit_granule_words: 8192. + - virtual_space_node_default_size: 8388608. + - enlarge_chunks_in_place: 1. + - use_allocation_guard: 0. + + +Internal statistics: + +num_allocs_failed_limit: 0. +num_arena_births: 334. +num_arena_deaths: 0. +num_vsnodes_births: 2. +num_vsnodes_deaths: 0. +num_space_committed: 349. +num_space_uncommitted: 0. +num_chunks_returned_to_freelist: 0. +num_chunks_taken_from_freelist: 687. +num_chunk_merges: 0. +num_chunk_splits: 435. +num_chunks_enlarged: 279. +num_inconsistent_stats: 0. + +CodeHeap 'non-profiled nmethods': size=120032Kb used=679Kb max_used=679Kb free=119352Kb + bounds [0x0000732d942c8000, 0x0000732d94538000, 0x0000732d9b800000] +CodeHeap 'profiled nmethods': size=120028Kb used=2651Kb max_used=2651Kb free=117376Kb + bounds [0x0000732d8c800000, 0x0000732d8caa0000, 0x0000732d93d37000] +CodeHeap 'non-nmethods': size=5700Kb used=2459Kb max_used=2482Kb free=3240Kb + bounds [0x0000732d93d37000, 0x0000732d93fb7000, 0x0000732d942c8000] +CodeCache: size=245760Kb, used=5789Kb, max_used=5812Kb, free=239968Kb + total_blobs=3566, nmethods=2132, adapters=1341, full_count=0 +Compilation: enabled, stopped_count=0, restarted_count=0 + +Compilation events (20 events): +Event: 7.160 Thread 0x0000732da41405c0 2273 3 java.util.regex.Pattern::newCharProperty (39 bytes) +Event: 7.160 Thread 0x0000732da41405c0 nmethod 2273 0x0000732d8ca93e88 code [0x0000732d8ca94020, 0x0000732d8ca948c0] +Event: 7.160 Thread 0x0000732da41405c0 2268 3 java.util.regex.Pattern::nextEscaped (19 bytes) +Event: 7.160 Thread 0x0000732da41405c0 nmethod 2268 0x0000732d8ca94908 code [0x0000732d8ca94a20, 0x0000732d8ca94b58] +Event: 7.160 Thread 0x0000732da41405c0 2269 3 java.util.ArrayList$SubList::toArray (79 bytes) +Event: 7.160 Thread 0x0000732da41405c0 nmethod 2269 0x0000732d8ca94c08 code [0x0000732d8ca94d80, 0x0000732d8ca953f0] +Event: 7.160 Thread 0x0000732da41405c0 2270 3 java.lang.invoke.Invokers$Holder::linkToTargetMethod (10 bytes) +Event: 7.161 Thread 0x0000732da41405c0 nmethod 2270 0x0000732d8ca95488 code [0x0000732d8ca955c0, 0x0000732d8ca959d0] +Event: 7.161 Thread 0x0000732da41405c0 2271 3 java.util.regex.Pattern::qtype (39 bytes) +Event: 7.161 Thread 0x0000732da41405c0 nmethod 2271 0x0000732d8ca95a08 code [0x0000732d8ca95b60, 0x0000732d8ca95dc8] +Event: 7.161 Thread 0x0000732da41405c0 2266 3 javax.imageio.ImageReader::processImageUpdate (73 bytes) +Event: 7.161 Thread 0x0000732da41405c0 nmethod 2266 0x0000732d8ca95e08 code [0x0000732d8ca95f80, 0x0000732d8ca964f0] +Event: 7.161 Thread 0x0000732da41405c0 2276 3 java.lang.invoke.DirectMethodHandle::makeAllocator (132 bytes) +Event: 7.161 Thread 0x0000732da41405c0 nmethod 2276 0x0000732d8ca96508 code [0x0000732d8ca966a0, 0x0000732d8ca96b08] +Event: 7.163 Thread 0x0000732ce839beb0 nmethod 2256% 0x0000732d9436f808 code [0x0000732d9436f940, 0x0000732d943702c8] +Event: 7.163 Thread 0x0000732ce839beb0 2257 4 com.sun.imageio.plugins.png.PNGImageReader::paethPredictor (57 bytes) +Event: 7.164 Thread 0x0000732ce839beb0 nmethod 2257 0x0000732d94370308 code [0x0000732d94370400, 0x0000732d943704f8] +Event: 7.164 Thread 0x0000732ce839beb0 2275 4 java.lang.String::subSequence (7 bytes) +Event: 7.165 Thread 0x0000732da41405c0 2277 3 java.io.BufferedWriter::min (9 bytes) +Event: 7.166 Thread 0x0000732da41405c0 nmethod 2277 0x0000732d8ca96b88 code [0x0000732d8ca96ca0, 0x0000732d8ca96e00] + +GC Heap History (8 events): +Event: 6.261 GC heap before +{Heap before GC invocations=0 (full 0): + garbage-first heap total reserved 8192000K, committed 516096K, used 21627K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 6 young (24576K), 0 survivors (0K) + Metaspace used 16388K, committed 16640K, reserved 1114112K + class space used 1822K, committed 1920K, reserved 1048576K +} +Event: 6.272 GC heap after +{Heap after GC invocations=1 (full 1): + garbage-first heap total reserved 8192000K, committed 98304K, used 6293K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 0 young (0K), 0 survivors (0K) + Metaspace used 16388K, committed 16640K, reserved 1114112K + class space used 1822K, committed 1920K, reserved 1048576K +} +Event: 6.272 GC heap before +{Heap before GC invocations=1 (full 1): + garbage-first heap total reserved 8192000K, committed 98304K, used 6293K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 0 young (0K), 0 survivors (0K) + Metaspace used 16388K, committed 16640K, reserved 1114112K + class space used 1822K, committed 1920K, reserved 1048576K +} +Event: 6.284 GC heap after +{Heap after GC invocations=2 (full 2): + garbage-first heap total reserved 8192000K, committed 28672K, used 6293K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 0 young (0K), 0 survivors (0K) + Metaspace used 16388K, committed 16640K, reserved 1114112K + class space used 1822K, committed 1920K, reserved 1048576K +} +Event: 6.789 GC heap before +{Heap before GC invocations=2 (full 2): + garbage-first heap total reserved 8192000K, committed 28672K, used 14485K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 2 young (8192K), 0 survivors (0K) + Metaspace used 18736K, committed 19008K, reserved 1114112K + class space used 2041K, committed 2176K, reserved 1048576K +} +Event: 6.790 GC heap after +{Heap after GC invocations=3 (full 2): + garbage-first heap total reserved 8192000K, committed 28672K, used 7454K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 1 young (4096K), 1 survivors (4096K) + Metaspace used 18736K, committed 19008K, reserved 1114112K + class space used 2041K, committed 2176K, reserved 1048576K +} +Event: 6.861 GC heap before +{Heap before GC invocations=3 (full 2): + garbage-first heap total reserved 8192000K, committed 28672K, used 7454K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 2 young (8192K), 1 survivors (4096K) + Metaspace used 20171K, committed 20480K, reserved 1114112K + class space used 2173K, committed 2304K, reserved 1048576K +} +Event: 6.862 GC heap after +{Heap after GC invocations=4 (full 2): + garbage-first heap total reserved 8192000K, committed 28672K, used 7697K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 1 young (4096K), 1 survivors (4096K) + Metaspace used 20171K, committed 20480K, reserved 1114112K + class space used 2173K, committed 2304K, reserved 1048576K +} + +Dll operation events (12 events): +Event: 0.001 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +Event: 0.017 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +Event: 0.017 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +Event: 0.028 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +Event: 0.030 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +Event: 0.077 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +Event: 0.128 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +Event: 0.134 Loaded shared library /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +Event: 0.231 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +Event: 0.233 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +Event: 0.259 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so +Event: 0.327 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so + +Deoptimization events (20 events): +Event: 6.494 Thread 0x0000732da452cc50 Uncommon trap: trap_request=0xffffffde fr.pc=0x0000732d94355db0 relative=0x0000000000000110 +Event: 6.494 Thread 0x0000732da452cc50 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000732d94355db0 method=jdk.internal.misc.Unsafe.allocateUninitializedArray(Ljava/lang/Class;I)Ljava/lang/Object; @ 51 c2 +Event: 6.494 Thread 0x0000732da452cc50 DEOPT PACKING pc=0x0000732d94355db0 sp=0x0000732d78caf430 +Event: 6.494 Thread 0x0000732da452cc50 DEOPT UNPACKING pc=0x0000732d93d8abf9 sp=0x0000732d78caf3c8 mode 2 +Event: 6.507 Thread 0x0000732da452cc50 Uncommon trap: trap_request=0xffffff45 fr.pc=0x0000732d9434d8e4 relative=0x0000000000000ee4 +Event: 6.507 Thread 0x0000732da452cc50 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000732d9434d8e4 method=java.util.concurrent.ConcurrentHashMap.putVal(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object; @ 401 c2 +Event: 6.507 Thread 0x0000732da452cc50 DEOPT PACKING pc=0x0000732d9434d8e4 sp=0x0000732d78cb0300 +Event: 6.507 Thread 0x0000732da452cc50 DEOPT UNPACKING pc=0x0000732d93d8abf9 sp=0x0000732d78cb0280 mode 2 +Event: 6.765 Thread 0x0000732da452cc50 Uncommon trap: trap_request=0xffffff76 fr.pc=0x0000732d9434e568 relative=0x00000000000001a8 +Event: 6.765 Thread 0x0000732da452cc50 Uncommon trap: reason=predicate action=maybe_recompile pc=0x0000732d9434e568 method=java.util.regex.Pattern$BmpCharPropertyGreedy.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 12 c2 +Event: 6.765 Thread 0x0000732da452cc50 DEOPT PACKING pc=0x0000732d9434e568 sp=0x0000732d78cb00e0 +Event: 6.765 Thread 0x0000732da452cc50 DEOPT UNPACKING pc=0x0000732d93d8abf9 sp=0x0000732d78cb00b8 mode 2 +Event: 6.839 Thread 0x0000732da452cc50 Uncommon trap: trap_request=0xffffff6e fr.pc=0x0000732d94362168 relative=0x0000000000000148 +Event: 6.839 Thread 0x0000732da452cc50 Uncommon trap: reason=loop_limit_check action=maybe_recompile pc=0x0000732d94362168 method=java.util.regex.Pattern$Start.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 34 c2 +Event: 6.839 Thread 0x0000732da452cc50 DEOPT PACKING pc=0x0000732d94362168 sp=0x0000732d78cb00a0 +Event: 6.839 Thread 0x0000732da452cc50 DEOPT UNPACKING pc=0x0000732d93d8abf9 sp=0x0000732d78cb0050 mode 2 +Event: 7.028 Thread 0x0000732da452cc50 DEOPT PACKING pc=0x0000732d8ca29a9f sp=0x0000732d78caf7c0 +Event: 7.028 Thread 0x0000732da452cc50 DEOPT UNPACKING pc=0x0000732d93d8b30f sp=0x0000732d78caec00 mode 0 +Event: 7.030 Thread 0x0000732da452cc50 DEOPT PACKING pc=0x0000732d8c8b4bd4 sp=0x0000732d78caf790 +Event: 7.030 Thread 0x0000732da452cc50 DEOPT UNPACKING pc=0x0000732d93d8b30f sp=0x0000732d78caec48 mode 0 + +Classes loaded (20 events): +Event: 6.819 Loading class java/awt/image/PixelInterleavedSampleModel +Event: 6.819 Loading class java/awt/image/ComponentSampleModel +Event: 6.819 Loading class java/awt/image/ComponentSampleModel done +Event: 6.819 Loading class java/awt/image/PixelInterleavedSampleModel done +Event: 6.819 Loading class javax/imageio/ImageTypeSpecifier$Packed +Event: 6.819 Loading class javax/imageio/ImageTypeSpecifier$Packed done +Event: 6.820 Loading class java/awt/image/DataBufferByte +Event: 6.820 Loading class java/awt/image/DataBufferByte done +Event: 6.820 Loading class sun/awt/image/ByteInterleavedRaster +Event: 6.820 Loading class sun/awt/image/ByteComponentRaster +Event: 6.820 Loading class sun/awt/image/ByteComponentRaster done +Event: 6.820 Loading class sun/awt/image/ByteInterleavedRaster done +Event: 6.820 Loading class sun/awt/image/ShortComponentRaster +Event: 6.820 Loading class sun/awt/image/ShortComponentRaster done +Event: 6.904 Loading class java/util/function/LongFunction +Event: 6.904 Loading class java/util/function/LongFunction done +Event: 7.165 Loading class java/lang/Throwable$WrappedPrintStream +Event: 7.166 Loading class java/lang/Throwable$PrintStreamOrWriter +Event: 7.166 Loading class java/lang/Throwable$PrintStreamOrWriter done +Event: 7.166 Loading class java/lang/Throwable$WrappedPrintStream done + +Classes unloaded (0 events): +No events + +Classes redefined (0 events): +No events + +Internal exceptions (20 events): +Event: 0.618 Thread 0x0000732da46242b0 Exception (0x000000062a0b8978) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 6.229 Thread 0x0000732da46242b0 Exception (0x000000062a35ef78) +thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] +Event: 6.256 Thread 0x0000732da46242b0 Exception (0x0000000629cc8990) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 6.300 Thread 0x0000732da402d0f0 Exception (0x000000060d99d498) +thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] +Event: 6.311 Thread 0x0000732da402d0f0 Exception (0x000000060d9fc958) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 6.312 Thread 0x0000732da402d0f0 Exception (0x000000060da0aa68) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 6.494 Thread 0x0000732da452cc50 Exception (0x000000060d51fda0) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 863] +Event: 6.765 Thread 0x0000732da452cc50 Exception (0x000000060d702e88) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 6.855 Thread 0x0000732da452cc50 Exception (0x000000060db93d20) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 6.860 Thread 0x0000732da452cc50 Exception (0x000000060dbbc810) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 6.901 Thread 0x0000732da452cc50 Exception (0x000000060d8c45d8) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 6.901 Thread 0x0000732da452cc50 Exception (0x000000060d8c9f48) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 6.918 Thread 0x0000732da452cc50 Exception (0x000000060d981f48) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 6.919 Thread 0x0000732da452cc50 Exception (0x000000060d9947c0) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 6.919 Thread 0x0000732da452cc50 Exception (0x000000060d9989b8) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 6.919 Thread 0x0000732da452cc50 Exception (0x000000060d99c078) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 6.926 Thread 0x0000732da452cc50 Exception (0x000000060da002d8) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 6.960 Thread 0x0000732da452cc50 Exception (0x000000060da50dd8) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 6.966 Thread 0x0000732da452cc50 Exception (0x000000060da6b6a8) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 6.984 Thread 0x0000732da452cc50 Exception (0x000000060daab778) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] + +VM Operations (20 events): +Event: 0.130 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.130 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.244 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.244 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.261 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.261 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.269 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.269 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.648 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.648 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 6.261 Executing VM operation: G1CollectFull (System.gc()) +Event: 6.272 Executing VM operation: G1CollectFull (System.gc()) done +Event: 6.272 Executing VM operation: G1CollectFull (System.gc()) +Event: 6.284 Executing VM operation: G1CollectFull (System.gc()) done +Event: 6.308 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 6.308 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 6.789 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 6.790 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done +Event: 6.861 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 6.862 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done + +Memory protections (20 events): +Event: 0.016 Protecting memory [0x0000732d7a600000,0x0000732d7a604000] with protection modes 0 +Event: 0.016 Protecting memory [0x0000732d7a500000,0x0000732d7a504000] with protection modes 0 +Event: 0.016 Protecting memory [0x0000732d7a400000,0x0000732d7a404000] with protection modes 0 +Event: 0.016 Protecting memory [0x0000732d7a300000,0x0000732d7a304000] with protection modes 0 +Event: 0.024 Protecting memory [0x0000732d7a200000,0x0000732d7a204000] with protection modes 0 +Event: 0.025 Protecting memory [0x0000732d7a100000,0x0000732d7a104000] with protection modes 0 +Event: 0.056 Protecting memory [0x0000732d7a000000,0x0000732d7a004000] with protection modes 0 +Event: 0.282 Protecting memory [0x0000732d790b2000,0x0000732d790b6000] with protection modes 0 +Event: 0.283 Protecting memory [0x0000732d78fb2000,0x0000732d78fb6000] with protection modes 0 +Event: 0.286 Protecting memory [0x0000732d78eb2000,0x0000732d78eb6000] with protection modes 0 +Event: 0.286 Protecting memory [0x0000732d78db2000,0x0000732d78db6000] with protection modes 0 +Event: 0.328 Protecting memory [0x0000732d78cb2000,0x0000732d78cb6000] with protection modes 0 +Event: 0.554 Protecting memory [0x0000732d7a000000,0x0000732d7a004000] with protection modes 0 +Event: 0.646 Protecting memory [0x0000732d78bb2000,0x0000732d78bb6000] with protection modes 0 +Event: 0.675 Protecting memory [0x0000732d789b2000,0x0000732d789b6000] with protection modes 0 +Event: 6.235 Protecting memory [0x0000732d7a000000,0x0000732d7a004000] with protection modes 0 +Event: 6.316 Protecting memory [0x0000732d78bb2000,0x0000732d78bb6000] with protection modes 0 +Event: 6.316 Protecting memory [0x0000732daa100000,0x0000732daa104000] with protection modes 0 +Event: 6.782 Protecting memory [0x0000732d7a000000,0x0000732d7a004000] with protection modes 0 +Event: 7.155 Protecting memory [0x0000732d0bf00000,0x0000732d0bf04000] with protection modes 0 + +Nmethod flushes (20 events): +Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c882b88 +Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c88e488 +Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c88e988 +Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c88ff88 +Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c890588 +Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c8de808 +Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c8ded88 +Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c8e0688 +Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c8f1008 +Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c916b08 +Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c91cf88 +Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c939288 +Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c946288 +Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c946588 +Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c949088 +Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c984c08 +Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c984f88 +Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c9acf08 +Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c9ad208 +Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c9bd208 + +Events (20 events): +Event: 0.056 Thread 0x0000732da41405c0 Thread added: 0x0000732ce80a2a30 +Event: 0.282 Thread 0x0000732da402d0f0 Thread added: 0x0000732da461f430 +Event: 0.283 Thread 0x0000732da402d0f0 Thread added: 0x0000732da4620e10 +Event: 0.286 Thread 0x0000732da402d0f0 Thread added: 0x0000732da46231a0 +Event: 0.286 Thread 0x0000732da402d0f0 Thread added: 0x0000732da46242b0 +Event: 0.328 Thread 0x0000732da46242b0 Thread added: 0x0000732cbc043cf0 +Event: 0.548 Thread 0x0000732ce80a2a30 Thread exited: 0x0000732ce80a2a30 +Event: 0.554 Thread 0x0000732da46242b0 Thread added: 0x0000732cbc061540 +Event: 0.646 Thread 0x0000732da41405c0 Thread added: 0x0000732ce8301fc0 +Event: 0.675 Thread 0x0000732da46242b0 Thread added: 0x0000732cbc0bd030 +Event: 1.089 Thread 0x0000732ce8301fc0 Thread exited: 0x0000732ce8301fc0 +Event: 5.583 Thread 0x0000732cbc061540 Thread exited: 0x0000732cbc061540 +Event: 6.235 Thread 0x0000732da41405c0 Thread added: 0x0000732ce80862d0 +Event: 6.316 Thread 0x0000732da402d0f0 Thread added: 0x0000732da452cc50 +Event: 6.316 Thread 0x0000732da402d0f0 Thread exited: 0x0000732da402d0f0 +Event: 6.316 Thread 0x0000732da402d0f0 Thread added: 0x0000732da402d0f0 +Event: 6.457 Thread 0x0000732ce80862d0 Thread exited: 0x0000732ce80862d0 +Event: 6.782 Thread 0x0000732da452cc50 Thread added: 0x0000732c8057f230 +Event: 7.155 Thread 0x0000732da41405c0 Thread added: 0x0000732ce839beb0 +Event: 7.166 Thread 0x0000732da452cc50 Thread exited: 0x0000732da452cc50 + + +Dynamic libraries: +60c000000-60dc00000 rw-p 00000000 00:00 0 +60dc00000-800000000 ---p 00000000 00:00 0 +60f647cf9000-60f647cfa000 r-xp 00000000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java +60f647cfb000-60f647cfc000 r--p 00001000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java +60f647cfc000-60f647cfd000 rw-p 00002000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java +60f655b23000-60f655b6c000 rw-p 00000000 00:00 0 [heap] +732c34000000-732c34075000 rw-p 00000000 00:00 0 +732c34075000-732c38000000 ---p 00000000 00:00 0 +732c38000000-732c38021000 rw-p 00000000 00:00 0 +732c38021000-732c3c000000 ---p 00000000 00:00 0 +732c40000000-732c40021000 rw-p 00000000 00:00 0 +732c40021000-732c44000000 ---p 00000000 00:00 0 +732c44000000-732c44021000 rw-p 00000000 00:00 0 +732c44021000-732c48000000 ---p 00000000 00:00 0 +732c4c000000-732c4c021000 rw-p 00000000 00:00 0 +732c4c021000-732c50000000 ---p 00000000 00:00 0 +732c50000000-732c50021000 rw-p 00000000 00:00 0 +732c50021000-732c54000000 ---p 00000000 00:00 0 +732c58000000-732c58021000 rw-p 00000000 00:00 0 +732c58021000-732c5c000000 ---p 00000000 00:00 0 +732c5c000000-732c5c021000 rw-p 00000000 00:00 0 +732c5c021000-732c60000000 ---p 00000000 00:00 0 +732c64000000-732c64021000 rw-p 00000000 00:00 0 +732c64021000-732c68000000 ---p 00000000 00:00 0 +732c68000000-732c680c8000 rw-p 00000000 00:00 0 +732c680c8000-732c6c000000 ---p 00000000 00:00 0 +732c70000000-732c70021000 rw-p 00000000 00:00 0 +732c70021000-732c74000000 ---p 00000000 00:00 0 +732c75000000-732c7b712000 r-xp 00000000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 +732c7b712000-732c7bf30000 r--p 06711000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 +732c7bf30000-732c7bf76000 rw-p 06f2f000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 +732c7bf76000-732c7bff2000 rw-p 00000000 00:00 0 +732c7c000000-732c7c021000 rw-p 00000000 00:00 0 +732c7c021000-732c80000000 ---p 00000000 00:00 0 +732c80000000-732c83148000 rw-p 00000000 00:00 0 +732c83148000-732c84000000 ---p 00000000 00:00 0 +732c88000000-732c88021000 rw-p 00000000 00:00 0 +732c88021000-732c8c000000 ---p 00000000 00:00 0 +732c8c000000-732c8c021000 rw-p 00000000 00:00 0 +732c8c021000-732c90000000 ---p 00000000 00:00 0 +732c94000000-732c94021000 rw-p 00000000 00:00 0 +732c94021000-732c98000000 ---p 00000000 00:00 0 +732c98000000-732c98021000 rw-p 00000000 00:00 0 +732c98021000-732c9c000000 ---p 00000000 00:00 0 +732ca0000000-732ca0021000 rw-p 00000000 00:00 0 +732ca0021000-732ca4000000 ---p 00000000 00:00 0 +732ca4000000-732ca4021000 rw-p 00000000 00:00 0 +732ca4021000-732ca8000000 ---p 00000000 00:00 0 +732cac000000-732cac021000 rw-p 00000000 00:00 0 +732cac021000-732cb0000000 ---p 00000000 00:00 0 +732cb0000000-732cb00c1000 rw-p 00000000 00:00 0 +732cb00c1000-732cb4000000 ---p 00000000 00:00 0 +732cb8000000-732cb8021000 rw-p 00000000 00:00 0 +732cb8021000-732cbc000000 ---p 00000000 00:00 0 +732cbc000000-732cbc171000 rw-p 00000000 00:00 0 +732cbc171000-732cc0000000 ---p 00000000 00:00 0 +732cc4000000-732cc4021000 rw-p 00000000 00:00 0 +732cc4021000-732cc8000000 ---p 00000000 00:00 0 +732cc8000000-732cc8021000 rw-p 00000000 00:00 0 +732cc8021000-732ccc000000 ---p 00000000 00:00 0 +732cd0000000-732cd0021000 rw-p 00000000 00:00 0 +732cd0021000-732cd4000000 ---p 00000000 00:00 0 +732cd4000000-732cd437e000 rw-p 00000000 00:00 0 +732cd437e000-732cd8000000 ---p 00000000 00:00 0 +732cdc000000-732cdc021000 rw-p 00000000 00:00 0 +732cdc021000-732ce0000000 ---p 00000000 00:00 0 +732ce0000000-732ce0021000 rw-p 00000000 00:00 0 +732ce0021000-732ce4000000 ---p 00000000 00:00 0 +732ce6400000-732ce6525000 r--p 00000000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +732ce6525000-732ce69e5000 r-xp 00125000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +732ce69e5000-732ce6b19000 r--p 005e5000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +732ce6b19000-732ce6b1a000 ---p 00719000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +732ce6b1a000-732ce6b7d000 r--p 00719000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +732ce6b7d000-732ce6b87000 rw-p 0077c000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +732ce6b87000-732ce6b98000 rw-p 00000000 00:00 0 +732ce6c00000-732ce6c01000 ---p 00000000 00:00 0 +732ce6c01000-732ce7401000 rw-p 00000000 00:00 0 +732ce7600000-732ce7601000 ---p 00000000 00:00 0 +732ce7601000-732ce7e01000 rw-p 00000000 00:00 0 +732ce8000000-732ce83a5000 rw-p 00000000 00:00 0 +732ce83a5000-732cec000000 ---p 00000000 00:00 0 +732cec000000-732cec686000 rw-p 00000000 00:00 0 +732cec686000-732cf0000000 ---p 00000000 00:00 0 +732cf0200000-732cf0201000 ---p 00000000 00:00 0 +732cf0201000-732cf0a01000 rw-p 00000000 00:00 0 +732cf0c00000-732cf0c01000 ---p 00000000 00:00 0 +732cf0c01000-732cf1401000 rw-p 00000000 00:00 0 +732cf1600000-732cf1601000 ---p 00000000 00:00 0 +732cf1601000-732cf1e01000 rw-p 00000000 00:00 0 +732cf2000000-732cf2cf5000 r--p 00000000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +732cf2cf5000-732cf36d8000 r-xp 00cf5000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +732cf36d8000-732cf3ae9000 r--p 016d8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +732cf3ae9000-732cf3f6b000 r--p 01ae8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +732cf3f6b000-732cf3f73000 rw-p 01f6a000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +732cf3f73000-732cf3f7e000 rw-p 00000000 00:00 0 +732cf4000000-732cf4021000 rw-p 00000000 00:00 0 +732cf4021000-732cf8000000 ---p 00000000 00:00 0 +732cf8000000-732cf8021000 rw-p 00000000 00:00 0 +732cf8021000-732cfc000000 ---p 00000000 00:00 0 +732cfc400000-732cfc401000 ---p 00000000 00:00 0 +732cfc401000-732cfcc01000 rw-p 00000000 00:00 0 +732cfce00000-732cfce2f000 r--p 00000000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +732cfce2f000-732cfd502000 r-xp 0002f000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +732cfd502000-732cfd624000 r--p 00702000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +732cfd624000-732cfd635000 r--p 00823000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +732cfd635000-732cfd6b3000 rw-p 00834000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +732cfd6b3000-732cfd6c7000 rw-p 00000000 00:00 0 +732cfd800000-732cfd801000 ---p 00000000 00:00 0 +732cfd801000-732cfe001000 rw-p 00000000 00:00 0 +732cfe200000-732cfe201000 ---p 00000000 00:00 0 +732cfe201000-732cfea01000 rw-p 00000000 00:00 0 +732cfec00000-732cfec01000 ---p 00000000 00:00 0 +732cfec01000-732cff401000 rw-p 00000000 00:00 0 +732cff600000-732cff601000 ---p 00000000 00:00 0 +732cff601000-732cffe01000 rw-p 00000000 00:00 0 +732d00000000-732d00021000 rw-p 00000000 00:00 0 +732d00021000-732d04000000 ---p 00000000 00:00 0 +732d04000000-732d04021000 rw-p 00000000 00:00 0 +732d04021000-732d08000000 ---p 00000000 00:00 0 +732d08400000-732d08422000 r-xp 00000000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +732d08422000-732d08621000 ---p 00022000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +732d08621000-732d08629000 r--p 00021000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +732d08629000-732d0862a000 rw-p 00029000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +732d0862a000-732d0862b000 rw-p 00000000 00:00 0 +732d08800000-732d08a00000 rw-s 00000000 00:06 1022 /dev/nvidia0 +732d08a00000-732d08a01000 ---p 00000000 00:00 0 +732d08a01000-732d09201000 rw-p 00000000 00:00 0 +732d09400000-732d09401000 ---p 00000000 00:00 0 +732d09401000-732d09c01000 rw-p 00000000 00:00 0 +732d09e00000-732d09e16000 r--p 00000000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +732d09e16000-732d09f06000 r-xp 00016000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +732d09f06000-732d09f79000 r--p 00106000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +732d09f79000-732d09f80000 r--p 00178000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +732d09f80000-732d09f87000 rw-p 0017f000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +732d09f87000-732d0a002000 rw-p 00000000 00:00 0 +732d0a200000-732d0a201000 r--p 00000000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +732d0a201000-732d0a202000 r-xp 00001000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +732d0a202000-732d0be1c000 r--p 00002000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +732d0be1c000-732d0be1d000 r--p 01c1b000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +732d0be1d000-732d0be1e000 rw-p 01c1c000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +732d0bf00000-732d0bf04000 ---p 00000000 00:00 0 +732d0bf04000-732d0c000000 rw-p 00000000 00:00 0 +732d0c000000-732d0c021000 rw-p 00000000 00:00 0 +732d0c021000-732d10000000 ---p 00000000 00:00 0 +732d10000000-732d10637000 rw-p 00000000 00:00 0 +732d10637000-732d14000000 ---p 00000000 00:00 0 +732d14040000-732d140c0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d140c0000-732d141c0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d141c0000-732d14200000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d14200000-732d14400000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d14400000-732d1448d000 r--p 00000000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +732d1448d000-732d14bf5000 r-xp 0008d000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +732d14bf5000-732d15482000 r--p 007f5000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +732d15482000-732d154c4000 r--p 01081000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +732d154c4000-732d154c7000 rw-p 010c3000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +732d154c7000-732d154cd000 rw-p 00000000 00:00 0 +732d154e0000-732d15500000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d15500000-732d15600000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d15600000-732d157c4000 r--p 00000000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +732d157c4000-732d174c4000 r-xp 001c4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +732d174c4000-732d17b39000 r--p 01ec4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +732d17b39000-732d17b3a000 ---p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +732d17b3a000-732d17d1a000 r--p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +732d17d1a000-732d17d93000 rw-p 02719000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +732d17d93000-732d17e08000 rw-p 00000000 00:00 0 +732d17e1f000-732d17e20000 rw-s 00000000 00:06 1022 /dev/nvidia0 +732d17e20000-732d17e60000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d17e60000-732d17e80000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d17e80000-732d17f00000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d17f00000-732d18000000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d18000000-732d183f0000 rw-p 00000000 00:00 0 +732d183f0000-732d185b0000 rw-p 00000000 00:00 0 +732d185b0000-732d186f0000 rw-p 00000000 00:00 0 +732d186f0000-732d18710000 rw-p 00000000 00:00 0 +732d18710000-732d18730000 rw-p 00000000 00:00 0 +732d18730000-732d18770000 rw-p 00000000 00:00 0 +732d18770000-732d189f0000 rw-p 00000000 00:00 0 +732d189f0000-732d18a10000 rw-p 00000000 00:00 0 +732d18a10000-732d18a30000 rw-p 00000000 00:00 0 +732d18a30000-732d18a70000 rw-p 00000000 00:00 0 +732d18a70000-732d18af0000 rw-p 00000000 00:00 0 +732d18af0000-732d18cf0000 rw-p 00000000 00:00 0 +732d18cf0000-732d18d10000 rw-p 00000000 00:00 0 +732d18d10000-732d18d30000 rw-p 00000000 00:00 0 +732d18d30000-732d18d70000 rw-p 00000000 00:00 0 +732d18d70000-732d18ef0000 rw-p 00000000 00:00 0 +732d18ef0000-732d18ff0000 rw-p 00000000 00:00 0 +732d18ff0000-732d190f0000 rw-p 00000000 00:00 0 +732d190f0000-732d19160000 rw-p 00000000 00:00 0 +732d19160000-732d19200000 ---p 00000000 00:00 0 +732d19200000-732d19410000 rw-p 00000000 00:00 0 +732d19410000-732d1c000000 ---p 00000000 00:00 0 +732d1c000000-732d1c021000 rw-p 00000000 00:00 0 +732d1c021000-732d20000000 ---p 00000000 00:00 0 +732d20000000-732d20004000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d20004000-732d20017000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d20017000-732d20018000 rw-s 00000000 00:06 1022 /dev/nvidia0 +732d20018000-732d2001a000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d2001a000-732d2001b000 rw-s 00000000 00:06 1022 /dev/nvidia0 +732d2001b000-732d2005b000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d2005b000-732d2007b000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d2007b000-732d200bb000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d200bb000-732d201bb000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d201bb000-732d20400000 rw-s 00000000 00:01 7173 /memfd:/.nvidia_drv.XXXXXX (deleted) +732d20400000-732d2045b000 r--p 00000000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +732d2045b000-732d207d9000 r-xp 0005b000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +732d207d9000-732d20bd5000 r--p 003d9000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +732d20bd5000-732d20c10000 r--p 007d4000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +732d20c10000-732d20c15000 rw-p 0080f000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +732d20c15000-732d20c40000 rw-p 00000000 00:00 0 +732d20c40000-732d20c60000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d20c60000-732d20ca0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d20ca0000-732d20cc0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d20cc0000-732d20d00000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d20d00000-732d20e00000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d20e00000-732d20e6e000 r--p 00000000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +732d20e6e000-732d213d5000 r-xp 0006e000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +732d213d5000-732d21ae8000 r--p 005d5000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +732d21ae8000-732d21ae9000 ---p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +732d21ae9000-732d21b26000 r--p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +732d21b26000-732d21b29000 rw-p 00d25000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +732d21b29000-732d21b2b000 rw-p 00000000 00:00 0 +732d21b2b000-732d21b2c000 rw-s 00000000 00:06 1022 /dev/nvidia0 +732d21b2c000-732d21b2d000 rw-s 00000000 00:06 1022 /dev/nvidia0 +732d21b2d000-732d21b40000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d21b40000-732d21b60000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d21b60000-732d21ba0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d21ba0000-732d21bc0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d21bc0000-732d21c00000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d21c00000-732d21c9a000 r--p 00000000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +732d21c9a000-732d21dab000 r-xp 0009a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +732d21dab000-732d21e1a000 r--p 001ab000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +732d21e1a000-732d21e1b000 ---p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +732d21e1b000-732d21e26000 r--p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +732d21e26000-732d21e29000 rw-p 00225000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +732d21e29000-732d21e2c000 rw-p 00000000 00:00 0 +732d21e2c000-732d21e2d000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d21e2d000-732d21e40000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d21e40000-732d21e60000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d21e60000-732d21ee0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d21ee0000-732d21f60000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d21f60000-732d21fa0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d21fa0000-732d21fc0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d21fc0000-732d22000000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d22000000-732d22d91000 rw-p 00001000 103:03 10498862 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/classes.jsa +732d22d91000-732d23000000 ---p 00000000 00:00 0 +732d23000000-732d23030000 rw-p 00000000 00:00 0 +732d23030000-732d23090000 rw-p 00000000 00:00 0 +732d23090000-732d230b0000 rw-p 00000000 00:00 0 +732d230b0000-732d23130000 rw-p 00000000 00:00 0 +732d23130000-732d23150000 rw-p 00000000 00:00 0 +732d23150000-732d231b0000 rw-p 00000000 00:00 0 +732d231b0000-732d231d0000 rw-p 00000000 00:00 0 +732d231d0000-732d23230000 rw-p 00000000 00:00 0 +732d23230000-732d23250000 rw-p 00000000 00:00 0 +732d23250000-732d23280000 ---p 00000000 00:00 0 +732d23280000-732d23290000 rw-p 00000000 00:00 0 +732d23290000-732d63000000 ---p 00000000 00:00 0 +732d63000000-732d63001000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d63001000-732d63014000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d63014000-732d63034000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d63034000-732d63074000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d63074000-732d631b5000 rw-s 00000000 103:03 13372247 /home/codex/.cache/mesa_shader_cache/index +732d631b5000-732d631c6000 r--p 00000000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +732d631c6000-732d63208000 r-xp 00011000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +732d63208000-732d63220000 r--p 00053000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +732d63220000-732d6322e000 r--p 0006a000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +732d6322e000-732d63230000 rw-p 00078000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +732d63230000-732d63234000 r--p 00000000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +732d63234000-732d63250000 r-xp 00004000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +732d63250000-732d63256000 r--p 00020000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +732d63256000-732d63257000 ---p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +732d63257000-732d63259000 r--p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +732d63259000-732d6325a000 rw-p 00028000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +732d6325a000-732d63264000 r--p 00000000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +732d63264000-732d6326e000 r-xp 0000a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +732d6326e000-732d63275000 r--p 00014000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +732d63275000-732d6327e000 r--p 0001a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +732d6327e000-732d6327f000 rw-p 00023000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +732d6327f000-732d6328b000 r--p 00000000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +732d6328b000-732d632ab000 r-xp 0000c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +732d632ab000-732d632b7000 r--p 0002c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +732d632b7000-732d632c1000 r--p 00037000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +732d632c1000-732d632c2000 rw-p 00041000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +732d632c2000-732d632d1000 r--p 00000000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +732d632d1000-732d633b7000 r-xp 0000f000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +732d633b7000-732d633f5000 r--p 000f5000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +732d633f5000-732d633f6000 ---p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +732d633f6000-732d633f9000 r--p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +732d633f9000-732d633ff000 rw-p 00136000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +732d633ff000-732d63400000 rw-p 00000000 00:00 0 +732d63400000-732d63493000 r--p 00000000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +732d63493000-732d638e6000 r-xp 00093000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +732d638e6000-732d63dfc000 r--p 004e6000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +732d63dfc000-732d63e34000 r--p 009fb000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +732d63e34000-732d63e44000 rw-p 00a33000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +732d63e44000-732d63e49000 rw-p 00000000 00:00 0 +732d63e49000-732d63e4a000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d63e4a000-732d63e4b000 rw-s 00044000 00:01 7173 /memfd:/.nvidia_drv.XXXXXX (deleted) +732d63e4b000-732d63e4c000 rw-s 00000000 00:06 1022 /dev/nvidia0 +732d63e4c000-732d63e50000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d63e50000-732d63e51000 rw-s 00000000 00:06 1022 /dev/nvidia0 +732d63e51000-732d63e53000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d63e53000-732d63e54000 rw-s 00000000 00:06 1022 /dev/nvidia0 +732d63e54000-732d63e55000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d63e55000-732d63e59000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d63e59000-732d63e5b000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d63e5b000-732d63e5d000 r--p 00000000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +732d63e5d000-732d63ec8000 r-xp 00002000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +732d63ec8000-732d63ef0000 r--p 0006d000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +732d63ef0000-732d63ef1000 r--p 00094000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +732d63ef1000-732d63ef2000 rw-p 00095000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +732d63ef2000-732d63ef8000 r--p 00000000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +732d63ef8000-732d63f12000 r-xp 00006000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +732d63f12000-732d63f19000 r--p 00020000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +732d63f19000-732d63f1a000 ---p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +732d63f1a000-732d63f1b000 r--p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +732d63f1b000-732d63f1c000 rw-p 00028000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +732d63f1c000-732d63f1e000 rw-p 00000000 00:00 0 +732d63f1e000-732d63f51000 r--p 00000000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +732d63f51000-732d63fb4000 r-xp 00033000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +732d63fb4000-732d63fd3000 r--p 00096000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +732d63fd3000-732d63ffe000 r--p 000b4000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +732d63ffe000-732d63fff000 rw-p 000df000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +732d63fff000-732d64000000 rw-p 00000000 00:00 0 +732d64000000-732d64021000 rw-p 00000000 00:00 0 +732d64021000-732d68000000 ---p 00000000 00:00 0 +732d68000000-732d68021000 rw-p 00000000 00:00 0 +732d68021000-732d6c000000 ---p 00000000 00:00 0 +732d6c000000-732d6c020000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d6c020000-732d6c033000 r--p 00000000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +732d6c033000-732d6c052000 r-xp 00013000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +732d6c052000-732d6c05f000 r--p 00032000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +732d6c05f000-732d6c06f000 r--p 0003e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +732d6c06f000-732d6c070000 rw-p 0004e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +732d6c070000-732d6c07b000 r--p 00000000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +732d6c07b000-732d6c0a9000 r-xp 0000b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +732d6c0a9000-732d6c0bb000 r--p 00039000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +732d6c0bb000-732d6c0bc000 ---p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +732d6c0bc000-732d6c0bd000 r--p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +732d6c0bd000-732d6c0be000 rw-p 0004c000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +732d6c0be000-732d6c0ed000 r--p 00000000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +732d6c0ed000-732d6c1a9000 r-xp 0002f000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +732d6c1a9000-732d6c1f4000 r--p 000eb000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +732d6c1f4000-732d6c202000 r--p 00135000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +732d6c202000-732d6c204000 rw-p 00143000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +732d6c204000-732d6c205000 rw-p 00000000 00:00 0 +732d6c205000-732d6c26b000 r--p 00000000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +732d6c26b000-732d6c35e000 r-xp 00066000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +732d6c35e000-732d6c3ea000 r--p 00159000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +732d6c3ea000-732d6c3fd000 r--p 001e4000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +732d6c3fd000-732d6c3fe000 rw-p 001f7000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +732d6c3fe000-732d6cd22000 rw-p 00000000 00:00 0 +732d6cd22000-732d6cd26000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d6cd26000-732d6cd39000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d6cd39000-732d6cd4c000 r--p 00000000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +732d6cd4c000-732d6cdcb000 r-xp 00013000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +732d6cdcb000-732d6cdf6000 r--p 00092000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +732d6cdf6000-732d6cdf7000 ---p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +732d6cdf7000-732d6cdfe000 r--p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +732d6cdfe000-732d6cdff000 rw-p 000c4000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +732d6cdff000-732d6ce00000 rw-p 00000000 00:00 0 +732d6ce00000-732d6d041000 r-xp 00000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +732d6d041000-732d6d062000 rwxp 00241000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +732d6d062000-732d6d200000 r-xp 00262000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +732d6d200000-732d6de00000 r-xp 00400000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +732d6de00000-732d6ecab000 r-xp 01000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +732d6ecab000-732d6ee10000 r--p 01eaa000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +732d6ee10000-732d6ee7e000 rw-p 0200f000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +732d6ee7e000-732d6ee9c000 rw-p 00000000 00:00 0 +732d6ee9c000-732d6eea0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d6eea0000-732d6eea4000 r--p 00000000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +732d6eea4000-732d6eeb4000 r-xp 00004000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +732d6eeb4000-732d6eeb7000 r--p 00014000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +732d6eeb7000-732d6eeb8000 r--p 00016000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +732d6eeb8000-732d6eeb9000 rw-p 00017000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +732d6eeb9000-732d6eebd000 r--p 00000000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +732d6eebd000-732d6eed3000 r-xp 00004000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +732d6eed3000-732d6eedd000 r--p 0001a000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +732d6eedd000-732d6eede000 r--p 00023000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +732d6eede000-732d6eedf000 rw-p 00024000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +732d6eedf000-732d6eee1000 r--p 00000000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +732d6eee1000-732d6eefa000 r-xp 00002000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +732d6eefa000-732d6eefc000 r--p 0001b000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +732d6eefc000-732d6eefd000 ---p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +732d6eefd000-732d6eefe000 r--p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +732d6eefe000-732d6eeff000 rw-p 0001e000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +732d6eeff000-732d6ef00000 ---p 00000000 00:00 0 +732d6ef00000-732d6f000000 rw-p 00000000 00:00 0 +732d6f000000-732d6f001000 rw-s 00000000 00:06 1022 /dev/nvidia0 +732d6f001000-732d6f002000 rw-s 00000000 00:06 1022 /dev/nvidia0 +732d6f002000-732d6f004000 r--p 00000000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +732d6f004000-732d6f00d000 r-xp 00002000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +732d6f00d000-732d6f010000 r--p 0000b000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +732d6f010000-732d6f011000 ---p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +732d6f011000-732d6f012000 r--p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +732d6f012000-732d6f013000 rw-p 0000f000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +732d6f013000-732d6f015000 rw-p 00000000 00:00 0 +732d6f015000-732d6f01e000 rw-s 00000000 00:01 670431 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) +732d6f01e000-732d6f04d000 r--p 00000000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +732d6f04d000-732d6f1a0000 r-xp 0002f000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +732d6f1a0000-732d6f1f4000 r--p 00182000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +732d6f1f4000-732d6f1f5000 ---p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +732d6f1f5000-732d6f1fe000 r--p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +732d6f1fe000-732d6f1ff000 rw-p 001df000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +732d6f1ff000-732d6f200000 rw-p 00000000 00:00 0 +732d6f200000-732d6f201000 ---p 00000000 00:00 0 +732d6f201000-732d6fa01000 rw-p 00000000 00:00 0 +732d6fa01000-732d6fa02000 rw-s 00000000 00:06 1022 /dev/nvidia0 +732d6fa02000-732d6fa0b000 rw-s 00000000 00:01 670430 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) +732d6fa0b000-732d6fa0d000 r--p 00000000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +732d6fa0d000-732d6fa11000 r-xp 00002000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +732d6fa11000-732d6fa13000 r--p 00006000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +732d6fa13000-732d6fa14000 r--p 00007000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +732d6fa14000-732d6fa15000 rw-p 00008000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +732d6fa15000-732d6fa17000 r--p 00000000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +732d6fa17000-732d6fa1f000 r-xp 00002000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +732d6fa1f000-732d6fa21000 r--p 0000a000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +732d6fa21000-732d6fa22000 r--p 0000b000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +732d6fa22000-732d6fa23000 rw-p 0000c000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +732d6fa23000-732d6fa25000 r--p 00000000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +732d6fa25000-732d6fa2d000 r-xp 00002000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +732d6fa2d000-732d6fa2e000 r--p 0000a000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +732d6fa2e000-732d6fa2f000 ---p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +732d6fa2f000-732d6fa30000 r--p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +732d6fa30000-732d6fa31000 rw-p 0000c000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +732d6fa31000-732d6fa35000 r--p 00000000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +732d6fa35000-732d6fa4a000 r-xp 00004000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +732d6fa4a000-732d6fa50000 r--p 00019000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +732d6fa50000-732d6fa51000 ---p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +732d6fa51000-732d6fa53000 r--p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +732d6fa53000-732d6fa54000 rw-p 00021000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +732d6fa54000-732d6fa57000 r--p 00000000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +732d6fa57000-732d6fa78000 r-xp 00003000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +732d6fa78000-732d6fa84000 r--p 00024000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +732d6fa84000-732d6fa85000 ---p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +732d6fa85000-732d6fa86000 r--p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +732d6fa86000-732d6fa87000 rw-p 00031000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +732d6fa87000-732d6fa95000 r--p 00000000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +732d6fa95000-732d6faa6000 r-xp 0000e000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +732d6faa6000-732d6fab4000 r--p 0001f000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +732d6fab4000-732d6fab8000 r--p 0002c000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +732d6fab8000-732d6fab9000 rw-p 00030000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +732d6fab9000-732d6fac1000 r--p 00000000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +732d6fac1000-732d6fadf000 r-xp 00008000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +732d6fadf000-732d6faec000 r--p 00026000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +732d6faec000-732d6faee000 r--p 00032000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +732d6faee000-732d6faef000 rw-p 00034000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +732d6faef000-732d6faf3000 rw-p 00000000 00:00 0 +732d6faf3000-732d6faf5000 r--p 00000000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +732d6faf5000-732d6fafc000 r-xp 00002000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +732d6fafc000-732d6fafd000 r--p 00009000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +732d6fafd000-732d6fafe000 ---p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +732d6fafe000-732d6faff000 r--p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +732d6faff000-732d6fb00000 rw-p 0000b000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +732d6fb00000-732d6fb04000 r--p 00000000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +732d6fb04000-732d6fb23000 r-xp 00004000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +732d6fb23000-732d6fb2d000 r--p 00023000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +732d6fb2d000-732d6fb2e000 ---p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +732d6fb2e000-732d6fb30000 r--p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +732d6fb30000-732d6fb31000 rw-p 0002f000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +732d6fb31000-732d6fb3b000 r--p 00000000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +732d6fb3b000-732d6fbed000 r-xp 0000a000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +732d6fbed000-732d6fbfe000 r--p 000bc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +732d6fbfe000-732d6fbff000 r--p 000cc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +732d6fbff000-732d6fc00000 rw-p 000cd000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +732d6fc00000-732d70021000 rw-p 00000000 00:00 0 +732d70021000-732d74000000 ---p 00000000 00:00 0 +732d74000000-732d74021000 rw-p 00000000 00:00 0 +732d74021000-732d78000000 ---p 00000000 00:00 0 +732d78000000-732d78001000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d78001000-732d78003000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d78003000-732d78007000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d78007000-732d7800a000 r--p 00000000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +732d7800a000-732d78021000 r-xp 00003000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +732d78021000-732d78025000 r--p 0001a000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +732d78025000-732d78026000 r--p 0001d000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +732d78026000-732d78027000 rw-p 0001e000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +732d78027000-732d7802c000 r--p 00000000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +732d7802c000-732d78037000 r-xp 00005000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +732d78037000-732d7803b000 r--p 00010000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +732d7803b000-732d7803c000 ---p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +732d7803c000-732d7803d000 r--p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +732d7803d000-732d7803e000 rw-p 00015000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +732d7803e000-732d7803f000 r--p 00000000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +732d7803f000-732d78040000 r-xp 00001000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +732d78040000-732d78041000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +732d78041000-732d78042000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +732d78042000-732d78043000 rw-p 00003000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +732d78043000-732d78044000 r--p 00000000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +732d78044000-732d78045000 r-xp 00001000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +732d78045000-732d78046000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +732d78046000-732d78047000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +732d78047000-732d78048000 rw-p 00003000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +732d78048000-732d7804b000 r--p 00000000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +732d7804b000-732d7804e000 r-xp 00003000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +732d7804e000-732d7804f000 r--p 00006000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +732d7804f000-732d78050000 ---p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +732d78050000-732d78051000 r--p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +732d78051000-732d78052000 rw-p 00008000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +732d78052000-732d78055000 r--p 00000000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +732d78055000-732d78058000 r-xp 00003000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +732d78058000-732d78059000 r--p 00006000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +732d78059000-732d7805a000 ---p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +732d7805a000-732d7805b000 r--p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +732d7805b000-732d7805c000 rw-p 00008000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +732d7805c000-732d78061000 r--p 00000000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +732d78061000-732d78067000 r-xp 00005000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +732d78067000-732d7806a000 r--p 0000b000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +732d7806a000-732d7806c000 r--p 0000d000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +732d7806c000-732d7806d000 rw-p 0000f000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +732d7806d000-732d78070000 r--p 00000000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +732d78070000-732d78084000 r-xp 00003000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +732d78084000-732d78088000 r--p 00017000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +732d78088000-732d78089000 ---p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +732d78089000-732d7808a000 r--p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +732d7808a000-732d7808b000 rw-p 0001c000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +732d7808b000-732d7808e000 r--p 00000000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +732d7808e000-732d78094000 r-xp 00003000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +732d78094000-732d78096000 r--p 00009000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +732d78096000-732d78097000 r--p 0000a000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +732d78097000-732d78098000 rw-p 0000b000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +732d78098000-732d780a3000 r--p 00000000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +732d780a3000-732d780ac000 r-xp 0000b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +732d780ac000-732d780b1000 r--p 00014000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +732d780b1000-732d780b2000 ---p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +732d780b2000-732d780b4000 r--p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +732d780b4000-732d780b5000 rw-p 0001b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +732d780b5000-732d780c5000 r--p 00000000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +732d780c5000-732d78123000 r-xp 00010000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +732d78123000-732d7813f000 r--p 0006e000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +732d7813f000-732d78140000 ---p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +732d78140000-732d78146000 r--p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +732d78146000-732d78147000 rw-p 00090000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +732d78147000-732d7814f000 rw-p 00000000 00:00 0 +732d7814f000-732d781a0000 r--p 00000000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +732d781a0000-732d781fc000 r-xp 00051000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +732d781fc000-732d78231000 rwxp 000ad000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +732d78231000-732d78232000 r-xp 000e2000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +732d78232000-732d78252000 r--p 000e3000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +732d78252000-732d78272000 r--p 00102000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +732d78272000-732d78277000 rw-p 00122000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +732d78277000-732d78279000 rw-p 00000000 00:00 0 +732d78279000-732d7827f000 r--p 00000000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +732d7827f000-732d782c9000 r-xp 00006000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +732d782c9000-732d782f3000 r--p 00050000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +732d782f3000-732d782f4000 r--p 00079000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +732d782f4000-732d782f5000 rw-p 0007a000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +732d782f5000-732d782fc000 r--s 00000000 103:03 11147989 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache +732d782fc000-732d782fd000 r--p 00000000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +732d782fd000-732d78300000 r-xp 00001000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +732d78300000-732d78301000 r--p 00004000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +732d78301000-732d78302000 ---p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +732d78302000-732d78303000 r--p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +732d78303000-732d78304000 rw-p 00006000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +732d78304000-732d78307000 r--p 00000000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +732d78307000-732d7830b000 r-xp 00003000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +732d7830b000-732d7830d000 r--p 00007000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +732d7830d000-732d7830e000 r--p 00008000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +732d7830e000-732d7830f000 rw-p 00009000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +732d7830f000-732d78310000 r--p 00000000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +732d78310000-732d78312000 r-xp 00001000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +732d78312000-732d78313000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +732d78313000-732d78314000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +732d78314000-732d78315000 rw-p 00004000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +732d78315000-732d78325000 r--p 00000000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +732d78325000-732d78346000 r-xp 00010000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +732d78346000-732d78382000 r--p 00031000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +732d78382000-732d78386000 r--p 0006c000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +732d78386000-732d78389000 rw-p 00070000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +732d78389000-732d783ac000 rw-p 00000000 00:00 0 +732d783ac000-732d783ad000 ---p 00000000 00:00 0 +732d783ad000-732d784ad000 rw-p 00000000 00:00 0 +732d784ad000-732d784ae000 ---p 00000000 00:00 0 +732d784ae000-732d785ae000 rw-p 00000000 00:00 0 +732d785ae000-732d785af000 ---p 00000000 00:00 0 +732d785af000-732d786af000 rw-p 00000000 00:00 0 +732d786af000-732d786b0000 ---p 00000000 00:00 0 +732d786b0000-732d787b0000 rw-p 00000000 00:00 0 +732d787b0000-732d787b1000 ---p 00000000 00:00 0 +732d787b1000-732d788b1000 rw-p 00000000 00:00 0 +732d788b1000-732d788b2000 ---p 00000000 00:00 0 +732d788b2000-732d789b2000 rw-p 00000000 00:00 0 +732d789b2000-732d789b6000 ---p 00000000 00:00 0 +732d789b6000-732d78ab2000 rw-p 00000000 00:00 0 +732d78ab2000-732d78bb2000 rw-s 00000000 00:01 983077 /SYSV00000000 (deleted) +732d78bb2000-732d78bb6000 ---p 00000000 00:00 0 +732d78bb6000-732d78cb2000 rw-p 00000000 00:00 0 +732d78cb2000-732d78cb6000 ---p 00000000 00:00 0 +732d78cb6000-732d78db2000 rw-p 00000000 00:00 0 +732d78db2000-732d78db6000 ---p 00000000 00:00 0 +732d78db6000-732d78eb2000 rw-p 00000000 00:00 0 +732d78eb2000-732d78eb6000 ---p 00000000 00:00 0 +732d78eb6000-732d78fb2000 rw-p 00000000 00:00 0 +732d78fb2000-732d78fb6000 ---p 00000000 00:00 0 +732d78fb6000-732d790b2000 rw-p 00000000 00:00 0 +732d790b2000-732d790b6000 ---p 00000000 00:00 0 +732d790b6000-732d791b2000 rw-p 00000000 00:00 0 +732d791b2000-732d791bf000 r--p 00000000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +732d791bf000-732d79248000 r-xp 0000d000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +732d79248000-732d79271000 r--p 00096000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +732d79271000-732d79272000 ---p 000bf000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +732d79272000-732d79279000 r--p 000bf000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +732d79279000-732d7927a000 rw-p 000c6000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +732d7927a000-732d793fb000 r-xp 00000000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so +732d793fb000-732d793fc000 ---p 00181000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so +732d793fc000-732d793fe000 r--p 00181000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so +732d793fe000-732d793ff000 rw-p 00183000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so +732d793ff000-732d79400000 rw-p 00000000 00:00 0 +732d79400000-732d79c00000 rw-p 00000000 00:00 0 +732d79c00000-732d79c08000 r--p 00000000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +732d79c08000-732d79c60000 r-xp 00008000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +732d79c60000-732d79c71000 r--p 00060000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +732d79c71000-732d79c72000 ---p 00071000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +732d79c72000-732d79c78000 r--p 00071000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +732d79c78000-732d79c79000 rw-p 00077000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +732d79c79000-732d79e83000 rw-p 00000000 00:00 0 +732d79e83000-732d79e85000 r--p 00000000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +732d79e85000-732d79e87000 r-xp 00002000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +732d79e87000-732d79e88000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +732d79e88000-732d79e89000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +732d79e89000-732d79e8a000 rw-p 00005000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +732d79e8a000-732d79e91000 r--p 00000000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +732d79e91000-732d79e97000 r-xp 00007000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +732d79e97000-732d79e9a000 r--p 0000d000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +732d79e9a000-732d79e9b000 ---p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +732d79e9b000-732d79e9c000 r--p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +732d79e9c000-732d79e9d000 rw-p 00011000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +732d79e9d000-732d79e9e000 r--p 00000000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 +732d79e9e000-732d79e9f000 r-xp 00001000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 +732d79e9f000-732d79ebe000 r--p 00002000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 +732d79ebe000-732d79ebf000 r--p 00020000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 +732d79ebf000-732d79ec0000 rw-p 00021000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 +732d79ec0000-732d79ed9000 r--p 00000000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +732d79ed9000-732d79f65000 r-xp 00019000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +732d79f65000-732d79ffa000 r--p 000a5000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +732d79ffa000-732d79ffb000 ---p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +732d79ffb000-732d79ffc000 r--p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +732d79ffc000-732d7a000000 rw-p 0013b000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +732d7a000000-732d7a004000 ---p 00000000 00:00 0 +732d7a004000-732d7a100000 rw-p 00000000 00:00 0 +732d7a100000-732d7a104000 ---p 00000000 00:00 0 +732d7a104000-732d7a200000 rw-p 00000000 00:00 0 +732d7a200000-732d7a204000 ---p 00000000 00:00 0 +732d7a204000-732d7a300000 rw-p 00000000 00:00 0 +732d7a300000-732d7a304000 ---p 00000000 00:00 0 +732d7a304000-732d7a400000 rw-p 00000000 00:00 0 +732d7a400000-732d7a404000 ---p 00000000 00:00 0 +732d7a404000-732d7a500000 rw-p 00000000 00:00 0 +732d7a500000-732d7a504000 ---p 00000000 00:00 0 +732d7a504000-732d7a600000 rw-p 00000000 00:00 0 +732d7a600000-732d7a604000 ---p 00000000 00:00 0 +732d7a604000-732d7a700000 rw-p 00000000 00:00 0 +732d7a700000-732d7a704000 ---p 00000000 00:00 0 +732d7a704000-732d7a800000 rw-p 00000000 00:00 0 +732d7a800000-732d7a804000 ---p 00000000 00:00 0 +732d7a804000-732d7a900000 rw-p 00000000 00:00 0 +732d7a900000-732d7a904000 ---p 00000000 00:00 0 +732d7a904000-732d7aa00000 rw-p 00000000 00:00 0 +732d7aa00000-732d7b906000 r--p 00000000 103:03 10618858 /usr/lib/locale/locale-archive +732d7b906000-732d7b908000 r--p 00000000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +732d7b908000-732d7b90e000 r-xp 00002000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +732d7b90e000-732d7b910000 r--p 00008000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +732d7b910000-732d7b911000 r--p 00009000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +732d7b911000-732d7b912000 rw-p 0000a000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +732d7b912000-732d7b913000 r--p 00000000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 +732d7b913000-732d7b91b000 r-xp 00001000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 +732d7b91b000-732d7b91e000 r--p 00009000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 +732d7b91e000-732d7b91f000 r--p 0000b000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 +732d7b91f000-732d7b920000 rw-p 0000c000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 +732d7b920000-732d7b925000 r--p 00000000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 +732d7b925000-732d7b94e000 r-xp 00005000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 +732d7b94e000-732d7b959000 r--p 0002e000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 +732d7b959000-732d7b95a000 r--p 00038000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 +732d7b95a000-732d7b95b000 rw-p 00039000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 +732d7b95b000-732d7b95d000 r--p 00000000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +732d7b95d000-732d7b964000 r-xp 00002000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +732d7b964000-732d7b966000 r--p 00009000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +732d7b966000-732d7b967000 r--p 0000a000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +732d7b967000-732d7b968000 rw-p 0000b000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +732d7b968000-732d7b96c000 r--p 00000000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +732d7b96c000-732d7b979000 r-xp 00004000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +732d7b979000-732d7b97c000 r--p 00011000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +732d7b97c000-732d7b97d000 ---p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +732d7b97d000-732d7b97e000 r--p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +732d7b97e000-732d7b97f000 rw-p 00015000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +732d7b97f000-732d7b980000 rw-p 00000000 00:00 0 +732d7b980000-732d7b9f0000 r-xp 00000000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +732d7b9f0000-732d7b9f1000 ---p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +732d7b9f1000-732d7b9f6000 r--p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +732d7b9f6000-732d7b9f8000 rw-p 00075000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +732d7b9f8000-732d7b9fa000 rw-p 00000000 00:00 0 +732d7b9fa000-732d7b9fb000 ---p 00000000 00:00 0 +732d7b9fb000-732d7bafb000 rw-p 00000000 00:00 0 +732d7bafb000-732d7bafc000 ---p 00000000 00:00 0 +732d7bafc000-732d7bbfc000 rw-p 00000000 00:00 0 +732d7bbfc000-732d7bbfd000 ---p 00000000 00:00 0 +732d7bbfd000-732d7bcfd000 rw-p 00000000 00:00 0 +732d7bcfd000-732d7bcfe000 ---p 00000000 00:00 0 +732d7bcfe000-732d7bdfe000 rw-p 00000000 00:00 0 +732d7bdfe000-732d7c000000 rw-p 00000000 00:00 0 +732d7c000000-732d7c021000 rw-p 00000000 00:00 0 +732d7c021000-732d80000000 ---p 00000000 00:00 0 +732d80000000-732d80001000 rw-s 00000000 00:06 1022 /dev/nvidia0 +732d80001000-732d80002000 rw-s 00000000 00:06 1022 /dev/nvidia0 +732d80002000-732d80003000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d80003000-732d80004000 r--p 00000000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +732d80004000-732d80006000 r-xp 00001000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +732d80006000-732d80007000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +732d80007000-732d80008000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +732d80008000-732d80009000 rw-p 00004000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +732d80009000-732d800ca000 r-xp 00000000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +732d800ca000-732d800cb000 r--p 000c0000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +732d800cb000-732d800d6000 rw-p 000c1000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +732d800d6000-732d82600000 rw-p 00000000 00:00 0 +732d82600000-732d82601000 rw-s 00000000 00:06 1022 /dev/nvidia0 +732d82601000-732d82603000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d82603000-732d8260e000 r--p 00000000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +732d8260e000-732d82622000 r-xp 0000b000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +732d82622000-732d8262b000 r--p 0001f000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +732d8262b000-732d8262c000 r--p 00027000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +732d8262c000-732d8262d000 rw-p 00028000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +732d8262d000-732d826fb000 r-xp 00000000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +732d826fb000-732d826fc000 r--p 000cd000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +732d826fc000-732d826fd000 rw-p 000ce000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +732d826fd000-732d827fe000 rw-p 00000000 00:00 0 +732d827fe000-732d827ff000 ---p 00000000 00:00 0 +732d827ff000-732d828ff000 rw-p 00000000 00:00 0 +732d828ff000-732d82900000 ---p 00000000 00:00 0 +732d82900000-732d82a00000 rw-p 00000000 00:00 0 +732d82a00000-732d82a70000 rw-p 00000000 00:00 0 +732d82a70000-732d8a700000 ---p 00000000 00:00 0 +732d8a700000-732d8a701000 rw-s 00000000 00:06 1022 /dev/nvidia0 +732d8a701000-732d8a702000 rw-s 00000000 00:06 1022 /dev/nvidia0 +732d8a702000-732d8a703000 rw-s 00000000 00:06 1022 /dev/nvidia0 +732d8a703000-732d8a72f000 r--p 00000000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +732d8a72f000-732d8a763000 r-xp 0002c000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +732d8a763000-732d8a77d000 r--p 00060000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +732d8a77d000-732d8a77e000 r--p 00079000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +732d8a77e000-732d8a77f000 rw-p 0007a000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +732d8a77f000-732d8a80e000 rw-p 00000000 00:00 0 +732d8a80e000-732d8b7a0000 ---p 00000000 00:00 0 +732d8b7a0000-732d8b7a1000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d8b7a1000-732d8b7a2000 rw-s 00000000 00:06 1017 /dev/nvidiactl +732d8b7a2000-732d8b7a3000 r--s 00000000 00:06 1017 /dev/nvidiactl +732d8b7a3000-732d8b7a5000 r--p 00000000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +732d8b7a5000-732d8b7a8000 r-xp 00002000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +732d8b7a8000-732d8b7a9000 r--p 00005000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +732d8b7a9000-732d8b7aa000 r--p 00006000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +732d8b7aa000-732d8b7ab000 rw-p 00007000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +732d8b7ab000-732d8b7ae000 r--p 00000000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +732d8b7ae000-732d8b7ba000 r-xp 00003000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +732d8b7ba000-732d8b7bd000 r--p 0000f000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +732d8b7bd000-732d8b7be000 r--p 00011000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +732d8b7be000-732d8b7bf000 rw-p 00012000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +732d8b7bf000-732d8b7fd000 r-xp 00000000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +732d8b7fd000-732d8b7fe000 ---p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +732d8b7fe000-732d8b7ff000 r--p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +732d8b7ff000-732d8b800000 rw-p 0003f000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +732d8b800000-732d8b80e000 rw-p 00000000 00:00 0 +732d8b80e000-732d8c7a0000 ---p 00000000 00:00 0 +732d8c7a0000-732d8c7a1000 r--p 00000000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +732d8c7a1000-732d8c7a2000 r-xp 00001000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +732d8c7a2000-732d8c7a3000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +732d8c7a3000-732d8c7a4000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +732d8c7a4000-732d8c7a5000 rw-p 00003000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +732d8c7a5000-732d8c800000 rw-p 00000000 00:00 0 +732d8c800000-732d8caa0000 rwxp 00000000 00:00 0 +732d8caa0000-732d93d37000 ---p 00000000 00:00 0 +732d93d37000-732d93fb7000 rwxp 00000000 00:00 0 +732d93fb7000-732d942c8000 ---p 00000000 00:00 0 +732d942c8000-732d94538000 rwxp 00000000 00:00 0 +732d94538000-732d9b800000 ---p 00000000 00:00 0 +732d9b800000-732da3fb5000 r--s 00000000 103:03 10498840 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/modules +732da3fb5000-732da3fb6000 rw-s 00000000 00:01 1028 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) +732da3fb6000-732da3fb7000 rw-s 00000000 00:01 670429 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=4096 (deleted) +732da3fb7000-732da3fb9000 r--p 00000000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +732da3fb9000-732da3fbb000 r-xp 00002000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +732da3fbb000-732da3fbd000 r--p 00004000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +732da3fbd000-732da3fbe000 r--p 00005000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +732da3fbe000-732da3fbf000 rw-p 00006000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +732da3fbf000-732da4000000 rw-p 00000000 00:00 0 +732da4000000-732da4628000 rw-p 00000000 00:00 0 +732da4628000-732da8000000 ---p 00000000 00:00 0 +732da8000000-732da8002000 r--p 00000000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +732da8002000-732da8009000 r-xp 00002000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +732da8009000-732da800b000 r--p 00009000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +732da800b000-732da800c000 r--p 0000a000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +732da800c000-732da800d000 rw-p 0000b000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +732da800d000-732da8011000 r--p 00000000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +732da8011000-732da801c000 r-xp 00004000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +732da801c000-732da8020000 r--p 0000f000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +732da8020000-732da8021000 r--p 00012000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +732da8021000-732da8022000 rw-p 00013000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +732da8022000-732da8023000 ---p 00000000 00:00 0 +732da8023000-732da8123000 rw-p 00000000 00:00 0 +732da8123000-732da8a2f000 rw-p 00000000 00:00 0 +732da8a2f000-732da8b15000 ---p 00000000 00:00 0 +732da8b15000-732da8b1b000 rw-p 00000000 00:00 0 +732da8b1b000-732da8c00000 ---p 00000000 00:00 0 +732da8c00000-732da9f30000 r-xp 00000000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so +732da9f30000-732daa000000 r--p 0132f000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so +732daa000000-732daa02e000 rw-p 013ff000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so +732daa02e000-732daa0a4000 rw-p 00000000 00:00 0 +732daa0a4000-732daa0a5000 r--p 00000000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +732daa0a5000-732daa0a6000 r-xp 00001000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +732daa0a6000-732daa0a7000 r--p 00002000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +732daa0a7000-732daa0a8000 r--p 00003000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +732daa0a8000-732daa0a9000 rw-p 00004000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +732daa0a9000-732daa0aa000 r--p 00000000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +732daa0aa000-732daa0ac000 r-xp 00001000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +732daa0ac000-732daa0ad000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +732daa0ad000-732daa0ae000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +732daa0ae000-732daa0af000 rw-p 00004000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +732daa0af000-732daa0b0000 rw-s 00000000 00:01 670428 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) +732daa0b0000-732daa0b1000 rw-s 00000000 00:01 669127 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) +732daa0b1000-732daa0b2000 r-xp 00000000 00:00 0 +732daa0b2000-732daa0b3000 r--p 00000000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +732daa0b3000-732daa0b4000 r-xp 00001000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +732daa0b4000-732daa0b5000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +732daa0b5000-732daa0b6000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +732daa0b6000-732daa0b7000 rw-p 00003000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +732daa0b7000-732daa0b8000 r--p 00000000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +732daa0b8000-732daa0bb000 r-xp 00001000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +732daa0bb000-732daa0bc000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +732daa0bc000-732daa0bd000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +732daa0bd000-732daa0be000 rw-p 00005000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +732daa0be000-732daa0c0000 r--p 00000000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +732daa0c0000-732daa0c7000 r-xp 00002000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +732daa0c7000-732daa0c9000 r--p 00009000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +732daa0c9000-732daa0ca000 r--p 0000a000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +732daa0ca000-732daa0cb000 rw-p 0000b000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +732daa0cb000-732daa0cc000 r-xp 00000000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so +732daa0cc000-732daa0cd000 ---p 00001000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so +732daa0cd000-732daa0ce000 r--p 00001000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so +732daa0ce000-732daa0cf000 rw-p 00002000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so +732daa0cf000-732daa0da000 r-xp 00000000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +732daa0da000-732daa0db000 ---p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +732daa0db000-732daa0dc000 r--p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +732daa0dc000-732daa0dd000 rw-p 0000c000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +732daa0dd000-732daa0fd000 r-xp 00000000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +732daa0fd000-732daa0fe000 r--p 0001f000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +732daa0fe000-732daa0ff000 rw-p 00020000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +732daa0ff000-732daa100000 rw-p 00000000 00:00 0 +732daa100000-732daa104000 ---p 00000000 00:00 0 +732daa104000-732daa200000 rw-p 00000000 00:00 0 +732daa200000-732daa228000 r--p 00000000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +732daa228000-732daa3bd000 r-xp 00028000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +732daa3bd000-732daa415000 r--p 001bd000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +732daa415000-732daa416000 ---p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +732daa416000-732daa41a000 r--p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +732daa41a000-732daa41c000 rw-p 00219000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +732daa41c000-732daa429000 rw-p 00000000 00:00 0 +732daa429000-732daa42b000 r--p 00000000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +732daa42b000-732daa42e000 r-xp 00002000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +732daa42e000-732daa42f000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +732daa42f000-732daa430000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +732daa430000-732daa431000 rw-p 00006000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +732daa431000-732daa432000 rw-p 00000000 00:00 0 +732daa432000-732daa433000 r-xp 0005e000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +732daa433000-732daa434000 rw-p 00000000 00:00 0 +732daa434000-732daa447000 r-xp 00000000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +732daa447000-732daa448000 ---p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +732daa448000-732daa449000 r--p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +732daa449000-732daa44a000 rw-p 00014000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +732daa44a000-732daa468000 r-xp 00000000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +732daa468000-732daa46a000 r--p 0001d000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +732daa46a000-732daa46b000 rw-p 0001f000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +732daa46b000-732daa479000 r--p 00000000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +732daa479000-732daa4f5000 r-xp 0000e000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +732daa4f5000-732daa550000 r--p 0008a000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +732daa550000-732daa551000 r--p 000e4000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +732daa551000-732daa552000 rw-p 000e5000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +732daa552000-732daa553000 r--p 00000000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +732daa553000-732daa554000 r-xp 00001000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +732daa554000-732daa555000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +732daa555000-732daa556000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +732daa556000-732daa557000 rw-p 00003000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +732daa557000-732daa55b000 rw-p 00000000 00:00 0 +732daa55b000-732daa55c000 r--p 00000000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +732daa55c000-732daa55d000 r-xp 00001000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +732daa55d000-732daa55e000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +732daa55e000-732daa55f000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +732daa55f000-732daa560000 rw-p 00003000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +732daa560000-732daa561000 r--p 00000000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +732daa561000-732daa562000 r-xp 00001000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +732daa562000-732daa563000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +732daa563000-732daa564000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +732daa564000-732daa565000 rw-p 00003000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +732daa565000-732daa567000 r--p 00000000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +732daa567000-732daa578000 r-xp 00002000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +732daa578000-732daa57e000 r--p 00013000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +732daa57e000-732daa57f000 ---p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +732daa57f000-732daa580000 r--p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +732daa580000-732daa581000 rw-p 0001a000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +732daa581000-732daa588000 r-xp 00000000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +732daa588000-732daa589000 ---p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +732daa589000-732daa58a000 r--p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +732daa58a000-732daa58b000 rw-p 00008000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +732daa58b000-732daa590000 rw-p 00000000 00:00 0 +732daa590000-732daa597000 ---p 00000000 00:00 0 +732daa597000-732daa59f000 rw-s 00000000 103:03 4325444 /tmp/hsperfdata_codex/84545 +732daa59f000-732daa5a0000 ---p 00000000 00:00 0 +732daa5a0000-732daa5a1000 r--p 00000000 00:00 0 +732daa5a1000-732daa5b0000 r-xp 00000000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so +732daa5b0000-732daa5b1000 r--p 0000e000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so +732daa5b1000-732daa5b2000 rw-p 0000f000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so +732daa5b2000-732daa5b4000 rw-p 00000000 00:00 0 +732daa5b4000-732daa5b8000 r--p 00000000 00:00 0 [vvar] +732daa5b8000-732daa5ba000 r-xp 00000000 00:00 0 [vdso] +732daa5ba000-732daa5bc000 r--p 00000000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +732daa5bc000-732daa5e6000 r-xp 00002000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +732daa5e6000-732daa5f1000 r--p 0002c000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +732daa5f1000-732daa5f2000 ---p 00000000 00:00 0 +732daa5f2000-732daa5f4000 r--p 00037000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +732daa5f4000-732daa5f6000 rw-p 00039000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +7ffda949e000-7ffda94c1000 rw-p 00000000 00:00 0 [stack] +ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall] +Total number of mappings: 918 + + +VM Arguments: +jvm_args: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant +java_command: jme3test.vulkan.VulkanTest +java_class_path (initial): /home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/java/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/groovy/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/resources/main:/home/codex/java/prj/jmonkeyengine/jme3-lwjgl3/build/libs/jme3-lwjgl3-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-desktop/build/libs/jme3-desktop-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-effects/build/libs/jme3-effects-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jbullet/build/libs/jme3-jbullet-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jogg/build/libs/jme3-jogg-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-networking/build/libs/jme3-networking-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-niftygui/build/libs/jme3-niftygui-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins/build/libs/jme3-plugins-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-terrain/build/libs/jme3-terrain-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-awt-dialogs/build/libs/jme3-awt-dialogs-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-core/build/libs/jme3-core-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json-gson/build/libs/jme3-plugins-json-gson-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json/build/libs/jme3-plugins-json-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-testdata/build/libs/jme3-testdata-null-SNAPSHOT.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-examples/1.4.3/4a41c559851c0c5a77ba3a9d1ccc8e6e92207dc7/nifty-examples-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjglx/lwjgl3-awt/0.2.3/2be63e81d6b73300d8203ce7235b2660c62eb3ea/lwjgl3-awt-0.2.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/7119f7d0eeb1e5502ff0ca71d2b4d47317da015/lwjgl-glfw-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/99ef08056feb9627f90425a4d2a22cd9fae8e39b/lwjgl-glfw-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/cfa8f1e96d572ed56da5945adf5167628f5eecdb/lwjgl-glfw-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/797e0965709ad180d9b00c88a086dbda15002203/lwjgl-glfw-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/671adf04a6bc4f792af13892e37f804be30b7070/lwjgl-glfw-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/b54023af492b4c2c72451f3a7aa0f385e9969474/lwjgl-glfw-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/82c8d748a654241b5961ddd1c098e8b648e38a48/lwjgl-glfw-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/399b42b491c5dfa6595ae6fd79dcba61b93538a7/lwjgl-glfw-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jawt/3.3.6/43299e222bd7db5e99254a8e620330954b73c2a6/lwjgl-jawt-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/245910eb57f2444429c74e6bf96030e5ec0a6739/lwjgl-jemalloc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/f9da76351e14a695be172d6915c8a7b2905307f/lwjgl-jemalloc-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c86043a342a33e5d32fabf962578580633db3c6e/lwjgl-jemalloc-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/26f8b467dc2e0f3000d608de3564b572bb46f927/lwjgl-jemalloc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c484cae39a718010dbc7931fe5e12664600a13c2/lwjgl-jemalloc-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1bc2e16e70df7f418d668c2984ac8066f1f6f5b1/lwjgl-jemalloc-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/9a42df0f2e9747815490311d7db7b4a046d5f40/lwjgl-jemalloc-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1f828c1fc06792475850162725433adf5ad001c0/lwjgl-jemalloc-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ad313317ff399fd2a7f4dd74716a68cf3976c6ad/lwjgl-openal-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/9c2b9b660e085bb0b47a4453dc0e26f24a5475e4/lwjgl-openal-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/82f693541d69aa125750bf8be9c4194435c56f03/lwjgl-openal-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ef356c04ef141d4efbde07793f31784f1f1a1bae/lwjgl-openal-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/7830af894fa110e65bf5075deb9183efbdbc50f5/lwjgl-openal-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/fd2c17603c63e8d543cb57d1db77ebd4574f3b7a/lwjgl-openal-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/c39f6827f0bd97601fc4e389801d5c813f59a5f2/lwjgl-openal-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/13f692aec4ae4b2d3c468aa0008472175f0ea1e0/lwjgl-openal-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opencl/3.3.6/93fdcea16d27b1466450e38dc28c8e1b4819ec25/lwjgl-opencl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ac2532612a4df374e9a9282bcf8ce2573018ebbb/lwjgl-opengl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/18dc639ebc94aa5202c2157f7490d28997b697c5/lwjgl-opengl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b0ab1d0e315d2fcc50d6cab7e8feaf4688d5d9a0/lwjgl-opengl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b8dc6467fe232d552793c53dc56f9fa8a385299c/lwjgl-opengl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ee815fbf454b916f13c10fff62e513eb09042ef0/lwjgl-opengl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/44de180f79e0b45c9e5bee10ca7540dcb5ddd373/lwjgl-opengl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/59f708eb4bf0be0204bbc9c06807911724673db6/lwjgl-opengl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/fee4fb2ee786af6530b6f9188205a76bc4e05268/lwjgl-opengl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-vulkan/3.3.6/a403e0931b03b138854bb2ba9c48dab646cba6d8/lwjgl-vulkan-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/9d0964fe2b75f64d9dab9839c2b059b7e8f71115/lwjgl-shaderc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/ab69a0e011f057ed25857c97fa3c87f20ab8f670/lwjgl-shaderc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/ce7721d30cfaf47feaed10213e0c43eb55c49d68/lwjgl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9a29b6a22fc5184604b8cb434ee5d5ecc4bfcbee/lwjgl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/7a6f04e02429ba2f4bda9be191347bb7d3c71127/lwjgl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/dc7db8fc4f1e6563867f9155b9a42d9c73d8992f/lwjgl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/2c9d698e76c3d0fe307d94cc6f428038492f25df/lwjgl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9eeb8887b5e3aa672efd2e1b0973ffa5891a3151/lwjgl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/f14e7a5289d2355822f4f83b3fd38d158c939acd/lwjgl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/832e2964ce74e02e768814a29c06d60645115b9a/lwjgl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/jbullet/1.0.3/362f53e8aa981037c2523ac24eb4d9b190a49036/jbullet-1.0.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/javax.vecmath/vecmath/1.5.2/fd17bc3e67f909573dfc039d8e2abecf407c4e27/vecmath-1.5.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/j-ogg-vorbis/1.0.6/a69d1cf62eaf75b71af61f9c23265d278a966735/j-ogg-vorbis-1.0.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-default-controls/1.4.3/2ccafe0182a73da87657ca24b639b6e8c1accd50/nifty-default-controls-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty/1.4.3/fa9ac16e00d1b375d10f58d1c1eb576950ae8c9d/nifty-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-style-black/1.4.3/c20a02dbdeb0bd9d2be258955fceb55c13185a8/nifty-style-black-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.9.1/2cc2131b98ebfb04e2b2c7dfb84431f4045096b/gson-2.9.1.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/stack-alloc/1.0.2/13cbb10c01ec09d0f5879f988946a97998175dfc/stack-alloc-1.0.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/xpp3/xpp3/1.1.4c/9b988ea84b9e4e9f1874e390ce099b8ac12cfff5/xpp3-1.1.4c.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/2.0.2/516c03b21d50a644d538de0f0369c620989cd8f0/jsr305-2.0.2.jar +Launcher Type: SUN_STANDARD + +[Global flags] + intx CICompilerCount = 4 {product} {ergonomic} + uint ConcGCThreads = 2 {product} {ergonomic} + uint G1ConcRefinementThreads = 8 {product} {ergonomic} + size_t G1HeapRegionSize = 4194304 {product} {ergonomic} + size_t InitialHeapSize = 524288000 {product} {ergonomic} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MarkStackSizeMax = 536870912 {product} {ergonomic} + size_t MaxHeapSize = 8388608000 {product} {ergonomic} + size_t MaxNewSize = 5033164800 {product} {ergonomic} + size_t MinHeapDeltaBytes = 4194304 {product} {ergonomic} + size_t MinHeapSize = 8388608 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 5836800 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 122912768 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 122908672 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + size_t SoftMaxHeapSize = 8388608000 {manageable} {ergonomic} + bool UseCompressedOops = true {product lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags foldmultilines=false + #1: stderr all=off uptime,level,tags foldmultilines=false + +Environment Variables: +PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin +USERNAME=codex +SHELL=/bin/bash +DISPLAY=:1 +LANG=en_US.UTF-8 + +Active Locale: +LC_ALL=en_US.UTF-8 +LC_COLLATE=en_US.UTF-8 +LC_CTYPE=en_US.UTF-8 +LC_MESSAGES=en_US.UTF-8 +LC_MONETARY=en_US.UTF-8 +LC_NUMERIC=en_US.UTF-8 +LC_TIME=en_US.UTF-8 + +Signal Handlers: + SIGSEGV: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGBUS: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGFPE: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGPIPE: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGXFSZ: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGILL: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGUSR2: SR_handler in libjvm.so, mask=00000000000000000000000000000000, flags=SA_RESTART|SA_SIGINFO, blocked + SIGHUP: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGINT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGTERM: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGQUIT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGTRAP: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + + +Periodic native trim disabled + +--------------- S Y S T E M --------------- + +OS: +DISTRIB_ID=Pop +DISTRIB_RELEASE=22.04 +DISTRIB_CODENAME=jammy +DISTRIB_DESCRIPTION="Pop!_OS 22.04 LTS" +uname: Linux 6.9.3-76060903-generic #202405300957~1726766035~22.04~4092a0e SMP PREEMPT_DYNAMIC Thu S x86_64 +OS uptime: 0 days 15:13 hours +libc: glibc 2.35 NPTL 2.35 +rlimit (soft/hard): STACK 8192k/infinity , CORE 0k/infinity , NPROC 127655/127655 , NOFILE 1048576/1048576 , AS infinity/infinity , CPU infinity/infinity , DATA infinity/infinity , FSIZE infinity/infinity , MEMLOCK 4095956k/4095956k +load average: 0.91 0.86 0.83 + +/proc/meminfo: +MemTotal: 32767652 kB +MemFree: 20158592 kB +MemAvailable: 23559316 kB +Buffers: 346904 kB +Cached: 5008344 kB +SwapCached: 0 kB +Active: 8805936 kB +Inactive: 2811836 kB +Active(anon): 6296256 kB +Inactive(anon): 0 kB +Active(file): 2509680 kB +Inactive(file): 2811836 kB +Unevictable: 15204 kB +Mlocked: 72 kB +SwapTotal: 20970996 kB +SwapFree: 20970996 kB +Zswap: 0 kB +Zswapped: 0 kB +Dirty: 572 kB +Writeback: 0 kB +AnonPages: 6278416 kB +Mapped: 1825616 kB +Shmem: 33440 kB +KReclaimable: 197280 kB +Slab: 385420 kB +SReclaimable: 197280 kB +SUnreclaim: 188140 kB +KernelStack: 22604 kB +PageTables: 54152 kB +SecPageTables: 0 kB +NFS_Unstable: 0 kB +Bounce: 0 kB +WritebackTmp: 0 kB +CommitLimit: 37354820 kB +Committed_AS: 12297512 kB +VmallocTotal: 34359738367 kB +VmallocUsed: 252096 kB +VmallocChunk: 0 kB +Percpu: 9472 kB +HardwareCorrupted: 0 kB +AnonHugePages: 0 kB +ShmemHugePages: 6144 kB +ShmemPmdMapped: 0 kB +FileHugePages: 0 kB +FilePmdMapped: 0 kB +Unaccepted: 0 kB +HugePages_Total: 0 +HugePages_Free: 0 +HugePages_Rsvd: 0 +HugePages_Surp: 0 +Hugepagesize: 2048 kB +Hugetlb: 0 kB +DirectMap4k: 851768 kB +DirectMap2M: 15826944 kB +DirectMap1G: 16777216 kB + +/sys/kernel/mm/transparent_hugepage/enabled: always [madvise] never +/sys/kernel/mm/transparent_hugepage/hpage_pmd_size: 2097152 +/sys/kernel/mm/transparent_hugepage/shmem_enabled: always within_size advise [never] deny force +/sys/kernel/mm/transparent_hugepage/defrag (defrag/compaction efforts parameter): always defer defer+madvise [madvise] never + +Process Memory: +Virtual Size: 13378692K (peak: 13378692K) +Resident Set Size: 308840K (peak: 308840K) (anon: 165076K, file: 142740K, shmem: 1024K) +Swapped out: 0K +C-Heap outstanding allocations: 84201K, retained: 22642K +glibc malloc tunables: (default) + +/proc/sys/kernel/threads-max (system-wide limit on the number of threads): 255310 +/proc/sys/vm/max_map_count (maximum number of memory map areas a process may have): 2147483642 +/proc/sys/vm/swappiness (control to define how aggressively the kernel swaps out anonymous memory): 180 +/proc/sys/kernel/pid_max (system-wide limit on number of process identifiers): 4194304 + +container (cgroup) information: +container_type: cgroupv2 +cpu_cpuset_cpus: not supported +cpu_memory_nodes: not supported +active_processor_count: 8 +cpu_quota: not supported +cpu_period: not supported +cpu_shares: not supported +memory_limit_in_bytes: unlimited +memory_and_swap_limit_in_bytes: unlimited +memory_soft_limit_in_bytes: 0 +memory_usage_in_bytes: 5916456 k +memory_max_usage_in_bytes: not supported +rss_usage_in_bytes: 3510504 k +cache_usage_in_bytes: 2323036 k +memory_swap_current_in_bytes: 0 +memory_swap_max_limit_in_bytes: unlimited +maximum number of tasks: 38296 +current number of tasks: 318 + +Steal ticks since vm start: 0 +Steal ticks percentage since vm start: 0.000 + +CPU: total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 158 stepping 9 microcode 0xf8, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, adx, fma, vzeroupper, clflush, clflushopt, rdtscp, f16c +CPU Model and flags from /proc/cpuinfo: +model name : Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz +flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities + +Online cpus: 0-7 +Offline cpus: +BIOS frequency limitation: +Frequency switch latency (ns): 0 +Available cpu frequencies: +Current governor: powersave +Core performance/turbo boost: + +Memory: 4k page, physical 32767652k(23559316k free), swap 20970996k(20970996k free) +Page Sizes: 4k + +vm_info: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58) for linux-amd64 JRE (23.0.2+7-58), built on 2024-11-29T09:34:55Z with gcc 13.2.0 + +END. diff --git a/hs_err_pid84939.log b/hs_err_pid84939.log new file mode 100644 index 0000000000..987a5c0e9f --- /dev/null +++ b/hs_err_pid84939.log @@ -0,0 +1,1600 @@ +# +# A fatal error has been detected by the Java Runtime Environment: +# +# SIGSEGV (0xb) at pc=0x000071ffebc5933a, pid=84939, tid=84983 +# +# JRE version: Java(TM) SE Runtime Environment (23.0.2+7) (build 23.0.2+7-58) +# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64) +# Problematic frame: +# C [libjemalloc.so+0x5933a] +# +# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/codex/java/prj/jmonkeyengine/core.84939) +# +# If you would like to submit a bug report, please visit: +# https://bugreport.java.com/bugreport/crash.jsp +# + +--------------- S U M M A R Y ------------ + +Command Line: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant jme3test.vulkan.VulkanTest + +Host: Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz, 8 cores, 31G, Pop!_OS 22.04 LTS +Time: Thu Jun 26 22:33:32 2025 EDT elapsed time: 3.277063 seconds (0d 0h 0m 3s) + +--------------- T H R E A D --------------- + +Current thread is native thread + +Stack: [0x000071ffe9f72000,0x000071ffea072000], sp=0x000071ffea0708d0, free space=1018k +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +C [libjemalloc.so+0x5933a] + +siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000000 + +Registers: +RAX=0x0000000000000000, RBX=0x0000000000000200, RCX=0x0000000000000000, RDX=0x000071ffebc78440 +RSP=0x000071ffea0708d0, RBP=0x000071ffea070db0, RSI=0x0000000000000000, RDI=0x000071ffeb5503b0 +R8 =0x0000000000000000, R9 =0x0000000000000000, R10=0x0000000000000000, R11=0x000071ffeb5503f0 +R12=0x000000000000003e, R13=0x000071ffea070d70, R14=0x000000000000003e, R15=0x000071ffea070ad0 +RIP=0x000071ffebc5933a, EFLAGS=0x0000000000010246, CSGSFS=0x002b000000000033, ERR=0x0000000000000004 + TRAPNO=0x000000000000000e + + +Top of Stack: (sp=0x000071ffea0708d0) +0x000071ffea0708d0: 00007200144d8790 000071ffea070960 +0x000071ffea0708e0: 000071ffea070970 000072001c369211 +0x000071ffea0708f0: 0000000000000005 00007200144d8988 +0x000071ffea070900: 0000000000000005 0000000000000000 +0x000071ffea070910: 0000000000000001 00007200144d8420 +0x000071ffea070920: 00007200144d8988 00007200144d8420 +0x000071ffea070930: 0000000103d3f020 00007200144d8790 +0x000071ffea070940: 0000000000000000 3030323700000000 +0x000071ffea070950: 3033633500000000 87651f3e00000004 +0x000071ffea070960: 00000000ffffffff 0000000000000000 +0x000071ffea070970: 000072001c00d4d0 000072001c3567c0 +0x000071ffea070980: 000071ffea0709b0 000072001ba78613 +0x000071ffea070990: 000071ffea070b88 000072001c08849a +0x000071ffea0709a0: 0000000000000000 000071ffea070aa0 +0x000071ffea0709b0: 00000000fbad8001 0000000000000002 +0x000071ffea0709c0: 00007200144d8420 000071ffebfff028 +0x000071ffea0709d0: 000072001c21cae8 0000000000000004 +0x000071ffea0709e0: 000071ffea071b58 000072001c36ff71 +0x000071ffea0709f0: 0000000000000005 0000000000000000 +0x000071ffea070a00: 000072001c00d4d0 000072001c0a53e0 +0x000071ffea070a10: 0000000000000000 000071ffea070e00 +0x000071ffea070a20: 000072001c21caf8 0000000000000000 +0x000071ffea070a30: 000072001c21cae8 000072001c372dae +0x000071ffea070a40: 0000000000000001 000000000000006f +0x000071ffea070a50: 000071ffebfb17d0 0000000000000000 +0x000071ffea070a60: 000071fee4b8ab30 0000000000000000 +0x000071ffea070a70: 00000000000000ca 28fd47b5e1463e18 +0x000071ffea070a80: 0000000000000213 000072001c217300 +0x000071ffea070a90: 0000000000000000 0000000000000200 +0x000071ffea070aa0: 000071ffea070db0 000000000000003e +0x000071ffea070ab0: 000071ffea070d70 000071ffea070ad0 +0x000071ffea070ac0: 000071fee40024d0 000071ffebc592f8 + +Instructions: (pc=0x000071ffebc5933a) +0x000071ffebc5923a: f4 66 41 c1 ec 03 41 0f b7 d4 2b 95 40 ff ff ff +0x000071ffebc5924a: 48 c1 e2 03 e8 bd f0 fa ff 49 8b 4d 00 41 0f b7 +0x000071ffebc5925a: 7d 14 48 01 d9 89 fe 66 41 2b 7d 10 29 ce 66 c1 +0x000071ffebc5926a: ef 03 49 89 4d 00 66 c1 ee 03 66 39 fe 73 0c 4c +0x000071ffebc5927a: 8b bd 50 ff ff ff 66 41 89 4f 10 48 8d 65 d8 5b +0x000071ffebc5928a: 41 5c 41 5d 41 5e 41 5f 5d c3 29 d8 48 89 a5 48 +0x000071ffebc5929a: ff ff ff 4c 89 ff 44 0f b7 e0 44 0f b7 c0 66 89 +0x000071ffebc592aa: 45 c0 45 8d 74 24 01 4e 8d 1c c5 00 00 00 00 44 +0x000071ffebc592ba: 89 a5 40 ff ff ff 4a 8d 1c f5 0f 00 00 00 4c 29 +0x000071ffebc592ca: da 4c 89 9d 38 ff ff ff 81 e3 f0 ff 1f 00 4c 8d +0x000071ffebc592da: 14 16 4c 89 c2 48 8b b5 30 ff ff ff 48 29 dc 4c +0x000071ffebc592ea: 89 55 c8 49 89 e6 4c 89 f1 e8 28 ed ff ff 48 29 +0x000071ffebc592fa: dc 48 89 65 80 45 85 e4 0f 84 07 ff ff ff 44 8b +0x000071ffebc5930a: 8d 2c ff ff ff c7 45 b8 00 00 00 00 4c 89 7d b0 +0x000071ffebc5931a: 4d 89 f7 45 89 e6 4b 8d 0c 89 4c 89 4d a0 48 c1 +0x000071ffebc5932a: e1 03 48 89 4d 88 49 8b 37 48 8d 15 06 f1 01 00 +0x000071ffebc5933a: 44 8b 2e 41 81 e5 ff 0f 00 00 44 89 e8 4c 8b 24 +0x000071ffebc5934a: c2 4c 89 65 a8 4c 8b 06 48 8d 3d 67 72 02 00 4c +0x000071ffebc5935a: 8b 5d a0 49 c1 e8 26 41 83 e0 3f 46 8b 14 9f 44 +0x000071ffebc5936a: 89 c3 44 89 45 bc 4c 8d 0c dd 00 00 00 00 49 29 +0x000071ffebc5937a: d9 49 c1 e1 05 4d 01 ca 4d 01 e2 49 8d 7a 48 4c +0x000071ffebc5938a: 89 55 90 48 89 7d 98 e8 6a f0 fa ff 4c 8b 4d 90 +0x000071ffebc5939a: 85 c0 0f 85 ce 03 00 00 49 8d 49 40 48 89 4d 90 +0x000071ffebc593aa: 49 8b 1f 48 8b 55 a0 45 8d 5e ff 45 31 e4 48 8d +0x000071ffebc593ba: 05 a1 72 02 00 41 ba 01 00 00 00 41 83 e3 01 48 +0x000071ffebc593ca: 8b 3b 44 8b 04 90 48 8b 45 c8 89 fe 81 e6 ff 0f +0x000071ffebc593da: 00 00 48 8b 08 41 39 f5 0f 84 c0 02 00 00 4a 89 +0x000071ffebc593ea: 0c e0 4b 89 1c e7 41 bc 01 00 00 00 bb 01 00 00 +0x000071ffebc593fa: 00 41 83 fe 01 0f 86 51 02 00 00 45 85 db 74 38 +0x000071ffebc5940a: 49 8b 57 08 48 8b 48 08 48 8b 32 89 f7 81 e7 ff +0x000071ffebc5941a: 0f 00 00 41 39 fd 0f 84 6a 04 00 00 45 89 e3 41 +0x000071ffebc5942a: 83 c4 01 4a 89 0c d8 4b 89 14 df 48 83 c3 01 41 + + + +--------------- P R O C E S S --------------- + +VM state: not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap address: 0x000000060c000000, size: 8000 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 + +CDS archive(s) mapped at: [0x000071ff92000000-0x000071ff92d91000-0x000071ff92d91000), size 14225408, SharedBaseAddress: 0x000071ff92000000, ArchiveRelocationMode: 1. +Compressed class space mapped at: 0x000071ff93000000-0x000071ffd3000000, reserved size: 1073741824 +Narrow klass base: 0x000071ff92000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 + +GC Precious Log: + + +Heap: + garbage-first heap total reserved 8192000K, committed 28672K, used 14249K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 3 young (12288K), 1 survivors (4096K) + Metaspace used 21955K, committed 22272K, reserved 1114112K + class space used 2290K, committed 2432K, reserved 1048576K + +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, TAMS=top-at-mark-start, PB=parsable bottom +| 0|0x000000060c000000, 0x000000060c3675b0, 0x000000060c400000| 85%| O| |TAMS 0x000000060c000000| PB 0x000000060c000000| Untracked | 0 +| 1|0x000000060c400000, 0x000000060c6bd990, 0x000000060c800000| 68%| O| |TAMS 0x000000060c400000| PB 0x000000060c400000| Untracked | 0 +| 2|0x000000060c800000, 0x000000060c800000, 0x000000060cc00000| 0%| F| |TAMS 0x000000060c800000| PB 0x000000060c800000| Untracked | 0 +| 3|0x000000060cc00000, 0x000000060cc00000, 0x000000060d000000| 0%| F| |TAMS 0x000000060cc00000| PB 0x000000060cc00000| Untracked | 0 +| 4|0x000000060d000000, 0x000000060d255cf8, 0x000000060d400000| 58%| E| |TAMS 0x000000060d000000| PB 0x000000060d000000| Complete | 0 +| 5|0x000000060d400000, 0x000000060d56faa8, 0x000000060d800000| 35%| S|CS|TAMS 0x000000060d400000| PB 0x000000060d400000| Complete | 0 +| 6|0x000000060d800000, 0x000000060dc00000, 0x000000060dc00000|100%| E|CS|TAMS 0x000000060d800000| PB 0x000000060d800000| Complete | 0 + +Card table byte_map: [0x000071fffb800000,0x000071fffc7a0000] _byte_map_base: 0x000071fff87a0000 + +Marking Bits: (CMBitMap*) 0x0000720014059190 + Bits: [0x000071fff3a00000, 0x000071fffb700000) + +Polling page: 0x000072001c342000 + +Metaspace: + +Usage: + Non-class: 19.20 MB used. + Class: 2.24 MB used. + Both: 21.44 MB used. + +Virtual space: + Non-class space: 64.00 MB reserved, 19.38 MB ( 30%) committed, 1 nodes. + Class space: 1.00 GB reserved, 2.38 MB ( <1%) committed, 1 nodes. + Both: 1.06 GB reserved, 21.75 MB ( 2%) committed. + +Chunk freelists: + Non-Class: 11.98 MB + Class: 13.45 MB + Both: 25.44 MB + +MaxMetaspaceSize: unlimited +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 21.00 MB +Current GC threshold: 27.00 MB +CDS: on + - commit_granule_bytes: 65536. + - commit_granule_words: 8192. + - virtual_space_node_default_size: 8388608. + - enlarge_chunks_in_place: 1. + - use_allocation_guard: 0. + + +Internal statistics: + +num_allocs_failed_limit: 0. +num_arena_births: 334. +num_arena_deaths: 0. +num_vsnodes_births: 2. +num_vsnodes_deaths: 0. +num_space_committed: 348. +num_space_uncommitted: 0. +num_chunks_returned_to_freelist: 0. +num_chunks_taken_from_freelist: 684. +num_chunk_merges: 0. +num_chunk_splits: 434. +num_chunks_enlarged: 278. +num_inconsistent_stats: 0. + +CodeHeap 'non-profiled nmethods': size=120032Kb used=678Kb max_used=678Kb free=119353Kb + bounds [0x00007200042c8000, 0x0000720004538000, 0x000072000b800000] +CodeHeap 'profiled nmethods': size=120028Kb used=2602Kb max_used=2602Kb free=117425Kb + bounds [0x000071fffc800000, 0x000071fffca90000, 0x0000720003d37000] +CodeHeap 'non-nmethods': size=5700Kb used=2461Kb max_used=2477Kb free=3239Kb + bounds [0x0000720003d37000, 0x0000720003fb7000, 0x00007200042c8000] +CodeCache: size=245760Kb, used=5741Kb, max_used=5757Kb, free=240017Kb + total_blobs=3531, nmethods=2097, adapters=1341, full_count=0 +Compilation: enabled, stopped_count=0, restarted_count=0 + +Compilation events (20 events): +Event: 3.270 Thread 0x00007200141485b0 2245 ! 3 java.util.regex.Pattern::closure (276 bytes) +Event: 3.271 Thread 0x00007200141485b0 nmethod 2245 0x000071fffca84388 code [0x000071fffca84720, 0x000071fffca86048] +Event: 3.271 Thread 0x00007200141485b0 2243 3 java.util.regex.Pattern::expr (142 bytes) +Event: 3.272 Thread 0x00007200141485b0 nmethod 2243 0x000071fffca86108 code [0x000071fffca862e0, 0x000071fffca86d88] +Event: 3.272 Thread 0x00007200141485b0 2246 3 java.lang.String::split (148 bytes) +Event: 3.272 Thread 0x000072001413eeb0 nmethod 2220 0x0000720004370288 code [0x00007200043703c0, 0x0000720004370b00] +Event: 3.272 Thread 0x000072001413eeb0 2235 4 java.io.BufferedInputStream::implRead (112 bytes) +Event: 3.273 Thread 0x00007200141485b0 nmethod 2246 0x000071fffca86e08 code [0x000071fffca870e0, 0x000071fffca88668] +Event: 3.273 Thread 0x00007200141485b0 2247 3 java.lang.String::split (8 bytes) +Event: 3.273 Thread 0x00007200141485b0 nmethod 2247 0x000071fffca88708 code [0x000071fffca88820, 0x000071fffca88968] +Event: 3.273 Thread 0x00007200141485b0 2241 3 java.util.ArrayList::subList (20 bytes) +Event: 3.273 Thread 0x00007200141485b0 nmethod 2241 0x000071fffca88a08 code [0x000071fffca88b60, 0x000071fffca88f20] +Event: 3.273 Thread 0x00007200141485b0 2242 ! 3 java.util.regex.Pattern:: (144 bytes) +Event: 3.273 Thread 0x00007200141485b0 nmethod 2242 0x000071fffca88f88 code [0x000071fffca89200, 0x000071fffca8a2a0] +Event: 3.273 Thread 0x00007200141485b0 2236 3 javax.imageio.ImageReader::processImageUpdate (73 bytes) +Event: 3.274 Thread 0x00007200141485b0 nmethod 2236 0x000071fffca8a388 code [0x000071fffca8a500, 0x000071fffca8aa70] +Event: 3.276 Thread 0x000071ff585b1560 nmethod 2227% 0x0000720004370b88 code [0x0000720004370cc0, 0x0000720004371648] +Event: 3.276 Thread 0x000071ff585b1560 2228 4 com.sun.imageio.plugins.png.PNGImageReader::paethPredictor (57 bytes) +Event: 3.276 Thread 0x000071ff585b1560 nmethod 2228 0x0000720004371688 code [0x0000720004371780, 0x0000720004371878] +Event: 3.276 Thread 0x000071ff585b1560 2248 4 java.lang.String::subSequence (7 bytes) + +GC Heap History (8 events): +Event: 2.407 GC heap before +{Heap before GC invocations=0 (full 0): + garbage-first heap total reserved 8192000K, committed 516096K, used 21627K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 6 young (24576K), 0 survivors (0K) + Metaspace used 16354K, committed 16576K, reserved 1114112K + class space used 1823K, committed 1920K, reserved 1048576K +} +Event: 2.418 GC heap after +{Heap after GC invocations=1 (full 1): + garbage-first heap total reserved 8192000K, committed 98304K, used 6293K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 0 young (0K), 0 survivors (0K) + Metaspace used 16354K, committed 16576K, reserved 1114112K + class space used 1823K, committed 1920K, reserved 1048576K +} +Event: 2.418 GC heap before +{Heap before GC invocations=1 (full 1): + garbage-first heap total reserved 8192000K, committed 98304K, used 6293K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 0 young (0K), 0 survivors (0K) + Metaspace used 16354K, committed 16576K, reserved 1114112K + class space used 1823K, committed 1920K, reserved 1048576K +} +Event: 2.429 GC heap after +{Heap after GC invocations=2 (full 2): + garbage-first heap total reserved 8192000K, committed 28672K, used 6291K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 0 young (0K), 0 survivors (0K) + Metaspace used 16354K, committed 16576K, reserved 1114112K + class space used 1823K, committed 1920K, reserved 1048576K +} +Event: 2.891 GC heap before +{Heap before GC invocations=2 (full 2): + garbage-first heap total reserved 8192000K, committed 28672K, used 10387K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 2 young (8192K), 0 survivors (0K) + Metaspace used 18559K, committed 18880K, reserved 1114112K + class space used 2036K, committed 2176K, reserved 1048576K +} +Event: 2.892 GC heap after +{Heap after GC invocations=3 (full 2): + garbage-first heap total reserved 8192000K, committed 28672K, used 7362K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 1 young (4096K), 1 survivors (4096K) + Metaspace used 18559K, committed 18880K, reserved 1114112K + class space used 2036K, committed 2176K, reserved 1048576K +} +Event: 2.963 GC heap before +{Heap before GC invocations=3 (full 2): + garbage-first heap total reserved 8192000K, committed 28672K, used 11458K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 2 young (8192K), 1 survivors (4096K) + Metaspace used 19953K, committed 20288K, reserved 1114112K + class space used 2161K, committed 2304K, reserved 1048576K +} +Event: 2.964 GC heap after +{Heap after GC invocations=4 (full 2): + garbage-first heap total reserved 8192000K, committed 28672K, used 7762K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 1 young (4096K), 1 survivors (4096K) + Metaspace used 19953K, committed 20288K, reserved 1114112K + class space used 2161K, committed 2304K, reserved 1048576K +} + +Dll operation events (12 events): +Event: 0.002 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +Event: 0.019 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +Event: 0.019 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +Event: 0.030 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +Event: 0.032 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +Event: 0.079 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +Event: 0.140 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +Event: 0.146 Loaded shared library /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +Event: 0.247 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +Event: 0.250 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +Event: 0.277 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so +Event: 0.364 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so + +Deoptimization events (20 events): +Event: 2.879 Thread 0x00007200146d5c30 Uncommon trap: trap_request=0xffffff76 fr.pc=0x000072000434d868 relative=0x00000000000001a8 +Event: 2.879 Thread 0x00007200146d5c30 Uncommon trap: reason=predicate action=maybe_recompile pc=0x000072000434d868 method=java.util.regex.Pattern$BmpCharPropertyGreedy.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 12 c2 +Event: 2.879 Thread 0x00007200146d5c30 DEOPT PACKING pc=0x000072000434d868 sp=0x000071ffea0700e0 +Event: 2.879 Thread 0x00007200146d5c30 DEOPT UNPACKING pc=0x0000720003d8abf9 sp=0x000071ffea0700b8 mode 2 +Event: 2.889 Thread 0x00007200146d5c30 Uncommon trap: trap_request=0xffffff45 fr.pc=0x0000720004339774 relative=0x0000000000000074 +Event: 2.889 Thread 0x00007200146d5c30 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000720004339774 method=java.util.logging.Logger.isLoggable(Ljava/util/logging/Level;)Z @ 13 c2 +Event: 2.889 Thread 0x00007200146d5c30 DEOPT PACKING pc=0x0000720004339774 sp=0x000071ffea070580 +Event: 2.889 Thread 0x00007200146d5c30 DEOPT UNPACKING pc=0x0000720003d8abf9 sp=0x000071ffea0704e0 mode 2 +Event: 2.953 Thread 0x00007200146d5c30 Uncommon trap: trap_request=0xffffff6e fr.pc=0x0000720004363fe8 relative=0x0000000000000148 +Event: 2.953 Thread 0x00007200146d5c30 Uncommon trap: reason=loop_limit_check action=maybe_recompile pc=0x0000720004363fe8 method=java.util.regex.Pattern$Start.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 34 c2 +Event: 2.953 Thread 0x00007200146d5c30 DEOPT PACKING pc=0x0000720004363fe8 sp=0x000071ffea0700a0 +Event: 2.953 Thread 0x00007200146d5c30 DEOPT UNPACKING pc=0x0000720003d8abf9 sp=0x000071ffea070050 mode 2 +Event: 3.104 Thread 0x00007200146d5c30 Uncommon trap: trap_request=0xffffff6e fr.pc=0x0000720004366dc8 relative=0x0000000000000a68 +Event: 3.104 Thread 0x00007200146d5c30 Uncommon trap: reason=loop_limit_check action=maybe_recompile pc=0x0000720004366dc8 method=java.util.regex.Pattern$Start.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 34 c2 +Event: 3.104 Thread 0x00007200146d5c30 DEOPT PACKING pc=0x0000720004366dc8 sp=0x000071ffea06fa50 +Event: 3.104 Thread 0x00007200146d5c30 DEOPT UNPACKING pc=0x0000720003d8abf9 sp=0x000071ffea06f9d0 mode 2 +Event: 3.142 Thread 0x00007200146d5c30 DEOPT PACKING pc=0x000071fffca20d9f sp=0x000071ffea06f7c0 +Event: 3.142 Thread 0x00007200146d5c30 DEOPT UNPACKING pc=0x0000720003d8b30f sp=0x000071ffea06ec00 mode 0 +Event: 3.144 Thread 0x00007200146d5c30 DEOPT PACKING pc=0x000071fffc8b3354 sp=0x000071ffea06f790 +Event: 3.144 Thread 0x00007200146d5c30 DEOPT UNPACKING pc=0x0000720003d8b30f sp=0x000071ffea06ec48 mode 0 + +Classes loaded (20 events): +Event: 2.936 Loading class java/awt/image/PixelInterleavedSampleModel +Event: 2.936 Loading class java/awt/image/ComponentSampleModel +Event: 2.936 Loading class java/awt/image/ComponentSampleModel done +Event: 2.936 Loading class java/awt/image/PixelInterleavedSampleModel done +Event: 2.936 Loading class javax/imageio/ImageTypeSpecifier$Packed +Event: 2.936 Loading class javax/imageio/ImageTypeSpecifier$Packed done +Event: 2.936 Loading class java/awt/image/DataBufferByte +Event: 2.936 Loading class java/awt/image/DataBufferByte done +Event: 2.936 Loading class sun/awt/image/ByteInterleavedRaster +Event: 2.937 Loading class sun/awt/image/ByteComponentRaster +Event: 2.937 Loading class sun/awt/image/ByteComponentRaster done +Event: 2.937 Loading class sun/awt/image/ByteInterleavedRaster done +Event: 2.937 Loading class sun/awt/image/ShortComponentRaster +Event: 2.937 Loading class sun/awt/image/ShortComponentRaster done +Event: 3.006 Loading class java/util/function/LongFunction +Event: 3.007 Loading class java/util/function/LongFunction done +Event: 3.276 Loading class java/lang/Throwable$WrappedPrintStream +Event: 3.276 Loading class java/lang/Throwable$PrintStreamOrWriter +Event: 3.276 Loading class java/lang/Throwable$PrintStreamOrWriter done +Event: 3.276 Loading class java/lang/Throwable$WrappedPrintStream done + +Classes unloaded (0 events): +No events + +Classes redefined (0 events): +No events + +Internal exceptions (20 events): +Event: 0.653 Thread 0x00007200146bc010 Exception (0x000000062a0b8990) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.361 Thread 0x00007200146bc010 Exception (0x000000062a354398) +thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] +Event: 2.402 Thread 0x00007200146bc010 Exception (0x0000000629cbdfc0) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.445 Thread 0x000072001402d0f0 Exception (0x000000060d9db038) +thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] +Event: 2.455 Thread 0x000072001402d0f0 Exception (0x000000060da3a090) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.456 Thread 0x000072001402d0f0 Exception (0x000000060da481a0) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.603 Thread 0x00007200146d5c30 Exception (0x000000060d561810) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 863] +Event: 2.878 Thread 0x00007200146d5c30 Exception (0x000000060d782020) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.965 Thread 0x00007200146d5c30 Exception (0x000000060d828358) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.969 Thread 0x00007200146d5c30 Exception (0x000000060d850bb8) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.004 Thread 0x00007200146d5c30 Exception (0x000000060d949c48) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.004 Thread 0x00007200146d5c30 Exception (0x000000060d94f310) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.019 Thread 0x00007200146d5c30 Exception (0x000000060da07a10) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.020 Thread 0x00007200146d5c30 Exception (0x000000060da1a280) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.021 Thread 0x00007200146d5c30 Exception (0x000000060da1e220) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.021 Thread 0x00007200146d5c30 Exception (0x000000060da218e0) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.027 Thread 0x00007200146d5c30 Exception (0x000000060da85e10) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.064 Thread 0x00007200146d5c30 Exception (0x000000060dad6840) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.070 Thread 0x00007200146d5c30 Exception (0x000000060daf1198) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.101 Thread 0x00007200146d5c30 Exception (0x000000060db30f38) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] + +VM Operations (20 events): +Event: 0.154 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.154 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.261 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.261 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.279 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.279 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.288 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.288 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.684 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.684 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 2.407 Executing VM operation: G1CollectFull (System.gc()) +Event: 2.418 Executing VM operation: G1CollectFull (System.gc()) done +Event: 2.418 Executing VM operation: G1CollectFull (System.gc()) +Event: 2.429 Executing VM operation: G1CollectFull (System.gc()) done +Event: 2.453 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 2.453 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 2.891 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 2.892 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done +Event: 2.963 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 2.964 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done + +Memory protections (20 events): +Event: 0.017 Protecting memory [0x000071fff0500000,0x000071fff0504000] with protection modes 0 +Event: 0.018 Protecting memory [0x000071fff0400000,0x000071fff0404000] with protection modes 0 +Event: 0.018 Protecting memory [0x000071fff0300000,0x000071fff0304000] with protection modes 0 +Event: 0.026 Protecting memory [0x000071fff0200000,0x000071fff0204000] with protection modes 0 +Event: 0.027 Protecting memory [0x000071fff0100000,0x000071fff0104000] with protection modes 0 +Event: 0.059 Protecting memory [0x000071fff0000000,0x000071fff0004000] with protection modes 0 +Event: 0.302 Protecting memory [0x000071ffeae78000,0x000071ffeae7c000] with protection modes 0 +Event: 0.304 Protecting memory [0x000071ffead78000,0x000071ffead7c000] with protection modes 0 +Event: 0.306 Protecting memory [0x000071ffeac78000,0x000071ffeac7c000] with protection modes 0 +Event: 0.306 Protecting memory [0x000071ffeab78000,0x000071ffeab7c000] with protection modes 0 +Event: 0.364 Protecting memory [0x000071ffeaa78000,0x000071ffeaa7c000] with protection modes 0 +Event: 0.590 Protecting memory [0x000071fff0000000,0x000071fff0004000] with protection modes 0 +Event: 0.681 Protecting memory [0x000071ffea978000,0x000071ffea97c000] with protection modes 0 +Event: 0.710 Protecting memory [0x000071ffea778000,0x000071ffea77c000] with protection modes 0 +Event: 2.375 Protecting memory [0x000071ffea978000,0x000071ffea97c000] with protection modes 0 +Event: 2.432 Protecting memory [0x000071ffea072000,0x000071ffea076000] with protection modes 0 +Event: 2.460 Protecting memory [0x000071ffe9f72000,0x000071ffe9f76000] with protection modes 0 +Event: 2.460 Protecting memory [0x000072001a900000,0x000072001a904000] with protection modes 0 +Event: 2.896 Protecting memory [0x000071ffea978000,0x000071ffea97c000] with protection modes 0 +Event: 3.267 Protecting memory [0x000071ffea072000,0x000071ffea076000] with protection modes 0 + +Nmethod flushes (20 events): +Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc88e088 +Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc88e488 +Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc88ff08 +Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc890a08 +Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc8da088 +Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc8da708 +Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc8dac88 +Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc8dcb08 +Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc918d08 +Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc929b08 +Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc92c788 +Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc940708 +Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc940a08 +Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc942988 +Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc943c08 +Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc949708 +Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc971088 +Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc972c88 +Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc9f5a08 +Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc9f7808 + +Events (20 events): +Event: 0.302 Thread 0x000072001402d0f0 Thread added: 0x00007200146b6f00 +Event: 0.304 Thread 0x000072001402d0f0 Thread added: 0x00007200146b8b70 +Event: 0.306 Thread 0x000072001402d0f0 Thread added: 0x00007200146baf00 +Event: 0.306 Thread 0x000072001402d0f0 Thread added: 0x00007200146bc010 +Event: 0.364 Thread 0x00007200146bc010 Thread added: 0x000071ff2c043cc0 +Event: 0.585 Thread 0x000071ff5c0e0c80 Thread exited: 0x000071ff5c0e0c80 +Event: 0.590 Thread 0x00007200146bc010 Thread added: 0x000071ff2c061470 +Event: 0.681 Thread 0x00007200141485b0 Thread added: 0x000071ff58542f60 +Event: 0.710 Thread 0x00007200146bc010 Thread added: 0x000071ff2c0bc7a0 +Event: 1.148 Thread 0x000071ff58542f60 Thread exited: 0x000071ff58542f60 +Event: 2.375 Thread 0x00007200141485b0 Thread added: 0x000071ff5856e360 +Event: 2.432 Thread 0x000072001413eeb0 Thread added: 0x000071ff5c2d16e0 +Event: 2.460 Thread 0x000072001402d0f0 Thread added: 0x00007200146d5c30 +Event: 2.460 Thread 0x000072001402d0f0 Thread exited: 0x000072001402d0f0 +Event: 2.460 Thread 0x000072001402d0f0 Thread added: 0x000072001402d0f0 +Event: 2.570 Thread 0x000071ff5c2d16e0 Thread exited: 0x000071ff5c2d16e0 +Event: 2.878 Thread 0x000071ff5856e360 Thread exited: 0x000071ff5856e360 +Event: 2.896 Thread 0x00007200146d5c30 Thread added: 0x000071fee4582550 +Event: 3.267 Thread 0x00007200141485b0 Thread added: 0x000071ff585b1560 +Event: 3.277 Thread 0x00007200146d5c30 Thread exited: 0x00007200146d5c30 + + +Dynamic libraries: +60c000000-60dc00000 rw-p 00000000 00:00 0 +60dc00000-800000000 ---p 00000000 00:00 0 +5f35736ce000-5f35736cf000 r-xp 00000000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java +5f35736d0000-5f35736d1000 r--p 00001000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java +5f35736d1000-5f35736d2000 rw-p 00002000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java +5f35785ae000-5f35785f7000 rw-p 00000000 00:00 0 [heap] +71fe9c000000-71fe9c075000 rw-p 00000000 00:00 0 +71fe9c075000-71fea0000000 ---p 00000000 00:00 0 +71fea4000000-71fea4021000 rw-p 00000000 00:00 0 +71fea4021000-71fea8000000 ---p 00000000 00:00 0 +71fea8000000-71fea8021000 rw-p 00000000 00:00 0 +71fea8021000-71feac000000 ---p 00000000 00:00 0 +71feb0000000-71feb0021000 rw-p 00000000 00:00 0 +71feb0021000-71feb4000000 ---p 00000000 00:00 0 +71feb4000000-71feb4021000 rw-p 00000000 00:00 0 +71feb4021000-71feb8000000 ---p 00000000 00:00 0 +71febc000000-71febc021000 rw-p 00000000 00:00 0 +71febc021000-71fec0000000 ---p 00000000 00:00 0 +71fec0000000-71fec0021000 rw-p 00000000 00:00 0 +71fec0021000-71fec4000000 ---p 00000000 00:00 0 +71fec8000000-71fec8021000 rw-p 00000000 00:00 0 +71fec8021000-71fecc000000 ---p 00000000 00:00 0 +71fecc000000-71fecc0c8000 rw-p 00000000 00:00 0 +71fecc0c8000-71fed0000000 ---p 00000000 00:00 0 +71fed4000000-71fed4021000 rw-p 00000000 00:00 0 +71fed4021000-71fed8000000 ---p 00000000 00:00 0 +71fed9000000-71fedf712000 r-xp 00000000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 +71fedf712000-71fedff30000 r--p 06711000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 +71fedff30000-71fedff76000 rw-p 06f2f000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 +71fedff76000-71fedfff2000 rw-p 00000000 00:00 0 +71fee0000000-71fee0021000 rw-p 00000000 00:00 0 +71fee0021000-71fee4000000 ---p 00000000 00:00 0 +71fee4000000-71fee7148000 rw-p 00000000 00:00 0 +71fee7148000-71fee8000000 ---p 00000000 00:00 0 +71feec000000-71feec050000 rw-p 00000000 00:00 0 +71feec050000-71fef0000000 ---p 00000000 00:00 0 +71fef0000000-71fef0021000 rw-p 00000000 00:00 0 +71fef0021000-71fef4000000 ---p 00000000 00:00 0 +71fef8000000-71fef8021000 rw-p 00000000 00:00 0 +71fef8021000-71fefc000000 ---p 00000000 00:00 0 +71fefc000000-71fefc021000 rw-p 00000000 00:00 0 +71fefc021000-71ff00000000 ---p 00000000 00:00 0 +71ff04000000-71ff04021000 rw-p 00000000 00:00 0 +71ff04021000-71ff08000000 ---p 00000000 00:00 0 +71ff08000000-71ff08021000 rw-p 00000000 00:00 0 +71ff08021000-71ff0c000000 ---p 00000000 00:00 0 +71ff10000000-71ff10021000 rw-p 00000000 00:00 0 +71ff10021000-71ff14000000 ---p 00000000 00:00 0 +71ff14000000-71ff14021000 rw-p 00000000 00:00 0 +71ff14021000-71ff18000000 ---p 00000000 00:00 0 +71ff1c000000-71ff1c021000 rw-p 00000000 00:00 0 +71ff1c021000-71ff20000000 ---p 00000000 00:00 0 +71ff20000000-71ff201bc000 rw-p 00000000 00:00 0 +71ff201bc000-71ff24000000 ---p 00000000 00:00 0 +71ff28000000-71ff28021000 rw-p 00000000 00:00 0 +71ff28021000-71ff2c000000 ---p 00000000 00:00 0 +71ff2c000000-71ff2c102000 rw-p 00000000 00:00 0 +71ff2c102000-71ff30000000 ---p 00000000 00:00 0 +71ff34000000-71ff34021000 rw-p 00000000 00:00 0 +71ff34021000-71ff38000000 ---p 00000000 00:00 0 +71ff38000000-71ff38021000 rw-p 00000000 00:00 0 +71ff38021000-71ff3c000000 ---p 00000000 00:00 0 +71ff40000000-71ff40021000 rw-p 00000000 00:00 0 +71ff40021000-71ff44000000 ---p 00000000 00:00 0 +71ff44000000-71ff44184000 rw-p 00000000 00:00 0 +71ff44184000-71ff48000000 ---p 00000000 00:00 0 +71ff4c000000-71ff4c021000 rw-p 00000000 00:00 0 +71ff4c021000-71ff50000000 ---p 00000000 00:00 0 +71ff50000000-71ff50021000 rw-p 00000000 00:00 0 +71ff50021000-71ff54000000 ---p 00000000 00:00 0 +71ff58000000-71ff585b8000 rw-p 00000000 00:00 0 +71ff585b8000-71ff5c000000 ---p 00000000 00:00 0 +71ff5c000000-71ff5c52c000 rw-p 00000000 00:00 0 +71ff5c52c000-71ff60000000 ---p 00000000 00:00 0 +71ff60600000-71ff60725000 r--p 00000000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +71ff60725000-71ff60be5000 r-xp 00125000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +71ff60be5000-71ff60d19000 r--p 005e5000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +71ff60d19000-71ff60d1a000 ---p 00719000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +71ff60d1a000-71ff60d7d000 r--p 00719000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +71ff60d7d000-71ff60d87000 rw-p 0077c000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +71ff60d87000-71ff60d98000 rw-p 00000000 00:00 0 +71ff60e00000-71ff60e01000 ---p 00000000 00:00 0 +71ff60e01000-71ff61601000 rw-p 00000000 00:00 0 +71ff61800000-71ff61801000 ---p 00000000 00:00 0 +71ff61801000-71ff62001000 rw-p 00000000 00:00 0 +71ff62200000-71ff62201000 ---p 00000000 00:00 0 +71ff62201000-71ff62a01000 rw-p 00000000 00:00 0 +71ff62c00000-71ff62c01000 ---p 00000000 00:00 0 +71ff62c01000-71ff63401000 rw-p 00000000 00:00 0 +71ff63600000-71ff63601000 ---p 00000000 00:00 0 +71ff63601000-71ff63e01000 rw-p 00000000 00:00 0 +71ff64000000-71ff64021000 rw-p 00000000 00:00 0 +71ff64021000-71ff68000000 ---p 00000000 00:00 0 +71ff68000000-71ff68021000 rw-p 00000000 00:00 0 +71ff68021000-71ff6c000000 ---p 00000000 00:00 0 +71ff6c200000-71ff6c201000 ---p 00000000 00:00 0 +71ff6c201000-71ff6ca01000 rw-p 00000000 00:00 0 +71ff6cc00000-71ff6cc2f000 r--p 00000000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +71ff6cc2f000-71ff6d302000 r-xp 0002f000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +71ff6d302000-71ff6d424000 r--p 00702000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +71ff6d424000-71ff6d435000 r--p 00823000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +71ff6d435000-71ff6d4b3000 rw-p 00834000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +71ff6d4b3000-71ff6d4c7000 rw-p 00000000 00:00 0 +71ff6d600000-71ff6e2f5000 r--p 00000000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +71ff6e2f5000-71ff6ecd8000 r-xp 00cf5000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +71ff6ecd8000-71ff6f0e9000 r--p 016d8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +71ff6f0e9000-71ff6f56b000 r--p 01ae8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +71ff6f56b000-71ff6f573000 rw-p 01f6a000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +71ff6f573000-71ff6f57e000 rw-p 00000000 00:00 0 +71ff6f600000-71ff6f601000 ---p 00000000 00:00 0 +71ff6f601000-71ff6fe01000 rw-p 00000000 00:00 0 +71ff70000000-71ff70021000 rw-p 00000000 00:00 0 +71ff70021000-71ff74000000 ---p 00000000 00:00 0 +71ff74000000-71ff74021000 rw-p 00000000 00:00 0 +71ff74021000-71ff78000000 ---p 00000000 00:00 0 +71ff78600000-71ff78601000 ---p 00000000 00:00 0 +71ff78601000-71ff78e01000 rw-p 00000000 00:00 0 +71ff79000000-71ff79001000 ---p 00000000 00:00 0 +71ff79001000-71ff79801000 rw-p 00000000 00:00 0 +71ff79a00000-71ff79a01000 ---p 00000000 00:00 0 +71ff79a01000-71ff7a201000 rw-p 00000000 00:00 0 +71ff7a400000-71ff7a401000 ---p 00000000 00:00 0 +71ff7a401000-71ff7ac01000 rw-p 00000000 00:00 0 +71ff7ae00000-71ff7ae8d000 r--p 00000000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +71ff7ae8d000-71ff7b5f5000 r-xp 0008d000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +71ff7b5f5000-71ff7be82000 r--p 007f5000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +71ff7be82000-71ff7bec4000 r--p 01081000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +71ff7bec4000-71ff7bec7000 rw-p 010c3000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +71ff7bec7000-71ff7becd000 rw-p 00000000 00:00 0 +71ff7c000000-71ff7c021000 rw-p 00000000 00:00 0 +71ff7c021000-71ff80000000 ---p 00000000 00:00 0 +71ff80000000-71ff80637000 rw-p 00000000 00:00 0 +71ff80637000-71ff84000000 ---p 00000000 00:00 0 +71ff84000000-71ff84200000 rw-s 00000000 00:06 1022 /dev/nvidia0 +71ff84200000-71ff84201000 ---p 00000000 00:00 0 +71ff84201000-71ff84a01000 rw-p 00000000 00:00 0 +71ff84c00000-71ff84c5b000 r--p 00000000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +71ff84c5b000-71ff84fd9000 r-xp 0005b000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +71ff84fd9000-71ff853d5000 r--p 003d9000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +71ff853d5000-71ff85410000 r--p 007d4000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +71ff85410000-71ff85415000 rw-p 0080f000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +71ff85415000-71ff85440000 rw-p 00000000 00:00 0 +71ff85480000-71ff85500000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ff85500000-71ff85600000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ff85600000-71ff857c4000 r--p 00000000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +71ff857c4000-71ff874c4000 r-xp 001c4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +71ff874c4000-71ff87b39000 r--p 01ec4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +71ff87b39000-71ff87b3a000 ---p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +71ff87b3a000-71ff87d1a000 r--p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +71ff87d1a000-71ff87d93000 rw-p 02719000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +71ff87d93000-71ff87e08000 rw-p 00000000 00:00 0 +71ff87e2d000-71ff87e40000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ff87e40000-71ff87e80000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ff87e80000-71ff87ea0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ff87ea0000-71ff87ee0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ff87ee0000-71ff87f00000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ff87f00000-71ff88000000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ff88000000-71ff883f0000 rw-p 00000000 00:00 0 +71ff883f0000-71ff885b0000 rw-p 00000000 00:00 0 +71ff885b0000-71ff886f0000 rw-p 00000000 00:00 0 +71ff886f0000-71ff88710000 rw-p 00000000 00:00 0 +71ff88710000-71ff88730000 rw-p 00000000 00:00 0 +71ff88730000-71ff88770000 rw-p 00000000 00:00 0 +71ff88770000-71ff889f0000 rw-p 00000000 00:00 0 +71ff889f0000-71ff88a10000 rw-p 00000000 00:00 0 +71ff88a10000-71ff88a30000 rw-p 00000000 00:00 0 +71ff88a30000-71ff88a70000 rw-p 00000000 00:00 0 +71ff88a70000-71ff88af0000 rw-p 00000000 00:00 0 +71ff88af0000-71ff88cf0000 rw-p 00000000 00:00 0 +71ff88cf0000-71ff88d10000 rw-p 00000000 00:00 0 +71ff88d10000-71ff88d30000 rw-p 00000000 00:00 0 +71ff88d30000-71ff88d70000 rw-p 00000000 00:00 0 +71ff88d70000-71ff88ef0000 rw-p 00000000 00:00 0 +71ff88ef0000-71ff88ff0000 rw-p 00000000 00:00 0 +71ff88ff0000-71ff890f0000 rw-p 00000000 00:00 0 +71ff890f0000-71ff89150000 rw-p 00000000 00:00 0 +71ff89150000-71ff89200000 ---p 00000000 00:00 0 +71ff89200000-71ff89410000 rw-p 00000000 00:00 0 +71ff89410000-71ff8c000000 ---p 00000000 00:00 0 +71ff8c000000-71ff8c021000 rw-p 00000000 00:00 0 +71ff8c021000-71ff90000000 ---p 00000000 00:00 0 +71ff90000000-71ff90200000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ff90200000-71ff90201000 r--p 00000000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +71ff90201000-71ff90202000 r-xp 00001000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +71ff90202000-71ff91e1c000 r--p 00002000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +71ff91e1c000-71ff91e1d000 r--p 01c1b000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +71ff91e1d000-71ff91e1e000 rw-p 01c1c000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +71ff91e20000-71ff91e60000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ff91e60000-71ff91e80000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ff91e80000-71ff91f00000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ff91f00000-71ff92000000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ff92000000-71ff92d91000 rw-p 00001000 103:03 10498862 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/classes.jsa +71ff92d91000-71ff93000000 ---p 00000000 00:00 0 +71ff93000000-71ff93030000 rw-p 00000000 00:00 0 +71ff93030000-71ff93090000 rw-p 00000000 00:00 0 +71ff93090000-71ff930b0000 rw-p 00000000 00:00 0 +71ff930b0000-71ff93130000 rw-p 00000000 00:00 0 +71ff93130000-71ff93150000 rw-p 00000000 00:00 0 +71ff93150000-71ff931b0000 rw-p 00000000 00:00 0 +71ff931b0000-71ff931d0000 rw-p 00000000 00:00 0 +71ff931d0000-71ff93230000 rw-p 00000000 00:00 0 +71ff93230000-71ff93250000 rw-p 00000000 00:00 0 +71ff93250000-71ff93280000 ---p 00000000 00:00 0 +71ff93280000-71ff93290000 rw-p 00000000 00:00 0 +71ff93290000-71ffd3000000 ---p 00000000 00:00 0 +71ffd300d000-71ffd304d000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffd304d000-71ffd306d000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffd306d000-71ffd3080000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffd3080000-71ffd30c0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffd30c0000-71ffd3100000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffd3100000-71ffd3200000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffd3200000-71ffd326e000 r--p 00000000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +71ffd326e000-71ffd37d5000 r-xp 0006e000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +71ffd37d5000-71ffd3ee8000 r--p 005d5000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +71ffd3ee8000-71ffd3ee9000 ---p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +71ffd3ee9000-71ffd3f26000 r--p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +71ffd3f26000-71ffd3f29000 rw-p 00d25000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +71ffd3f29000-71ffd3f2b000 rw-p 00000000 00:00 0 +71ffd3f2d000-71ffd3f4d000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffd3f4d000-71ffd3f60000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffd3f60000-71ffd3f80000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffd3f80000-71ffd3fc0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffd3fc0000-71ffd4000000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffd4000000-71ffd4021000 rw-p 00000000 00:00 0 +71ffd4021000-71ffd8000000 ---p 00000000 00:00 0 +71ffd8000000-71ffd8021000 rw-p 00000000 00:00 0 +71ffd8021000-71ffdc000000 ---p 00000000 00:00 0 +71ffdc000000-71ffdc080000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffdc080000-71ffdc180000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffdc180000-71ffdc200000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffdc200000-71ffdc222000 r-xp 00000000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +71ffdc222000-71ffdc421000 ---p 00022000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +71ffdc421000-71ffdc429000 r--p 00021000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +71ffdc429000-71ffdc42a000 rw-p 00029000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +71ffdc42a000-71ffdc42b000 rw-p 00000000 00:00 0 +71ffdc43a000-71ffdc45a000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffdc45a000-71ffdc47a000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffdc47a000-71ffdc6bf000 rw-s 00000000 00:01 7173 /memfd:/.nvidia_drv.XXXXXX (deleted) +71ffdc6bf000-71ffdc800000 rw-s 00000000 103:03 13372247 /home/codex/.cache/mesa_shader_cache/index +71ffdc800000-71ffdc893000 r--p 00000000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +71ffdc893000-71ffdcce6000 r-xp 00093000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +71ffdcce6000-71ffdd1fc000 r--p 004e6000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +71ffdd1fc000-71ffdd234000 r--p 009fb000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +71ffdd234000-71ffdd244000 rw-p 00a33000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +71ffdd244000-71ffdd249000 rw-p 00000000 00:00 0 +71ffdd24c000-71ffdd25f000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffdd25f000-71ffdd272000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffdd272000-71ffdd2b2000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffdd2b2000-71ffdd2d2000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffdd2d2000-71ffdd312000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffdd312000-71ffdd332000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffdd332000-71ffdd372000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffdd372000-71ffdd374000 r--p 00000000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +71ffdd374000-71ffdd37d000 r-xp 00002000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +71ffdd37d000-71ffdd380000 r--p 0000b000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +71ffdd380000-71ffdd381000 ---p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +71ffdd381000-71ffdd382000 r--p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +71ffdd382000-71ffdd383000 rw-p 0000f000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +71ffdd383000-71ffdd385000 rw-p 00000000 00:00 0 +71ffdd385000-71ffdd396000 r--p 00000000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +71ffdd396000-71ffdd3d8000 r-xp 00011000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +71ffdd3d8000-71ffdd3f0000 r--p 00053000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +71ffdd3f0000-71ffdd3fe000 r--p 0006a000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +71ffdd3fe000-71ffdd400000 rw-p 00078000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +71ffdd400000-71ffddd22000 rw-p 00000000 00:00 0 +71ffddd26000-71ffddd2a000 r--p 00000000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +71ffddd2a000-71ffddd3a000 r-xp 00004000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +71ffddd3a000-71ffddd3d000 r--p 00014000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +71ffddd3d000-71ffddd3e000 r--p 00016000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +71ffddd3e000-71ffddd3f000 rw-p 00017000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +71ffddd3f000-71ffddd43000 r--p 00000000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +71ffddd43000-71ffddd5f000 r-xp 00004000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +71ffddd5f000-71ffddd65000 r--p 00020000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +71ffddd65000-71ffddd66000 ---p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +71ffddd66000-71ffddd68000 r--p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +71ffddd68000-71ffddd69000 rw-p 00028000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +71ffddd69000-71ffddd6b000 r--p 00000000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +71ffddd6b000-71ffdddd6000 r-xp 00002000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +71ffdddd6000-71ffdddfe000 r--p 0006d000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +71ffdddfe000-71ffdddff000 r--p 00094000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +71ffdddff000-71ffdde00000 rw-p 00095000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +71ffdde00000-71ffde041000 r-xp 00000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +71ffde041000-71ffde062000 rwxp 00241000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +71ffde062000-71ffde200000 r-xp 00262000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +71ffde200000-71ffdee00000 r-xp 00400000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +71ffdee00000-71ffdfcab000 r-xp 01000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +71ffdfcab000-71ffdfe10000 r--p 01eaa000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +71ffdfe10000-71ffdfe7e000 rw-p 0200f000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +71ffdfe7e000-71ffdfe9c000 rw-p 00000000 00:00 0 +71ffdfe9e000-71ffdfea2000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffdfea2000-71ffdfec2000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffdfec2000-71ffdfed1000 r--p 00000000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +71ffdfed1000-71ffdffb7000 r-xp 0000f000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +71ffdffb7000-71ffdfff5000 r--p 000f5000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +71ffdfff5000-71ffdfff6000 ---p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +71ffdfff6000-71ffdfff9000 r--p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +71ffdfff9000-71ffdffff000 rw-p 00136000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +71ffdffff000-71ffe0000000 rw-p 00000000 00:00 0 +71ffe0000000-71ffe0021000 rw-p 00000000 00:00 0 +71ffe0021000-71ffe4000000 ---p 00000000 00:00 0 +71ffe4000000-71ffe4021000 rw-p 00000000 00:00 0 +71ffe4021000-71ffe8000000 ---p 00000000 00:00 0 +71ffe8001000-71ffe8002000 rw-s 00000000 00:06 1022 /dev/nvidia0 +71ffe8002000-71ffe8003000 rw-s 00000000 00:06 1022 /dev/nvidia0 +71ffe8003000-71ffe8005000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffe8005000-71ffe8006000 rw-s 00000000 00:06 1022 /dev/nvidia0 +71ffe8006000-71ffe8007000 rw-s 00000000 00:06 1022 /dev/nvidia0 +71ffe8007000-71ffe8011000 r--p 00000000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +71ffe8011000-71ffe801b000 r-xp 0000a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +71ffe801b000-71ffe8022000 r--p 00014000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +71ffe8022000-71ffe802b000 r--p 0001a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +71ffe802b000-71ffe802c000 rw-p 00023000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +71ffe802c000-71ffe8038000 r--p 00000000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +71ffe8038000-71ffe8058000 r-xp 0000c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +71ffe8058000-71ffe8064000 r--p 0002c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +71ffe8064000-71ffe806e000 r--p 00037000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +71ffe806e000-71ffe806f000 rw-p 00041000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +71ffe806f000-71ffe8075000 r--p 00000000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +71ffe8075000-71ffe808f000 r-xp 00006000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +71ffe808f000-71ffe8096000 r--p 00020000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +71ffe8096000-71ffe8097000 ---p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +71ffe8097000-71ffe8098000 r--p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +71ffe8098000-71ffe8099000 rw-p 00028000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +71ffe8099000-71ffe809b000 rw-p 00000000 00:00 0 +71ffe809b000-71ffe80ae000 r--p 00000000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +71ffe80ae000-71ffe80cd000 r-xp 00013000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +71ffe80cd000-71ffe80da000 r--p 00032000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +71ffe80da000-71ffe80ea000 r--p 0003e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +71ffe80ea000-71ffe80eb000 rw-p 0004e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +71ffe80eb000-71ffe80f6000 r--p 00000000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +71ffe80f6000-71ffe8124000 r-xp 0000b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +71ffe8124000-71ffe8136000 r--p 00039000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +71ffe8136000-71ffe8137000 ---p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +71ffe8137000-71ffe8138000 r--p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +71ffe8138000-71ffe8139000 rw-p 0004c000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +71ffe8139000-71ffe814c000 r--p 00000000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +71ffe814c000-71ffe81cb000 r-xp 00013000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +71ffe81cb000-71ffe81f6000 r--p 00092000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +71ffe81f6000-71ffe81f7000 ---p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +71ffe81f7000-71ffe81fe000 r--p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +71ffe81fe000-71ffe81ff000 rw-p 000c4000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +71ffe81ff000-71ffe8200000 rw-p 00000000 00:00 0 +71ffe8200000-71ffe8216000 r--p 00000000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +71ffe8216000-71ffe8306000 r-xp 00016000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +71ffe8306000-71ffe8379000 r--p 00106000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +71ffe8379000-71ffe8380000 r--p 00178000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +71ffe8380000-71ffe8387000 rw-p 0017f000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +71ffe8387000-71ffe8402000 rw-p 00000000 00:00 0 +71ffe8402000-71ffe8403000 rw-s 00000000 00:06 1022 /dev/nvidia0 +71ffe8403000-71ffe8404000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffe8404000-71ffe8405000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffe8405000-71ffe8406000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffe8406000-71ffe8407000 rw-s 00044000 00:01 7173 /memfd:/.nvidia_drv.XXXXXX (deleted) +71ffe8407000-71ffe8408000 rw-s 00000000 00:06 1022 /dev/nvidia0 +71ffe8408000-71ffe840c000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffe840c000-71ffe840d000 rw-s 00000000 00:06 1022 /dev/nvidia0 +71ffe840d000-71ffe840f000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffe840f000-71ffe8410000 rw-s 00000000 00:06 1022 /dev/nvidia0 +71ffe8410000-71ffe8414000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffe8414000-71ffe841d000 rw-s 00000000 00:01 668318 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) +71ffe841d000-71ffe8450000 r--p 00000000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +71ffe8450000-71ffe84b3000 r-xp 00033000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +71ffe84b3000-71ffe84d2000 r--p 00096000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +71ffe84d2000-71ffe84fd000 r--p 000b4000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +71ffe84fd000-71ffe84fe000 rw-p 000df000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +71ffe84fe000-71ffe84ff000 rw-p 00000000 00:00 0 +71ffe84ff000-71ffe8500000 ---p 00000000 00:00 0 +71ffe8500000-71ffe8600000 rw-p 00000000 00:00 0 +71ffe8600000-71ffe8601000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffe8601000-71ffe8602000 rw-s 00000000 00:06 1022 /dev/nvidia0 +71ffe8602000-71ffe8604000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffe8604000-71ffe8605000 rw-s 00000000 00:06 1022 /dev/nvidia0 +71ffe8605000-71ffe8606000 rw-s 00000000 00:06 1022 /dev/nvidia0 +71ffe8606000-71ffe8608000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffe8608000-71ffe8611000 rw-s 00000000 00:01 668317 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) +71ffe8611000-71ffe8615000 r--p 00000000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +71ffe8615000-71ffe862b000 r-xp 00004000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +71ffe862b000-71ffe8635000 r--p 0001a000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +71ffe8635000-71ffe8636000 r--p 00023000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +71ffe8636000-71ffe8637000 rw-p 00024000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +71ffe8637000-71ffe8639000 r--p 00000000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +71ffe8639000-71ffe8652000 r-xp 00002000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +71ffe8652000-71ffe8654000 r--p 0001b000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +71ffe8654000-71ffe8655000 ---p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +71ffe8655000-71ffe8656000 r--p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +71ffe8656000-71ffe8657000 rw-p 0001e000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +71ffe8657000-71ffe865b000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffe865b000-71ffe865f000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffe865f000-71ffe8661000 r--p 00000000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +71ffe8661000-71ffe8665000 r-xp 00002000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +71ffe8665000-71ffe8667000 r--p 00006000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +71ffe8667000-71ffe8668000 r--p 00007000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +71ffe8668000-71ffe8669000 rw-p 00008000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +71ffe8669000-71ffe866b000 r--p 00000000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +71ffe866b000-71ffe8673000 r-xp 00002000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +71ffe8673000-71ffe8675000 r--p 0000a000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +71ffe8675000-71ffe8676000 r--p 0000b000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +71ffe8676000-71ffe8677000 rw-p 0000c000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +71ffe8677000-71ffe86a6000 r--p 00000000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +71ffe86a6000-71ffe8762000 r-xp 0002f000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +71ffe8762000-71ffe87ad000 r--p 000eb000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +71ffe87ad000-71ffe87bb000 r--p 00135000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +71ffe87bb000-71ffe87bd000 rw-p 00143000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +71ffe87bd000-71ffe87be000 rw-p 00000000 00:00 0 +71ffe87be000-71ffe87c1000 r--p 00000000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +71ffe87c1000-71ffe87e2000 r-xp 00003000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +71ffe87e2000-71ffe87ee000 r--p 00024000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +71ffe87ee000-71ffe87ef000 ---p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +71ffe87ef000-71ffe87f0000 r--p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +71ffe87f0000-71ffe87f1000 rw-p 00031000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +71ffe87f1000-71ffe8857000 r--p 00000000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +71ffe8857000-71ffe894a000 r-xp 00066000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +71ffe894a000-71ffe89d6000 r--p 00159000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +71ffe89d6000-71ffe89e9000 r--p 001e4000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +71ffe89e9000-71ffe89ea000 rw-p 001f7000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +71ffe89ea000-71ffe89ec000 rw-p 00000000 00:00 0 +71ffe89ec000-71ffe8a1b000 r--p 00000000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +71ffe8a1b000-71ffe8b6e000 r-xp 0002f000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +71ffe8b6e000-71ffe8bc2000 r--p 00182000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +71ffe8bc2000-71ffe8bc3000 ---p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +71ffe8bc3000-71ffe8bcc000 r--p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +71ffe8bcc000-71ffe8bcd000 rw-p 001df000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +71ffe8bcd000-71ffe8bce000 rw-p 00000000 00:00 0 +71ffe8bce000-71ffe8bdc000 r--p 00000000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +71ffe8bdc000-71ffe8bed000 r-xp 0000e000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +71ffe8bed000-71ffe8bfb000 r--p 0001f000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +71ffe8bfb000-71ffe8bff000 r--p 0002c000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +71ffe8bff000-71ffe8c00000 rw-p 00030000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +71ffe8c00000-71ffe8c9a000 r--p 00000000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +71ffe8c9a000-71ffe8dab000 r-xp 0009a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +71ffe8dab000-71ffe8e1a000 r--p 001ab000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +71ffe8e1a000-71ffe8e1b000 ---p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +71ffe8e1b000-71ffe8e26000 r--p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +71ffe8e26000-71ffe8e29000 rw-p 00225000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +71ffe8e29000-71ffe8e2c000 rw-p 00000000 00:00 0 +71ffe8e2c000-71ffe8e2e000 r--p 00000000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +71ffe8e2e000-71ffe8e36000 r-xp 00002000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +71ffe8e36000-71ffe8e37000 r--p 0000a000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +71ffe8e37000-71ffe8e38000 ---p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +71ffe8e38000-71ffe8e39000 r--p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +71ffe8e39000-71ffe8e3a000 rw-p 0000c000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +71ffe8e3a000-71ffe8e3e000 r--p 00000000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +71ffe8e3e000-71ffe8e53000 r-xp 00004000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +71ffe8e53000-71ffe8e59000 r--p 00019000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +71ffe8e59000-71ffe8e5a000 ---p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +71ffe8e5a000-71ffe8e5c000 r--p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +71ffe8e5c000-71ffe8e5d000 rw-p 00021000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +71ffe8e5d000-71ffe8e65000 r--p 00000000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +71ffe8e65000-71ffe8e83000 r-xp 00008000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +71ffe8e83000-71ffe8e90000 r--p 00026000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +71ffe8e90000-71ffe8e92000 r--p 00032000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +71ffe8e92000-71ffe8e93000 rw-p 00034000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +71ffe8e93000-71ffe8e97000 rw-p 00000000 00:00 0 +71ffe8e97000-71ffe8e99000 r--p 00000000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +71ffe8e99000-71ffe8ea0000 r-xp 00002000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +71ffe8ea0000-71ffe8ea1000 r--p 00009000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +71ffe8ea1000-71ffe8ea2000 ---p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +71ffe8ea2000-71ffe8ea3000 r--p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +71ffe8ea3000-71ffe8ea4000 rw-p 0000b000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +71ffe8ea4000-71ffe8ea7000 r--p 00000000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +71ffe8ea7000-71ffe8ebe000 r-xp 00003000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +71ffe8ebe000-71ffe8ec2000 r--p 0001a000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +71ffe8ec2000-71ffe8ec3000 r--p 0001d000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +71ffe8ec3000-71ffe8ec4000 rw-p 0001e000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +71ffe8ec4000-71ffe8ec8000 r--p 00000000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +71ffe8ec8000-71ffe8ee7000 r-xp 00004000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +71ffe8ee7000-71ffe8ef1000 r--p 00023000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +71ffe8ef1000-71ffe8ef2000 ---p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +71ffe8ef2000-71ffe8ef4000 r--p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +71ffe8ef4000-71ffe8ef5000 rw-p 0002f000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +71ffe8ef5000-71ffe8efa000 r--p 00000000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +71ffe8efa000-71ffe8f05000 r-xp 00005000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +71ffe8f05000-71ffe8f09000 r--p 00010000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +71ffe8f09000-71ffe8f0a000 ---p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +71ffe8f0a000-71ffe8f0b000 r--p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +71ffe8f0b000-71ffe8f0c000 rw-p 00015000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +71ffe8f0c000-71ffe8f0d000 r--p 00000000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +71ffe8f0d000-71ffe8f0e000 r-xp 00001000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +71ffe8f0e000-71ffe8f0f000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +71ffe8f0f000-71ffe8f10000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +71ffe8f10000-71ffe8f11000 rw-p 00003000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +71ffe8f11000-71ffe8f12000 r--p 00000000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +71ffe8f12000-71ffe8f13000 r-xp 00001000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +71ffe8f13000-71ffe8f14000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +71ffe8f14000-71ffe8f15000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +71ffe8f15000-71ffe8f16000 rw-p 00003000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +71ffe8f16000-71ffe8f19000 r--p 00000000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +71ffe8f19000-71ffe8f1c000 r-xp 00003000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +71ffe8f1c000-71ffe8f1d000 r--p 00006000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +71ffe8f1d000-71ffe8f1e000 ---p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +71ffe8f1e000-71ffe8f1f000 r--p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +71ffe8f1f000-71ffe8f20000 rw-p 00008000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +71ffe8f20000-71ffe8f2a000 r--p 00000000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +71ffe8f2a000-71ffe8fdc000 r-xp 0000a000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +71ffe8fdc000-71ffe8fed000 r--p 000bc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +71ffe8fed000-71ffe8fee000 r--p 000cc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +71ffe8fee000-71ffe8fef000 rw-p 000cd000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +71ffe8fef000-71ffe8ff4000 r--p 00000000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +71ffe8ff4000-71ffe8ffa000 r-xp 00005000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +71ffe8ffa000-71ffe8ffd000 r--p 0000b000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +71ffe8ffd000-71ffe8fff000 r--p 0000d000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +71ffe8fff000-71ffe9000000 rw-p 0000f000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +71ffe9000000-71ffe9001000 ---p 00000000 00:00 0 +71ffe9001000-71ffe9801000 rw-p 00000000 00:00 0 +71ffe9801000-71ffe9802000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffe9802000-71ffe9805000 r--p 00000000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +71ffe9805000-71ffe9808000 r-xp 00003000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +71ffe9808000-71ffe9809000 r--p 00006000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +71ffe9809000-71ffe980a000 ---p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +71ffe980a000-71ffe980b000 r--p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +71ffe980b000-71ffe980c000 rw-p 00008000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +71ffe980c000-71ffe980d000 r--p 00000000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +71ffe980d000-71ffe980e000 r-xp 00001000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +71ffe980e000-71ffe980f000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +71ffe980f000-71ffe9810000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +71ffe9810000-71ffe9811000 rw-p 00003000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +71ffe9811000-71ffe9814000 r--p 00000000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +71ffe9814000-71ffe9828000 r-xp 00003000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +71ffe9828000-71ffe982c000 r--p 00017000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +71ffe982c000-71ffe982d000 ---p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +71ffe982d000-71ffe982e000 r--p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +71ffe982e000-71ffe982f000 rw-p 0001c000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +71ffe982f000-71ffe9832000 r--p 00000000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +71ffe9832000-71ffe9838000 r-xp 00003000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +71ffe9838000-71ffe983a000 r--p 00009000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +71ffe983a000-71ffe983b000 r--p 0000a000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +71ffe983b000-71ffe983c000 rw-p 0000b000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +71ffe983c000-71ffe984c000 r--p 00000000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +71ffe984c000-71ffe98aa000 r-xp 00010000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +71ffe98aa000-71ffe98c6000 r--p 0006e000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +71ffe98c6000-71ffe98c7000 ---p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +71ffe98c7000-71ffe98cd000 r--p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +71ffe98cd000-71ffe98ce000 rw-p 00090000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +71ffe98ce000-71ffe98d6000 rw-p 00000000 00:00 0 +71ffe98d6000-71ffe9927000 r--p 00000000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +71ffe9927000-71ffe9983000 r-xp 00051000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +71ffe9983000-71ffe99b8000 rwxp 000ad000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +71ffe99b8000-71ffe99b9000 r-xp 000e2000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +71ffe99b9000-71ffe99d9000 r--p 000e3000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +71ffe99d9000-71ffe99f9000 r--p 00102000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +71ffe99f9000-71ffe99fe000 rw-p 00122000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +71ffe99fe000-71ffe9a00000 rw-p 00000000 00:00 0 +71ffe9a00000-71ffe9e00000 rw-p 00000000 00:00 0 +71ffe9e00000-71ffe9e01000 rw-s 00000000 00:06 1022 /dev/nvidia0 +71ffe9e01000-71ffe9e02000 rw-s 00000000 00:06 1022 /dev/nvidia0 +71ffe9e02000-71ffe9e04000 r--p 00000000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +71ffe9e04000-71ffe9e06000 r-xp 00002000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +71ffe9e06000-71ffe9e07000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +71ffe9e07000-71ffe9e08000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +71ffe9e08000-71ffe9e09000 rw-p 00005000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +71ffe9e09000-71ffe9e10000 r--p 00000000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +71ffe9e10000-71ffe9e16000 r-xp 00007000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +71ffe9e16000-71ffe9e19000 r--p 0000d000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +71ffe9e19000-71ffe9e1a000 ---p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +71ffe9e1a000-71ffe9e1b000 r--p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +71ffe9e1b000-71ffe9e1c000 rw-p 00011000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +71ffe9e1c000-71ffe9e27000 r--p 00000000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +71ffe9e27000-71ffe9e30000 r-xp 0000b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +71ffe9e30000-71ffe9e35000 r--p 00014000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +71ffe9e35000-71ffe9e36000 ---p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +71ffe9e36000-71ffe9e38000 r--p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +71ffe9e38000-71ffe9e39000 rw-p 0001b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +71ffe9e39000-71ffe9e3a000 r--p 00000000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +71ffe9e3a000-71ffe9e3c000 r-xp 00001000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +71ffe9e3c000-71ffe9e3d000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +71ffe9e3d000-71ffe9e3e000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +71ffe9e3e000-71ffe9e3f000 rw-p 00004000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +71ffe9e3f000-71ffe9e45000 r--p 00000000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +71ffe9e45000-71ffe9e8f000 r-xp 00006000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +71ffe9e8f000-71ffe9eb9000 r--p 00050000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +71ffe9eb9000-71ffe9eba000 r--p 00079000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +71ffe9eba000-71ffe9ebb000 rw-p 0007a000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +71ffe9ebb000-71ffe9ec2000 r--s 00000000 103:03 11147989 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache +71ffe9ec2000-71ffe9ec3000 r--p 00000000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +71ffe9ec3000-71ffe9ec6000 r-xp 00001000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +71ffe9ec6000-71ffe9ec7000 r--p 00004000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +71ffe9ec7000-71ffe9ec8000 ---p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +71ffe9ec8000-71ffe9ec9000 r--p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +71ffe9ec9000-71ffe9eca000 rw-p 00006000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +71ffe9eca000-71ffe9ecd000 r--p 00000000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +71ffe9ecd000-71ffe9ed1000 r-xp 00003000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +71ffe9ed1000-71ffe9ed3000 r--p 00007000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +71ffe9ed3000-71ffe9ed4000 r--p 00008000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +71ffe9ed4000-71ffe9ed5000 rw-p 00009000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +71ffe9ed5000-71ffe9ed6000 r--p 00000000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +71ffe9ed6000-71ffe9ed8000 r-xp 00001000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +71ffe9ed8000-71ffe9ed9000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +71ffe9ed9000-71ffe9eda000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +71ffe9eda000-71ffe9edb000 rw-p 00004000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +71ffe9edb000-71ffe9eeb000 r--p 00000000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +71ffe9eeb000-71ffe9f0c000 r-xp 00010000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +71ffe9f0c000-71ffe9f48000 r--p 00031000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +71ffe9f48000-71ffe9f4c000 r--p 0006c000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +71ffe9f4c000-71ffe9f4f000 rw-p 00070000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +71ffe9f4f000-71ffe9f72000 rw-p 00000000 00:00 0 +71ffe9f72000-71ffe9f76000 ---p 00000000 00:00 0 +71ffe9f76000-71ffea072000 rw-p 00000000 00:00 0 +71ffea072000-71ffea076000 ---p 00000000 00:00 0 +71ffea076000-71ffea172000 rw-p 00000000 00:00 0 +71ffea172000-71ffea173000 ---p 00000000 00:00 0 +71ffea173000-71ffea273000 rw-p 00000000 00:00 0 +71ffea273000-71ffea274000 ---p 00000000 00:00 0 +71ffea274000-71ffea374000 rw-p 00000000 00:00 0 +71ffea374000-71ffea375000 ---p 00000000 00:00 0 +71ffea375000-71ffea475000 rw-p 00000000 00:00 0 +71ffea475000-71ffea476000 ---p 00000000 00:00 0 +71ffea476000-71ffea576000 rw-p 00000000 00:00 0 +71ffea576000-71ffea577000 ---p 00000000 00:00 0 +71ffea577000-71ffea677000 rw-p 00000000 00:00 0 +71ffea677000-71ffea678000 ---p 00000000 00:00 0 +71ffea678000-71ffea778000 rw-p 00000000 00:00 0 +71ffea778000-71ffea77c000 ---p 00000000 00:00 0 +71ffea77c000-71ffea878000 rw-p 00000000 00:00 0 +71ffea878000-71ffea978000 rw-s 00000000 00:01 983093 /SYSV00000000 (deleted) +71ffea978000-71ffea97c000 ---p 00000000 00:00 0 +71ffea97c000-71ffeaa78000 rw-p 00000000 00:00 0 +71ffeaa78000-71ffeaa7c000 ---p 00000000 00:00 0 +71ffeaa7c000-71ffeab78000 rw-p 00000000 00:00 0 +71ffeab78000-71ffeab7c000 ---p 00000000 00:00 0 +71ffeab7c000-71ffeac78000 rw-p 00000000 00:00 0 +71ffeac78000-71ffeac7c000 ---p 00000000 00:00 0 +71ffeac7c000-71ffead78000 rw-p 00000000 00:00 0 +71ffead78000-71ffead7c000 ---p 00000000 00:00 0 +71ffead7c000-71ffeae78000 rw-p 00000000 00:00 0 +71ffeae78000-71ffeae7c000 ---p 00000000 00:00 0 +71ffeae7c000-71ffeaf78000 rw-p 00000000 00:00 0 +71ffeaf78000-71ffeaf7a000 r--p 00000000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +71ffeaf7a000-71ffeaf7d000 r-xp 00002000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +71ffeaf7d000-71ffeaf7e000 r--p 00005000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +71ffeaf7e000-71ffeaf7f000 r--p 00006000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +71ffeaf7f000-71ffeaf80000 rw-p 00007000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +71ffeaf80000-71ffeaf82000 r--p 00000000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +71ffeaf82000-71ffeaf88000 r-xp 00002000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +71ffeaf88000-71ffeaf8a000 r--p 00008000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +71ffeaf8a000-71ffeaf8b000 r--p 00009000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +71ffeaf8b000-71ffeaf8c000 rw-p 0000a000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +71ffeaf8c000-71ffeaf8d000 r--p 00000000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 +71ffeaf8d000-71ffeaf8e000 r-xp 00001000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 +71ffeaf8e000-71ffeafad000 r--p 00002000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 +71ffeafad000-71ffeafae000 r--p 00020000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 +71ffeafae000-71ffeafaf000 rw-p 00021000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 +71ffeafaf000-71ffeafb0000 r--p 00000000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 +71ffeafb0000-71ffeafb8000 r-xp 00001000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 +71ffeafb8000-71ffeafbb000 r--p 00009000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 +71ffeafbb000-71ffeafbc000 r--p 0000b000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 +71ffeafbc000-71ffeafbd000 rw-p 0000c000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 +71ffeafbd000-71ffeafc2000 r--p 00000000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 +71ffeafc2000-71ffeafeb000 r-xp 00005000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 +71ffeafeb000-71ffeaff6000 r--p 0002e000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 +71ffeaff6000-71ffeaff7000 r--p 00038000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 +71ffeaff7000-71ffeaff8000 rw-p 00039000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 +71ffeaff8000-71ffeb005000 r--p 00000000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +71ffeb005000-71ffeb08e000 r-xp 0000d000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +71ffeb08e000-71ffeb0b7000 r--p 00096000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +71ffeb0b7000-71ffeb0b8000 ---p 000bf000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +71ffeb0b8000-71ffeb0bf000 r--p 000bf000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +71ffeb0bf000-71ffeb0c0000 rw-p 000c6000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +71ffeb0c0000-71ffeb241000 r-xp 00000000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so +71ffeb241000-71ffeb242000 ---p 00181000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so +71ffeb242000-71ffeb244000 r--p 00181000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so +71ffeb244000-71ffeb245000 rw-p 00183000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so +71ffeb245000-71ffeb246000 rw-p 00000000 00:00 0 +71ffeb246000-71ffeb25f000 r--p 00000000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +71ffeb25f000-71ffeb2eb000 r-xp 00019000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +71ffeb2eb000-71ffeb380000 r--p 000a5000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +71ffeb380000-71ffeb381000 ---p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +71ffeb381000-71ffeb382000 r--p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +71ffeb382000-71ffeb386000 rw-p 0013b000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +71ffeb386000-71ffeb3f6000 r-xp 00000000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +71ffeb3f6000-71ffeb3f7000 ---p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +71ffeb3f7000-71ffeb3fc000 r--p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +71ffeb3fc000-71ffeb3fe000 rw-p 00075000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +71ffeb3fe000-71ffeb400000 rw-p 00000000 00:00 0 +71ffeb400000-71ffebc00000 rw-p 00000000 00:00 0 +71ffebc00000-71ffebc08000 r--p 00000000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +71ffebc08000-71ffebc60000 r-xp 00008000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +71ffebc60000-71ffebc71000 r--p 00060000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +71ffebc71000-71ffebc72000 ---p 00071000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +71ffebc72000-71ffebc78000 r--p 00071000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +71ffebc78000-71ffebc79000 rw-p 00077000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +71ffebc79000-71ffebe83000 rw-p 00000000 00:00 0 +71ffebe83000-71ffebe84000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71ffebe84000-71ffebe85000 rw-s 00000000 00:06 1022 /dev/nvidia0 +71ffebe85000-71ffebe87000 r--p 00000000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +71ffebe87000-71ffebe8e000 r-xp 00002000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +71ffebe8e000-71ffebe90000 r--p 00009000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +71ffebe90000-71ffebe91000 r--p 0000a000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +71ffebe91000-71ffebe92000 rw-p 0000b000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +71ffebe92000-71ffebf53000 r-xp 00000000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +71ffebf53000-71ffebf54000 r--p 000c0000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +71ffebf54000-71ffebf5f000 rw-p 000c1000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +71ffebf5f000-71ffebf84000 rw-p 00000000 00:00 0 +71ffebf84000-71ffebfb0000 r--p 00000000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +71ffebfb0000-71ffebfe4000 r-xp 0002c000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +71ffebfe4000-71ffebffe000 r--p 00060000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +71ffebffe000-71ffebfff000 r--p 00079000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +71ffebfff000-71ffec000000 rw-p 0007a000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +71ffec000000-71ffec021000 rw-p 00000000 00:00 0 +71ffec021000-71fff0000000 ---p 00000000 00:00 0 +71fff0000000-71fff0004000 ---p 00000000 00:00 0 +71fff0004000-71fff0100000 rw-p 00000000 00:00 0 +71fff0100000-71fff0104000 ---p 00000000 00:00 0 +71fff0104000-71fff0200000 rw-p 00000000 00:00 0 +71fff0200000-71fff0204000 ---p 00000000 00:00 0 +71fff0204000-71fff0300000 rw-p 00000000 00:00 0 +71fff0300000-71fff0304000 ---p 00000000 00:00 0 +71fff0304000-71fff0400000 rw-p 00000000 00:00 0 +71fff0400000-71fff0404000 ---p 00000000 00:00 0 +71fff0404000-71fff0500000 rw-p 00000000 00:00 0 +71fff0500000-71fff0504000 ---p 00000000 00:00 0 +71fff0504000-71fff0600000 rw-p 00000000 00:00 0 +71fff0600000-71fff0604000 ---p 00000000 00:00 0 +71fff0604000-71fff0700000 rw-p 00000000 00:00 0 +71fff0700000-71fff0704000 ---p 00000000 00:00 0 +71fff0704000-71fff0800000 rw-p 00000000 00:00 0 +71fff0800000-71fff1706000 r--p 00000000 103:03 10618858 /usr/lib/locale/locale-archive +71fff1706000-71fff170a000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71fff170a000-71fff170b000 r--p 00000000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +71fff170b000-71fff170c000 r-xp 00001000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +71fff170c000-71fff170d000 r--p 00002000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +71fff170d000-71fff170e000 r--p 00003000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +71fff170e000-71fff170f000 rw-p 00004000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +71fff170f000-71fff1713000 r--p 00000000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +71fff1713000-71fff1720000 r-xp 00004000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +71fff1720000-71fff1723000 r--p 00011000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +71fff1723000-71fff1724000 ---p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +71fff1724000-71fff1725000 r--p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +71fff1725000-71fff1726000 rw-p 00015000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +71fff1726000-71fff1727000 rw-p 00000000 00:00 0 +71fff1727000-71fff1729000 r--p 00000000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +71fff1729000-71fff172b000 r-xp 00002000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +71fff172b000-71fff172d000 r--p 00004000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +71fff172d000-71fff172e000 r--p 00005000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +71fff172e000-71fff172f000 rw-p 00006000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +71fff172f000-71fff17fd000 r-xp 00000000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +71fff17fd000-71fff17fe000 r--p 000cd000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +71fff17fe000-71fff17ff000 rw-p 000ce000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +71fff17ff000-71fff1803000 ---p 00000000 00:00 0 +71fff1803000-71fff18ff000 rw-p 00000000 00:00 0 +71fff18ff000-71fff1900000 ---p 00000000 00:00 0 +71fff1900000-71fff1a00000 rw-p 00000000 00:00 0 +71fff1a00000-71fff3a70000 rw-p 00000000 00:00 0 +71fff3a70000-71fffb700000 ---p 00000000 00:00 0 +71fffb700000-71fffb704000 ---p 00000000 00:00 0 +71fffb704000-71fffb800000 rw-p 00000000 00:00 0 +71fffb800000-71fffb80e000 rw-p 00000000 00:00 0 +71fffb80e000-71fffc7a0000 ---p 00000000 00:00 0 +71fffc7a0000-71fffc7a2000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71fffc7a2000-71fffc7ad000 r--p 00000000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +71fffc7ad000-71fffc7c1000 r-xp 0000b000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +71fffc7c1000-71fffc7ca000 r--p 0001f000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +71fffc7ca000-71fffc7cb000 r--p 00027000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +71fffc7cb000-71fffc7cc000 rw-p 00028000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +71fffc7cc000-71fffc7cf000 r--p 00000000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +71fffc7cf000-71fffc7db000 r-xp 00003000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +71fffc7db000-71fffc7de000 r--p 0000f000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +71fffc7de000-71fffc7df000 r--p 00011000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +71fffc7df000-71fffc7e0000 rw-p 00012000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +71fffc7e0000-71fffc7e1000 rw-s 00000000 00:06 1022 /dev/nvidia0 +71fffc7e1000-71fffc7e2000 rw-s 00000000 00:06 1022 /dev/nvidia0 +71fffc7e2000-71fffc7e3000 rw-s 00000000 00:06 1022 /dev/nvidia0 +71fffc7e3000-71fffc7e4000 r--p 00000000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +71fffc7e4000-71fffc7e5000 r-xp 00001000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +71fffc7e5000-71fffc7e6000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +71fffc7e6000-71fffc7e7000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +71fffc7e7000-71fffc7e8000 rw-p 00003000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +71fffc7e8000-71fffc7e9000 r--p 00000000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +71fffc7e9000-71fffc7ec000 r-xp 00001000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +71fffc7ec000-71fffc7ed000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +71fffc7ed000-71fffc7ee000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +71fffc7ee000-71fffc7ef000 rw-p 00005000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +71fffc7ef000-71fffc7f1000 r--p 00000000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +71fffc7f1000-71fffc7f8000 r-xp 00002000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +71fffc7f8000-71fffc7fa000 r--p 00009000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +71fffc7fa000-71fffc7fb000 r--p 0000a000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +71fffc7fb000-71fffc7fc000 rw-p 0000b000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +71fffc7fc000-71fffc7fd000 r-xp 00000000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so +71fffc7fd000-71fffc7fe000 ---p 00001000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so +71fffc7fe000-71fffc7ff000 r--p 00001000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so +71fffc7ff000-71fffc800000 rw-p 00002000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so +71fffc800000-71fffca90000 rwxp 00000000 00:00 0 +71fffca90000-720003d37000 ---p 00000000 00:00 0 +720003d37000-720003fb7000 rwxp 00000000 00:00 0 +720003fb7000-7200042c8000 ---p 00000000 00:00 0 +7200042c8000-720004538000 rwxp 00000000 00:00 0 +720004538000-72000b800000 ---p 00000000 00:00 0 +72000b800000-720013fb5000 r--s 00000000 103:03 10498840 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/modules +720013fb5000-720013fb6000 rw-s 00000000 00:06 1017 /dev/nvidiactl +720013fb6000-720013fb7000 rw-s 00000000 00:06 1017 /dev/nvidiactl +720013fb7000-720013fb9000 r--p 00000000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +720013fb9000-720013fbc000 r-xp 00002000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +720013fbc000-720013fbd000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +720013fbd000-720013fbe000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +720013fbe000-720013fbf000 rw-p 00006000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +720013fbf000-720013ffd000 r-xp 00000000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +720013ffd000-720013ffe000 ---p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +720013ffe000-720013fff000 r--p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +720013fff000-720014000000 rw-p 0003f000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +720014000000-7200146d9000 rw-p 00000000 00:00 0 +7200146d9000-720018000000 ---p 00000000 00:00 0 +720018000000-720018001000 r--s 00000000 00:06 1017 /dev/nvidiactl +720018001000-720018002000 rw-s 00000000 00:01 1028 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) +720018002000-720018006000 r--p 00000000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +720018006000-720018011000 r-xp 00004000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +720018011000-720018015000 r--p 0000f000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +720018015000-720018016000 r--p 00012000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +720018016000-720018017000 rw-p 00013000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +720018017000-720018018000 ---p 00000000 00:00 0 +720018018000-720018118000 rw-p 00000000 00:00 0 +720018118000-7200181f4000 rw-p 00000000 00:00 0 +7200181f4000-7200181f5000 ---p 00000000 00:00 0 +7200181f5000-7200182f5000 rw-p 00000000 00:00 0 +7200182f5000-7200182f6000 ---p 00000000 00:00 0 +7200182f6000-7200183f6000 rw-p 00000000 00:00 0 +7200183f6000-720018bfe000 rw-p 00000000 00:00 0 +720018bfe000-720018bff000 ---p 00000000 00:00 0 +720018bff000-720018cff000 rw-p 00000000 00:00 0 +720018cff000-720018d00000 ---p 00000000 00:00 0 +720018d00000-720018e00000 rw-p 00000000 00:00 0 +720018e00000-720018e0e000 rw-p 00000000 00:00 0 +720018e0e000-720019da0000 ---p 00000000 00:00 0 +720019da0000-720019da1000 ---p 00000000 00:00 0 +720019da1000-720019ea1000 rw-p 00000000 00:00 0 +720019ea1000-72001a72f000 rw-p 00000000 00:00 0 +72001a72f000-72001a815000 ---p 00000000 00:00 0 +72001a815000-72001a81b000 rw-p 00000000 00:00 0 +72001a81b000-72001a900000 ---p 00000000 00:00 0 +72001a900000-72001a904000 ---p 00000000 00:00 0 +72001a904000-72001aa00000 rw-p 00000000 00:00 0 +72001aa00000-72001bd30000 r-xp 00000000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so +72001bd30000-72001be00000 r--p 0132f000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so +72001be00000-72001be2e000 rw-p 013ff000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so +72001be2e000-72001bea4000 rw-p 00000000 00:00 0 +72001bea4000-72001bea5000 rw-s 00000000 00:01 668316 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=4096 (deleted) +72001bea5000-72001bea6000 rw-s 00000000 00:01 668315 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) +72001bea6000-72001bea7000 rw-s 00000000 00:01 668314 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) +72001bea7000-72001bea9000 r--p 00000000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +72001bea9000-72001beb0000 r-xp 00002000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +72001beb0000-72001beb2000 r--p 00009000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +72001beb2000-72001beb3000 r--p 0000a000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +72001beb3000-72001beb4000 rw-p 0000b000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +72001beb4000-72001bebf000 r-xp 00000000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +72001bebf000-72001bec0000 ---p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +72001bec0000-72001bec1000 r--p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +72001bec1000-72001bec2000 rw-p 0000c000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +72001bec2000-72001bed5000 r-xp 00000000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +72001bed5000-72001bed6000 ---p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +72001bed6000-72001bed7000 r--p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +72001bed7000-72001bed8000 rw-p 00014000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +72001bed8000-72001bf19000 rw-p 00000000 00:00 0 +72001bf19000-72001bf27000 r--p 00000000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +72001bf27000-72001bfa3000 r-xp 0000e000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +72001bfa3000-72001bffe000 r--p 0008a000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +72001bffe000-72001bfff000 r--p 000e4000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +72001bfff000-72001c000000 rw-p 000e5000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +72001c000000-72001c028000 r--p 00000000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +72001c028000-72001c1bd000 r-xp 00028000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +72001c1bd000-72001c215000 r--p 001bd000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +72001c215000-72001c216000 ---p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +72001c216000-72001c21a000 r--p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +72001c21a000-72001c21c000 rw-p 00219000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +72001c21c000-72001c229000 rw-p 00000000 00:00 0 +72001c229000-72001c22a000 r-xp 00000000 00:00 0 +72001c22a000-72001c22b000 r--p 00000000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +72001c22b000-72001c22d000 r-xp 00001000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +72001c22d000-72001c22e000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +72001c22e000-72001c22f000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +72001c22f000-72001c230000 rw-p 00004000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +72001c230000-72001c231000 rw-p 00000000 00:00 0 +72001c231000-72001c232000 r-xp 0005e000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +72001c232000-72001c2b1000 rw-p 00000000 00:00 0 +72001c2b1000-72001c2d1000 r-xp 00000000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +72001c2d1000-72001c2d2000 r--p 0001f000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +72001c2d2000-72001c2d3000 rw-p 00020000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +72001c2d3000-72001c2d4000 rw-p 00000000 00:00 0 +72001c2d4000-72001c2f2000 r-xp 00000000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +72001c2f2000-72001c2f4000 r--p 0001d000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +72001c2f4000-72001c2f5000 rw-p 0001f000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +72001c2f5000-72001c2f6000 r--p 00000000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +72001c2f6000-72001c2f7000 r-xp 00001000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +72001c2f7000-72001c2f8000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +72001c2f8000-72001c2f9000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +72001c2f9000-72001c2fa000 rw-p 00003000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +72001c2fa000-72001c2fe000 rw-p 00000000 00:00 0 +72001c2fe000-72001c2ff000 r--p 00000000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +72001c2ff000-72001c300000 r-xp 00001000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +72001c300000-72001c301000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +72001c301000-72001c302000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +72001c302000-72001c303000 rw-p 00003000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +72001c303000-72001c304000 r--p 00000000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +72001c304000-72001c305000 r-xp 00001000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +72001c305000-72001c306000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +72001c306000-72001c307000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +72001c307000-72001c308000 rw-p 00003000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +72001c308000-72001c30a000 r--p 00000000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +72001c30a000-72001c31b000 r-xp 00002000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +72001c31b000-72001c321000 r--p 00013000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +72001c321000-72001c322000 ---p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +72001c322000-72001c323000 r--p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +72001c323000-72001c324000 rw-p 0001a000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +72001c324000-72001c32b000 r-xp 00000000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +72001c32b000-72001c32c000 ---p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +72001c32c000-72001c32d000 r--p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +72001c32d000-72001c32e000 rw-p 00008000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +72001c32e000-72001c333000 rw-p 00000000 00:00 0 +72001c333000-72001c33a000 ---p 00000000 00:00 0 +72001c33a000-72001c342000 rw-s 00000000 103:03 4325444 /tmp/hsperfdata_codex/84939 +72001c342000-72001c343000 ---p 00000000 00:00 0 +72001c343000-72001c344000 r--p 00000000 00:00 0 +72001c344000-72001c353000 r-xp 00000000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so +72001c353000-72001c354000 r--p 0000e000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so +72001c354000-72001c355000 rw-p 0000f000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so +72001c355000-72001c357000 rw-p 00000000 00:00 0 +72001c357000-72001c35b000 r--p 00000000 00:00 0 [vvar] +72001c35b000-72001c35d000 r-xp 00000000 00:00 0 [vdso] +72001c35d000-72001c35f000 r--p 00000000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +72001c35f000-72001c389000 r-xp 00002000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +72001c389000-72001c394000 r--p 0002c000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +72001c394000-72001c395000 ---p 00000000 00:00 0 +72001c395000-72001c397000 r--p 00037000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +72001c397000-72001c399000 rw-p 00039000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +7ffc09f44000-7ffc09f67000 rw-p 00000000 00:00 0 [stack] +ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall] +Total number of mappings: 923 + + +VM Arguments: +jvm_args: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant +java_command: jme3test.vulkan.VulkanTest +java_class_path (initial): /home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/java/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/groovy/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/resources/main:/home/codex/java/prj/jmonkeyengine/jme3-lwjgl3/build/libs/jme3-lwjgl3-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-desktop/build/libs/jme3-desktop-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-effects/build/libs/jme3-effects-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jbullet/build/libs/jme3-jbullet-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jogg/build/libs/jme3-jogg-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-networking/build/libs/jme3-networking-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-niftygui/build/libs/jme3-niftygui-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins/build/libs/jme3-plugins-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-terrain/build/libs/jme3-terrain-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-awt-dialogs/build/libs/jme3-awt-dialogs-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-core/build/libs/jme3-core-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json-gson/build/libs/jme3-plugins-json-gson-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json/build/libs/jme3-plugins-json-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-testdata/build/libs/jme3-testdata-null-SNAPSHOT.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-examples/1.4.3/4a41c559851c0c5a77ba3a9d1ccc8e6e92207dc7/nifty-examples-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjglx/lwjgl3-awt/0.2.3/2be63e81d6b73300d8203ce7235b2660c62eb3ea/lwjgl3-awt-0.2.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/7119f7d0eeb1e5502ff0ca71d2b4d47317da015/lwjgl-glfw-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/99ef08056feb9627f90425a4d2a22cd9fae8e39b/lwjgl-glfw-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/cfa8f1e96d572ed56da5945adf5167628f5eecdb/lwjgl-glfw-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/797e0965709ad180d9b00c88a086dbda15002203/lwjgl-glfw-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/671adf04a6bc4f792af13892e37f804be30b7070/lwjgl-glfw-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/b54023af492b4c2c72451f3a7aa0f385e9969474/lwjgl-glfw-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/82c8d748a654241b5961ddd1c098e8b648e38a48/lwjgl-glfw-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/399b42b491c5dfa6595ae6fd79dcba61b93538a7/lwjgl-glfw-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jawt/3.3.6/43299e222bd7db5e99254a8e620330954b73c2a6/lwjgl-jawt-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/245910eb57f2444429c74e6bf96030e5ec0a6739/lwjgl-jemalloc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/f9da76351e14a695be172d6915c8a7b2905307f/lwjgl-jemalloc-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c86043a342a33e5d32fabf962578580633db3c6e/lwjgl-jemalloc-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/26f8b467dc2e0f3000d608de3564b572bb46f927/lwjgl-jemalloc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c484cae39a718010dbc7931fe5e12664600a13c2/lwjgl-jemalloc-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1bc2e16e70df7f418d668c2984ac8066f1f6f5b1/lwjgl-jemalloc-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/9a42df0f2e9747815490311d7db7b4a046d5f40/lwjgl-jemalloc-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1f828c1fc06792475850162725433adf5ad001c0/lwjgl-jemalloc-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ad313317ff399fd2a7f4dd74716a68cf3976c6ad/lwjgl-openal-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/9c2b9b660e085bb0b47a4453dc0e26f24a5475e4/lwjgl-openal-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/82f693541d69aa125750bf8be9c4194435c56f03/lwjgl-openal-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ef356c04ef141d4efbde07793f31784f1f1a1bae/lwjgl-openal-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/7830af894fa110e65bf5075deb9183efbdbc50f5/lwjgl-openal-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/fd2c17603c63e8d543cb57d1db77ebd4574f3b7a/lwjgl-openal-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/c39f6827f0bd97601fc4e389801d5c813f59a5f2/lwjgl-openal-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/13f692aec4ae4b2d3c468aa0008472175f0ea1e0/lwjgl-openal-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opencl/3.3.6/93fdcea16d27b1466450e38dc28c8e1b4819ec25/lwjgl-opencl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ac2532612a4df374e9a9282bcf8ce2573018ebbb/lwjgl-opengl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/18dc639ebc94aa5202c2157f7490d28997b697c5/lwjgl-opengl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b0ab1d0e315d2fcc50d6cab7e8feaf4688d5d9a0/lwjgl-opengl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b8dc6467fe232d552793c53dc56f9fa8a385299c/lwjgl-opengl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ee815fbf454b916f13c10fff62e513eb09042ef0/lwjgl-opengl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/44de180f79e0b45c9e5bee10ca7540dcb5ddd373/lwjgl-opengl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/59f708eb4bf0be0204bbc9c06807911724673db6/lwjgl-opengl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/fee4fb2ee786af6530b6f9188205a76bc4e05268/lwjgl-opengl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-vulkan/3.3.6/a403e0931b03b138854bb2ba9c48dab646cba6d8/lwjgl-vulkan-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/9d0964fe2b75f64d9dab9839c2b059b7e8f71115/lwjgl-shaderc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/ab69a0e011f057ed25857c97fa3c87f20ab8f670/lwjgl-shaderc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/ce7721d30cfaf47feaed10213e0c43eb55c49d68/lwjgl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9a29b6a22fc5184604b8cb434ee5d5ecc4bfcbee/lwjgl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/7a6f04e02429ba2f4bda9be191347bb7d3c71127/lwjgl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/dc7db8fc4f1e6563867f9155b9a42d9c73d8992f/lwjgl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/2c9d698e76c3d0fe307d94cc6f428038492f25df/lwjgl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9eeb8887b5e3aa672efd2e1b0973ffa5891a3151/lwjgl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/f14e7a5289d2355822f4f83b3fd38d158c939acd/lwjgl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/832e2964ce74e02e768814a29c06d60645115b9a/lwjgl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/jbullet/1.0.3/362f53e8aa981037c2523ac24eb4d9b190a49036/jbullet-1.0.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/javax.vecmath/vecmath/1.5.2/fd17bc3e67f909573dfc039d8e2abecf407c4e27/vecmath-1.5.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/j-ogg-vorbis/1.0.6/a69d1cf62eaf75b71af61f9c23265d278a966735/j-ogg-vorbis-1.0.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-default-controls/1.4.3/2ccafe0182a73da87657ca24b639b6e8c1accd50/nifty-default-controls-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty/1.4.3/fa9ac16e00d1b375d10f58d1c1eb576950ae8c9d/nifty-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-style-black/1.4.3/c20a02dbdeb0bd9d2be258955fceb55c13185a8/nifty-style-black-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.9.1/2cc2131b98ebfb04e2b2c7dfb84431f4045096b/gson-2.9.1.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/stack-alloc/1.0.2/13cbb10c01ec09d0f5879f988946a97998175dfc/stack-alloc-1.0.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/xpp3/xpp3/1.1.4c/9b988ea84b9e4e9f1874e390ce099b8ac12cfff5/xpp3-1.1.4c.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/2.0.2/516c03b21d50a644d538de0f0369c620989cd8f0/jsr305-2.0.2.jar +Launcher Type: SUN_STANDARD + +[Global flags] + intx CICompilerCount = 4 {product} {ergonomic} + uint ConcGCThreads = 2 {product} {ergonomic} + uint G1ConcRefinementThreads = 8 {product} {ergonomic} + size_t G1HeapRegionSize = 4194304 {product} {ergonomic} + size_t InitialHeapSize = 524288000 {product} {ergonomic} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MarkStackSizeMax = 536870912 {product} {ergonomic} + size_t MaxHeapSize = 8388608000 {product} {ergonomic} + size_t MaxNewSize = 5033164800 {product} {ergonomic} + size_t MinHeapDeltaBytes = 4194304 {product} {ergonomic} + size_t MinHeapSize = 8388608 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 5836800 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 122912768 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 122908672 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + size_t SoftMaxHeapSize = 8388608000 {manageable} {ergonomic} + bool UseCompressedOops = true {product lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags foldmultilines=false + #1: stderr all=off uptime,level,tags foldmultilines=false + +Environment Variables: +PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin +USERNAME=codex +SHELL=/bin/bash +DISPLAY=:1 +LANG=en_US.UTF-8 + +Active Locale: +LC_ALL=en_US.UTF-8 +LC_COLLATE=en_US.UTF-8 +LC_CTYPE=en_US.UTF-8 +LC_MESSAGES=en_US.UTF-8 +LC_MONETARY=en_US.UTF-8 +LC_NUMERIC=en_US.UTF-8 +LC_TIME=en_US.UTF-8 + +Signal Handlers: + SIGSEGV: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGBUS: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGFPE: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGPIPE: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGXFSZ: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGILL: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGUSR2: SR_handler in libjvm.so, mask=00000000000000000000000000000000, flags=SA_RESTART|SA_SIGINFO, blocked + SIGHUP: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGINT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGTERM: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGQUIT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGTRAP: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + + +Periodic native trim disabled + +--------------- S Y S T E M --------------- + +OS: +DISTRIB_ID=Pop +DISTRIB_RELEASE=22.04 +DISTRIB_CODENAME=jammy +DISTRIB_DESCRIPTION="Pop!_OS 22.04 LTS" +uname: Linux 6.9.3-76060903-generic #202405300957~1726766035~22.04~4092a0e SMP PREEMPT_DYNAMIC Thu S x86_64 +OS uptime: 0 days 15:15 hours +libc: glibc 2.35 NPTL 2.35 +rlimit (soft/hard): STACK 8192k/infinity , CORE 0k/infinity , NPROC 127655/127655 , NOFILE 1048576/1048576 , AS infinity/infinity , CPU infinity/infinity , DATA infinity/infinity , FSIZE infinity/infinity , MEMLOCK 4095956k/4095956k +load average: 1.24 0.88 0.84 + +/proc/meminfo: +MemTotal: 32767652 kB +MemFree: 20132288 kB +MemAvailable: 23534048 kB +Buffers: 347160 kB +Cached: 5008804 kB +SwapCached: 0 kB +Active: 8769136 kB +Inactive: 2812368 kB +Active(anon): 6258988 kB +Inactive(anon): 0 kB +Active(file): 2510148 kB +Inactive(file): 2812368 kB +Unevictable: 15204 kB +Mlocked: 72 kB +SwapTotal: 20970996 kB +SwapFree: 20970996 kB +Zswap: 0 kB +Zswapped: 0 kB +Dirty: 832 kB +Writeback: 0 kB +AnonPages: 6241144 kB +Mapped: 1824364 kB +Shmem: 33440 kB +KReclaimable: 197352 kB +Slab: 385632 kB +SReclaimable: 197352 kB +SUnreclaim: 188280 kB +KernelStack: 22608 kB +PageTables: 54196 kB +SecPageTables: 0 kB +NFS_Unstable: 0 kB +Bounce: 0 kB +WritebackTmp: 0 kB +CommitLimit: 37354820 kB +Committed_AS: 12287808 kB +VmallocTotal: 34359738367 kB +VmallocUsed: 252112 kB +VmallocChunk: 0 kB +Percpu: 9472 kB +HardwareCorrupted: 0 kB +AnonHugePages: 0 kB +ShmemHugePages: 6144 kB +ShmemPmdMapped: 0 kB +FileHugePages: 0 kB +FilePmdMapped: 0 kB +Unaccepted: 0 kB +HugePages_Total: 0 +HugePages_Free: 0 +HugePages_Rsvd: 0 +HugePages_Surp: 0 +Hugepagesize: 2048 kB +Hugetlb: 0 kB +DirectMap4k: 851768 kB +DirectMap2M: 15826944 kB +DirectMap1G: 16777216 kB + +/sys/kernel/mm/transparent_hugepage/enabled: always [madvise] never +/sys/kernel/mm/transparent_hugepage/hpage_pmd_size: 2097152 +/sys/kernel/mm/transparent_hugepage/shmem_enabled: always within_size advise [never] deny force +/sys/kernel/mm/transparent_hugepage/defrag (defrag/compaction efforts parameter): always defer defer+madvise [madvise] never + +Process Memory: +Virtual Size: 13445252K (peak: 13510788K) +Resident Set Size: 309200K (peak: 309200K) (anon: 165796K, file: 142380K, shmem: 1024K) +Swapped out: 0K +C-Heap outstanding allocations: 84790K, retained: 22997K +glibc malloc tunables: (default) + +/proc/sys/kernel/threads-max (system-wide limit on the number of threads): 255310 +/proc/sys/vm/max_map_count (maximum number of memory map areas a process may have): 2147483642 +/proc/sys/vm/swappiness (control to define how aggressively the kernel swaps out anonymous memory): 180 +/proc/sys/kernel/pid_max (system-wide limit on number of process identifiers): 4194304 + +container (cgroup) information: +container_type: cgroupv2 +cpu_cpuset_cpus: not supported +cpu_memory_nodes: not supported +active_processor_count: 8 +cpu_quota: not supported +cpu_period: not supported +cpu_shares: not supported +memory_limit_in_bytes: unlimited +memory_and_swap_limit_in_bytes: unlimited +memory_soft_limit_in_bytes: 0 +memory_usage_in_bytes: 5924904 k +memory_max_usage_in_bytes: not supported +rss_usage_in_bytes: 3518740 k +cache_usage_in_bytes: 2323460 k +memory_swap_current_in_bytes: 0 +memory_swap_max_limit_in_bytes: unlimited +maximum number of tasks: 38296 +current number of tasks: 317 + +Steal ticks since vm start: 0 +Steal ticks percentage since vm start: 0.000 + +CPU: total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 158 stepping 9 microcode 0xf8, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, adx, fma, vzeroupper, clflush, clflushopt, rdtscp, f16c +CPU Model and flags from /proc/cpuinfo: +model name : Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz +flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities + +Online cpus: 0-7 +Offline cpus: +BIOS frequency limitation: +Frequency switch latency (ns): 0 +Available cpu frequencies: +Current governor: powersave +Core performance/turbo boost: + +Memory: 4k page, physical 32767652k(23534048k free), swap 20970996k(20970996k free) +Page Sizes: 4k + +vm_info: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58) for linux-amd64 JRE (23.0.2+7-58), built on 2024-11-29T09:34:55Z with gcc 13.2.0 + +END. diff --git a/hs_err_pid85302.log b/hs_err_pid85302.log new file mode 100644 index 0000000000..3c641b6200 --- /dev/null +++ b/hs_err_pid85302.log @@ -0,0 +1,1596 @@ +# +# A fatal error has been detected by the Java Runtime Environment: +# +# SIGSEGV (0xb) at pc=0x00007177b465933a, pid=85302, tid=85350 +# +# JRE version: Java(TM) SE Runtime Environment (23.0.2+7) (build 23.0.2+7-58) +# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64) +# Problematic frame: +# C [libjemalloc.so+0x5933a] +# +# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/codex/java/prj/jmonkeyengine/core.85302) +# +# If you would like to submit a bug report, please visit: +# https://bugreport.java.com/bugreport/crash.jsp +# + +--------------- S U M M A R Y ------------ + +Command Line: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant jme3test.vulkan.VulkanTest + +Host: Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz, 8 cores, 31G, Pop!_OS 22.04 LTS +Time: Thu Jun 26 22:34:55 2025 EDT elapsed time: 6.953641 seconds (0d 0h 0m 6s) + +--------------- T H R E A D --------------- + +Current thread is native thread + +Stack: [0x00007177aa9ac000,0x00007177aaaac000], sp=0x00007177aaaaa8d0, free space=1018k +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +C [libjemalloc.so+0x5933a] + +siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000000 + +Registers: +RAX=0x0000000000000000, RBX=0x0000000000000200, RCX=0x0000000000000000, RDX=0x00007177b4678440 +RSP=0x00007177aaaaa8d0, RBP=0x00007177aaaaadb0, RSI=0x0000000000000000, RDI=0x00007177abd55580 +R8 =0x0000000000000000, R9 =0x0000000000000000, R10=0x0000000000000000, R11=0x00007177abd555c0 +R12=0x000000000000003f, R13=0x00007177aaaaad70, R14=0x000000000000003f, R15=0x00007177aaaaaad0 +RIP=0x00007177b465933a, EFLAGS=0x0000000000010246, CSGSFS=0x002b000000000033, ERR=0x0000000000000004 + TRAPNO=0x000000000000000e + + +Top of Stack: (sp=0x00007177aaaaa8d0) +0x00007177aaaaa8d0: 00007177dc4d8680 00007177aaaaa960 +0x00007177aaaaa8e0: 00007177aaaaa970 00007177e4f05211 +0x00007177aaaaa8f0: 0000000000000005 00007177dc4d8878 +0x00007177aaaaa900: 0000000000000005 0000000000000000 +0x00007177aaaaa910: 0000000000000001 00007177dc4d8310 +0x00007177aaaaa920: 00007177dc4d8878 00007177dc4d8310 +0x00007177aaaaa930: 00000001cbd3f020 00007177dc4d8680 +0x00007177aaaaa940: 0000000000000000 3737313700000000 +0x00007177aaaaa950: 3062636400000000 aa8a397500000004 +0x00007177aaaaa960: 00000000ffffffff 0000000000000000 +0x00007177aaaaa970: 00007177e4c0d4d0 00007177e4ef27c0 +0x00007177aaaaa980: 00007177aaaaa9b0 00007177e4678613 +0x00007177aaaaa990: 00007177aaaaab88 00007177e4c8849a +0x00007177aaaaa9a0: 0000000000000000 00007177aaaaaaa0 +0x00007177aaaaa9b0: 00000000fbad8001 0000000000000002 +0x00007177aaaaa9c0: 00007177dc4d8310 00007177b5fff028 +0x00007177aaaaa9d0: 00007177e4e1cae8 0000000000000004 +0x00007177aaaaa9e0: 00007177aaaabb58 00007177e4f0bf71 +0x00007177aaaaa9f0: 0000000000000005 0000000000000000 +0x00007177aaaaaa00: 00007177e4c0d4d0 00007177e4ca53e0 +0x00007177aaaaaa10: 0000000000000000 00007177aaaaae00 +0x00007177aaaaaa20: 00007177e4e1caf8 0000000000000000 +0x00007177aaaaaa30: 00007177e4e1cae8 00007177e4f0edae +0x00007177aaaaaa40: 0000000000000001 000000000000006f +0x00007177aaaaaa50: 00007177b5fb17d0 0000000000000000 +0x00007177aaaaaa60: 00007176b0b8aaa0 0000000000000000 +0x00007177aaaaaa70: 00000000000000ca 68751852672165a1 +0x00007177aaaaaa80: 0000000000000213 00007177e4e17300 +0x00007177aaaaaa90: 0000000000000000 0000000000000200 +0x00007177aaaaaaa0: 00007177aaaaadb0 000000000000003f +0x00007177aaaaaab0: 00007177aaaaad70 00007177aaaaaad0 +0x00007177aaaaaac0: 00007176b00024d0 00007177b46592f8 + +Instructions: (pc=0x00007177b465933a) +0x00007177b465923a: f4 66 41 c1 ec 03 41 0f b7 d4 2b 95 40 ff ff ff +0x00007177b465924a: 48 c1 e2 03 e8 bd f0 fa ff 49 8b 4d 00 41 0f b7 +0x00007177b465925a: 7d 14 48 01 d9 89 fe 66 41 2b 7d 10 29 ce 66 c1 +0x00007177b465926a: ef 03 49 89 4d 00 66 c1 ee 03 66 39 fe 73 0c 4c +0x00007177b465927a: 8b bd 50 ff ff ff 66 41 89 4f 10 48 8d 65 d8 5b +0x00007177b465928a: 41 5c 41 5d 41 5e 41 5f 5d c3 29 d8 48 89 a5 48 +0x00007177b465929a: ff ff ff 4c 89 ff 44 0f b7 e0 44 0f b7 c0 66 89 +0x00007177b46592aa: 45 c0 45 8d 74 24 01 4e 8d 1c c5 00 00 00 00 44 +0x00007177b46592ba: 89 a5 40 ff ff ff 4a 8d 1c f5 0f 00 00 00 4c 29 +0x00007177b46592ca: da 4c 89 9d 38 ff ff ff 81 e3 f0 ff 1f 00 4c 8d +0x00007177b46592da: 14 16 4c 89 c2 48 8b b5 30 ff ff ff 48 29 dc 4c +0x00007177b46592ea: 89 55 c8 49 89 e6 4c 89 f1 e8 28 ed ff ff 48 29 +0x00007177b46592fa: dc 48 89 65 80 45 85 e4 0f 84 07 ff ff ff 44 8b +0x00007177b465930a: 8d 2c ff ff ff c7 45 b8 00 00 00 00 4c 89 7d b0 +0x00007177b465931a: 4d 89 f7 45 89 e6 4b 8d 0c 89 4c 89 4d a0 48 c1 +0x00007177b465932a: e1 03 48 89 4d 88 49 8b 37 48 8d 15 06 f1 01 00 +0x00007177b465933a: 44 8b 2e 41 81 e5 ff 0f 00 00 44 89 e8 4c 8b 24 +0x00007177b465934a: c2 4c 89 65 a8 4c 8b 06 48 8d 3d 67 72 02 00 4c +0x00007177b465935a: 8b 5d a0 49 c1 e8 26 41 83 e0 3f 46 8b 14 9f 44 +0x00007177b465936a: 89 c3 44 89 45 bc 4c 8d 0c dd 00 00 00 00 49 29 +0x00007177b465937a: d9 49 c1 e1 05 4d 01 ca 4d 01 e2 49 8d 7a 48 4c +0x00007177b465938a: 89 55 90 48 89 7d 98 e8 6a f0 fa ff 4c 8b 4d 90 +0x00007177b465939a: 85 c0 0f 85 ce 03 00 00 49 8d 49 40 48 89 4d 90 +0x00007177b46593aa: 49 8b 1f 48 8b 55 a0 45 8d 5e ff 45 31 e4 48 8d +0x00007177b46593ba: 05 a1 72 02 00 41 ba 01 00 00 00 41 83 e3 01 48 +0x00007177b46593ca: 8b 3b 44 8b 04 90 48 8b 45 c8 89 fe 81 e6 ff 0f +0x00007177b46593da: 00 00 48 8b 08 41 39 f5 0f 84 c0 02 00 00 4a 89 +0x00007177b46593ea: 0c e0 4b 89 1c e7 41 bc 01 00 00 00 bb 01 00 00 +0x00007177b46593fa: 00 41 83 fe 01 0f 86 51 02 00 00 45 85 db 74 38 +0x00007177b465940a: 49 8b 57 08 48 8b 48 08 48 8b 32 89 f7 81 e7 ff +0x00007177b465941a: 0f 00 00 41 39 fd 0f 84 6a 04 00 00 45 89 e3 41 +0x00007177b465942a: 83 c4 01 4a 89 0c d8 4b 89 14 df 48 83 c3 01 41 + + + +--------------- P R O C E S S --------------- + +VM state: not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap address: 0x000000060c000000, size: 8000 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 + +CDS archive(s) mapped at: [0x000071775e000000-0x000071775ed91000-0x000071775ed91000), size 14225408, SharedBaseAddress: 0x000071775e000000, ArchiveRelocationMode: 1. +Compressed class space mapped at: 0x000071775f000000-0x000071779f000000, reserved size: 1073741824 +Narrow klass base: 0x000071775e000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 + +GC Precious Log: + + +Heap: + garbage-first heap total reserved 8192000K, committed 28672K, used 14737K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 3 young (12288K), 1 survivors (4096K) + Metaspace used 22132K, committed 22464K, reserved 1114112K + class space used 2300K, committed 2432K, reserved 1048576K + +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, TAMS=top-at-mark-start, PB=parsable bottom +| 0|0x000000060c000000, 0x000000060c367560, 0x000000060c400000| 85%| O| |TAMS 0x000000060c000000| PB 0x000000060c000000| Untracked | 0 +| 1|0x000000060c400000, 0x000000060c6cd070, 0x000000060c800000| 70%| O| |TAMS 0x000000060c400000| PB 0x000000060c400000| Untracked | 0 +| 2|0x000000060c800000, 0x000000060c800000, 0x000000060cc00000| 0%| F| |TAMS 0x000000060c800000| PB 0x000000060c800000| Untracked | 0 +| 3|0x000000060cc00000, 0x000000060cc00000, 0x000000060d000000| 0%| F| |TAMS 0x000000060cc00000| PB 0x000000060cc00000| Untracked | 0 +| 4|0x000000060d000000, 0x000000060d2f1650, 0x000000060d400000| 73%| E| |TAMS 0x000000060d000000| PB 0x000000060d000000| Complete | 0 +| 5|0x000000060d400000, 0x000000060d53e8d0, 0x000000060d800000| 31%| S|CS|TAMS 0x000000060d400000| PB 0x000000060d400000| Complete | 0 +| 6|0x000000060d800000, 0x000000060dc00000, 0x000000060dc00000|100%| E|CS|TAMS 0x000000060d800000| PB 0x000000060d800000| Complete | 0 + +Card table byte_map: [0x00007177e0a00000,0x00007177e19a0000] _byte_map_base: 0x00007177dd9a0000 + +Marking Bits: (CMBitMap*) 0x00007177dc059190 + Bits: [0x00007177bca00000, 0x00007177c4700000) + +Polling page: 0x00007177e4ede000 + +Metaspace: + +Usage: + Non-class: 19.37 MB used. + Class: 2.25 MB used. + Both: 21.61 MB used. + +Virtual space: + Non-class space: 64.00 MB reserved, 19.56 MB ( 31%) committed, 1 nodes. + Class space: 1.00 GB reserved, 2.38 MB ( <1%) committed, 1 nodes. + Both: 1.06 GB reserved, 21.94 MB ( 2%) committed. + +Chunk freelists: + Non-Class: 11.89 MB + Class: 13.44 MB + Both: 25.33 MB + +MaxMetaspaceSize: unlimited +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 21.00 MB +Current GC threshold: 27.12 MB +CDS: on + - commit_granule_bytes: 65536. + - commit_granule_words: 8192. + - virtual_space_node_default_size: 8388608. + - enlarge_chunks_in_place: 1. + - use_allocation_guard: 0. + + +Internal statistics: + +num_allocs_failed_limit: 0. +num_arena_births: 334. +num_arena_deaths: 0. +num_vsnodes_births: 2. +num_vsnodes_deaths: 0. +num_space_committed: 351. +num_space_uncommitted: 0. +num_chunks_returned_to_freelist: 0. +num_chunks_taken_from_freelist: 689. +num_chunk_merges: 0. +num_chunk_splits: 437. +num_chunks_enlarged: 282. +num_inconsistent_stats: 0. + +CodeHeap 'non-profiled nmethods': size=120032Kb used=733Kb max_used=733Kb free=119298Kb + bounds [0x00007177cc2c8000, 0x00007177cc538000, 0x00007177d3800000] +CodeHeap 'profiled nmethods': size=120028Kb used=2878Kb max_used=2878Kb free=117149Kb + bounds [0x00007177c4800000, 0x00007177c4ad0000, 0x00007177cbd37000] +CodeHeap 'non-nmethods': size=5700Kb used=2461Kb max_used=2497Kb free=3238Kb + bounds [0x00007177cbd37000, 0x00007177cbfb7000, 0x00007177cc2c8000] +CodeCache: size=245760Kb, used=6072Kb, max_used=6108Kb, free=239685Kb + total_blobs=3783, nmethods=2349, adapters=1341, full_count=0 +Compilation: enabled, stopped_count=0, restarted_count=0 + +Compilation events (20 events): +Event: 6.566 Thread 0x00007177dc13eed0 2473 4 org.lwjgl.vulkan.VkSubmitInfo::sizeof (4 bytes) +Event: 6.567 Thread 0x00007177dc13eed0 nmethod 2473 0x00007177cc37f188 code [0x00007177cc37f280, 0x00007177cc37f300] +Event: 6.783 Thread 0x00007177dc13eed0 2474 4 org.lwjgl.system.MemoryStack::nmalloc (61 bytes) +Event: 6.783 Thread 0x00007177dc13eed0 nmethod 2474 0x00007177cc37f488 code [0x00007177cc37f580, 0x00007177cc37f638] +Event: 6.817 Thread 0x00007177dc1405e0 2475 3 org.lwjgl.PointerBuffer:: (15 bytes) +Event: 6.817 Thread 0x00007177dc1405e0 nmethod 2475 0x00007177c4aca708 code [0x00007177c4aca860, 0x00007177c4acac40] +Event: 6.833 Thread 0x00007177dc1405e0 2476 3 org.lwjgl.PointerBuffer::sizeof (4 bytes) +Event: 6.833 Thread 0x00007177dc1405e0 nmethod 2476 0x00007177c4acac88 code [0x00007177c4acada0, 0x00007177c4acaea8] +Event: 6.833 Thread 0x00007177dc1405e0 2477 3 java.lang.ThreadLocal$ThreadLocalMap::set (133 bytes) +Event: 6.834 Thread 0x00007177dc1405e0 nmethod 2477 0x00007177c4acaf88 code [0x00007177c4acb1a0, 0x00007177c4acbe48] +Event: 6.834 Thread 0x00007177dc1405e0 2480 3 jdk.internal.misc.Blocker::begin (38 bytes) +Event: 6.834 Thread 0x00007177dc1405e0 nmethod 2480 0x00007177c4acbf08 code [0x00007177c4acc080, 0x00007177c4acc768] +Event: 6.834 Thread 0x00007177dc1405e0 2478 3 java.io.BufferedOutputStream::implWrite (71 bytes) +Event: 6.835 Thread 0x00007177dc1405e0 nmethod 2478 0x00007177c4acc808 code [0x00007177c4acc9a0, 0x00007177c4acd038] +Event: 6.835 Thread 0x00007177dc1405e0 2479 ! 3 java.lang.System$Out::write (31 bytes) +Event: 6.835 Thread 0x00007177dc1405e0 nmethod 2479 0x00007177c4acd088 code [0x00007177c4acd240, 0x00007177c4acd998] +Event: 6.866 Thread 0x00007177dc1405e0 2481 3 org.lwjgl.PointerBuffer::create (14 bytes) +Event: 6.867 Thread 0x00007177dc1405e0 nmethod 2481 0x00007177c4acda08 code [0x00007177c4acdb20, 0x00007177c4acdcd0] +Event: 6.950 Thread 0x00007177dc1405e0 2482 3 org.lwjgl.PointerBuffer::put (14 bytes) +Event: 6.950 Thread 0x00007177dc1405e0 nmethod 2482 0x00007177c4acdd08 code [0x00007177c4acde40, 0x00007177c4ace070] + +GC Heap History (8 events): +Event: 2.386 GC heap before +{Heap before GC invocations=0 (full 0): + garbage-first heap total reserved 8192000K, committed 516096K, used 21627K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 6 young (24576K), 0 survivors (0K) + Metaspace used 16364K, committed 16640K, reserved 1114112K + class space used 1823K, committed 1920K, reserved 1048576K +} +Event: 2.396 GC heap after +{Heap after GC invocations=1 (full 1): + garbage-first heap total reserved 8192000K, committed 98304K, used 6353K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 0 young (0K), 0 survivors (0K) + Metaspace used 16364K, committed 16640K, reserved 1114112K + class space used 1823K, committed 1920K, reserved 1048576K +} +Event: 2.396 GC heap before +{Heap before GC invocations=1 (full 1): + garbage-first heap total reserved 8192000K, committed 98304K, used 6353K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 0 young (0K), 0 survivors (0K) + Metaspace used 16364K, committed 16640K, reserved 1114112K + class space used 1823K, committed 1920K, reserved 1048576K +} +Event: 2.407 GC heap after +{Heap after GC invocations=2 (full 2): + garbage-first heap total reserved 8192000K, committed 28672K, used 6353K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 0 young (0K), 0 survivors (0K) + Metaspace used 16364K, committed 16640K, reserved 1114112K + class space used 1823K, committed 1920K, reserved 1048576K +} +Event: 2.855 GC heap before +{Heap before GC invocations=2 (full 2): + garbage-first heap total reserved 8192000K, committed 28672K, used 10449K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 2 young (8192K), 0 survivors (0K) + Metaspace used 18557K, committed 18880K, reserved 1114112K + class space used 2036K, committed 2176K, reserved 1048576K +} +Event: 2.856 GC heap after +{Heap after GC invocations=3 (full 2): + garbage-first heap total reserved 8192000K, committed 28672K, used 7475K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 1 young (4096K), 1 survivors (4096K) + Metaspace used 18557K, committed 18880K, reserved 1114112K + class space used 2036K, committed 2176K, reserved 1048576K +} +Event: 2.923 GC heap before +{Heap before GC invocations=3 (full 2): + garbage-first heap total reserved 8192000K, committed 28672K, used 11571K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 2 young (8192K), 1 survivors (4096K) + Metaspace used 19967K, committed 20288K, reserved 1114112K + class space used 2161K, committed 2304K, reserved 1048576K +} +Event: 2.924 GC heap after +{Heap after GC invocations=4 (full 2): + garbage-first heap total reserved 8192000K, committed 28672K, used 7627K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 1 young (4096K), 1 survivors (4096K) + Metaspace used 19967K, committed 20288K, reserved 1114112K + class space used 2161K, committed 2304K, reserved 1048576K +} + +Dll operation events (12 events): +Event: 0.001 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +Event: 0.017 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +Event: 0.017 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +Event: 0.025 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +Event: 0.027 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +Event: 0.068 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +Event: 0.112 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +Event: 0.117 Loaded shared library /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +Event: 0.197 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +Event: 0.199 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +Event: 0.225 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so +Event: 0.351 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so + +Deoptimization events (20 events): +Event: 2.606 Thread 0x00007177dc69dcb0 Uncommon trap: trap_request=0xffffffde fr.pc=0x00007177cc354130 relative=0x0000000000000110 +Event: 2.606 Thread 0x00007177dc69dcb0 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00007177cc354130 method=jdk.internal.misc.Unsafe.allocateUninitializedArray(Ljava/lang/Class;I)Ljava/lang/Object; @ 51 c2 +Event: 2.606 Thread 0x00007177dc69dcb0 DEOPT PACKING pc=0x00007177cc354130 sp=0x00007177aaaa97a0 +Event: 2.606 Thread 0x00007177dc69dcb0 DEOPT UNPACKING pc=0x00007177cbd8abf9 sp=0x00007177aaaa9738 mode 2 +Event: 2.611 Thread 0x00007177dc69dcb0 Uncommon trap: trap_request=0xffffff45 fr.pc=0x00007177cc34c464 relative=0x0000000000000ee4 +Event: 2.611 Thread 0x00007177dc69dcb0 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00007177cc34c464 method=java.util.concurrent.ConcurrentHashMap.putVal(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object; @ 401 c2 +Event: 2.611 Thread 0x00007177dc69dcb0 DEOPT PACKING pc=0x00007177cc34c464 sp=0x00007177aaaaa300 +Event: 2.611 Thread 0x00007177dc69dcb0 DEOPT UNPACKING pc=0x00007177cbd8abf9 sp=0x00007177aaaaa280 mode 2 +Event: 2.847 Thread 0x00007177dc69dcb0 Uncommon trap: trap_request=0xffffff76 fr.pc=0x00007177cc34b168 relative=0x00000000000001a8 +Event: 2.847 Thread 0x00007177dc69dcb0 Uncommon trap: reason=predicate action=maybe_recompile pc=0x00007177cc34b168 method=java.util.regex.Pattern$BmpCharPropertyGreedy.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 12 c2 +Event: 2.847 Thread 0x00007177dc69dcb0 DEOPT PACKING pc=0x00007177cc34b168 sp=0x00007177aaaaa0e0 +Event: 2.847 Thread 0x00007177dc69dcb0 DEOPT UNPACKING pc=0x00007177cbd8abf9 sp=0x00007177aaaaa0b8 mode 2 +Event: 2.911 Thread 0x00007177dc69dcb0 Uncommon trap: trap_request=0xffffff6e fr.pc=0x00007177cc35e6e8 relative=0x0000000000000148 +Event: 2.911 Thread 0x00007177dc69dcb0 Uncommon trap: reason=loop_limit_check action=maybe_recompile pc=0x00007177cc35e6e8 method=java.util.regex.Pattern$Start.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 34 c2 +Event: 2.911 Thread 0x00007177dc69dcb0 DEOPT PACKING pc=0x00007177cc35e6e8 sp=0x00007177aaaaa0a0 +Event: 2.912 Thread 0x00007177dc69dcb0 DEOPT UNPACKING pc=0x00007177cbd8abf9 sp=0x00007177aaaaa050 mode 2 +Event: 3.091 Thread 0x00007177dc69dcb0 DEOPT PACKING pc=0x00007177c4a2451f sp=0x00007177aaaa97c0 +Event: 3.091 Thread 0x00007177dc69dcb0 DEOPT UNPACKING pc=0x00007177cbd8b30f sp=0x00007177aaaa8c00 mode 0 +Event: 3.093 Thread 0x00007177dc69dcb0 DEOPT PACKING pc=0x00007177c48acc54 sp=0x00007177aaaa9790 +Event: 3.093 Thread 0x00007177dc69dcb0 DEOPT UNPACKING pc=0x00007177cbd8b30f sp=0x00007177aaaa8c48 mode 0 + +Classes loaded (20 events): +Event: 2.893 Loading class javax/imageio/ImageTypeSpecifier$Packed +Event: 2.893 Loading class javax/imageio/ImageTypeSpecifier$Packed done +Event: 2.893 Loading class java/awt/image/DataBufferByte +Event: 2.893 Loading class java/awt/image/DataBufferByte done +Event: 2.893 Loading class sun/awt/image/ByteInterleavedRaster +Event: 2.893 Loading class sun/awt/image/ByteComponentRaster +Event: 2.893 Loading class sun/awt/image/ByteComponentRaster done +Event: 2.893 Loading class sun/awt/image/ByteInterleavedRaster done +Event: 2.894 Loading class sun/awt/image/ShortComponentRaster +Event: 2.894 Loading class sun/awt/image/ShortComponentRaster done +Event: 2.972 Loading class java/util/function/LongFunction +Event: 2.972 Loading class java/util/function/LongFunction done +Event: 3.408 Loading class sun/awt/AppContext$PostShutdownEventRunnable +Event: 3.408 Loading class sun/awt/AppContext$PostShutdownEventRunnable done +Event: 3.408 Loading class sun/awt/AWTAutoShutdown$1 +Event: 3.408 Loading class sun/awt/AWTAutoShutdown$1 done +Event: 6.952 Loading class java/lang/Throwable$WrappedPrintStream +Event: 6.952 Loading class java/lang/Throwable$PrintStreamOrWriter +Event: 6.952 Loading class java/lang/Throwable$PrintStreamOrWriter done +Event: 6.952 Loading class java/lang/Throwable$WrappedPrintStream done + +Classes unloaded (0 events): +No events + +Classes redefined (0 events): +No events + +Internal exceptions (20 events): +Event: 0.653 Thread 0x00007177dc683fa0 Exception (0x000000062a0b8978) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.326 Thread 0x00007177dc683fa0 Exception (0x000000062a353ed8) +thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] +Event: 2.379 Thread 0x00007177dc683fa0 Exception (0x0000000629cbdb28) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.423 Thread 0x00007177dc02d0f0 Exception (0x000000060d9ca708) +thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] +Event: 2.434 Thread 0x00007177dc02d0f0 Exception (0x000000060da66f58) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.435 Thread 0x00007177dc02d0f0 Exception (0x000000060da74e20) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.598 Thread 0x00007177dc69dcb0 Exception (0x000000060d59e850) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 863] +Event: 2.847 Thread 0x00007177dc69dcb0 Exception (0x000000060d781928) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.925 Thread 0x00007177dc69dcb0 Exception (0x000000060d828338) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.929 Thread 0x00007177dc69dcb0 Exception (0x000000060d850bc0) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.968 Thread 0x00007177dc69dcb0 Exception (0x000000060d9497e0) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.968 Thread 0x00007177dc69dcb0 Exception (0x000000060d94ef08) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.985 Thread 0x00007177dc69dcb0 Exception (0x000000060da07168) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.986 Thread 0x00007177dc69dcb0 Exception (0x000000060da199e8) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.986 Thread 0x00007177dc69dcb0 Exception (0x000000060da1d988) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.986 Thread 0x00007177dc69dcb0 Exception (0x000000060da21048) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.992 Thread 0x00007177dc69dcb0 Exception (0x000000060da854f0) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.027 Thread 0x00007177dc69dcb0 Exception (0x000000060dad5f50) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.033 Thread 0x00007177dc69dcb0 Exception (0x000000060daf08c8) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.051 Thread 0x00007177dc69dcb0 Exception (0x000000060db30400) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] + +VM Operations (20 events): +Event: 0.123 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.123 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.211 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.211 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.227 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.227 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.236 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.236 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.690 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.690 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 2.386 Executing VM operation: G1CollectFull (System.gc()) +Event: 2.396 Executing VM operation: G1CollectFull (System.gc()) done +Event: 2.396 Executing VM operation: G1CollectFull (System.gc()) +Event: 2.407 Executing VM operation: G1CollectFull (System.gc()) done +Event: 2.431 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 2.431 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 2.855 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 2.856 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done +Event: 2.923 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 2.924 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done + +Memory protections (20 events): +Event: 0.016 Protecting memory [0x00007177b4e00000,0x00007177b4e04000] with protection modes 0 +Event: 0.016 Protecting memory [0x00007177b4d00000,0x00007177b4d04000] with protection modes 0 +Event: 0.022 Protecting memory [0x00007177b4c00000,0x00007177b4c04000] with protection modes 0 +Event: 0.023 Protecting memory [0x00007177b4b00000,0x00007177b4b04000] with protection modes 0 +Event: 0.047 Protecting memory [0x00007177b4a00000,0x00007177b4a04000] with protection modes 0 +Event: 0.247 Protecting memory [0x00007177ab8b2000,0x00007177ab8b6000] with protection modes 0 +Event: 0.249 Protecting memory [0x00007177ab7b2000,0x00007177ab7b6000] with protection modes 0 +Event: 0.251 Protecting memory [0x00007177ab6b2000,0x00007177ab6b6000] with protection modes 0 +Event: 0.251 Protecting memory [0x00007177ab5b2000,0x00007177ab5b6000] with protection modes 0 +Event: 0.351 Protecting memory [0x00007177ab4b2000,0x00007177ab4b6000] with protection modes 0 +Event: 0.580 Protecting memory [0x00007177b4a00000,0x00007177b4a04000] with protection modes 0 +Event: 0.678 Protecting memory [0x00007177ab3b2000,0x00007177ab3b6000] with protection modes 0 +Event: 0.687 Protecting memory [0x00007177ab2b2000,0x00007177ab2b6000] with protection modes 0 +Event: 0.721 Protecting memory [0x00007177ab0b2000,0x00007177ab0b6000] with protection modes 0 +Event: 2.341 Protecting memory [0x00007177ab3b2000,0x00007177ab3b6000] with protection modes 0 +Event: 2.407 Protecting memory [0x00007177ab2b2000,0x00007177ab2b6000] with protection modes 0 +Event: 2.439 Protecting memory [0x00007177aa9ac000,0x00007177aa9b0000] with protection modes 0 +Event: 2.439 Protecting memory [0x00007177e3500000,0x00007177e3504000] with protection modes 0 +Event: 2.860 Protecting memory [0x00007177ab3b2000,0x00007177ab3b6000] with protection modes 0 +Event: 3.228 Protecting memory [0x00007177ab2b2000,0x00007177ab2b6000] with protection modes 0 + +Nmethod flushes (20 events): +Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c488a588 +Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c48da388 +Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c4917108 +Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c491d588 +Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c493d288 +Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c493d888 +Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c493fd88 +Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c4940d08 +Event: 2.401 Thread 0x00007177dc12e310 flushing osr nmethod 0x00007177c4944888 +Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c4945288 +Event: 2.401 Thread 0x00007177dc12e310 flushing osr nmethod 0x00007177c4947c88 +Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c4971188 +Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c4971808 +Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c4981708 +Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c4982708 +Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c4985088 +Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c4985408 +Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c49ae708 +Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c49f2b08 +Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c49f2f88 + +Events (20 events): +Event: 0.580 Thread 0x00007177dc683fa0 Thread added: 0x00007176f8061490 +Event: 0.678 Thread 0x00007177dc1405e0 Thread added: 0x00007177245007b0 +Event: 0.687 Thread 0x00007177dc1405e0 Thread added: 0x000071772453cbc0 +Event: 0.721 Thread 0x00007177dc683fa0 Thread added: 0x00007176f80f5850 +Event: 0.867 Thread 0x000071772453cbc0 Thread exited: 0x000071772453cbc0 +Event: 0.867 Thread 0x00007177245007b0 Thread exited: 0x00007177245007b0 +Event: 2.341 Thread 0x00007177dc1405e0 Thread added: 0x00007177245652b0 +Event: 2.407 Thread 0x00007177dc1405e0 Thread added: 0x0000717724571960 +Event: 2.439 Thread 0x00007177dc02d0f0 Thread added: 0x00007177dc69dcb0 +Event: 2.439 Thread 0x00007177dc02d0f0 Thread exited: 0x00007177dc02d0f0 +Event: 2.439 Thread 0x00007177dc02d0f0 Thread added: 0x00007177dc02d0f0 +Event: 2.566 Thread 0x0000717724571960 Thread exited: 0x0000717724571960 +Event: 2.566 Thread 0x00007177245652b0 Thread exited: 0x00007177245652b0 +Event: 2.859 Thread 0x00007177dc69dcb0 Thread added: 0x00007176b057f650 +Event: 3.228 Thread 0x00007177dc1405e0 Thread added: 0x00007177245aca20 +Event: 3.399 Thread 0x00007177245aca20 Thread exited: 0x00007177245aca20 +Event: 3.408 Thread 0x00007177dc682e90 Thread exited: 0x00007177dc682e90 +Event: 3.408 Thread 0x00007177dc683fa0 Thread exited: 0x00007177dc683fa0 +Event: 5.608 Thread 0x00007176f8061490 Thread exited: 0x00007176f8061490 +Event: 6.953 Thread 0x00007177dc69dcb0 Thread exited: 0x00007177dc69dcb0 + + +Dynamic libraries: +60c000000-60dc00000 rw-p 00000000 00:00 0 +60dc00000-800000000 ---p 00000000 00:00 0 +567ff61f2000-567ff61f3000 r-xp 00000000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java +567ff61f4000-567ff61f5000 r--p 00001000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java +567ff61f5000-567ff61f6000 rw-p 00002000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java +568003a6b000-568003ab4000 rw-p 00000000 00:00 0 [heap] +717668000000-717668075000 rw-p 00000000 00:00 0 +717668075000-71766c000000 ---p 00000000 00:00 0 +717670000000-717670021000 rw-p 00000000 00:00 0 +717670021000-717674000000 ---p 00000000 00:00 0 +717674000000-717674021000 rw-p 00000000 00:00 0 +717674021000-717678000000 ---p 00000000 00:00 0 +71767c000000-71767c021000 rw-p 00000000 00:00 0 +71767c021000-717680000000 ---p 00000000 00:00 0 +717680000000-717680021000 rw-p 00000000 00:00 0 +717680021000-717684000000 ---p 00000000 00:00 0 +717688000000-717688021000 rw-p 00000000 00:00 0 +717688021000-71768c000000 ---p 00000000 00:00 0 +71768c000000-71768c021000 rw-p 00000000 00:00 0 +71768c021000-717690000000 ---p 00000000 00:00 0 +717694000000-717694021000 rw-p 00000000 00:00 0 +717694021000-717698000000 ---p 00000000 00:00 0 +717698000000-717698021000 rw-p 00000000 00:00 0 +717698021000-71769c000000 ---p 00000000 00:00 0 +7176a0000000-7176a00c8000 rw-p 00000000 00:00 0 +7176a00c8000-7176a4000000 ---p 00000000 00:00 0 +7176a5000000-7176ab712000 r-xp 00000000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 +7176ab712000-7176abf30000 r--p 06711000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 +7176abf30000-7176abf76000 rw-p 06f2f000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 +7176abf76000-7176abff2000 rw-p 00000000 00:00 0 +7176ac000000-7176ac021000 rw-p 00000000 00:00 0 +7176ac021000-7176b0000000 ---p 00000000 00:00 0 +7176b0000000-7176b3148000 rw-p 00000000 00:00 0 +7176b3148000-7176b4000000 ---p 00000000 00:00 0 +7176b8000000-7176b80f8000 rw-p 00000000 00:00 0 +7176b80f8000-7176bc000000 ---p 00000000 00:00 0 +7176bc000000-7176bc021000 rw-p 00000000 00:00 0 +7176bc021000-7176c0000000 ---p 00000000 00:00 0 +7176c4000000-7176c4021000 rw-p 00000000 00:00 0 +7176c4021000-7176c8000000 ---p 00000000 00:00 0 +7176c8000000-7176c8021000 rw-p 00000000 00:00 0 +7176c8021000-7176cc000000 ---p 00000000 00:00 0 +7176d0000000-7176d0021000 rw-p 00000000 00:00 0 +7176d0021000-7176d4000000 ---p 00000000 00:00 0 +7176d4000000-7176d4021000 rw-p 00000000 00:00 0 +7176d4021000-7176d8000000 ---p 00000000 00:00 0 +7176dc000000-7176dc021000 rw-p 00000000 00:00 0 +7176dc021000-7176e0000000 ---p 00000000 00:00 0 +7176e0000000-7176e0021000 rw-p 00000000 00:00 0 +7176e0021000-7176e4000000 ---p 00000000 00:00 0 +7176e8000000-7176e8128000 rw-p 00000000 00:00 0 +7176e8128000-7176ec000000 ---p 00000000 00:00 0 +7176ec000000-7176ec39a000 rw-p 00000000 00:00 0 +7176ec39a000-7176f0000000 ---p 00000000 00:00 0 +7176f4000000-7176f4021000 rw-p 00000000 00:00 0 +7176f4021000-7176f8000000 ---p 00000000 00:00 0 +7176f8000000-7176f813a000 rw-p 00000000 00:00 0 +7176f813a000-7176fc000000 ---p 00000000 00:00 0 +717700000000-717700021000 rw-p 00000000 00:00 0 +717700021000-717704000000 ---p 00000000 00:00 0 +717704000000-717704021000 rw-p 00000000 00:00 0 +717704021000-717708000000 ---p 00000000 00:00 0 +71770c000000-71770c021000 rw-p 00000000 00:00 0 +71770c021000-717710000000 ---p 00000000 00:00 0 +717710000000-7177100cf000 rw-p 00000000 00:00 0 +7177100cf000-717714000000 ---p 00000000 00:00 0 +717718000000-717718021000 rw-p 00000000 00:00 0 +717718021000-71771c000000 ---p 00000000 00:00 0 +71771c000000-71771c021000 rw-p 00000000 00:00 0 +71771c021000-717720000000 ---p 00000000 00:00 0 +717720600000-717720725000 r--p 00000000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +717720725000-717720be5000 r-xp 00125000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +717720be5000-717720d19000 r--p 005e5000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +717720d19000-717720d1a000 ---p 00719000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +717720d1a000-717720d7d000 r--p 00719000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +717720d7d000-717720d87000 rw-p 0077c000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +717720d87000-717720d98000 rw-p 00000000 00:00 0 +717720e00000-717720e01000 ---p 00000000 00:00 0 +717720e01000-717721601000 rw-p 00000000 00:00 0 +717721800000-717721801000 ---p 00000000 00:00 0 +717721801000-717722001000 rw-p 00000000 00:00 0 +717722200000-717722201000 ---p 00000000 00:00 0 +717722201000-717722a01000 rw-p 00000000 00:00 0 +717722c00000-717722c01000 ---p 00000000 00:00 0 +717722c01000-717723401000 rw-p 00000000 00:00 0 +717723600000-717723601000 ---p 00000000 00:00 0 +717723601000-717723e01000 rw-p 00000000 00:00 0 +717724000000-7177245c2000 rw-p 00000000 00:00 0 +7177245c2000-717728000000 ---p 00000000 00:00 0 +717728000000-7177288c4000 rw-p 00000000 00:00 0 +7177288c4000-71772c000000 ---p 00000000 00:00 0 +71772c600000-71772c601000 ---p 00000000 00:00 0 +71772c601000-71772ce01000 rw-p 00000000 00:00 0 +71772d000000-71772d02f000 r--p 00000000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +71772d02f000-71772d702000 r-xp 0002f000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +71772d702000-71772d824000 r--p 00702000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +71772d824000-71772d835000 r--p 00823000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +71772d835000-71772d8b3000 rw-p 00834000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +71772d8b3000-71772d8c7000 rw-p 00000000 00:00 0 +71772da00000-71772da22000 r-xp 00000000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +71772da22000-71772dc21000 ---p 00022000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +71772dc21000-71772dc29000 r--p 00021000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +71772dc29000-71772dc2a000 rw-p 00029000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +71772dc2a000-71772dc2b000 rw-p 00000000 00:00 0 +71772e000000-71772ecf5000 r--p 00000000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +71772ecf5000-71772f6d8000 r-xp 00cf5000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +71772f6d8000-71772fae9000 r--p 016d8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +71772fae9000-71772ff6b000 r--p 01ae8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +71772ff6b000-71772ff73000 rw-p 01f6a000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +71772ff73000-71772ff7e000 rw-p 00000000 00:00 0 +717730000000-717730021000 rw-p 00000000 00:00 0 +717730021000-717734000000 ---p 00000000 00:00 0 +717734000000-717734021000 rw-p 00000000 00:00 0 +717734021000-717738000000 ---p 00000000 00:00 0 +717738400000-717738401000 ---p 00000000 00:00 0 +717738401000-717738c01000 rw-p 00000000 00:00 0 +717738e00000-717738e01000 ---p 00000000 00:00 0 +717738e01000-717739601000 rw-p 00000000 00:00 0 +717739800000-717739801000 ---p 00000000 00:00 0 +717739801000-71773a001000 rw-p 00000000 00:00 0 +71773a200000-71773a201000 ---p 00000000 00:00 0 +71773a201000-71773aa01000 rw-p 00000000 00:00 0 +71773ac00000-71773ac01000 ---p 00000000 00:00 0 +71773ac01000-71773b401000 rw-p 00000000 00:00 0 +71773b600000-71773b601000 ---p 00000000 00:00 0 +71773b601000-71773be01000 rw-p 00000000 00:00 0 +71773c000000-71773c021000 rw-p 00000000 00:00 0 +71773c021000-717740000000 ---p 00000000 00:00 0 +717740000000-717740021000 rw-p 00000000 00:00 0 +717740021000-717744000000 ---p 00000000 00:00 0 +717744200000-717744400000 rw-s 00000000 00:06 1017 /dev/nvidiactl +717744400000-71774448d000 r--p 00000000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +71774448d000-717744bf5000 r-xp 0008d000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +717744bf5000-717745482000 r--p 007f5000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +717745482000-7177454c4000 r--p 01081000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +7177454c4000-7177454c7000 rw-p 010c3000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +7177454c7000-7177454cd000 rw-p 00000000 00:00 0 +717745600000-7177457c4000 r--p 00000000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +7177457c4000-7177474c4000 r-xp 001c4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +7177474c4000-717747b39000 r--p 01ec4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +717747b39000-717747b3a000 ---p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +717747b3a000-717747d1a000 r--p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +717747d1a000-717747d93000 rw-p 02719000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +717747d93000-717747e08000 rw-p 00000000 00:00 0 +717748000000-717748021000 rw-p 00000000 00:00 0 +717748021000-71774c000000 ---p 00000000 00:00 0 +71774c000000-71774c635000 rw-p 00000000 00:00 0 +71774c635000-717750000000 ---p 00000000 00:00 0 +717750040000-7177500c0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177500c0000-7177502c0000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7177502c0000-7177503c0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177503c0000-717750400000 rw-s 00000000 00:06 1017 /dev/nvidiactl +717750400000-717750600000 rw-s 00000000 00:06 1017 /dev/nvidiactl +717750600000-71775065b000 r--p 00000000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +71775065b000-7177509d9000 r-xp 0005b000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +7177509d9000-717750dd5000 r--p 003d9000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +717750dd5000-717750e10000 r--p 007d4000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +717750e10000-717750e15000 rw-p 0080f000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +717750e15000-717750e40000 rw-p 00000000 00:00 0 +717750e60000-717750ea0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +717750ea0000-717750ec0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +717750ec0000-717750f00000 rw-s 00000000 00:06 1017 /dev/nvidiactl +717750f00000-717751000000 rw-s 00000000 00:06 1017 /dev/nvidiactl +717751000000-71775106e000 r--p 00000000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +71775106e000-7177515d5000 r-xp 0006e000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +7177515d5000-717751ce8000 r--p 005d5000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +717751ce8000-717751ce9000 ---p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +717751ce9000-717751d26000 r--p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +717751d26000-717751d29000 rw-p 00d25000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +717751d29000-717751d2b000 rw-p 00000000 00:00 0 +717751d2d000-717751d40000 rw-s 00000000 00:06 1017 /dev/nvidiactl +717751d40000-717751dc0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +717751dc0000-717751e00000 rw-s 00000000 00:06 1017 /dev/nvidiactl +717751e00000-717752041000 r-xp 00000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +717752041000-717752062000 rwxp 00241000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +717752062000-717752200000 r-xp 00262000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +717752200000-717752e00000 r-xp 00400000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +717752e00000-717753cab000 r-xp 01000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +717753cab000-717753e10000 r--p 01eaa000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +717753e10000-717753e7e000 rw-p 0200f000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +717753e7e000-717753e9c000 rw-p 00000000 00:00 0 +717753ea0000-717753ec0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +717753ec0000-717753f00000 rw-s 00000000 00:06 1017 /dev/nvidiactl +717753f00000-717754000000 rw-s 00000000 00:06 1017 /dev/nvidiactl +717754000000-7177543f0000 rw-p 00000000 00:00 0 +7177543f0000-7177545b0000 rw-p 00000000 00:00 0 +7177545b0000-7177546f0000 rw-p 00000000 00:00 0 +7177546f0000-717754710000 rw-p 00000000 00:00 0 +717754710000-717754730000 rw-p 00000000 00:00 0 +717754730000-717754770000 rw-p 00000000 00:00 0 +717754770000-7177549f0000 rw-p 00000000 00:00 0 +7177549f0000-717754a10000 rw-p 00000000 00:00 0 +717754a10000-717754a30000 rw-p 00000000 00:00 0 +717754a30000-717754a70000 rw-p 00000000 00:00 0 +717754a70000-717754af0000 rw-p 00000000 00:00 0 +717754af0000-717754cf0000 rw-p 00000000 00:00 0 +717754cf0000-717754d10000 rw-p 00000000 00:00 0 +717754d10000-717754d30000 rw-p 00000000 00:00 0 +717754d30000-717754d70000 rw-p 00000000 00:00 0 +717754d70000-717754ef0000 rw-p 00000000 00:00 0 +717754ef0000-717754ff0000 rw-p 00000000 00:00 0 +717754ff0000-7177550f0000 rw-p 00000000 00:00 0 +7177550f0000-717755170000 rw-p 00000000 00:00 0 +717755170000-717755200000 ---p 00000000 00:00 0 +717755200000-717755420000 rw-p 00000000 00:00 0 +717755420000-717758000000 ---p 00000000 00:00 0 +717758000000-717758021000 rw-p 00000000 00:00 0 +717758021000-71775c000000 ---p 00000000 00:00 0 +71775c020000-71775c040000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71775c040000-71775c080000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71775c080000-71775c180000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71775c180000-71775c200000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71775c200000-71775c201000 r--p 00000000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +71775c201000-71775c202000 r-xp 00001000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +71775c202000-71775de1c000 r--p 00002000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +71775de1c000-71775de1d000 r--p 01c1b000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +71775de1d000-71775de1e000 rw-p 01c1c000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +71775de20000-71775de40000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71775de40000-71775de80000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71775de80000-71775df80000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71775df80000-71775e000000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71775e000000-71775ed91000 rw-p 00001000 103:03 10498862 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/classes.jsa +71775ed91000-71775f000000 ---p 00000000 00:00 0 +71775f000000-71775f030000 rw-p 00000000 00:00 0 +71775f030000-71775f090000 rw-p 00000000 00:00 0 +71775f090000-71775f0b0000 rw-p 00000000 00:00 0 +71775f0b0000-71775f130000 rw-p 00000000 00:00 0 +71775f130000-71775f150000 rw-p 00000000 00:00 0 +71775f150000-71775f1b0000 rw-p 00000000 00:00 0 +71775f1b0000-71775f1d0000 rw-p 00000000 00:00 0 +71775f1d0000-71775f230000 rw-p 00000000 00:00 0 +71775f230000-71775f250000 rw-p 00000000 00:00 0 +71775f250000-71775f280000 ---p 00000000 00:00 0 +71775f280000-71775f290000 rw-p 00000000 00:00 0 +71775f290000-71779f000000 ---p 00000000 00:00 0 +71779f007000-71779f01a000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71779f03a000-71779f07a000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71779f07a000-71779f2bf000 rw-s 00000000 00:01 7173 /memfd:/.nvidia_drv.XXXXXX (deleted) +71779f2bf000-71779f400000 rw-s 00000000 103:03 13372247 /home/codex/.cache/mesa_shader_cache/index +71779f400000-71779f493000 r--p 00000000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +71779f493000-71779f8e6000 r-xp 00093000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +71779f8e6000-71779fdfc000 r--p 004e6000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +71779fdfc000-71779fe34000 r--p 009fb000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +71779fe34000-71779fe44000 rw-p 00a33000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +71779fe44000-71779fe49000 rw-p 00000000 00:00 0 +71779fe4c000-71779fe5f000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71779fe5f000-71779fe72000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71779fe72000-71779fe92000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71779fe92000-71779fea5000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71779fea5000-71779fee5000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71779fee5000-71779ff05000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71779ff05000-71779ff45000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71779ff45000-71779ff85000 rw-s 00000000 00:06 1017 /dev/nvidiactl +71779ff85000-71779ff96000 r--p 00000000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +71779ff96000-71779ffd8000 r-xp 00011000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +71779ffd8000-71779fff0000 r--p 00053000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +71779fff0000-71779fffe000 r--p 0006a000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +71779fffe000-7177a0000000 rw-p 00078000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +7177a0000000-7177a0021000 rw-p 00000000 00:00 0 +7177a0021000-7177a4000000 ---p 00000000 00:00 0 +7177a4000000-7177a4021000 rw-p 00000000 00:00 0 +7177a4021000-7177a8000000 ---p 00000000 00:00 0 +7177a800c000-7177a8010000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177a8010000-7177a8030000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177a8030000-7177a8034000 r--p 00000000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +7177a8034000-7177a8050000 r-xp 00004000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +7177a8050000-7177a8056000 r--p 00020000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +7177a8056000-7177a8057000 ---p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +7177a8057000-7177a8059000 r--p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +7177a8059000-7177a805a000 rw-p 00028000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +7177a805a000-7177a8064000 r--p 00000000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +7177a8064000-7177a806e000 r-xp 0000a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +7177a806e000-7177a8075000 r--p 00014000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +7177a8075000-7177a807e000 r--p 0001a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +7177a807e000-7177a807f000 rw-p 00023000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +7177a807f000-7177a808b000 r--p 00000000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +7177a808b000-7177a80ab000 r-xp 0000c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +7177a80ab000-7177a80b7000 r--p 0002c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +7177a80b7000-7177a80c1000 r--p 00037000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +7177a80c1000-7177a80c2000 rw-p 00041000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +7177a80c2000-7177a80d1000 r--p 00000000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +7177a80d1000-7177a81b7000 r-xp 0000f000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +7177a81b7000-7177a81f5000 r--p 000f5000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +7177a81f5000-7177a81f6000 ---p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +7177a81f6000-7177a81f9000 r--p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +7177a81f9000-7177a81ff000 rw-p 00136000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +7177a81ff000-7177a8200000 rw-p 00000000 00:00 0 +7177a8200000-7177a8216000 r--p 00000000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +7177a8216000-7177a8306000 r-xp 00016000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +7177a8306000-7177a8379000 r--p 00106000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +7177a8379000-7177a8380000 r--p 00178000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +7177a8380000-7177a8387000 rw-p 0017f000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +7177a8387000-7177a8402000 rw-p 00000000 00:00 0 +7177a8402000-7177a8403000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7177a8403000-7177a8404000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7177a8404000-7177a8406000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177a8406000-7177a8407000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7177a8407000-7177a8408000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7177a8408000-7177a8409000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7177a8409000-7177a840a000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177a840a000-7177a840b000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177a840b000-7177a840c000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177a840c000-7177a840d000 rw-s 00044000 00:01 7173 /memfd:/.nvidia_drv.XXXXXX (deleted) +7177a840d000-7177a840e000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7177a840e000-7177a8412000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177a8412000-7177a8413000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7177a8413000-7177a8415000 r--p 00000000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +7177a8415000-7177a841e000 r-xp 00002000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +7177a841e000-7177a8421000 r--p 0000b000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +7177a8421000-7177a8422000 ---p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +7177a8422000-7177a8423000 r--p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +7177a8423000-7177a8424000 rw-p 0000f000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +7177a8424000-7177a8426000 rw-p 00000000 00:00 0 +7177a8426000-7177a8428000 r--p 00000000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +7177a8428000-7177a8493000 r-xp 00002000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +7177a8493000-7177a84bb000 r--p 0006d000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +7177a84bb000-7177a84bc000 r--p 00094000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +7177a84bc000-7177a84bd000 rw-p 00095000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +7177a84bd000-7177a84c3000 r--p 00000000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +7177a84c3000-7177a84dd000 r-xp 00006000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +7177a84dd000-7177a84e4000 r--p 00020000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +7177a84e4000-7177a84e5000 ---p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +7177a84e5000-7177a84e6000 r--p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +7177a84e6000-7177a84e7000 rw-p 00028000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +7177a84e7000-7177a84e9000 rw-p 00000000 00:00 0 +7177a84e9000-7177a84fc000 r--p 00000000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +7177a84fc000-7177a851b000 r-xp 00013000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +7177a851b000-7177a8528000 r--p 00032000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +7177a8528000-7177a8538000 r--p 0003e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +7177a8538000-7177a8539000 rw-p 0004e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +7177a8539000-7177a854c000 r--p 00000000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +7177a854c000-7177a85cb000 r-xp 00013000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +7177a85cb000-7177a85f6000 r--p 00092000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +7177a85f6000-7177a85f7000 ---p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +7177a85f7000-7177a85fe000 r--p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +7177a85fe000-7177a85ff000 rw-p 000c4000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +7177a85ff000-7177a8f22000 rw-p 00000000 00:00 0 +7177a8f22000-7177a8f24000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177a8f24000-7177a8f25000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7177a8f25000-7177a8f26000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177a8f26000-7177a8f2a000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177a8f2a000-7177a8f2b000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7177a8f2b000-7177a8f2f000 r--p 00000000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +7177a8f2f000-7177a8f3f000 r-xp 00004000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +7177a8f3f000-7177a8f42000 r--p 00014000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +7177a8f42000-7177a8f43000 r--p 00016000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +7177a8f43000-7177a8f44000 rw-p 00017000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +7177a8f44000-7177a8f4f000 r--p 00000000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +7177a8f4f000-7177a8f7d000 r-xp 0000b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +7177a8f7d000-7177a8f8f000 r--p 00039000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +7177a8f8f000-7177a8f90000 ---p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +7177a8f90000-7177a8f91000 r--p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +7177a8f91000-7177a8f92000 rw-p 0004c000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +7177a8f92000-7177a8f96000 r--p 00000000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +7177a8f96000-7177a8fac000 r-xp 00004000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +7177a8fac000-7177a8fb6000 r--p 0001a000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +7177a8fb6000-7177a8fb7000 r--p 00023000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +7177a8fb7000-7177a8fb8000 rw-p 00024000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +7177a8fb8000-7177a8fe7000 r--p 00000000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +7177a8fe7000-7177a90a3000 r-xp 0002f000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +7177a90a3000-7177a90ee000 r--p 000eb000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +7177a90ee000-7177a90fc000 r--p 00135000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +7177a90fc000-7177a90fe000 rw-p 00143000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +7177a90fe000-7177a90ff000 rw-p 00000000 00:00 0 +7177a90ff000-7177a9100000 ---p 00000000 00:00 0 +7177a9100000-7177a9200000 rw-p 00000000 00:00 0 +7177a9200000-7177a9202000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177a9202000-7177a9203000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7177a9203000-7177a9223000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177a9223000-7177a9289000 r--p 00000000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +7177a9289000-7177a937c000 r-xp 00066000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +7177a937c000-7177a9408000 r--p 00159000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +7177a9408000-7177a941b000 r--p 001e4000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +7177a941b000-7177a941c000 rw-p 001f7000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +7177a941c000-7177a941e000 rw-p 00000000 00:00 0 +7177a941e000-7177a944d000 r--p 00000000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +7177a944d000-7177a95a0000 r-xp 0002f000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +7177a95a0000-7177a95f4000 r--p 00182000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +7177a95f4000-7177a95f5000 ---p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +7177a95f5000-7177a95fe000 r--p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +7177a95fe000-7177a95ff000 rw-p 001df000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +7177a95ff000-7177a9600000 rw-p 00000000 00:00 0 +7177a9600000-7177a969a000 r--p 00000000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +7177a969a000-7177a97ab000 r-xp 0009a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +7177a97ab000-7177a981a000 r--p 001ab000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +7177a981a000-7177a981b000 ---p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +7177a981b000-7177a9826000 r--p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +7177a9826000-7177a9829000 rw-p 00225000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +7177a9829000-7177a982c000 rw-p 00000000 00:00 0 +7177a982c000-7177a982d000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7177a982d000-7177a9836000 rw-s 00000000 00:01 672023 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) +7177a9836000-7177a983f000 rw-s 00000000 00:01 672022 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) +7177a983f000-7177a9841000 r--p 00000000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +7177a9841000-7177a985a000 r-xp 00002000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +7177a985a000-7177a985c000 r--p 0001b000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +7177a985c000-7177a985d000 ---p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +7177a985d000-7177a985e000 r--p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +7177a985e000-7177a985f000 rw-p 0001e000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +7177a985f000-7177a9863000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177a9863000-7177a9865000 r--p 00000000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +7177a9865000-7177a986d000 r-xp 00002000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +7177a986d000-7177a986f000 r--p 0000a000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +7177a986f000-7177a9870000 r--p 0000b000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +7177a9870000-7177a9871000 rw-p 0000c000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +7177a9871000-7177a9873000 r--p 00000000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +7177a9873000-7177a987b000 r-xp 00002000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +7177a987b000-7177a987c000 r--p 0000a000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +7177a987c000-7177a987d000 ---p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +7177a987d000-7177a987e000 r--p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +7177a987e000-7177a987f000 rw-p 0000c000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +7177a987f000-7177a98b2000 r--p 00000000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +7177a98b2000-7177a9915000 r-xp 00033000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +7177a9915000-7177a9934000 r--p 00096000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +7177a9934000-7177a995f000 r--p 000b4000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +7177a995f000-7177a9960000 rw-p 000df000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +7177a9960000-7177a9961000 rw-p 00000000 00:00 0 +7177a9961000-7177a9964000 r--p 00000000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +7177a9964000-7177a9985000 r-xp 00003000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +7177a9985000-7177a9991000 r--p 00024000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +7177a9991000-7177a9992000 ---p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +7177a9992000-7177a9993000 r--p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +7177a9993000-7177a9994000 rw-p 00031000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +7177a9994000-7177a99a2000 r--p 00000000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +7177a99a2000-7177a99b3000 r-xp 0000e000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +7177a99b3000-7177a99c1000 r--p 0001f000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +7177a99c1000-7177a99c5000 r--p 0002c000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +7177a99c5000-7177a99c6000 rw-p 00030000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +7177a99c6000-7177a99ce000 r--p 00000000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +7177a99ce000-7177a99ec000 r-xp 00008000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +7177a99ec000-7177a99f9000 r--p 00026000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +7177a99f9000-7177a99fb000 r--p 00032000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +7177a99fb000-7177a99fc000 rw-p 00034000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +7177a99fc000-7177a9a00000 rw-p 00000000 00:00 0 +7177a9a00000-7177a9a01000 ---p 00000000 00:00 0 +7177a9a01000-7177aa201000 rw-p 00000000 00:00 0 +7177aa201000-7177aa202000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177aa202000-7177aa204000 r--p 00000000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +7177aa204000-7177aa208000 r-xp 00002000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +7177aa208000-7177aa20a000 r--p 00006000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +7177aa20a000-7177aa20b000 r--p 00007000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +7177aa20b000-7177aa20c000 rw-p 00008000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +7177aa20c000-7177aa210000 r--p 00000000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +7177aa210000-7177aa225000 r-xp 00004000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +7177aa225000-7177aa22b000 r--p 00019000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +7177aa22b000-7177aa22c000 ---p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +7177aa22c000-7177aa22e000 r--p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +7177aa22e000-7177aa22f000 rw-p 00021000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +7177aa22f000-7177aa232000 r--p 00000000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +7177aa232000-7177aa249000 r-xp 00003000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +7177aa249000-7177aa24d000 r--p 0001a000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +7177aa24d000-7177aa24e000 r--p 0001d000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +7177aa24e000-7177aa24f000 rw-p 0001e000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +7177aa24f000-7177aa253000 r--p 00000000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +7177aa253000-7177aa272000 r-xp 00004000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +7177aa272000-7177aa27c000 r--p 00023000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +7177aa27c000-7177aa27d000 ---p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +7177aa27d000-7177aa27f000 r--p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +7177aa27f000-7177aa280000 rw-p 0002f000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +7177aa280000-7177aa285000 r--p 00000000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +7177aa285000-7177aa290000 r-xp 00005000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +7177aa290000-7177aa294000 r--p 00010000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +7177aa294000-7177aa295000 ---p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +7177aa295000-7177aa296000 r--p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +7177aa296000-7177aa297000 rw-p 00015000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +7177aa297000-7177aa2a1000 r--p 00000000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +7177aa2a1000-7177aa353000 r-xp 0000a000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +7177aa353000-7177aa364000 r--p 000bc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +7177aa364000-7177aa365000 r--p 000cc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +7177aa365000-7177aa366000 rw-p 000cd000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +7177aa366000-7177aa376000 r--p 00000000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +7177aa376000-7177aa3d4000 r-xp 00010000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +7177aa3d4000-7177aa3f0000 r--p 0006e000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +7177aa3f0000-7177aa3f1000 ---p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +7177aa3f1000-7177aa3f7000 r--p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +7177aa3f7000-7177aa3f8000 rw-p 00090000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +7177aa3f8000-7177aa400000 rw-p 00000000 00:00 0 +7177aa400000-7177aa800000 rw-p 00000000 00:00 0 +7177aa800000-7177aa802000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177aa802000-7177aa806000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177aa806000-7177aa857000 r--p 00000000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +7177aa857000-7177aa8b3000 r-xp 00051000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +7177aa8b3000-7177aa8e8000 rwxp 000ad000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +7177aa8e8000-7177aa8e9000 r-xp 000e2000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +7177aa8e9000-7177aa909000 r--p 000e3000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +7177aa909000-7177aa929000 r--p 00102000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +7177aa929000-7177aa92e000 rw-p 00122000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +7177aa92e000-7177aa930000 rw-p 00000000 00:00 0 +7177aa930000-7177aa936000 r--p 00000000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +7177aa936000-7177aa980000 r-xp 00006000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +7177aa980000-7177aa9aa000 r--p 00050000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +7177aa9aa000-7177aa9ab000 r--p 00079000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +7177aa9ab000-7177aa9ac000 rw-p 0007a000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +7177aa9ac000-7177aa9b0000 ---p 00000000 00:00 0 +7177aa9b0000-7177aaaac000 rw-p 00000000 00:00 0 +7177aaaac000-7177aaaad000 ---p 00000000 00:00 0 +7177aaaad000-7177aabad000 rw-p 00000000 00:00 0 +7177aabad000-7177aabae000 ---p 00000000 00:00 0 +7177aabae000-7177aacae000 rw-p 00000000 00:00 0 +7177aacae000-7177aacaf000 ---p 00000000 00:00 0 +7177aacaf000-7177aadaf000 rw-p 00000000 00:00 0 +7177aadaf000-7177aadb0000 ---p 00000000 00:00 0 +7177aadb0000-7177aaeb0000 rw-p 00000000 00:00 0 +7177aaeb0000-7177aaeb1000 ---p 00000000 00:00 0 +7177aaeb1000-7177aafb1000 rw-p 00000000 00:00 0 +7177aafb1000-7177aafb2000 ---p 00000000 00:00 0 +7177aafb2000-7177ab0b2000 rw-p 00000000 00:00 0 +7177ab0b2000-7177ab0b6000 ---p 00000000 00:00 0 +7177ab0b6000-7177ab1b2000 rw-p 00000000 00:00 0 +7177ab1b2000-7177ab2b2000 rw-s 00000000 00:01 1015832 /SYSV00000000 (deleted) +7177ab2b2000-7177ab2b6000 ---p 00000000 00:00 0 +7177ab2b6000-7177ab3b2000 rw-p 00000000 00:00 0 +7177ab3b2000-7177ab3b6000 ---p 00000000 00:00 0 +7177ab3b6000-7177ab4b2000 rw-p 00000000 00:00 0 +7177ab4b2000-7177ab4b6000 ---p 00000000 00:00 0 +7177ab4b6000-7177ab5b2000 rw-p 00000000 00:00 0 +7177ab5b2000-7177ab5b6000 ---p 00000000 00:00 0 +7177ab5b6000-7177ab6b2000 rw-p 00000000 00:00 0 +7177ab6b2000-7177ab6b6000 ---p 00000000 00:00 0 +7177ab6b6000-7177ab7b2000 rw-p 00000000 00:00 0 +7177ab7b2000-7177ab7b6000 ---p 00000000 00:00 0 +7177ab7b6000-7177ab8b2000 rw-p 00000000 00:00 0 +7177ab8b2000-7177ab8b6000 ---p 00000000 00:00 0 +7177ab8b6000-7177ab9b2000 rw-p 00000000 00:00 0 +7177ab9b2000-7177ab9bf000 r--p 00000000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +7177ab9bf000-7177aba48000 r-xp 0000d000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +7177aba48000-7177aba71000 r--p 00096000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +7177aba71000-7177aba72000 ---p 000bf000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +7177aba72000-7177aba79000 r--p 000bf000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +7177aba79000-7177aba7a000 rw-p 000c6000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +7177aba7a000-7177abbfb000 r-xp 00000000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so +7177abbfb000-7177abbfc000 ---p 00181000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so +7177abbfc000-7177abbfe000 r--p 00181000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so +7177abbfe000-7177abbff000 rw-p 00183000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so +7177abbff000-7177abc00000 rw-p 00000000 00:00 0 +7177abc00000-7177ac021000 rw-p 00000000 00:00 0 +7177ac021000-7177b0000000 ---p 00000000 00:00 0 +7177b0000000-7177b0021000 rw-p 00000000 00:00 0 +7177b0021000-7177b4000000 ---p 00000000 00:00 0 +7177b4000000-7177b4001000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7177b4001000-7177b4003000 r--p 00000000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +7177b4003000-7177b400a000 r-xp 00002000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +7177b400a000-7177b400b000 r--p 00009000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +7177b400b000-7177b400c000 ---p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +7177b400c000-7177b400d000 r--p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +7177b400d000-7177b400e000 rw-p 0000b000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +7177b400e000-7177b4011000 r--p 00000000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +7177b4011000-7177b4014000 r-xp 00003000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +7177b4014000-7177b4015000 r--p 00006000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +7177b4015000-7177b4016000 ---p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +7177b4016000-7177b4017000 r--p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +7177b4017000-7177b4018000 rw-p 00008000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +7177b4018000-7177b401d000 r--p 00000000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +7177b401d000-7177b4023000 r-xp 00005000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +7177b4023000-7177b4026000 r--p 0000b000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +7177b4026000-7177b4028000 r--p 0000d000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +7177b4028000-7177b4029000 rw-p 0000f000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +7177b4029000-7177b4039000 r--p 00000000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +7177b4039000-7177b405a000 r-xp 00010000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +7177b405a000-7177b4096000 r--p 00031000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +7177b4096000-7177b409a000 r--p 0006c000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +7177b409a000-7177b409d000 rw-p 00070000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +7177b409d000-7177b40c0000 rw-p 00000000 00:00 0 +7177b40c0000-7177b40d9000 r--p 00000000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +7177b40d9000-7177b4165000 r-xp 00019000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +7177b4165000-7177b41fa000 r--p 000a5000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +7177b41fa000-7177b41fb000 ---p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +7177b41fb000-7177b41fc000 r--p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +7177b41fc000-7177b4200000 rw-p 0013b000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +7177b4200000-7177b4600000 rw-p 00000000 00:00 0 +7177b4600000-7177b4608000 r--p 00000000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +7177b4608000-7177b4660000 r-xp 00008000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +7177b4660000-7177b4671000 r--p 00060000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +7177b4671000-7177b4672000 ---p 00071000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +7177b4672000-7177b4678000 r--p 00071000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +7177b4678000-7177b4679000 rw-p 00077000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +7177b4679000-7177b4883000 rw-p 00000000 00:00 0 +7177b4883000-7177b4884000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7177b4884000-7177b4885000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177b4885000-7177b4889000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177b4889000-7177b488c000 r--p 00000000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +7177b488c000-7177b488f000 r-xp 00003000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +7177b488f000-7177b4890000 r--p 00006000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +7177b4890000-7177b4891000 ---p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +7177b4891000-7177b4892000 r--p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +7177b4892000-7177b4893000 rw-p 00008000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +7177b4893000-7177b4896000 r--p 00000000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +7177b4896000-7177b48aa000 r-xp 00003000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +7177b48aa000-7177b48ae000 r--p 00017000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +7177b48ae000-7177b48af000 ---p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +7177b48af000-7177b48b0000 r--p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +7177b48b0000-7177b48b1000 rw-p 0001c000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +7177b48b1000-7177b48b4000 r--p 00000000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +7177b48b4000-7177b48ba000 r-xp 00003000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +7177b48ba000-7177b48bc000 r--p 00009000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +7177b48bc000-7177b48bd000 r--p 0000a000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +7177b48bd000-7177b48be000 rw-p 0000b000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +7177b48be000-7177b48c5000 r--p 00000000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +7177b48c5000-7177b48cb000 r-xp 00007000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +7177b48cb000-7177b48ce000 r--p 0000d000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +7177b48ce000-7177b48cf000 ---p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +7177b48cf000-7177b48d0000 r--p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +7177b48d0000-7177b48d1000 rw-p 00011000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +7177b48d1000-7177b48dc000 r--p 00000000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +7177b48dc000-7177b48e5000 r-xp 0000b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +7177b48e5000-7177b48ea000 r--p 00014000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +7177b48ea000-7177b48eb000 ---p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +7177b48eb000-7177b48ed000 r--p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +7177b48ed000-7177b48ee000 rw-p 0001b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +7177b48ee000-7177b48f5000 r--s 00000000 103:03 11147989 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache +7177b48f5000-7177b48f6000 r--p 00000000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +7177b48f6000-7177b48f9000 r-xp 00001000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +7177b48f9000-7177b48fa000 r--p 00004000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +7177b48fa000-7177b48fb000 ---p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +7177b48fb000-7177b48fc000 r--p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +7177b48fc000-7177b48fd000 rw-p 00006000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +7177b48fd000-7177b4900000 r--p 00000000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +7177b4900000-7177b4904000 r-xp 00003000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +7177b4904000-7177b4906000 r--p 00007000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +7177b4906000-7177b4907000 r--p 00008000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +7177b4907000-7177b4908000 rw-p 00009000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +7177b4908000-7177b4909000 r--p 00000000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +7177b4909000-7177b490b000 r-xp 00001000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +7177b490b000-7177b490c000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +7177b490c000-7177b490d000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +7177b490d000-7177b490e000 rw-p 00004000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +7177b490e000-7177b49cf000 r-xp 00000000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +7177b49cf000-7177b49d0000 r--p 000c0000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +7177b49d0000-7177b49db000 rw-p 000c1000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +7177b49db000-7177b4a00000 rw-p 00000000 00:00 0 +7177b4a00000-7177b4a04000 ---p 00000000 00:00 0 +7177b4a04000-7177b4b00000 rw-p 00000000 00:00 0 +7177b4b00000-7177b4b04000 ---p 00000000 00:00 0 +7177b4b04000-7177b4c00000 rw-p 00000000 00:00 0 +7177b4c00000-7177b4c04000 ---p 00000000 00:00 0 +7177b4c04000-7177b4d00000 rw-p 00000000 00:00 0 +7177b4d00000-7177b4d04000 ---p 00000000 00:00 0 +7177b4d04000-7177b4e00000 rw-p 00000000 00:00 0 +7177b4e00000-7177b4e04000 ---p 00000000 00:00 0 +7177b4e04000-7177b4f00000 rw-p 00000000 00:00 0 +7177b4f00000-7177b4f04000 ---p 00000000 00:00 0 +7177b4f04000-7177b5000000 rw-p 00000000 00:00 0 +7177b5000000-7177b5f06000 r--p 00000000 103:03 10618858 /usr/lib/locale/locale-archive +7177b5f06000-7177b5f07000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7177b5f07000-7177b5f09000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177b5f09000-7177b5f0a000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7177b5f0a000-7177b5f7a000 r-xp 00000000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +7177b5f7a000-7177b5f7b000 ---p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +7177b5f7b000-7177b5f80000 r--p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +7177b5f80000-7177b5f82000 rw-p 00075000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +7177b5f82000-7177b5f84000 rw-p 00000000 00:00 0 +7177b5f84000-7177b5fb0000 r--p 00000000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +7177b5fb0000-7177b5fe4000 r-xp 0002c000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +7177b5fe4000-7177b5ffe000 r--p 00060000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +7177b5ffe000-7177b5fff000 r--p 00079000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +7177b5fff000-7177b6000000 rw-p 0007a000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +7177b6000000-7177b8000000 rw-p 00000000 00:00 0 +7177b8000000-7177b8021000 rw-p 00000000 00:00 0 +7177b8021000-7177bc000000 ---p 00000000 00:00 0 +7177bc000000-7177bc001000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7177bc001000-7177bc002000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7177bc002000-7177bc003000 r--p 00000000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +7177bc003000-7177bc004000 r-xp 00001000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +7177bc004000-7177bc005000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +7177bc005000-7177bc006000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +7177bc006000-7177bc007000 rw-p 00003000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +7177bc007000-7177bc008000 r--p 00000000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 +7177bc008000-7177bc009000 r-xp 00001000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 +7177bc009000-7177bc028000 r--p 00002000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 +7177bc028000-7177bc029000 r--p 00020000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 +7177bc029000-7177bc02a000 rw-p 00021000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 +7177bc02a000-7177bc0f8000 r-xp 00000000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +7177bc0f8000-7177bc0f9000 r--p 000cd000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +7177bc0f9000-7177bc0fa000 rw-p 000ce000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +7177bc0fa000-7177bc0fe000 ---p 00000000 00:00 0 +7177bc0fe000-7177bc1fa000 rw-p 00000000 00:00 0 +7177bc1fa000-7177bc1fe000 ---p 00000000 00:00 0 +7177bc1fe000-7177bc2fa000 rw-p 00000000 00:00 0 +7177bc2fa000-7177bc2fe000 ---p 00000000 00:00 0 +7177bc2fe000-7177bc3fa000 rw-p 00000000 00:00 0 +7177bc3fa000-7177bc3fb000 ---p 00000000 00:00 0 +7177bc3fb000-7177bc4fb000 rw-p 00000000 00:00 0 +7177bc4fb000-7177bc4fc000 ---p 00000000 00:00 0 +7177bc4fc000-7177bc5fc000 rw-p 00000000 00:00 0 +7177bc5fc000-7177bc5fd000 ---p 00000000 00:00 0 +7177bc5fd000-7177bc6fd000 rw-p 00000000 00:00 0 +7177bc6fd000-7177bc6fe000 ---p 00000000 00:00 0 +7177bc6fe000-7177bc7fe000 rw-p 00000000 00:00 0 +7177bc7fe000-7177bca70000 rw-p 00000000 00:00 0 +7177bca70000-7177c4700000 ---p 00000000 00:00 0 +7177c4700000-7177c4704000 ---p 00000000 00:00 0 +7177c4704000-7177c4800000 rw-p 00000000 00:00 0 +7177c4800000-7177c4ad0000 rwxp 00000000 00:00 0 +7177c4ad0000-7177cbd37000 ---p 00000000 00:00 0 +7177cbd37000-7177cbfb7000 rwxp 00000000 00:00 0 +7177cbfb7000-7177cc2c8000 ---p 00000000 00:00 0 +7177cc2c8000-7177cc538000 rwxp 00000000 00:00 0 +7177cc538000-7177d3800000 ---p 00000000 00:00 0 +7177d3800000-7177dbfb5000 r--s 00000000 103:03 10498840 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/modules +7177dbfb5000-7177dbfb6000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177dbfb6000-7177dbfb7000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7177dbfb7000-7177dbfb8000 r--s 00000000 00:06 1017 /dev/nvidiactl +7177dbfb8000-7177dbfb9000 rw-s 00000000 00:01 1028 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) +7177dbfb9000-7177dbfba000 r--p 00000000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +7177dbfba000-7177dbfbb000 r-xp 00001000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +7177dbfbb000-7177dbfbc000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +7177dbfbc000-7177dbfbd000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +7177dbfbd000-7177dbfbe000 rw-p 00003000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +7177dbfbe000-7177dbfc0000 r--p 00000000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +7177dbfc0000-7177dbfc2000 r-xp 00002000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +7177dbfc2000-7177dbfc3000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +7177dbfc3000-7177dbfc4000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +7177dbfc4000-7177dbfc5000 rw-p 00005000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +7177dbfc5000-7177dbfca000 r--p 00000000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 +7177dbfca000-7177dbff3000 r-xp 00005000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 +7177dbff3000-7177dbffe000 r--p 0002e000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 +7177dbffe000-7177dbfff000 r--p 00038000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 +7177dbfff000-7177dc000000 rw-p 00039000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 +7177dc000000-7177dc6a1000 rw-p 00000000 00:00 0 +7177dc6a1000-7177e0000000 ---p 00000000 00:00 0 +7177e0000000-7177e0001000 r--p 00000000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +7177e0001000-7177e0002000 r-xp 00001000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +7177e0002000-7177e0003000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +7177e0003000-7177e0004000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +7177e0004000-7177e0005000 rw-p 00003000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +7177e0005000-7177e0007000 r--p 00000000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +7177e0007000-7177e000a000 r-xp 00002000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +7177e000a000-7177e000b000 r--p 00005000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +7177e000b000-7177e000c000 r--p 00006000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +7177e000c000-7177e000d000 rw-p 00007000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +7177e000d000-7177e000f000 r--p 00000000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +7177e000f000-7177e0015000 r-xp 00002000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +7177e0015000-7177e0017000 r--p 00008000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +7177e0017000-7177e0018000 r--p 00009000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +7177e0018000-7177e0019000 rw-p 0000a000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +7177e0019000-7177e001a000 r--p 00000000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 +7177e001a000-7177e0022000 r-xp 00001000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 +7177e0022000-7177e0025000 r--p 00009000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 +7177e0025000-7177e0026000 r--p 0000b000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 +7177e0026000-7177e0027000 rw-p 0000c000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 +7177e0027000-7177e0029000 r--p 00000000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +7177e0029000-7177e0030000 r-xp 00002000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +7177e0030000-7177e0032000 r--p 00009000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +7177e0032000-7177e0033000 r--p 0000a000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +7177e0033000-7177e0034000 rw-p 0000b000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +7177e0034000-7177e0038000 r--p 00000000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +7177e0038000-7177e0045000 r-xp 00004000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +7177e0045000-7177e0048000 r--p 00011000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +7177e0048000-7177e0049000 ---p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +7177e0049000-7177e004a000 r--p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +7177e004a000-7177e004b000 rw-p 00015000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +7177e004b000-7177e004c000 rw-p 00000000 00:00 0 +7177e004c000-7177e0057000 r--p 00000000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +7177e0057000-7177e006b000 r-xp 0000b000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +7177e006b000-7177e0074000 r--p 0001f000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +7177e0074000-7177e0075000 r--p 00027000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +7177e0075000-7177e0076000 rw-p 00028000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +7177e0076000-7177e06fd000 rw-p 00000000 00:00 0 +7177e06fd000-7177e06fe000 ---p 00000000 00:00 0 +7177e06fe000-7177e07fe000 rw-p 00000000 00:00 0 +7177e07fe000-7177e07ff000 ---p 00000000 00:00 0 +7177e07ff000-7177e08ff000 rw-p 00000000 00:00 0 +7177e08ff000-7177e0900000 ---p 00000000 00:00 0 +7177e0900000-7177e0a00000 rw-p 00000000 00:00 0 +7177e0a00000-7177e0a0e000 rw-p 00000000 00:00 0 +7177e0a0e000-7177e19a0000 ---p 00000000 00:00 0 +7177e19a0000-7177e19a1000 r--p 00000000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +7177e19a1000-7177e19a3000 r-xp 00001000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +7177e19a3000-7177e19a4000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +7177e19a4000-7177e19a5000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +7177e19a5000-7177e19a6000 rw-p 00004000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +7177e19a6000-7177e19a7000 r--p 00000000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +7177e19a7000-7177e19a8000 r-xp 00001000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +7177e19a8000-7177e19a9000 r--p 00002000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +7177e19a9000-7177e19aa000 r--p 00003000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +7177e19aa000-7177e19ab000 rw-p 00004000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +7177e19ab000-7177e19ae000 r--p 00000000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +7177e19ae000-7177e19ba000 r-xp 00003000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +7177e19ba000-7177e19bd000 r--p 0000f000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +7177e19bd000-7177e19be000 r--p 00011000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +7177e19be000-7177e19bf000 rw-p 00012000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +7177e19bf000-7177e19fd000 r-xp 00000000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +7177e19fd000-7177e19fe000 ---p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +7177e19fe000-7177e19ff000 r--p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +7177e19ff000-7177e1a00000 rw-p 0003f000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +7177e1a00000-7177e1a0e000 rw-p 00000000 00:00 0 +7177e1a0e000-7177e29a0000 ---p 00000000 00:00 0 +7177e29a0000-7177e29a1000 rw-s 00000000 00:01 672021 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=4096 (deleted) +7177e29a1000-7177e29a3000 r--p 00000000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +7177e29a3000-7177e29a5000 r-xp 00002000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +7177e29a5000-7177e29a7000 r--p 00004000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +7177e29a7000-7177e29a8000 r--p 00005000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +7177e29a8000-7177e29a9000 rw-p 00006000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +7177e29a9000-7177e29ab000 r--p 00000000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +7177e29ab000-7177e29ae000 r-xp 00002000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +7177e29ae000-7177e29af000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +7177e29af000-7177e29b0000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +7177e29b0000-7177e29b1000 rw-p 00006000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +7177e29b1000-7177e29b5000 r--p 00000000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +7177e29b5000-7177e29c0000 r-xp 00004000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +7177e29c0000-7177e29c4000 r--p 0000f000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +7177e29c4000-7177e29c5000 r--p 00012000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +7177e29c5000-7177e29c6000 rw-p 00013000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +7177e29c6000-7177e332f000 rw-p 00000000 00:00 0 +7177e332f000-7177e3415000 ---p 00000000 00:00 0 +7177e3415000-7177e341b000 rw-p 00000000 00:00 0 +7177e341b000-7177e3500000 ---p 00000000 00:00 0 +7177e3500000-7177e3504000 ---p 00000000 00:00 0 +7177e3504000-7177e3600000 rw-p 00000000 00:00 0 +7177e3600000-7177e4930000 r-xp 00000000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so +7177e4930000-7177e4a00000 r--p 0132f000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so +7177e4a00000-7177e4a2e000 rw-p 013ff000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so +7177e4a2e000-7177e4aa4000 rw-p 00000000 00:00 0 +7177e4aa4000-7177e4aa5000 r--p 00000000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +7177e4aa5000-7177e4aa7000 r-xp 00001000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +7177e4aa7000-7177e4aa8000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +7177e4aa8000-7177e4aa9000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +7177e4aa9000-7177e4aaa000 rw-p 00004000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +7177e4aaa000-7177e4aac000 r--p 00000000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +7177e4aac000-7177e4ab3000 r-xp 00002000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +7177e4ab3000-7177e4ab5000 r--p 00009000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +7177e4ab5000-7177e4ab6000 r--p 0000a000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +7177e4ab6000-7177e4ab7000 rw-p 0000b000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +7177e4ab7000-7177e4ab8000 rw-s 00000000 00:01 672020 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) +7177e4ab8000-7177e4ab9000 rw-s 00000000 00:01 671055 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) +7177e4ab9000-7177e4aba000 r-xp 00000000 00:00 0 +7177e4aba000-7177e4abb000 r--p 00000000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +7177e4abb000-7177e4abc000 r-xp 00001000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +7177e4abc000-7177e4abd000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +7177e4abd000-7177e4abe000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +7177e4abe000-7177e4abf000 rw-p 00003000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +7177e4abf000-7177e4ac0000 r--p 00000000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +7177e4ac0000-7177e4ac3000 r-xp 00001000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +7177e4ac3000-7177e4ac4000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +7177e4ac4000-7177e4ac5000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +7177e4ac5000-7177e4ac6000 rw-p 00005000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +7177e4ac6000-7177e4ac8000 r--p 00000000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +7177e4ac8000-7177e4acf000 r-xp 00002000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +7177e4acf000-7177e4ad1000 r--p 00009000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +7177e4ad1000-7177e4ad2000 r--p 0000a000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +7177e4ad2000-7177e4ad3000 rw-p 0000b000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +7177e4ad3000-7177e4ad4000 r-xp 00000000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so +7177e4ad4000-7177e4ad5000 ---p 00001000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so +7177e4ad5000-7177e4ad6000 r--p 00001000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so +7177e4ad6000-7177e4ad7000 rw-p 00002000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so +7177e4ad7000-7177e4ad8000 rw-p 00000000 00:00 0 +7177e4ad8000-7177e4ad9000 r-xp 0005e000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +7177e4ad9000-7177e4b19000 rw-p 00000000 00:00 0 +7177e4b19000-7177e4b27000 r--p 00000000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +7177e4b27000-7177e4ba3000 r-xp 0000e000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +7177e4ba3000-7177e4bfe000 r--p 0008a000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +7177e4bfe000-7177e4bff000 r--p 000e4000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +7177e4bff000-7177e4c00000 rw-p 000e5000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +7177e4c00000-7177e4c28000 r--p 00000000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +7177e4c28000-7177e4dbd000 r-xp 00028000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +7177e4dbd000-7177e4e15000 r--p 001bd000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +7177e4e15000-7177e4e16000 ---p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +7177e4e16000-7177e4e1a000 r--p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +7177e4e1a000-7177e4e1c000 rw-p 00219000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +7177e4e1c000-7177e4e29000 rw-p 00000000 00:00 0 +7177e4e29000-7177e4e34000 r-xp 00000000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +7177e4e34000-7177e4e35000 ---p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +7177e4e35000-7177e4e36000 r--p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +7177e4e36000-7177e4e37000 rw-p 0000c000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +7177e4e37000-7177e4e4a000 r-xp 00000000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +7177e4e4a000-7177e4e4b000 ---p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +7177e4e4b000-7177e4e4c000 r--p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +7177e4e4c000-7177e4e4d000 rw-p 00014000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +7177e4e4d000-7177e4e6d000 r-xp 00000000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +7177e4e6d000-7177e4e6e000 r--p 0001f000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +7177e4e6e000-7177e4e6f000 rw-p 00020000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +7177e4e6f000-7177e4e70000 rw-p 00000000 00:00 0 +7177e4e70000-7177e4e8e000 r-xp 00000000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +7177e4e8e000-7177e4e90000 r--p 0001d000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +7177e4e90000-7177e4e91000 rw-p 0001f000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +7177e4e91000-7177e4e92000 r--p 00000000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +7177e4e92000-7177e4e93000 r-xp 00001000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +7177e4e93000-7177e4e94000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +7177e4e94000-7177e4e95000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +7177e4e95000-7177e4e96000 rw-p 00003000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +7177e4e96000-7177e4e9a000 rw-p 00000000 00:00 0 +7177e4e9a000-7177e4e9b000 r--p 00000000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +7177e4e9b000-7177e4e9c000 r-xp 00001000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +7177e4e9c000-7177e4e9d000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +7177e4e9d000-7177e4e9e000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +7177e4e9e000-7177e4e9f000 rw-p 00003000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +7177e4e9f000-7177e4ea0000 r--p 00000000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +7177e4ea0000-7177e4ea1000 r-xp 00001000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +7177e4ea1000-7177e4ea2000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +7177e4ea2000-7177e4ea3000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +7177e4ea3000-7177e4ea4000 rw-p 00003000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +7177e4ea4000-7177e4ea6000 r--p 00000000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +7177e4ea6000-7177e4eb7000 r-xp 00002000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +7177e4eb7000-7177e4ebd000 r--p 00013000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +7177e4ebd000-7177e4ebe000 ---p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +7177e4ebe000-7177e4ebf000 r--p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +7177e4ebf000-7177e4ec0000 rw-p 0001a000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +7177e4ec0000-7177e4ec7000 r-xp 00000000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +7177e4ec7000-7177e4ec8000 ---p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +7177e4ec8000-7177e4ec9000 r--p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +7177e4ec9000-7177e4eca000 rw-p 00008000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +7177e4eca000-7177e4ecf000 rw-p 00000000 00:00 0 +7177e4ecf000-7177e4ed6000 ---p 00000000 00:00 0 +7177e4ed6000-7177e4ede000 rw-s 00000000 103:03 4325444 /tmp/hsperfdata_codex/85302 +7177e4ede000-7177e4edf000 ---p 00000000 00:00 0 +7177e4edf000-7177e4ee0000 r--p 00000000 00:00 0 +7177e4ee0000-7177e4eef000 r-xp 00000000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so +7177e4eef000-7177e4ef0000 r--p 0000e000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so +7177e4ef0000-7177e4ef1000 rw-p 0000f000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so +7177e4ef1000-7177e4ef3000 rw-p 00000000 00:00 0 +7177e4ef3000-7177e4ef7000 r--p 00000000 00:00 0 [vvar] +7177e4ef7000-7177e4ef9000 r-xp 00000000 00:00 0 [vdso] +7177e4ef9000-7177e4efb000 r--p 00000000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +7177e4efb000-7177e4f25000 r-xp 00002000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +7177e4f25000-7177e4f30000 r--p 0002c000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +7177e4f30000-7177e4f31000 ---p 00000000 00:00 0 +7177e4f31000-7177e4f33000 r--p 00037000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +7177e4f33000-7177e4f35000 rw-p 00039000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +7ffd1cda5000-7ffd1cdc8000 rw-p 00000000 00:00 0 [stack] +ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall] +Total number of mappings: 919 + + +VM Arguments: +jvm_args: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant +java_command: jme3test.vulkan.VulkanTest +java_class_path (initial): /home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/java/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/groovy/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/resources/main:/home/codex/java/prj/jmonkeyengine/jme3-lwjgl3/build/libs/jme3-lwjgl3-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-desktop/build/libs/jme3-desktop-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-effects/build/libs/jme3-effects-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jbullet/build/libs/jme3-jbullet-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jogg/build/libs/jme3-jogg-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-networking/build/libs/jme3-networking-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-niftygui/build/libs/jme3-niftygui-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins/build/libs/jme3-plugins-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-terrain/build/libs/jme3-terrain-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-awt-dialogs/build/libs/jme3-awt-dialogs-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-core/build/libs/jme3-core-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json-gson/build/libs/jme3-plugins-json-gson-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json/build/libs/jme3-plugins-json-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-testdata/build/libs/jme3-testdata-null-SNAPSHOT.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-examples/1.4.3/4a41c559851c0c5a77ba3a9d1ccc8e6e92207dc7/nifty-examples-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjglx/lwjgl3-awt/0.2.3/2be63e81d6b73300d8203ce7235b2660c62eb3ea/lwjgl3-awt-0.2.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/7119f7d0eeb1e5502ff0ca71d2b4d47317da015/lwjgl-glfw-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/99ef08056feb9627f90425a4d2a22cd9fae8e39b/lwjgl-glfw-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/cfa8f1e96d572ed56da5945adf5167628f5eecdb/lwjgl-glfw-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/797e0965709ad180d9b00c88a086dbda15002203/lwjgl-glfw-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/671adf04a6bc4f792af13892e37f804be30b7070/lwjgl-glfw-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/b54023af492b4c2c72451f3a7aa0f385e9969474/lwjgl-glfw-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/82c8d748a654241b5961ddd1c098e8b648e38a48/lwjgl-glfw-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/399b42b491c5dfa6595ae6fd79dcba61b93538a7/lwjgl-glfw-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jawt/3.3.6/43299e222bd7db5e99254a8e620330954b73c2a6/lwjgl-jawt-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/245910eb57f2444429c74e6bf96030e5ec0a6739/lwjgl-jemalloc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/f9da76351e14a695be172d6915c8a7b2905307f/lwjgl-jemalloc-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c86043a342a33e5d32fabf962578580633db3c6e/lwjgl-jemalloc-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/26f8b467dc2e0f3000d608de3564b572bb46f927/lwjgl-jemalloc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c484cae39a718010dbc7931fe5e12664600a13c2/lwjgl-jemalloc-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1bc2e16e70df7f418d668c2984ac8066f1f6f5b1/lwjgl-jemalloc-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/9a42df0f2e9747815490311d7db7b4a046d5f40/lwjgl-jemalloc-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1f828c1fc06792475850162725433adf5ad001c0/lwjgl-jemalloc-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ad313317ff399fd2a7f4dd74716a68cf3976c6ad/lwjgl-openal-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/9c2b9b660e085bb0b47a4453dc0e26f24a5475e4/lwjgl-openal-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/82f693541d69aa125750bf8be9c4194435c56f03/lwjgl-openal-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ef356c04ef141d4efbde07793f31784f1f1a1bae/lwjgl-openal-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/7830af894fa110e65bf5075deb9183efbdbc50f5/lwjgl-openal-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/fd2c17603c63e8d543cb57d1db77ebd4574f3b7a/lwjgl-openal-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/c39f6827f0bd97601fc4e389801d5c813f59a5f2/lwjgl-openal-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/13f692aec4ae4b2d3c468aa0008472175f0ea1e0/lwjgl-openal-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opencl/3.3.6/93fdcea16d27b1466450e38dc28c8e1b4819ec25/lwjgl-opencl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ac2532612a4df374e9a9282bcf8ce2573018ebbb/lwjgl-opengl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/18dc639ebc94aa5202c2157f7490d28997b697c5/lwjgl-opengl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b0ab1d0e315d2fcc50d6cab7e8feaf4688d5d9a0/lwjgl-opengl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b8dc6467fe232d552793c53dc56f9fa8a385299c/lwjgl-opengl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ee815fbf454b916f13c10fff62e513eb09042ef0/lwjgl-opengl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/44de180f79e0b45c9e5bee10ca7540dcb5ddd373/lwjgl-opengl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/59f708eb4bf0be0204bbc9c06807911724673db6/lwjgl-opengl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/fee4fb2ee786af6530b6f9188205a76bc4e05268/lwjgl-opengl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-vulkan/3.3.6/a403e0931b03b138854bb2ba9c48dab646cba6d8/lwjgl-vulkan-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/9d0964fe2b75f64d9dab9839c2b059b7e8f71115/lwjgl-shaderc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/ab69a0e011f057ed25857c97fa3c87f20ab8f670/lwjgl-shaderc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/ce7721d30cfaf47feaed10213e0c43eb55c49d68/lwjgl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9a29b6a22fc5184604b8cb434ee5d5ecc4bfcbee/lwjgl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/7a6f04e02429ba2f4bda9be191347bb7d3c71127/lwjgl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/dc7db8fc4f1e6563867f9155b9a42d9c73d8992f/lwjgl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/2c9d698e76c3d0fe307d94cc6f428038492f25df/lwjgl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9eeb8887b5e3aa672efd2e1b0973ffa5891a3151/lwjgl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/f14e7a5289d2355822f4f83b3fd38d158c939acd/lwjgl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/832e2964ce74e02e768814a29c06d60645115b9a/lwjgl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/jbullet/1.0.3/362f53e8aa981037c2523ac24eb4d9b190a49036/jbullet-1.0.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/javax.vecmath/vecmath/1.5.2/fd17bc3e67f909573dfc039d8e2abecf407c4e27/vecmath-1.5.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/j-ogg-vorbis/1.0.6/a69d1cf62eaf75b71af61f9c23265d278a966735/j-ogg-vorbis-1.0.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-default-controls/1.4.3/2ccafe0182a73da87657ca24b639b6e8c1accd50/nifty-default-controls-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty/1.4.3/fa9ac16e00d1b375d10f58d1c1eb576950ae8c9d/nifty-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-style-black/1.4.3/c20a02dbdeb0bd9d2be258955fceb55c13185a8/nifty-style-black-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.9.1/2cc2131b98ebfb04e2b2c7dfb84431f4045096b/gson-2.9.1.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/stack-alloc/1.0.2/13cbb10c01ec09d0f5879f988946a97998175dfc/stack-alloc-1.0.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/xpp3/xpp3/1.1.4c/9b988ea84b9e4e9f1874e390ce099b8ac12cfff5/xpp3-1.1.4c.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/2.0.2/516c03b21d50a644d538de0f0369c620989cd8f0/jsr305-2.0.2.jar +Launcher Type: SUN_STANDARD + +[Global flags] + intx CICompilerCount = 4 {product} {ergonomic} + uint ConcGCThreads = 2 {product} {ergonomic} + uint G1ConcRefinementThreads = 8 {product} {ergonomic} + size_t G1HeapRegionSize = 4194304 {product} {ergonomic} + size_t InitialHeapSize = 524288000 {product} {ergonomic} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MarkStackSizeMax = 536870912 {product} {ergonomic} + size_t MaxHeapSize = 8388608000 {product} {ergonomic} + size_t MaxNewSize = 5033164800 {product} {ergonomic} + size_t MinHeapDeltaBytes = 4194304 {product} {ergonomic} + size_t MinHeapSize = 8388608 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 5836800 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 122912768 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 122908672 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + size_t SoftMaxHeapSize = 8388608000 {manageable} {ergonomic} + bool UseCompressedOops = true {product lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags foldmultilines=false + #1: stderr all=off uptime,level,tags foldmultilines=false + +Environment Variables: +PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin +USERNAME=codex +SHELL=/bin/bash +DISPLAY=:1 +LANG=en_US.UTF-8 + +Active Locale: +LC_ALL=en_US.UTF-8 +LC_COLLATE=en_US.UTF-8 +LC_CTYPE=en_US.UTF-8 +LC_MESSAGES=en_US.UTF-8 +LC_MONETARY=en_US.UTF-8 +LC_NUMERIC=en_US.UTF-8 +LC_TIME=en_US.UTF-8 + +Signal Handlers: + SIGSEGV: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGBUS: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGFPE: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGPIPE: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGXFSZ: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGILL: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGUSR2: SR_handler in libjvm.so, mask=00000000000000000000000000000000, flags=SA_RESTART|SA_SIGINFO, blocked + SIGHUP: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGINT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGTERM: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGQUIT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGTRAP: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + + +Periodic native trim disabled + +--------------- S Y S T E M --------------- + +OS: +DISTRIB_ID=Pop +DISTRIB_RELEASE=22.04 +DISTRIB_CODENAME=jammy +DISTRIB_DESCRIPTION="Pop!_OS 22.04 LTS" +uname: Linux 6.9.3-76060903-generic #202405300957~1726766035~22.04~4092a0e SMP PREEMPT_DYNAMIC Thu S x86_64 +OS uptime: 0 days 15:17 hours +libc: glibc 2.35 NPTL 2.35 +rlimit (soft/hard): STACK 8192k/infinity , CORE 0k/infinity , NPROC 127655/127655 , NOFILE 1048576/1048576 , AS infinity/infinity , CPU infinity/infinity , DATA infinity/infinity , FSIZE infinity/infinity , MEMLOCK 4095956k/4095956k +load average: 2.88 1.79 1.18 + +/proc/meminfo: +MemTotal: 32767652 kB +MemFree: 20156988 kB +MemAvailable: 23562748 kB +Buffers: 347352 kB +Cached: 5014400 kB +SwapCached: 0 kB +Active: 8810016 kB +Inactive: 2815840 kB +Active(anon): 6299316 kB +Inactive(anon): 0 kB +Active(file): 2510700 kB +Inactive(file): 2815840 kB +Unevictable: 15204 kB +Mlocked: 72 kB +SwapTotal: 20970996 kB +SwapFree: 20970996 kB +Zswap: 0 kB +Zswapped: 0 kB +Dirty: 44 kB +Writeback: 0 kB +AnonPages: 6279364 kB +Mapped: 1830436 kB +Shmem: 35212 kB +KReclaimable: 197300 kB +Slab: 385968 kB +SReclaimable: 197300 kB +SUnreclaim: 188668 kB +KernelStack: 22928 kB +PageTables: 54400 kB +SecPageTables: 0 kB +NFS_Unstable: 0 kB +Bounce: 0 kB +WritebackTmp: 0 kB +CommitLimit: 37354820 kB +Committed_AS: 12319684 kB +VmallocTotal: 34359738367 kB +VmallocUsed: 252496 kB +VmallocChunk: 0 kB +Percpu: 9472 kB +HardwareCorrupted: 0 kB +AnonHugePages: 0 kB +ShmemHugePages: 6144 kB +ShmemPmdMapped: 0 kB +FileHugePages: 0 kB +FilePmdMapped: 0 kB +Unaccepted: 0 kB +HugePages_Total: 0 +HugePages_Free: 0 +HugePages_Rsvd: 0 +HugePages_Surp: 0 +Hugepagesize: 2048 kB +Hugetlb: 0 kB +DirectMap4k: 851768 kB +DirectMap2M: 15826944 kB +DirectMap1G: 16777216 kB + +/sys/kernel/mm/transparent_hugepage/enabled: always [madvise] never +/sys/kernel/mm/transparent_hugepage/hpage_pmd_size: 2097152 +/sys/kernel/mm/transparent_hugepage/shmem_enabled: always within_size advise [never] deny force +/sys/kernel/mm/transparent_hugepage/defrag (defrag/compaction efforts parameter): always defer defer+madvise [madvise] never + +Process Memory: +Virtual Size: 13446916K (peak: 13510788K) +Resident Set Size: 319092K (peak: 319092K) (anon: 173400K, file: 144668K, shmem: 1024K) +Swapped out: 0K +C-Heap outstanding allocations: 78977K, retained: 34794K +glibc malloc tunables: (default) + +/proc/sys/kernel/threads-max (system-wide limit on the number of threads): 255310 +/proc/sys/vm/max_map_count (maximum number of memory map areas a process may have): 2147483642 +/proc/sys/vm/swappiness (control to define how aggressively the kernel swaps out anonymous memory): 180 +/proc/sys/kernel/pid_max (system-wide limit on number of process identifiers): 4194304 + +container (cgroup) information: +container_type: cgroupv2 +cpu_cpuset_cpus: not supported +cpu_memory_nodes: not supported +active_processor_count: 8 +cpu_quota: not supported +cpu_period: not supported +cpu_shares: not supported +memory_limit_in_bytes: unlimited +memory_and_swap_limit_in_bytes: unlimited +memory_soft_limit_in_bytes: 0 +memory_usage_in_bytes: 5973584 k +memory_max_usage_in_bytes: not supported +rss_usage_in_bytes: 3563880 k +cache_usage_in_bytes: 2326868 k +memory_swap_current_in_bytes: 0 +memory_swap_max_limit_in_bytes: unlimited +maximum number of tasks: 38296 +current number of tasks: 330 + +Steal ticks since vm start: 0 +Steal ticks percentage since vm start: 0.000 + +CPU: total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 158 stepping 9 microcode 0xf8, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, adx, fma, vzeroupper, clflush, clflushopt, rdtscp, f16c +CPU Model and flags from /proc/cpuinfo: +model name : Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz +flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities + +Online cpus: 0-7 +Offline cpus: +BIOS frequency limitation: +Frequency switch latency (ns): 0 +Available cpu frequencies: +Current governor: powersave +Core performance/turbo boost: + +Memory: 4k page, physical 32767652k(23562748k free), swap 20970996k(20970996k free) +Page Sizes: 4k + +vm_info: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58) for linux-amd64 JRE (23.0.2+7-58), built on 2024-11-29T09:34:55Z with gcc 13.2.0 + +END. diff --git a/hs_err_pid85657.log b/hs_err_pid85657.log new file mode 100644 index 0000000000..e5175b0904 --- /dev/null +++ b/hs_err_pid85657.log @@ -0,0 +1,1598 @@ +# +# A fatal error has been detected by the Java Runtime Environment: +# +# SIGSEGV (0xb) at pc=0x00007903f6c5933a, pid=85657, tid=85703 +# +# JRE version: Java(TM) SE Runtime Environment (23.0.2+7) (build 23.0.2+7-58) +# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64) +# Problematic frame: +# C [libjemalloc.so+0x5933a] +# +# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/codex/java/prj/jmonkeyengine/core.85657) +# +# If you would like to submit a bug report, please visit: +# https://bugreport.java.com/bugreport/crash.jsp +# + +--------------- S U M M A R Y ------------ + +Command Line: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant jme3test.vulkan.VulkanTest + +Host: Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz, 8 cores, 31G, Pop!_OS 22.04 LTS +Time: Thu Jun 26 22:36:15 2025 EDT elapsed time: 6.457410 seconds (0d 0h 0m 6s) + +--------------- T H R E A D --------------- + +Current thread is native thread + +Stack: [0x00007903f4f3d000,0x00007903f503d000], sp=0x00007903f503b8d0, free space=1018k +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +C [libjemalloc.so+0x5933a] + +siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000000 + +Registers: +RAX=0x0000000000000000, RBX=0x0000000000000200, RCX=0x0000000000000000, RDX=0x00007903f6c78440 +RSP=0x00007903f503b8d0, RBP=0x00007903f503bdb0, RSI=0x0000000000000000, RDI=0x00007903f65a8208 +R8 =0x0000000000000000, R9 =0x0000000000000000, R10=0x0000000000000000, R11=0x00007903f65a8248 +R12=0x000000000000003f, R13=0x00007903f503bd70, R14=0x000000000000003f, R15=0x00007903f503bad0 +RIP=0x00007903f6c5933a, EFLAGS=0x0000000000010246, CSGSFS=0x002b000000000033, ERR=0x0000000000000004 + TRAPNO=0x000000000000000e + + +Top of Stack: (sp=0x00007903f503b8d0) +0x00007903f503b8d0: 00007904204e05a0 00007903f503b960 +0x00007903f503b8e0: 00007903f503b970 000079042754f211 +0x00007903f503b8f0: 0000000000000005 00007904204e0798 +0x00007903f503b900: 0000000000000005 0000000000000000 +0x00007903f503b910: 0000000000000001 00007904204e0230 +0x00007903f503b920: 00007904204e0798 00007904204e0230 +0x00007903f503b930: 000000010fd3f020 00007904204e05a0 +0x00007903f503b940: 0000000000000000 3430393700000000 +0x00007903f503b950: 3039306500000000 bf8eef8900000004 +0x00007903f503b960: 00000000ffffffff 0000000000000000 +0x00007903f503b970: 000079042720d4d0 000079042753c7c0 +0x00007903f503b980: 00007903f503b9b0 0000790426c78613 +0x00007903f503b990: 00007903f503bb88 000079042728849a +0x00007903f503b9a0: 0000000000000000 00007903f503baa0 +0x00007903f503b9b0: 00000000fbad8001 0000000000000002 +0x00007903f503b9c0: 00007904204e0230 00007903f7fff028 +0x00007903f503b9d0: 000079042741cae8 0000000000000004 +0x00007903f503b9e0: 00007903f503cb58 0000790427555f71 +0x00007903f503b9f0: 0000000000000005 0000000000000000 +0x00007903f503ba00: 000079042720d4d0 00007904272a53e0 +0x00007903f503ba10: 0000000000000000 00007903f503be00 +0x00007903f503ba20: 000079042741caf8 0000000000000000 +0x00007903f503ba30: 000079042741cae8 0000790427558dae +0x00007903f503ba40: 0000000000000001 000000000000006f +0x00007903f503ba50: 00007903f7fb17d0 0000000000000000 +0x00007903f503ba60: 00007902f0b80660 0000000000000000 +0x00007903f503ba70: 00000000000000ca f2eded9b3df5b717 +0x00007903f503ba80: 0000000000000213 0000790427417300 +0x00007903f503ba90: 0000000000000000 0000000000000200 +0x00007903f503baa0: 00007903f503bdb0 000000000000003f +0x00007903f503bab0: 00007903f503bd70 00007903f503bad0 +0x00007903f503bac0: 00007902f00024d0 00007903f6c592f8 + +Instructions: (pc=0x00007903f6c5933a) +0x00007903f6c5923a: f4 66 41 c1 ec 03 41 0f b7 d4 2b 95 40 ff ff ff +0x00007903f6c5924a: 48 c1 e2 03 e8 bd f0 fa ff 49 8b 4d 00 41 0f b7 +0x00007903f6c5925a: 7d 14 48 01 d9 89 fe 66 41 2b 7d 10 29 ce 66 c1 +0x00007903f6c5926a: ef 03 49 89 4d 00 66 c1 ee 03 66 39 fe 73 0c 4c +0x00007903f6c5927a: 8b bd 50 ff ff ff 66 41 89 4f 10 48 8d 65 d8 5b +0x00007903f6c5928a: 41 5c 41 5d 41 5e 41 5f 5d c3 29 d8 48 89 a5 48 +0x00007903f6c5929a: ff ff ff 4c 89 ff 44 0f b7 e0 44 0f b7 c0 66 89 +0x00007903f6c592aa: 45 c0 45 8d 74 24 01 4e 8d 1c c5 00 00 00 00 44 +0x00007903f6c592ba: 89 a5 40 ff ff ff 4a 8d 1c f5 0f 00 00 00 4c 29 +0x00007903f6c592ca: da 4c 89 9d 38 ff ff ff 81 e3 f0 ff 1f 00 4c 8d +0x00007903f6c592da: 14 16 4c 89 c2 48 8b b5 30 ff ff ff 48 29 dc 4c +0x00007903f6c592ea: 89 55 c8 49 89 e6 4c 89 f1 e8 28 ed ff ff 48 29 +0x00007903f6c592fa: dc 48 89 65 80 45 85 e4 0f 84 07 ff ff ff 44 8b +0x00007903f6c5930a: 8d 2c ff ff ff c7 45 b8 00 00 00 00 4c 89 7d b0 +0x00007903f6c5931a: 4d 89 f7 45 89 e6 4b 8d 0c 89 4c 89 4d a0 48 c1 +0x00007903f6c5932a: e1 03 48 89 4d 88 49 8b 37 48 8d 15 06 f1 01 00 +0x00007903f6c5933a: 44 8b 2e 41 81 e5 ff 0f 00 00 44 89 e8 4c 8b 24 +0x00007903f6c5934a: c2 4c 89 65 a8 4c 8b 06 48 8d 3d 67 72 02 00 4c +0x00007903f6c5935a: 8b 5d a0 49 c1 e8 26 41 83 e0 3f 46 8b 14 9f 44 +0x00007903f6c5936a: 89 c3 44 89 45 bc 4c 8d 0c dd 00 00 00 00 49 29 +0x00007903f6c5937a: d9 49 c1 e1 05 4d 01 ca 4d 01 e2 49 8d 7a 48 4c +0x00007903f6c5938a: 89 55 90 48 89 7d 98 e8 6a f0 fa ff 4c 8b 4d 90 +0x00007903f6c5939a: 85 c0 0f 85 ce 03 00 00 49 8d 49 40 48 89 4d 90 +0x00007903f6c593aa: 49 8b 1f 48 8b 55 a0 45 8d 5e ff 45 31 e4 48 8d +0x00007903f6c593ba: 05 a1 72 02 00 41 ba 01 00 00 00 41 83 e3 01 48 +0x00007903f6c593ca: 8b 3b 44 8b 04 90 48 8b 45 c8 89 fe 81 e6 ff 0f +0x00007903f6c593da: 00 00 48 8b 08 41 39 f5 0f 84 c0 02 00 00 4a 89 +0x00007903f6c593ea: 0c e0 4b 89 1c e7 41 bc 01 00 00 00 bb 01 00 00 +0x00007903f6c593fa: 00 41 83 fe 01 0f 86 51 02 00 00 45 85 db 74 38 +0x00007903f6c5940a: 49 8b 57 08 48 8b 48 08 48 8b 32 89 f7 81 e7 ff +0x00007903f6c5941a: 0f 00 00 41 39 fd 0f 84 6a 04 00 00 45 89 e3 41 +0x00007903f6c5942a: 83 c4 01 4a 89 0c d8 4b 89 14 df 48 83 c3 01 41 + + + +--------------- P R O C E S S --------------- + +VM state: not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap address: 0x000000060c000000, size: 8000 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 + +CDS archive(s) mapped at: [0x000079039e000000-0x000079039ed91000-0x000079039ed91000), size 14225408, SharedBaseAddress: 0x000079039e000000, ArchiveRelocationMode: 1. +Compressed class space mapped at: 0x000079039f000000-0x00007903df000000, reserved size: 1073741824 +Narrow klass base: 0x000079039e000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 + +GC Precious Log: + + +Heap: + garbage-first heap total reserved 8192000K, committed 28672K, used 14493K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 3 young (12288K), 1 survivors (4096K) + Metaspace used 22161K, committed 22464K, reserved 1114112K + class space used 2300K, committed 2432K, reserved 1048576K + +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, TAMS=top-at-mark-start, PB=parsable bottom +| 0|0x000000060c000000, 0x000000060c367560, 0x000000060c400000| 85%| O| |TAMS 0x000000060c000000| PB 0x000000060c000000| Untracked | 0 +| 1|0x000000060c400000, 0x000000060c6c3790, 0x000000060c800000| 69%| O| |TAMS 0x000000060c400000| PB 0x000000060c400000| Untracked | 0 +| 2|0x000000060c800000, 0x000000060c800000, 0x000000060cc00000| 0%| F| |TAMS 0x000000060c800000| PB 0x000000060c800000| Untracked | 0 +| 3|0x000000060cc00000, 0x000000060cc00000, 0x000000060d000000| 0%| F| |TAMS 0x000000060cc00000| PB 0x000000060cc00000| Untracked | 0 +| 4|0x000000060d000000, 0x000000060d2a9c00, 0x000000060d400000| 66%| E| |TAMS 0x000000060d000000| PB 0x000000060d000000| Complete | 0 +| 5|0x000000060d400000, 0x000000060d552c20, 0x000000060d800000| 33%| S|CS|TAMS 0x000000060d400000| PB 0x000000060d400000| Complete | 0 +| 6|0x000000060d800000, 0x000000060dc00000, 0x000000060dc00000|100%| E|CS|TAMS 0x000000060d800000| PB 0x000000060d800000| Complete | 0 + +Card table byte_map: [0x0000790406800000,0x00007904077a0000] _byte_map_base: 0x00007904037a0000 + +Marking Bits: (CMBitMap*) 0x0000790420059190 + Bits: [0x00007903fea00000, 0x0000790406700000) + +Polling page: 0x0000790427528000 + +Metaspace: + +Usage: + Non-class: 19.40 MB used. + Class: 2.25 MB used. + Both: 21.64 MB used. + +Virtual space: + Non-class space: 64.00 MB reserved, 19.56 MB ( 31%) committed, 1 nodes. + Class space: 1.00 GB reserved, 2.38 MB ( <1%) committed, 1 nodes. + Both: 1.06 GB reserved, 21.94 MB ( 2%) committed. + +Chunk freelists: + Non-Class: 11.89 MB + Class: 13.44 MB + Both: 25.33 MB + +MaxMetaspaceSize: unlimited +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 21.00 MB +Current GC threshold: 27.12 MB +CDS: on + - commit_granule_bytes: 65536. + - commit_granule_words: 8192. + - virtual_space_node_default_size: 8388608. + - enlarge_chunks_in_place: 1. + - use_allocation_guard: 0. + + +Internal statistics: + +num_allocs_failed_limit: 0. +num_arena_births: 334. +num_arena_deaths: 0. +num_vsnodes_births: 2. +num_vsnodes_deaths: 0. +num_space_committed: 351. +num_space_uncommitted: 0. +num_chunks_returned_to_freelist: 0. +num_chunks_taken_from_freelist: 687. +num_chunk_merges: 0. +num_chunk_splits: 437. +num_chunks_enlarged: 282. +num_inconsistent_stats: 0. + +CodeHeap 'non-profiled nmethods': size=120032Kb used=764Kb max_used=764Kb free=119267Kb + bounds [0x00007904102c8000, 0x0000790410538000, 0x0000790417800000] +CodeHeap 'profiled nmethods': size=120028Kb used=2918Kb max_used=2918Kb free=117109Kb + bounds [0x0000790408800000, 0x0000790408ae0000, 0x000079040fd37000] +CodeHeap 'non-nmethods': size=5700Kb used=2463Kb max_used=2482Kb free=3237Kb + bounds [0x000079040fd37000, 0x000079040ffb7000, 0x00007904102c8000] +CodeCache: size=245760Kb, used=6145Kb, max_used=6164Kb, free=239613Kb + total_blobs=3788, nmethods=2353, adapters=1341, full_count=0 +Compilation: enabled, stopped_count=0, restarted_count=0 + +Compilation events (20 events): +Event: 6.437 Thread 0x00007904201485b0 2487 3 com.jme3.util.IntMap::iterator (15 bytes) +Event: 6.438 Thread 0x00007904201485b0 nmethod 2487 0x0000790408ad4a88 code [0x0000790408ad4bc0, 0x0000790408ad4f50] +Event: 6.438 Thread 0x00007904201485b0 2488 3 com.jme3.util.IntMap$IntMapIterator:: (20 bytes) +Event: 6.438 Thread 0x00007904201485b0 nmethod 2488 0x0000790408ad4f88 code [0x0000790408ad50a0, 0x0000790408ad5278] +Event: 6.438 Thread 0x00007904201485b0 2489 3 com.jme3.util.IntMap$IntMapIterator::beginUse (24 bytes) +Event: 6.438 Thread 0x00007904201485b0 nmethod 2489 0x0000790408ad5308 code [0x0000790408ad5420, 0x0000790408ad55e8] +Event: 6.438 Thread 0x00007904201485b0 2490 3 com.jme3.util.IntMap$IntMapIterator::hasNext (20 bytes) +Event: 6.439 Thread 0x00007904201485b0 nmethod 2490 0x0000790408ad5608 code [0x0000790408ad5720, 0x0000790408ad5898] +Event: 6.453 Thread 0x00007904201485b0 2491 3 org.lwjgl.vulkan.VkClearValue::sizeof (4 bytes) +Event: 6.454 Thread 0x00007904201485b0 nmethod 2491 0x0000790408ad5908 code [0x0000790408ad5a20, 0x0000790408ad5b28] +Event: 6.454 Thread 0x00007904201485b0 2493 3 org.lwjgl.vulkan.VkOffset2D:: (7 bytes) +Event: 6.454 Thread 0x00007904201485b0 nmethod 2493 0x0000790408ad5c08 code [0x0000790408ad5d60, 0x0000790408ad6108] +Event: 6.454 Thread 0x00007904201485b0 2494 3 org.lwjgl.vulkan.VkOffset2D::set (14 bytes) +Event: 6.455 Thread 0x00007904201485b0 nmethod 2494 0x0000790408ad6188 code [0x0000790408ad62e0, 0x0000790408ad6730] +Event: 6.455 Thread 0x00007904201485b0 2495 3 org.lwjgl.vulkan.VkOffset2D::x (10 bytes) +Event: 6.455 Thread 0x00007904201485b0 nmethod 2495 0x0000790408ad6788 code [0x0000790408ad68c0, 0x0000790408ad6af8] +Event: 6.455 Thread 0x00007904201485b0 2492 3 org.lwjgl.vulkan.VkRenderPassBeginInfo::nclearValueCount (11 bytes) +Event: 6.455 Thread 0x00007904201485b0 nmethod 2492 0x0000790408ad6b88 code [0x0000790408ad6ca0, 0x0000790408ad6dc0] +Event: 6.455 Thread 0x00007904201485b0 2496 3 org.lwjgl.vulkan.VkOffset2D::malloc (19 bytes) +Event: 6.456 Thread 0x00007904201485b0 nmethod 2496 0x0000790408ad6e88 code [0x0000790408ad6fe0, 0x0000790408ad7330] + +GC Heap History (8 events): +Event: 2.375 GC heap before +{Heap before GC invocations=0 (full 0): + garbage-first heap total reserved 8192000K, committed 516096K, used 21627K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 6 young (24576K), 0 survivors (0K) + Metaspace used 16391K, committed 16640K, reserved 1114112K + class space used 1823K, committed 1920K, reserved 1048576K +} +Event: 2.386 GC heap after +{Heap after GC invocations=1 (full 1): + garbage-first heap total reserved 8192000K, committed 98304K, used 6315K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 0 young (0K), 0 survivors (0K) + Metaspace used 16391K, committed 16640K, reserved 1114112K + class space used 1823K, committed 1920K, reserved 1048576K +} +Event: 2.387 GC heap before +{Heap before GC invocations=1 (full 1): + garbage-first heap total reserved 8192000K, committed 98304K, used 6315K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 0 young (0K), 0 survivors (0K) + Metaspace used 16391K, committed 16640K, reserved 1114112K + class space used 1823K, committed 1920K, reserved 1048576K +} +Event: 2.399 GC heap after +{Heap after GC invocations=2 (full 2): + garbage-first heap total reserved 8192000K, committed 28672K, used 6315K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 0 young (0K), 0 survivors (0K) + Metaspace used 16391K, committed 16640K, reserved 1114112K + class space used 1823K, committed 1920K, reserved 1048576K +} +Event: 2.930 GC heap before +{Heap before GC invocations=2 (full 2): + garbage-first heap total reserved 8192000K, committed 28672K, used 14507K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 2 young (8192K), 0 survivors (0K) + Metaspace used 18709K, committed 19008K, reserved 1114112K + class space used 2041K, committed 2176K, reserved 1048576K +} +Event: 2.931 GC heap after +{Heap after GC invocations=3 (full 2): + garbage-first heap total reserved 8192000K, committed 28672K, used 7432K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 1 young (4096K), 1 survivors (4096K) + Metaspace used 18709K, committed 19008K, reserved 1114112K + class space used 2041K, committed 2176K, reserved 1048576K +} +Event: 2.983 GC heap before +{Heap before GC invocations=3 (full 2): + garbage-first heap total reserved 8192000K, committed 28672K, used 11528K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 2 young (8192K), 1 survivors (4096K) + Metaspace used 20103K, committed 20416K, reserved 1114112K + class space used 2172K, committed 2304K, reserved 1048576K +} +Event: 2.984 GC heap after +{Heap after GC invocations=4 (full 2): + garbage-first heap total reserved 8192000K, committed 28672K, used 7670K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 1 young (4096K), 1 survivors (4096K) + Metaspace used 20103K, committed 20416K, reserved 1114112K + class space used 2172K, committed 2304K, reserved 1048576K +} + +Dll operation events (12 events): +Event: 0.001 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +Event: 0.016 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +Event: 0.017 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +Event: 0.024 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +Event: 0.026 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +Event: 0.071 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +Event: 0.121 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +Event: 0.127 Loaded shared library /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +Event: 0.217 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +Event: 0.219 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +Event: 0.246 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so +Event: 0.323 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so + +Deoptimization events (20 events): +Event: 2.675 Thread 0x00007904206ae090 DEOPT PACKING pc=0x000079040888f38b sp=0x00007903f503a650 +Event: 2.675 Thread 0x00007904206ae090 DEOPT UNPACKING pc=0x000079040fd8b30f sp=0x00007903f5039b08 mode 0 +Event: 2.676 Thread 0x00007904206ae090 DEOPT PACKING pc=0x000079040888f38b sp=0x00007903f503a650 +Event: 2.676 Thread 0x00007904206ae090 DEOPT UNPACKING pc=0x000079040fd8b30f sp=0x00007903f5039b08 mode 0 +Event: 2.914 Thread 0x00007904206ae090 Uncommon trap: trap_request=0xffffff76 fr.pc=0x000079041034cde8 relative=0x00000000000001a8 +Event: 2.914 Thread 0x00007904206ae090 Uncommon trap: reason=predicate action=maybe_recompile pc=0x000079041034cde8 method=java.util.regex.Pattern$BmpCharPropertyGreedy.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 12 c2 +Event: 2.914 Thread 0x00007904206ae090 DEOPT PACKING pc=0x000079041034cde8 sp=0x00007903f503b0e0 +Event: 2.914 Thread 0x00007904206ae090 DEOPT UNPACKING pc=0x000079040fd8abf9 sp=0x00007903f503b0b8 mode 2 +Event: 2.968 Thread 0x00007904206ae090 Uncommon trap: trap_request=0xffffff6e fr.pc=0x00007904103669e8 relative=0x0000000000000148 +Event: 2.968 Thread 0x00007904206ae090 Uncommon trap: reason=loop_limit_check action=maybe_recompile pc=0x00007904103669e8 method=java.util.regex.Pattern$Start.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 34 c2 +Event: 2.968 Thread 0x00007904206ae090 DEOPT PACKING pc=0x00007904103669e8 sp=0x00007903f503b0a0 +Event: 2.968 Thread 0x00007904206ae090 DEOPT UNPACKING pc=0x000079040fd8abf9 sp=0x00007903f503b050 mode 2 +Event: 3.109 Thread 0x00007904206ae090 Uncommon trap: trap_request=0xffffff6e fr.pc=0x0000790410369538 relative=0x0000000000000538 +Event: 3.109 Thread 0x00007904206ae090 Uncommon trap: reason=loop_limit_check action=maybe_recompile pc=0x0000790410369538 method=java.util.regex.Pattern$Start.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 34 c2 +Event: 3.109 Thread 0x00007904206ae090 DEOPT PACKING pc=0x0000790410369538 sp=0x00007903f503aa60 +Event: 3.109 Thread 0x00007904206ae090 DEOPT UNPACKING pc=0x000079040fd8abf9 sp=0x00007903f503a9c0 mode 2 +Event: 3.145 Thread 0x00007904206ae090 DEOPT PACKING pc=0x0000790408a30c1f sp=0x00007903f503a7c0 +Event: 3.145 Thread 0x00007904206ae090 DEOPT UNPACKING pc=0x000079040fd8b30f sp=0x00007903f5039c00 mode 0 +Event: 3.147 Thread 0x00007904206ae090 DEOPT PACKING pc=0x00007904088b3254 sp=0x00007903f503a790 +Event: 3.147 Thread 0x00007904206ae090 DEOPT UNPACKING pc=0x000079040fd8b30f sp=0x00007903f5039c48 mode 0 + +Classes loaded (20 events): +Event: 2.954 Loading class javax/imageio/ImageTypeSpecifier$Packed +Event: 2.954 Loading class javax/imageio/ImageTypeSpecifier$Packed done +Event: 2.955 Loading class java/awt/image/DataBufferByte +Event: 2.955 Loading class java/awt/image/DataBufferByte done +Event: 2.955 Loading class sun/awt/image/ByteInterleavedRaster +Event: 2.955 Loading class sun/awt/image/ByteComponentRaster +Event: 2.955 Loading class sun/awt/image/ByteComponentRaster done +Event: 2.955 Loading class sun/awt/image/ByteInterleavedRaster done +Event: 2.955 Loading class sun/awt/image/ShortComponentRaster +Event: 2.955 Loading class sun/awt/image/ShortComponentRaster done +Event: 3.023 Loading class java/util/function/LongFunction +Event: 3.023 Loading class java/util/function/LongFunction done +Event: 3.401 Loading class sun/awt/AppContext$PostShutdownEventRunnable +Event: 3.401 Loading class sun/awt/AppContext$PostShutdownEventRunnable done +Event: 3.401 Loading class sun/awt/AWTAutoShutdown$1 +Event: 3.401 Loading class sun/awt/AWTAutoShutdown$1 done +Event: 6.456 Loading class java/lang/Throwable$WrappedPrintStream +Event: 6.456 Loading class java/lang/Throwable$PrintStreamOrWriter +Event: 6.456 Loading class java/lang/Throwable$PrintStreamOrWriter done +Event: 6.456 Loading class java/lang/Throwable$WrappedPrintStream done + +Classes unloaded (0 events): +No events + +Classes redefined (0 events): +No events + +Internal exceptions (20 events): +Event: 0.617 Thread 0x000079042067c030 Exception (0x000000062a0b8978) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.325 Thread 0x000079042067c030 Exception (0x000000062a3573b0) +thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] +Event: 2.369 Thread 0x000079042067c030 Exception (0x0000000629cc2cd0) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.416 Thread 0x000079042002d0f0 Exception (0x000000060d996940) +thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] +Event: 2.425 Thread 0x000079042002d0f0 Exception (0x000000060d9f4c80) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.426 Thread 0x000079042002d0f0 Exception (0x000000060da02ff0) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.601 Thread 0x00007904206ae090 Exception (0x000000060d599078) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 863] +Event: 2.914 Thread 0x00007904206ae090 Exception (0x000000060d73e808) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.980 Thread 0x00007904206ae090 Exception (0x000000060dbd2d10) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 2.983 Thread 0x00007904206ae090 Exception (0x000000060dbfbc78) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.020 Thread 0x00007904206ae090 Exception (0x000000060d900098) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.021 Thread 0x00007904206ae090 Exception (0x000000060d9057e0) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.035 Thread 0x00007904206ae090 Exception (0x000000060d9be038) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.036 Thread 0x00007904206ae090 Exception (0x000000060d9d08c8) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.037 Thread 0x00007904206ae090 Exception (0x000000060d9d4868) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.037 Thread 0x00007904206ae090 Exception (0x000000060d9d8168) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.043 Thread 0x00007904206ae090 Exception (0x000000060da3c3d0) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.077 Thread 0x00007904206ae090 Exception (0x000000060da8ce90) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.083 Thread 0x00007904206ae090 Exception (0x000000060daa78d0) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 3.105 Thread 0x00007904206ae090 Exception (0x000000060dae73e0) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] + +VM Operations (20 events): +Event: 0.135 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.135 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.231 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.231 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.248 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.248 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.257 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.257 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.651 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.651 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 2.375 Executing VM operation: G1CollectFull (System.gc()) +Event: 2.386 Executing VM operation: G1CollectFull (System.gc()) done +Event: 2.387 Executing VM operation: G1CollectFull (System.gc()) +Event: 2.399 Executing VM operation: G1CollectFull (System.gc()) done +Event: 2.423 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 2.423 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 2.930 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 2.931 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done +Event: 2.983 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 2.984 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done + +Memory protections (20 events): +Event: 0.016 Protecting memory [0x00007903fc500000,0x00007903fc504000] with protection modes 0 +Event: 0.016 Protecting memory [0x00007903fc400000,0x00007903fc404000] with protection modes 0 +Event: 0.021 Protecting memory [0x00007903fc230000,0x00007903fc234000] with protection modes 0 +Event: 0.022 Protecting memory [0x00007903fc130000,0x00007903fc134000] with protection modes 0 +Event: 0.052 Protecting memory [0x00007903fc030000,0x00007903fc034000] with protection modes 0 +Event: 0.269 Protecting memory [0x00007903f5f72000,0x00007903f5f76000] with protection modes 0 +Event: 0.271 Protecting memory [0x00007903f5e72000,0x00007903f5e76000] with protection modes 0 +Event: 0.273 Protecting memory [0x00007903f5d72000,0x00007903f5d76000] with protection modes 0 +Event: 0.273 Protecting memory [0x00007903f5c72000,0x00007903f5c76000] with protection modes 0 +Event: 0.323 Protecting memory [0x00007903f5b72000,0x00007903f5b76000] with protection modes 0 +Event: 0.544 Protecting memory [0x00007903fc030000,0x00007903fc034000] with protection modes 0 +Event: 0.648 Protecting memory [0x00007903f5a72000,0x00007903f5a76000] with protection modes 0 +Event: 0.681 Protecting memory [0x00007903f5872000,0x00007903f5876000] with protection modes 0 +Event: 2.348 Protecting memory [0x00007903f5a72000,0x00007903f5a76000] with protection modes 0 +Event: 2.371 Protecting memory [0x00007903f5772000,0x00007903f5776000] with protection modes 0 +Event: 2.431 Protecting memory [0x00007903f4f3d000,0x00007903f4f41000] with protection modes 0 +Event: 2.431 Protecting memory [0x0000790425b00000,0x0000790425b04000] with protection modes 0 +Event: 2.579 Protecting memory [0x00007903f5772000,0x00007903f5776000] with protection modes 0 +Event: 2.928 Protecting memory [0x00007903f5772000,0x00007903f5776000] with protection modes 0 +Event: 3.289 Protecting memory [0x00007903f5a72000,0x00007903f5a76000] with protection modes 0 + +Nmethod flushes (20 events): +Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x000079040888aa08 +Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x000079040888db88 +Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x00007904088adf88 +Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x00007904088ae888 +Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x00007904088dbd08 +Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x00007904088dcb08 +Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x00007904088dd588 +Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x00007904088fd388 +Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x0000790408923988 +Event: 2.391 Thread 0x000079042012e2f0 flushing osr nmethod 0x0000790408923e08 +Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x000079040893ec08 +Event: 2.391 Thread 0x000079042012e2f0 flushing osr nmethod 0x000079040894f808 +Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x0000790408976408 +Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x0000790408977b88 +Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x0000790408988308 +Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x0000790408989008 +Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x000079040898c808 +Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x00007904089b5d08 +Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x00007904089b6008 +Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x0000790408a0fc88 + +Events (20 events): +Event: 0.544 Thread 0x000079042067c030 Thread added: 0x0000790338061560 +Event: 0.648 Thread 0x00007904201485b0 Thread added: 0x000079036437f070 +Event: 0.681 Thread 0x000079042067c030 Thread added: 0x00007903380dcdf0 +Event: 1.035 Thread 0x000079036437f070 Thread exited: 0x000079036437f070 +Event: 2.348 Thread 0x000079042013eeb0 Thread added: 0x00007903682bda80 +Event: 2.371 Thread 0x00007904201485b0 Thread added: 0x0000790364420100 +Event: 2.431 Thread 0x000079042002d0f0 Thread added: 0x00007904206ae090 +Event: 2.431 Thread 0x000079042002d0f0 Thread exited: 0x000079042002d0f0 +Event: 2.431 Thread 0x000079042002d0f0 Thread added: 0x000079042002d0f0 +Event: 2.564 Thread 0x0000790364420100 Thread exited: 0x0000790364420100 +Event: 2.564 Thread 0x00007903682bda80 Thread exited: 0x00007903682bda80 +Event: 2.579 Thread 0x00007904201485b0 Thread added: 0x0000790364363310 +Event: 2.914 Thread 0x0000790364363310 Thread exited: 0x0000790364363310 +Event: 2.928 Thread 0x00007904206ae090 Thread added: 0x00007902f057f190 +Event: 3.289 Thread 0x00007904201485b0 Thread added: 0x0000790364489930 +Event: 3.402 Thread 0x000079042067af20 Thread exited: 0x000079042067af20 +Event: 3.402 Thread 0x000079042067c030 Thread exited: 0x000079042067c030 +Event: 3.420 Thread 0x0000790364489930 Thread exited: 0x0000790364489930 +Event: 5.580 Thread 0x0000790338061560 Thread exited: 0x0000790338061560 +Event: 6.456 Thread 0x00007904206ae090 Thread exited: 0x00007904206ae090 + + +Dynamic libraries: +60c000000-60dc00000 rw-p 00000000 00:00 0 +60dc00000-800000000 ---p 00000000 00:00 0 +558c5a9d0000-558c5a9d1000 r-xp 00000000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java +558c5a9d2000-558c5a9d3000 r--p 00001000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java +558c5a9d3000-558c5a9d4000 rw-p 00002000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java +558c6796b000-558c679b4000 rw-p 00000000 00:00 0 [heap] +7902a8000000-7902a80e0000 rw-p 00000000 00:00 0 +7902a80e0000-7902ac000000 ---p 00000000 00:00 0 +7902b0000000-7902b0021000 rw-p 00000000 00:00 0 +7902b0021000-7902b4000000 ---p 00000000 00:00 0 +7902b4000000-7902b4021000 rw-p 00000000 00:00 0 +7902b4021000-7902b8000000 ---p 00000000 00:00 0 +7902bc000000-7902bc021000 rw-p 00000000 00:00 0 +7902bc021000-7902c0000000 ---p 00000000 00:00 0 +7902c0000000-7902c0021000 rw-p 00000000 00:00 0 +7902c0021000-7902c4000000 ---p 00000000 00:00 0 +7902c8000000-7902c8021000 rw-p 00000000 00:00 0 +7902c8021000-7902cc000000 ---p 00000000 00:00 0 +7902cc000000-7902cc021000 rw-p 00000000 00:00 0 +7902cc021000-7902d0000000 ---p 00000000 00:00 0 +7902d4000000-7902d4021000 rw-p 00000000 00:00 0 +7902d4021000-7902d8000000 ---p 00000000 00:00 0 +7902d8000000-7902d80c8000 rw-p 00000000 00:00 0 +7902d80c8000-7902dc000000 ---p 00000000 00:00 0 +7902e0000000-7902e0021000 rw-p 00000000 00:00 0 +7902e0021000-7902e4000000 ---p 00000000 00:00 0 +7902e5000000-7902eb712000 r-xp 00000000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 +7902eb712000-7902ebf30000 r--p 06711000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 +7902ebf30000-7902ebf76000 rw-p 06f2f000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 +7902ebf76000-7902ebff2000 rw-p 00000000 00:00 0 +7902ec000000-7902ec021000 rw-p 00000000 00:00 0 +7902ec021000-7902f0000000 ---p 00000000 00:00 0 +7902f0000000-7902f3148000 rw-p 00000000 00:00 0 +7902f3148000-7902f4000000 ---p 00000000 00:00 0 +7902f8000000-7902f8021000 rw-p 00000000 00:00 0 +7902f8021000-7902fc000000 ---p 00000000 00:00 0 +7902fc000000-7902fc021000 rw-p 00000000 00:00 0 +7902fc021000-790300000000 ---p 00000000 00:00 0 +790304000000-790304021000 rw-p 00000000 00:00 0 +790304021000-790308000000 ---p 00000000 00:00 0 +790308000000-790308021000 rw-p 00000000 00:00 0 +790308021000-79030c000000 ---p 00000000 00:00 0 +790310000000-790310021000 rw-p 00000000 00:00 0 +790310021000-790314000000 ---p 00000000 00:00 0 +790314000000-790314021000 rw-p 00000000 00:00 0 +790314021000-790318000000 ---p 00000000 00:00 0 +79031c000000-79031c021000 rw-p 00000000 00:00 0 +79031c021000-790320000000 ---p 00000000 00:00 0 +790320000000-7903202bd000 rw-p 00000000 00:00 0 +7903202bd000-790324000000 ---p 00000000 00:00 0 +790328000000-790328021000 rw-p 00000000 00:00 0 +790328021000-79032c000000 ---p 00000000 00:00 0 +79032c000000-79032c36a000 rw-p 00000000 00:00 0 +79032c36a000-790330000000 ---p 00000000 00:00 0 +790334000000-790334021000 rw-p 00000000 00:00 0 +790334021000-790338000000 ---p 00000000 00:00 0 +790338000000-790338142000 rw-p 00000000 00:00 0 +790338142000-79033c000000 ---p 00000000 00:00 0 +790340000000-790340021000 rw-p 00000000 00:00 0 +790340021000-790344000000 ---p 00000000 00:00 0 +790344000000-790344021000 rw-p 00000000 00:00 0 +790344021000-790348000000 ---p 00000000 00:00 0 +79034c000000-79034c021000 rw-p 00000000 00:00 0 +79034c021000-790350000000 ---p 00000000 00:00 0 +790350000000-7903501a6000 rw-p 00000000 00:00 0 +7903501a6000-790354000000 ---p 00000000 00:00 0 +790358000000-790358021000 rw-p 00000000 00:00 0 +790358021000-79035c000000 ---p 00000000 00:00 0 +79035c000000-79035c021000 rw-p 00000000 00:00 0 +79035c021000-790360000000 ---p 00000000 00:00 0 +790362e00000-790362f25000 r--p 00000000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +790362f25000-7903633e5000 r-xp 00125000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +7903633e5000-790363519000 r--p 005e5000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +790363519000-79036351a000 ---p 00719000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +79036351a000-79036357d000 r--p 00719000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +79036357d000-790363587000 rw-p 0077c000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +790363587000-790363598000 rw-p 00000000 00:00 0 +790363600000-790363601000 ---p 00000000 00:00 0 +790363601000-790363e01000 rw-p 00000000 00:00 0 +790364000000-7903644a1000 rw-p 00000000 00:00 0 +7903644a1000-790368000000 ---p 00000000 00:00 0 +790368000000-790368591000 rw-p 00000000 00:00 0 +790368591000-79036c000000 ---p 00000000 00:00 0 +79036c400000-79036c401000 ---p 00000000 00:00 0 +79036c401000-79036cc01000 rw-p 00000000 00:00 0 +79036ce00000-79036ce01000 ---p 00000000 00:00 0 +79036ce01000-79036d601000 rw-p 00000000 00:00 0 +79036d800000-79036d801000 ---p 00000000 00:00 0 +79036d801000-79036e001000 rw-p 00000000 00:00 0 +79036e200000-79036e201000 ---p 00000000 00:00 0 +79036e201000-79036ea01000 rw-p 00000000 00:00 0 +79036ec00000-79036ec01000 ---p 00000000 00:00 0 +79036ec01000-79036f401000 rw-p 00000000 00:00 0 +79036f600000-79036f62f000 r--p 00000000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +79036f62f000-79036fd02000 r-xp 0002f000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +79036fd02000-79036fe24000 r--p 00702000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +79036fe24000-79036fe35000 r--p 00823000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +79036fe35000-79036feb3000 rw-p 00834000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +79036feb3000-79036fec7000 rw-p 00000000 00:00 0 +790370000000-790370021000 rw-p 00000000 00:00 0 +790370021000-790374000000 ---p 00000000 00:00 0 +790374000000-790374021000 rw-p 00000000 00:00 0 +790374021000-790378000000 ---p 00000000 00:00 0 +790378200000-790378ef5000 r--p 00000000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +790378ef5000-7903798d8000 r-xp 00cf5000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +7903798d8000-790379ce9000 r--p 016d8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +790379ce9000-79037a16b000 r--p 01ae8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +79037a16b000-79037a173000 rw-p 01f6a000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +79037a173000-79037a17e000 rw-p 00000000 00:00 0 +79037a200000-79037a201000 ---p 00000000 00:00 0 +79037a201000-79037aa01000 rw-p 00000000 00:00 0 +79037ac00000-79037ac01000 ---p 00000000 00:00 0 +79037ac01000-79037b401000 rw-p 00000000 00:00 0 +79037b600000-79037b601000 ---p 00000000 00:00 0 +79037b601000-79037be01000 rw-p 00000000 00:00 0 +79037c000000-79037c021000 rw-p 00000000 00:00 0 +79037c021000-790380000000 ---p 00000000 00:00 0 +790380000000-790380021000 rw-p 00000000 00:00 0 +790380021000-790384000000 ---p 00000000 00:00 0 +790384600000-790384601000 ---p 00000000 00:00 0 +790384601000-790384e01000 rw-p 00000000 00:00 0 +790385000000-790385001000 ---p 00000000 00:00 0 +790385001000-790385801000 rw-p 00000000 00:00 0 +790385a00000-790385a01000 ---p 00000000 00:00 0 +790385a01000-790386201000 rw-p 00000000 00:00 0 +790386400000-79038648d000 r--p 00000000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +79038648d000-790386bf5000 r-xp 0008d000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +790386bf5000-790387482000 r--p 007f5000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +790387482000-7903874c4000 r--p 01081000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +7903874c4000-7903874c7000 rw-p 010c3000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +7903874c7000-7903874cd000 rw-p 00000000 00:00 0 +790387600000-79038765b000 r--p 00000000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +79038765b000-7903879d9000 r-xp 0005b000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +7903879d9000-790387dd5000 r--p 003d9000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +790387dd5000-790387e10000 r--p 007d4000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +790387e10000-790387e15000 rw-p 0080f000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +790387e15000-790387e40000 rw-p 00000000 00:00 0 +790388000000-790388021000 rw-p 00000000 00:00 0 +790388021000-79038c000000 ---p 00000000 00:00 0 +79038c000000-79038c638000 rw-p 00000000 00:00 0 +79038c638000-790390000000 ---p 00000000 00:00 0 +790390000000-790390200000 rw-s 00000000 00:06 1017 /dev/nvidiactl +790390200000-790390222000 r-xp 00000000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +790390222000-790390421000 ---p 00022000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +790390421000-790390429000 r--p 00021000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +790390429000-79039042a000 rw-p 00029000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +79039042a000-79039042b000 rw-p 00000000 00:00 0 +790390600000-790390800000 rw-s 00000000 00:06 1022 /dev/nvidia0 +790390800000-79039086e000 r--p 00000000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +79039086e000-790390dd5000 r-xp 0006e000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +790390dd5000-7903914e8000 r--p 005d5000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +7903914e8000-7903914e9000 ---p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +7903914e9000-790391526000 r--p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +790391526000-790391529000 rw-p 00d25000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +790391529000-79039152b000 rw-p 00000000 00:00 0 +790391600000-7903917c4000 r--p 00000000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +7903917c4000-7903934c4000 r-xp 001c4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +7903934c4000-790393b39000 r--p 01ec4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +790393b39000-790393b3a000 ---p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +790393b3a000-790393d1a000 r--p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +790393d1a000-790393d93000 rw-p 02719000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +790393d93000-790393e08000 rw-p 00000000 00:00 0 +790393e0d000-790393e8d000 rw-s 00000000 00:06 1017 /dev/nvidiactl +790393e8d000-790393f8d000 rw-s 00000000 00:06 1017 /dev/nvidiactl +790393f8d000-790393fa0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +790393fa0000-790393fe0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +790394000000-7903943f0000 rw-p 00000000 00:00 0 +7903943f0000-7903945b0000 rw-p 00000000 00:00 0 +7903945b0000-7903946f0000 rw-p 00000000 00:00 0 +7903946f0000-790394710000 rw-p 00000000 00:00 0 +790394710000-790394730000 rw-p 00000000 00:00 0 +790394730000-790394770000 rw-p 00000000 00:00 0 +790394770000-7903949f0000 rw-p 00000000 00:00 0 +7903949f0000-790394a10000 rw-p 00000000 00:00 0 +790394a10000-790394a30000 rw-p 00000000 00:00 0 +790394a30000-790394a70000 rw-p 00000000 00:00 0 +790394a70000-790394af0000 rw-p 00000000 00:00 0 +790394af0000-790394cf0000 rw-p 00000000 00:00 0 +790394cf0000-790394d10000 rw-p 00000000 00:00 0 +790394d10000-790394d30000 rw-p 00000000 00:00 0 +790394d30000-790394d70000 rw-p 00000000 00:00 0 +790394d70000-790394ef0000 rw-p 00000000 00:00 0 +790394ef0000-790394ff0000 rw-p 00000000 00:00 0 +790394ff0000-7903950f0000 rw-p 00000000 00:00 0 +7903950f0000-790395170000 rw-p 00000000 00:00 0 +790395170000-790395200000 ---p 00000000 00:00 0 +790395200000-790395420000 rw-p 00000000 00:00 0 +790395420000-790398000000 ---p 00000000 00:00 0 +790398000000-790398021000 rw-p 00000000 00:00 0 +790398021000-79039c000000 ---p 00000000 00:00 0 +79039c000000-79039c200000 rw-s 00000000 00:06 1017 /dev/nvidiactl +79039c200000-79039c201000 r--p 00000000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +79039c201000-79039c202000 r-xp 00001000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +79039c202000-79039de1c000 r--p 00002000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +79039de1c000-79039de1d000 r--p 01c1b000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +79039de1d000-79039de1e000 rw-p 01c1c000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +79039de20000-79039de60000 rw-s 00000000 00:06 1017 /dev/nvidiactl +79039de60000-79039de80000 rw-s 00000000 00:06 1017 /dev/nvidiactl +79039de80000-79039df00000 rw-s 00000000 00:06 1017 /dev/nvidiactl +79039df00000-79039e000000 rw-s 00000000 00:06 1017 /dev/nvidiactl +79039e000000-79039ed91000 rw-p 00001000 103:03 10498862 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/classes.jsa +79039ed91000-79039f000000 ---p 00000000 00:00 0 +79039f000000-79039f030000 rw-p 00000000 00:00 0 +79039f030000-79039f090000 rw-p 00000000 00:00 0 +79039f090000-79039f0b0000 rw-p 00000000 00:00 0 +79039f0b0000-79039f130000 rw-p 00000000 00:00 0 +79039f130000-79039f150000 rw-p 00000000 00:00 0 +79039f150000-79039f1b0000 rw-p 00000000 00:00 0 +79039f1b0000-79039f1d0000 rw-p 00000000 00:00 0 +79039f1d0000-79039f230000 rw-p 00000000 00:00 0 +79039f230000-79039f250000 rw-p 00000000 00:00 0 +79039f250000-79039f280000 ---p 00000000 00:00 0 +79039f280000-79039f290000 rw-p 00000000 00:00 0 +79039f290000-7903df000000 ---p 00000000 00:00 0 +7903df004000-7903df005000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7903df005000-7903df009000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903df009000-7903df00a000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7903df00a000-7903df00c000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903df00c000-7903df00d000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7903df00d000-7903df04d000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903df04d000-7903df06d000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903df06d000-7903df0ad000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903df0cd000-7903df0e0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903df0e0000-7903df120000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903df120000-7903df140000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903df140000-7903df240000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903df240000-7903df280000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903df280000-7903df2c0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903df2c0000-7903df3c0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903df3c0000-7903df400000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903df400000-7903df493000 r--p 00000000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +7903df493000-7903df8e6000 r-xp 00093000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +7903df8e6000-7903dfdfc000 r--p 004e6000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +7903dfdfc000-7903dfe34000 r--p 009fb000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +7903dfe34000-7903dfe44000 rw-p 00a33000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +7903dfe44000-7903dfe49000 rw-p 00000000 00:00 0 +7903dfe49000-7903dfe4d000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903dfe4d000-7903dfe60000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903dfe60000-7903dfe80000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903dfe80000-7903dff00000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903dff00000-7903e0000000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903e0000000-7903e0021000 rw-p 00000000 00:00 0 +7903e0021000-7903e4000000 ---p 00000000 00:00 0 +7903e4000000-7903e4021000 rw-p 00000000 00:00 0 +7903e4021000-7903e8000000 ---p 00000000 00:00 0 +7903e8000000-7903e8001000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7903e8001000-7903e8002000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7903e8022000-7903e8035000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903e8035000-7903e8055000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903e8055000-7903e80d5000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903e80d5000-7903e8115000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903e8115000-7903e8135000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903e8135000-7903e8175000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903e8175000-7903e8195000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903e8195000-7903e81d5000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903e81d5000-7903e841a000 rw-s 00000000 00:01 7173 /memfd:/.nvidia_drv.XXXXXX (deleted) +7903e841a000-7903e855b000 rw-s 00000000 103:03 13372247 /home/codex/.cache/mesa_shader_cache/index +7903e855b000-7903e856c000 r--p 00000000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +7903e856c000-7903e85ae000 r-xp 00011000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +7903e85ae000-7903e85c6000 r--p 00053000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +7903e85c6000-7903e85d4000 r--p 0006a000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +7903e85d4000-7903e85d6000 rw-p 00078000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so +7903e85d6000-7903e85da000 r--p 00000000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +7903e85da000-7903e85f6000 r-xp 00004000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +7903e85f6000-7903e85fc000 r--p 00020000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +7903e85fc000-7903e85fd000 ---p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +7903e85fd000-7903e85ff000 r--p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +7903e85ff000-7903e8600000 rw-p 00028000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +7903e8600000-7903e8616000 r--p 00000000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +7903e8616000-7903e8706000 r-xp 00016000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +7903e8706000-7903e8779000 r--p 00106000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +7903e8779000-7903e8780000 r--p 00178000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +7903e8780000-7903e8787000 rw-p 0017f000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +7903e8787000-7903e8802000 rw-p 00000000 00:00 0 +7903e8802000-7903e8803000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903e8803000-7903e8804000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903e8804000-7903e8805000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903e8805000-7903e8818000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903e8818000-7903e881a000 r--p 00000000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +7903e881a000-7903e8823000 r-xp 00002000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +7903e8823000-7903e8826000 r--p 0000b000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +7903e8826000-7903e8827000 ---p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +7903e8827000-7903e8828000 r--p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +7903e8828000-7903e8829000 rw-p 0000f000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +7903e8829000-7903e882b000 rw-p 00000000 00:00 0 +7903e882b000-7903e882d000 r--p 00000000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +7903e882d000-7903e8898000 r-xp 00002000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +7903e8898000-7903e88c0000 r--p 0006d000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +7903e88c0000-7903e88c1000 r--p 00094000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +7903e88c1000-7903e88c2000 rw-p 00095000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +7903e88c2000-7903e88d1000 r--p 00000000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +7903e88d1000-7903e89b7000 r-xp 0000f000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +7903e89b7000-7903e89f5000 r--p 000f5000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +7903e89f5000-7903e89f6000 ---p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +7903e89f6000-7903e89f9000 r--p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +7903e89f9000-7903e89ff000 rw-p 00136000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +7903e89ff000-7903e9322000 rw-p 00000000 00:00 0 +7903e9322000-7903e9323000 rw-s 00044000 00:01 7173 /memfd:/.nvidia_drv.XXXXXX (deleted) +7903e9323000-7903e9324000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7903e9324000-7903e9325000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7903e9325000-7903e9327000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903e9327000-7903e9328000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7903e9328000-7903e9348000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903e9348000-7903e9352000 r--p 00000000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +7903e9352000-7903e935c000 r-xp 0000a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +7903e935c000-7903e9363000 r--p 00014000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +7903e9363000-7903e936c000 r--p 0001a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +7903e936c000-7903e936d000 rw-p 00023000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +7903e936d000-7903e9379000 r--p 00000000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +7903e9379000-7903e9399000 r-xp 0000c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +7903e9399000-7903e93a5000 r--p 0002c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +7903e93a5000-7903e93af000 r--p 00037000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +7903e93af000-7903e93b0000 rw-p 00041000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +7903e93b0000-7903e93c3000 r--p 00000000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +7903e93c3000-7903e93e2000 r-xp 00013000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +7903e93e2000-7903e93ef000 r--p 00032000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +7903e93ef000-7903e93ff000 r--p 0003e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +7903e93ff000-7903e9400000 rw-p 0004e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +7903e9400000-7903e9401000 ---p 00000000 00:00 0 +7903e9401000-7903e9c01000 rw-p 00000000 00:00 0 +7903e9c01000-7903e9c02000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903e9c02000-7903e9c06000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903e9c06000-7903e9c07000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7903e9c07000-7903e9c09000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903e9c09000-7903e9c14000 r--p 00000000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +7903e9c14000-7903e9c42000 r-xp 0000b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +7903e9c42000-7903e9c54000 r--p 00039000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +7903e9c54000-7903e9c55000 ---p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +7903e9c55000-7903e9c56000 r--p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +7903e9c56000-7903e9c57000 rw-p 0004c000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +7903e9c57000-7903e9c6a000 r--p 00000000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +7903e9c6a000-7903e9ce9000 r-xp 00013000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +7903e9ce9000-7903e9d14000 r--p 00092000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +7903e9d14000-7903e9d15000 ---p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +7903e9d15000-7903e9d1c000 r--p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +7903e9d1c000-7903e9d1d000 rw-p 000c4000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +7903e9d1d000-7903e9d1e000 rw-p 00000000 00:00 0 +7903e9d1e000-7903e9d51000 r--p 00000000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +7903e9d51000-7903e9db4000 r-xp 00033000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +7903e9db4000-7903e9dd3000 r--p 00096000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +7903e9dd3000-7903e9dfe000 r--p 000b4000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +7903e9dfe000-7903e9dff000 rw-p 000df000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +7903e9dff000-7903e9e00000 rw-p 00000000 00:00 0 +7903e9e00000-7903ea041000 r-xp 00000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +7903ea041000-7903ea062000 rwxp 00241000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +7903ea062000-7903ea200000 r-xp 00262000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +7903ea200000-7903eae00000 r-xp 00400000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +7903eae00000-7903ebcab000 r-xp 01000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +7903ebcab000-7903ebe10000 r--p 01eaa000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +7903ebe10000-7903ebe7e000 rw-p 0200f000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +7903ebe7e000-7903ebe9c000 rw-p 00000000 00:00 0 +7903ebe9c000-7903ebea0000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903ebea0000-7903ebea4000 r--p 00000000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +7903ebea4000-7903ebeb4000 r-xp 00004000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +7903ebeb4000-7903ebeb7000 r--p 00014000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +7903ebeb7000-7903ebeb8000 r--p 00016000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +7903ebeb8000-7903ebeb9000 rw-p 00017000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +7903ebeb9000-7903ebee8000 r--p 00000000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +7903ebee8000-7903ebfa4000 r-xp 0002f000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +7903ebfa4000-7903ebfef000 r--p 000eb000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +7903ebfef000-7903ebffd000 r--p 00135000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +7903ebffd000-7903ebfff000 rw-p 00143000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +7903ebfff000-7903ec000000 rw-p 00000000 00:00 0 +7903ec000000-7903ec021000 rw-p 00000000 00:00 0 +7903ec021000-7903f0000000 ---p 00000000 00:00 0 +7903f0000000-7903f0021000 rw-p 00000000 00:00 0 +7903f0021000-7903f4000000 ---p 00000000 00:00 0 +7903f4000000-7903f4001000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7903f4001000-7903f4002000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7903f4002000-7903f4003000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903f4003000-7903f4007000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903f4007000-7903f4010000 rw-s 00000000 00:01 666571 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) +7903f4010000-7903f4019000 rw-s 00000000 00:01 666570 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) +7903f4019000-7903f401b000 r--p 00000000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +7903f401b000-7903f401f000 r-xp 00002000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +7903f401f000-7903f4021000 r--p 00006000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +7903f4021000-7903f4022000 r--p 00007000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +7903f4022000-7903f4023000 rw-p 00008000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so +7903f4023000-7903f4089000 r--p 00000000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +7903f4089000-7903f417c000 r-xp 00066000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +7903f417c000-7903f4208000 r--p 00159000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +7903f4208000-7903f421b000 r--p 001e4000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +7903f421b000-7903f421c000 rw-p 001f7000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +7903f421c000-7903f421e000 rw-p 00000000 00:00 0 +7903f421e000-7903f424d000 r--p 00000000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +7903f424d000-7903f43a0000 r-xp 0002f000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +7903f43a0000-7903f43f4000 r--p 00182000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +7903f43f4000-7903f43f5000 ---p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +7903f43f5000-7903f43fe000 r--p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +7903f43fe000-7903f43ff000 rw-p 001df000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +7903f43ff000-7903f4400000 rw-p 00000000 00:00 0 +7903f4400000-7903f449a000 r--p 00000000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +7903f449a000-7903f45ab000 r-xp 0009a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +7903f45ab000-7903f461a000 r--p 001ab000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +7903f461a000-7903f461b000 ---p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +7903f461b000-7903f4626000 r--p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +7903f4626000-7903f4629000 rw-p 00225000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +7903f4629000-7903f462c000 rw-p 00000000 00:00 0 +7903f462c000-7903f462d000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7903f462d000-7903f4633000 r--p 00000000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +7903f4633000-7903f464d000 r-xp 00006000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +7903f464d000-7903f4654000 r--p 00020000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +7903f4654000-7903f4655000 ---p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +7903f4655000-7903f4656000 r--p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +7903f4656000-7903f4657000 rw-p 00028000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +7903f4657000-7903f4659000 rw-p 00000000 00:00 0 +7903f4659000-7903f465d000 r--p 00000000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +7903f465d000-7903f4673000 r-xp 00004000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +7903f4673000-7903f467d000 r--p 0001a000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +7903f467d000-7903f467e000 r--p 00023000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +7903f467e000-7903f467f000 rw-p 00024000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +7903f467f000-7903f4681000 r--p 00000000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +7903f4681000-7903f469a000 r-xp 00002000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +7903f469a000-7903f469c000 r--p 0001b000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +7903f469c000-7903f469d000 ---p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +7903f469d000-7903f469e000 r--p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +7903f469e000-7903f469f000 rw-p 0001e000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +7903f469f000-7903f46a3000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903f46a3000-7903f46a5000 r--p 00000000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +7903f46a5000-7903f46ad000 r-xp 00002000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +7903f46ad000-7903f46af000 r--p 0000a000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +7903f46af000-7903f46b0000 r--p 0000b000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +7903f46b0000-7903f46b1000 rw-p 0000c000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +7903f46b1000-7903f46b3000 r--p 00000000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +7903f46b3000-7903f46bb000 r-xp 00002000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +7903f46bb000-7903f46bc000 r--p 0000a000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +7903f46bc000-7903f46bd000 ---p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +7903f46bd000-7903f46be000 r--p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +7903f46be000-7903f46bf000 rw-p 0000c000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +7903f46bf000-7903f46c3000 r--p 00000000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +7903f46c3000-7903f46d8000 r-xp 00004000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +7903f46d8000-7903f46de000 r--p 00019000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +7903f46de000-7903f46df000 ---p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +7903f46df000-7903f46e1000 r--p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +7903f46e1000-7903f46e2000 rw-p 00021000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +7903f46e2000-7903f46e5000 r--p 00000000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +7903f46e5000-7903f4706000 r-xp 00003000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +7903f4706000-7903f4712000 r--p 00024000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +7903f4712000-7903f4713000 ---p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +7903f4713000-7903f4714000 r--p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +7903f4714000-7903f4715000 rw-p 00031000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +7903f4715000-7903f4723000 r--p 00000000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +7903f4723000-7903f4734000 r-xp 0000e000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +7903f4734000-7903f4742000 r--p 0001f000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +7903f4742000-7903f4746000 r--p 0002c000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +7903f4746000-7903f4747000 rw-p 00030000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +7903f4747000-7903f474f000 r--p 00000000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +7903f474f000-7903f476d000 r-xp 00008000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +7903f476d000-7903f477a000 r--p 00026000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +7903f477a000-7903f477c000 r--p 00032000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +7903f477c000-7903f477d000 rw-p 00034000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +7903f477d000-7903f4781000 rw-p 00000000 00:00 0 +7903f4781000-7903f4783000 r--p 00000000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +7903f4783000-7903f478a000 r-xp 00002000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +7903f478a000-7903f478b000 r--p 00009000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +7903f478b000-7903f478c000 ---p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +7903f478c000-7903f478d000 r--p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +7903f478d000-7903f478e000 rw-p 0000b000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +7903f478e000-7903f4791000 r--p 00000000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +7903f4791000-7903f47a8000 r-xp 00003000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +7903f47a8000-7903f47ac000 r--p 0001a000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +7903f47ac000-7903f47ad000 r--p 0001d000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +7903f47ad000-7903f47ae000 rw-p 0001e000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +7903f47ae000-7903f47b2000 r--p 00000000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +7903f47b2000-7903f47d1000 r-xp 00004000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +7903f47d1000-7903f47db000 r--p 00023000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +7903f47db000-7903f47dc000 ---p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +7903f47dc000-7903f47de000 r--p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +7903f47de000-7903f47df000 rw-p 0002f000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +7903f47df000-7903f47e4000 r--p 00000000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +7903f47e4000-7903f47ef000 r-xp 00005000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +7903f47ef000-7903f47f3000 r--p 00010000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +7903f47f3000-7903f47f4000 ---p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +7903f47f4000-7903f47f5000 r--p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +7903f47f5000-7903f47f6000 rw-p 00015000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +7903f47f6000-7903f4800000 r--p 00000000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +7903f4800000-7903f48b2000 r-xp 0000a000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +7903f48b2000-7903f48c3000 r--p 000bc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +7903f48c3000-7903f48c4000 r--p 000cc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +7903f48c4000-7903f48c5000 rw-p 000cd000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +7903f48c5000-7903f48ca000 r--p 00000000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +7903f48ca000-7903f48d0000 r-xp 00005000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +7903f48d0000-7903f48d3000 r--p 0000b000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +7903f48d3000-7903f48d5000 r--p 0000d000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +7903f48d5000-7903f48d6000 rw-p 0000f000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +7903f48d6000-7903f4927000 r--p 00000000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +7903f4927000-7903f4983000 r-xp 00051000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +7903f4983000-7903f49b8000 rwxp 000ad000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +7903f49b8000-7903f49b9000 r-xp 000e2000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +7903f49b9000-7903f49d9000 r--p 000e3000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +7903f49d9000-7903f49f9000 r--p 00102000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +7903f49f9000-7903f49fe000 rw-p 00122000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +7903f49fe000-7903f4a00000 rw-p 00000000 00:00 0 +7903f4a00000-7903f4e00000 rw-p 00000000 00:00 0 +7903f4e00000-7903f4e02000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903f4e02000-7903f4e05000 r--p 00000000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +7903f4e05000-7903f4e08000 r-xp 00003000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +7903f4e08000-7903f4e09000 r--p 00006000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +7903f4e09000-7903f4e0a000 ---p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +7903f4e0a000-7903f4e0b000 r--p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +7903f4e0b000-7903f4e0c000 rw-p 00008000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +7903f4e0c000-7903f4e1c000 r--p 00000000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +7903f4e1c000-7903f4e7a000 r-xp 00010000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +7903f4e7a000-7903f4e96000 r--p 0006e000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +7903f4e96000-7903f4e97000 ---p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +7903f4e97000-7903f4e9d000 r--p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +7903f4e9d000-7903f4e9e000 rw-p 00090000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +7903f4e9e000-7903f4ea6000 rw-p 00000000 00:00 0 +7903f4ea6000-7903f4eb6000 r--p 00000000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +7903f4eb6000-7903f4ed7000 r-xp 00010000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +7903f4ed7000-7903f4f13000 r--p 00031000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +7903f4f13000-7903f4f17000 r--p 0006c000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +7903f4f17000-7903f4f1a000 rw-p 00070000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +7903f4f1a000-7903f4f3d000 rw-p 00000000 00:00 0 +7903f4f3d000-7903f4f41000 ---p 00000000 00:00 0 +7903f4f41000-7903f503d000 rw-p 00000000 00:00 0 +7903f503d000-7903f503e000 ---p 00000000 00:00 0 +7903f503e000-7903f513e000 rw-p 00000000 00:00 0 +7903f513e000-7903f513f000 ---p 00000000 00:00 0 +7903f513f000-7903f523f000 rw-p 00000000 00:00 0 +7903f523f000-7903f5240000 ---p 00000000 00:00 0 +7903f5240000-7903f5340000 rw-p 00000000 00:00 0 +7903f5340000-7903f5341000 ---p 00000000 00:00 0 +7903f5341000-7903f5441000 rw-p 00000000 00:00 0 +7903f5441000-7903f5442000 ---p 00000000 00:00 0 +7903f5442000-7903f5542000 rw-p 00000000 00:00 0 +7903f5542000-7903f5543000 ---p 00000000 00:00 0 +7903f5543000-7903f5643000 rw-p 00000000 00:00 0 +7903f5643000-7903f5644000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7903f5644000-7903f5645000 r--p 00000000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +7903f5645000-7903f5646000 r-xp 00001000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +7903f5646000-7903f5647000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +7903f5647000-7903f5648000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +7903f5648000-7903f5649000 rw-p 00003000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +7903f5649000-7903f564c000 r--p 00000000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +7903f564c000-7903f564f000 r-xp 00003000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +7903f564f000-7903f5650000 r--p 00006000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +7903f5650000-7903f5651000 ---p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +7903f5651000-7903f5652000 r--p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +7903f5652000-7903f5653000 rw-p 00008000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +7903f5653000-7903f5656000 r--p 00000000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +7903f5656000-7903f566a000 r-xp 00003000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +7903f566a000-7903f566e000 r--p 00017000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +7903f566e000-7903f566f000 ---p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +7903f566f000-7903f5670000 r--p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +7903f5670000-7903f5671000 rw-p 0001c000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +7903f5671000-7903f5672000 ---p 00000000 00:00 0 +7903f5672000-7903f5772000 rw-p 00000000 00:00 0 +7903f5772000-7903f5776000 ---p 00000000 00:00 0 +7903f5776000-7903f5872000 rw-p 00000000 00:00 0 +7903f5872000-7903f5876000 ---p 00000000 00:00 0 +7903f5876000-7903f5972000 rw-p 00000000 00:00 0 +7903f5972000-7903f5a72000 rw-s 00000000 00:01 1015856 /SYSV00000000 (deleted) +7903f5a72000-7903f5a76000 ---p 00000000 00:00 0 +7903f5a76000-7903f5b72000 rw-p 00000000 00:00 0 +7903f5b72000-7903f5b76000 ---p 00000000 00:00 0 +7903f5b76000-7903f5c72000 rw-p 00000000 00:00 0 +7903f5c72000-7903f5c76000 ---p 00000000 00:00 0 +7903f5c76000-7903f5d72000 rw-p 00000000 00:00 0 +7903f5d72000-7903f5d76000 ---p 00000000 00:00 0 +7903f5d76000-7903f5e72000 rw-p 00000000 00:00 0 +7903f5e72000-7903f5e76000 ---p 00000000 00:00 0 +7903f5e76000-7903f5f72000 rw-p 00000000 00:00 0 +7903f5f72000-7903f5f76000 ---p 00000000 00:00 0 +7903f5f76000-7903f6072000 rw-p 00000000 00:00 0 +7903f6072000-7903f607f000 r--p 00000000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +7903f607f000-7903f6108000 r-xp 0000d000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +7903f6108000-7903f6131000 r--p 00096000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +7903f6131000-7903f6132000 ---p 000bf000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +7903f6132000-7903f6139000 r--p 000bf000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +7903f6139000-7903f613a000 rw-p 000c6000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 +7903f613a000-7903f62bb000 r-xp 00000000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so +7903f62bb000-7903f62bc000 ---p 00181000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so +7903f62bc000-7903f62be000 r--p 00181000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so +7903f62be000-7903f62bf000 rw-p 00183000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so +7903f62bf000-7903f62c0000 rw-p 00000000 00:00 0 +7903f62c0000-7903f62d9000 r--p 00000000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +7903f62d9000-7903f6365000 r-xp 00019000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +7903f6365000-7903f63fa000 r--p 000a5000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +7903f63fa000-7903f63fb000 ---p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +7903f63fb000-7903f63fc000 r--p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +7903f63fc000-7903f6400000 rw-p 0013b000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +7903f6400000-7903f6c00000 rw-p 00000000 00:00 0 +7903f6c00000-7903f6c08000 r--p 00000000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +7903f6c08000-7903f6c60000 r-xp 00008000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +7903f6c60000-7903f6c71000 r--p 00060000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +7903f6c71000-7903f6c72000 ---p 00071000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +7903f6c72000-7903f6c78000 r--p 00071000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +7903f6c78000-7903f6c79000 rw-p 00077000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +7903f6c79000-7903f6e83000 rw-p 00000000 00:00 0 +7903f6e83000-7903f6e84000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903f6e84000-7903f6e85000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7903f6e85000-7903f6e88000 r--p 00000000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +7903f6e88000-7903f6e8e000 r-xp 00003000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +7903f6e8e000-7903f6e90000 r--p 00009000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +7903f6e90000-7903f6e91000 r--p 0000a000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +7903f6e91000-7903f6e92000 rw-p 0000b000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +7903f6e92000-7903f6e98000 r--p 00000000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +7903f6e98000-7903f6ee2000 r-xp 00006000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +7903f6ee2000-7903f6f0c000 r--p 00050000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +7903f6f0c000-7903f6f0d000 r--p 00079000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +7903f6f0d000-7903f6f0e000 rw-p 0007a000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +7903f6f0e000-7903f6fcf000 r-xp 00000000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +7903f6fcf000-7903f6fd0000 r--p 000c0000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +7903f6fd0000-7903f6fdb000 rw-p 000c1000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +7903f6fdb000-7903f7000000 rw-p 00000000 00:00 0 +7903f7000000-7903f7f06000 r--p 00000000 103:03 10618858 /usr/lib/locale/locale-archive +7903f7f06000-7903f7f08000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7903f7f08000-7903f7f09000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7903f7f09000-7903f7f0a000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7903f7f0a000-7903f7f7a000 r-xp 00000000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +7903f7f7a000-7903f7f7b000 ---p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +7903f7f7b000-7903f7f80000 r--p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +7903f7f80000-7903f7f82000 rw-p 00075000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +7903f7f82000-7903f7f84000 rw-p 00000000 00:00 0 +7903f7f84000-7903f7fb0000 r--p 00000000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +7903f7fb0000-7903f7fe4000 r-xp 0002c000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +7903f7fe4000-7903f7ffe000 r--p 00060000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +7903f7ffe000-7903f7fff000 r--p 00079000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +7903f7fff000-7903f8000000 rw-p 0007a000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +7903f8000000-7903f8021000 rw-p 00000000 00:00 0 +7903f8021000-7903fc000000 ---p 00000000 00:00 0 +7903fc000000-7903fc007000 r--p 00000000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +7903fc007000-7903fc00d000 r-xp 00007000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +7903fc00d000-7903fc010000 r--p 0000d000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +7903fc010000-7903fc011000 ---p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +7903fc011000-7903fc012000 r--p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +7903fc012000-7903fc013000 rw-p 00011000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +7903fc013000-7903fc01e000 r--p 00000000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +7903fc01e000-7903fc027000 r-xp 0000b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +7903fc027000-7903fc02c000 r--p 00014000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +7903fc02c000-7903fc02d000 ---p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +7903fc02d000-7903fc02f000 r--p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +7903fc02f000-7903fc030000 rw-p 0001b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +7903fc030000-7903fc034000 ---p 00000000 00:00 0 +7903fc034000-7903fc130000 rw-p 00000000 00:00 0 +7903fc130000-7903fc134000 ---p 00000000 00:00 0 +7903fc134000-7903fc230000 rw-p 00000000 00:00 0 +7903fc230000-7903fc234000 ---p 00000000 00:00 0 +7903fc234000-7903fc330000 rw-p 00000000 00:00 0 +7903fc330000-7903fc3fe000 r-xp 00000000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +7903fc3fe000-7903fc3ff000 r--p 000cd000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +7903fc3ff000-7903fc400000 rw-p 000ce000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +7903fc400000-7903fc404000 ---p 00000000 00:00 0 +7903fc404000-7903fc500000 rw-p 00000000 00:00 0 +7903fc500000-7903fc504000 ---p 00000000 00:00 0 +7903fc504000-7903fc600000 rw-p 00000000 00:00 0 +7903fc600000-7903fc604000 ---p 00000000 00:00 0 +7903fc604000-7903fc700000 rw-p 00000000 00:00 0 +7903fc700000-7903fc704000 ---p 00000000 00:00 0 +7903fc704000-7903fc800000 rw-p 00000000 00:00 0 +7903fc800000-7903fc804000 ---p 00000000 00:00 0 +7903fc804000-7903fc900000 rw-p 00000000 00:00 0 +7903fc900000-7903fc904000 ---p 00000000 00:00 0 +7903fc904000-7903fca00000 rw-p 00000000 00:00 0 +7903fca00000-7903fea70000 rw-p 00000000 00:00 0 +7903fea70000-790406700000 ---p 00000000 00:00 0 +790406700000-790406704000 ---p 00000000 00:00 0 +790406704000-790406800000 rw-p 00000000 00:00 0 +790406800000-79040680e000 rw-p 00000000 00:00 0 +79040680e000-7904077a0000 ---p 00000000 00:00 0 +7904077a0000-7904077a1000 r--p 00000000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +7904077a1000-7904077a2000 r-xp 00001000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +7904077a2000-7904077a3000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +7904077a3000-7904077a4000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +7904077a4000-7904077a5000 rw-p 00003000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +7904077a5000-7904077a6000 r--p 00000000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +7904077a6000-7904077a7000 r-xp 00001000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +7904077a7000-7904077a8000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +7904077a8000-7904077a9000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +7904077a9000-7904077aa000 rw-p 00003000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +7904077aa000-7904077ac000 r--p 00000000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +7904077ac000-7904077ae000 r-xp 00002000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +7904077ae000-7904077af000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +7904077af000-7904077b0000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +7904077b0000-7904077b1000 rw-p 00005000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +7904077b1000-7904077b8000 r--s 00000000 103:03 11147989 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache +7904077b8000-7904077b9000 r--p 00000000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +7904077b9000-7904077bc000 r-xp 00001000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +7904077bc000-7904077bd000 r--p 00004000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +7904077bd000-7904077be000 ---p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +7904077be000-7904077bf000 r--p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +7904077bf000-7904077c0000 rw-p 00006000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +7904077c0000-7904077c3000 r--p 00000000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +7904077c3000-7904077c7000 r-xp 00003000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +7904077c7000-7904077c9000 r--p 00007000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +7904077c9000-7904077ca000 r--p 00008000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +7904077ca000-7904077cb000 rw-p 00009000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +7904077cb000-7904077cc000 r--p 00000000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +7904077cc000-7904077ce000 r-xp 00001000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +7904077ce000-7904077cf000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +7904077cf000-7904077d0000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +7904077d0000-7904077d1000 rw-p 00004000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +7904077d1000-7904077d3000 r--p 00000000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +7904077d3000-7904077d9000 r-xp 00002000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +7904077d9000-7904077db000 r--p 00008000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +7904077db000-7904077dc000 r--p 00009000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +7904077dc000-7904077dd000 rw-p 0000a000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 +7904077dd000-7904077de000 r--p 00000000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 +7904077de000-7904077df000 r-xp 00001000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 +7904077df000-7904077fe000 r--p 00002000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 +7904077fe000-7904077ff000 r--p 00020000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 +7904077ff000-790407800000 rw-p 00021000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 +790407800000-79040780e000 rw-p 00000000 00:00 0 +79040780e000-7904087a0000 ---p 00000000 00:00 0 +7904087a0000-7904087a1000 rw-s 00000000 00:06 1022 /dev/nvidia0 +7904087a1000-7904087a2000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7904087a2000-7904087a3000 rw-s 00000000 00:06 1017 /dev/nvidiactl +7904087a3000-7904087a4000 r--s 00000000 00:06 1017 /dev/nvidiactl +7904087a4000-7904087a5000 r--p 00000000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +7904087a5000-7904087a7000 r-xp 00001000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +7904087a7000-7904087a8000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +7904087a8000-7904087a9000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +7904087a9000-7904087aa000 rw-p 00004000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +7904087aa000-7904087ab000 r--p 00000000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 +7904087ab000-7904087b3000 r-xp 00001000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 +7904087b3000-7904087b6000 r--p 00009000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 +7904087b6000-7904087b7000 r--p 0000b000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 +7904087b7000-7904087b8000 rw-p 0000c000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 +7904087b8000-7904087bd000 r--p 00000000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 +7904087bd000-7904087e6000 r-xp 00005000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 +7904087e6000-7904087f1000 r--p 0002e000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 +7904087f1000-7904087f2000 r--p 00038000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 +7904087f2000-7904087f3000 rw-p 00039000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 +7904087f3000-7904087f5000 r--p 00000000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +7904087f5000-7904087fc000 r-xp 00002000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +7904087fc000-7904087fe000 r--p 00009000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +7904087fe000-7904087ff000 r--p 0000a000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +7904087ff000-790408800000 rw-p 0000b000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +790408800000-790408ae0000 rwxp 00000000 00:00 0 +790408ae0000-79040fd37000 ---p 00000000 00:00 0 +79040fd37000-79040ffb7000 rwxp 00000000 00:00 0 +79040ffb7000-7904102c8000 ---p 00000000 00:00 0 +7904102c8000-790410538000 rwxp 00000000 00:00 0 +790410538000-790417800000 ---p 00000000 00:00 0 +790417800000-79041ffb5000 r--s 00000000 103:03 10498840 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/modules +79041ffb5000-79041ffb6000 rw-s 00000000 00:01 1028 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) +79041ffb6000-79041ffb8000 r--p 00000000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +79041ffb8000-79041ffbb000 r-xp 00002000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +79041ffbb000-79041ffbc000 r--p 00005000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +79041ffbc000-79041ffbd000 r--p 00006000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +79041ffbd000-79041ffbe000 rw-p 00007000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 +79041ffbe000-79041ffc2000 r--p 00000000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +79041ffc2000-79041ffcf000 r-xp 00004000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +79041ffcf000-79041ffd2000 r--p 00011000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +79041ffd2000-79041ffd3000 ---p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +79041ffd3000-79041ffd4000 r--p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +79041ffd4000-79041ffd5000 rw-p 00015000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +79041ffd5000-79041ffd6000 rw-p 00000000 00:00 0 +79041ffd6000-79041ffe1000 r--p 00000000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +79041ffe1000-79041fff5000 r-xp 0000b000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +79041fff5000-79041fffe000 r--p 0001f000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +79041fffe000-79041ffff000 r--p 00027000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +79041ffff000-790420000000 rw-p 00028000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +790420000000-7904206b1000 rw-p 00000000 00:00 0 +7904206b1000-790424000000 ---p 00000000 00:00 0 +790424000000-790424001000 r--p 00000000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +790424001000-790424002000 r-xp 00001000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +790424002000-790424003000 r--p 00002000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +790424003000-790424004000 r--p 00003000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +790424004000-790424005000 rw-p 00004000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 +790424005000-790424007000 r--p 00000000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +790424007000-790424009000 r-xp 00002000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +790424009000-79042400b000 r--p 00004000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +79042400b000-79042400c000 r--p 00005000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +79042400c000-79042400d000 rw-p 00006000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +79042400d000-79042400e000 r--p 00000000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +79042400e000-790424010000 r-xp 00001000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +790424010000-790424011000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +790424011000-790424012000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +790424012000-790424013000 rw-p 00004000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +790424013000-790424015000 r--p 00000000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +790424015000-79042401c000 r-xp 00002000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +79042401c000-79042401e000 r--p 00009000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +79042401e000-79042401f000 r--p 0000a000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +79042401f000-790424020000 rw-p 0000b000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +790424020000-790424023000 r--p 00000000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +790424023000-79042402f000 r-xp 00003000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +79042402f000-790424032000 r--p 0000f000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +790424032000-790424033000 r--p 00011000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +790424033000-790424034000 rw-p 00012000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +790424034000-790424072000 r-xp 00000000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +790424072000-790424073000 ---p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +790424073000-790424074000 r--p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +790424074000-790424075000 rw-p 0003f000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +790424075000-790424076000 ---p 00000000 00:00 0 +790424076000-790424176000 rw-p 00000000 00:00 0 +790424176000-790424177000 ---p 00000000 00:00 0 +790424177000-790424277000 rw-p 00000000 00:00 0 +790424277000-790424394000 rw-p 00000000 00:00 0 +790424394000-790424395000 ---p 00000000 00:00 0 +790424395000-790424495000 rw-p 00000000 00:00 0 +790424495000-790424496000 ---p 00000000 00:00 0 +790424496000-790424596000 rw-p 00000000 00:00 0 +790424596000-790424d9e000 rw-p 00000000 00:00 0 +790424d9e000-790424d9f000 ---p 00000000 00:00 0 +790424d9f000-790424e9f000 rw-p 00000000 00:00 0 +790424e9f000-790424ea0000 ---p 00000000 00:00 0 +790424ea0000-790424fa0000 rw-p 00000000 00:00 0 +790424fa0000-790424fa1000 ---p 00000000 00:00 0 +790424fa1000-7904250a1000 rw-p 00000000 00:00 0 +7904250a1000-79042592f000 rw-p 00000000 00:00 0 +79042592f000-790425a15000 ---p 00000000 00:00 0 +790425a15000-790425a1b000 rw-p 00000000 00:00 0 +790425a1b000-790425b00000 ---p 00000000 00:00 0 +790425b00000-790425b04000 ---p 00000000 00:00 0 +790425b04000-790425c00000 rw-p 00000000 00:00 0 +790425c00000-790426f30000 r-xp 00000000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so +790426f30000-790427000000 r--p 0132f000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so +790427000000-79042702e000 rw-p 013ff000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so +79042702e000-7904270a4000 rw-p 00000000 00:00 0 +7904270a4000-7904270a5000 rw-s 00000000 00:01 668325 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=4096 (deleted) +7904270a5000-7904270a9000 r--p 00000000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +7904270a9000-7904270b4000 r-xp 00004000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +7904270b4000-7904270b8000 r--p 0000f000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +7904270b8000-7904270b9000 r--p 00012000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +7904270b9000-7904270ba000 rw-p 00013000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +7904270ba000-7904270bb000 rw-s 00000000 00:01 668324 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) +7904270bb000-7904270bc000 rw-s 00000000 00:01 668323 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) +7904270bc000-7904270bd000 r-xp 00000000 00:00 0 +7904270bd000-7904270be000 r--p 00000000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +7904270be000-7904270bf000 r-xp 00001000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +7904270bf000-7904270c0000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +7904270c0000-7904270c1000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +7904270c1000-7904270c2000 rw-p 00003000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +7904270c2000-7904270c3000 r--p 00000000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +7904270c3000-7904270c6000 r-xp 00001000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +7904270c6000-7904270c7000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +7904270c7000-7904270c8000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +7904270c8000-7904270c9000 rw-p 00005000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 +7904270c9000-7904270cb000 r--p 00000000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +7904270cb000-7904270d2000 r-xp 00002000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +7904270d2000-7904270d4000 r--p 00009000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +7904270d4000-7904270d5000 r--p 0000a000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +7904270d5000-7904270d6000 rw-p 0000b000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 +7904270d6000-7904270d7000 r-xp 00000000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so +7904270d7000-7904270d8000 ---p 00001000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so +7904270d8000-7904270d9000 r--p 00001000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so +7904270d9000-7904270da000 rw-p 00002000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so +7904270da000-790427119000 rw-p 00000000 00:00 0 +790427119000-790427127000 r--p 00000000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +790427127000-7904271a3000 r-xp 0000e000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +7904271a3000-7904271fe000 r--p 0008a000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +7904271fe000-7904271ff000 r--p 000e4000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +7904271ff000-790427200000 rw-p 000e5000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +790427200000-790427228000 r--p 00000000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +790427228000-7904273bd000 r-xp 00028000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +7904273bd000-790427415000 r--p 001bd000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +790427415000-790427416000 ---p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +790427416000-79042741a000 r--p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +79042741a000-79042741c000 rw-p 00219000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +79042741c000-790427429000 rw-p 00000000 00:00 0 +790427429000-79042742b000 r--p 00000000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +79042742b000-79042742e000 r-xp 00002000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +79042742e000-79042742f000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +79042742f000-790427430000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +790427430000-790427431000 rw-p 00006000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +790427431000-790427432000 rw-p 00000000 00:00 0 +790427432000-790427433000 r-xp 0005e000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +790427433000-790427434000 rw-p 00000000 00:00 0 +790427434000-79042743f000 r-xp 00000000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +79042743f000-790427440000 ---p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +790427440000-790427441000 r--p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +790427441000-790427442000 rw-p 0000c000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +790427442000-790427455000 r-xp 00000000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +790427455000-790427456000 ---p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +790427456000-790427457000 r--p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +790427457000-790427458000 rw-p 00014000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +790427458000-790427497000 rw-p 00000000 00:00 0 +790427497000-7904274b7000 r-xp 00000000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +7904274b7000-7904274b8000 r--p 0001f000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +7904274b8000-7904274b9000 rw-p 00020000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +7904274b9000-7904274ba000 rw-p 00000000 00:00 0 +7904274ba000-7904274d8000 r-xp 00000000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +7904274d8000-7904274da000 r--p 0001d000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +7904274da000-7904274db000 rw-p 0001f000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +7904274db000-7904274dc000 r--p 00000000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +7904274dc000-7904274dd000 r-xp 00001000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +7904274dd000-7904274de000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +7904274de000-7904274df000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +7904274df000-7904274e0000 rw-p 00003000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +7904274e0000-7904274e4000 rw-p 00000000 00:00 0 +7904274e4000-7904274e5000 r--p 00000000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +7904274e5000-7904274e6000 r-xp 00001000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +7904274e6000-7904274e7000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +7904274e7000-7904274e8000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +7904274e8000-7904274e9000 rw-p 00003000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +7904274e9000-7904274ea000 r--p 00000000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +7904274ea000-7904274eb000 r-xp 00001000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +7904274eb000-7904274ec000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +7904274ec000-7904274ed000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +7904274ed000-7904274ee000 rw-p 00003000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +7904274ee000-7904274f0000 r--p 00000000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +7904274f0000-790427501000 r-xp 00002000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +790427501000-790427507000 r--p 00013000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +790427507000-790427508000 ---p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +790427508000-790427509000 r--p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +790427509000-79042750a000 rw-p 0001a000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +79042750a000-790427511000 r-xp 00000000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +790427511000-790427512000 ---p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +790427512000-790427513000 r--p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +790427513000-790427514000 rw-p 00008000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +790427514000-790427519000 rw-p 00000000 00:00 0 +790427519000-790427520000 ---p 00000000 00:00 0 +790427520000-790427528000 rw-s 00000000 103:03 4325444 /tmp/hsperfdata_codex/85657 +790427528000-790427529000 ---p 00000000 00:00 0 +790427529000-79042752a000 r--p 00000000 00:00 0 +79042752a000-790427539000 r-xp 00000000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so +790427539000-79042753a000 r--p 0000e000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so +79042753a000-79042753b000 rw-p 0000f000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so +79042753b000-79042753d000 rw-p 00000000 00:00 0 +79042753d000-790427541000 r--p 00000000 00:00 0 [vvar] +790427541000-790427543000 r-xp 00000000 00:00 0 [vdso] +790427543000-790427545000 r--p 00000000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +790427545000-79042756f000 r-xp 00002000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +79042756f000-79042757a000 r--p 0002c000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +79042757a000-79042757b000 ---p 00000000 00:00 0 +79042757b000-79042757d000 r--p 00037000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +79042757d000-79042757f000 rw-p 00039000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +7fffd44b6000-7fffd44d9000 rw-p 00000000 00:00 0 [stack] +ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall] +Total number of mappings: 921 + + +VM Arguments: +jvm_args: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant +java_command: jme3test.vulkan.VulkanTest +java_class_path (initial): /home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/java/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/groovy/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/resources/main:/home/codex/java/prj/jmonkeyengine/jme3-lwjgl3/build/libs/jme3-lwjgl3-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-desktop/build/libs/jme3-desktop-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-effects/build/libs/jme3-effects-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jbullet/build/libs/jme3-jbullet-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jogg/build/libs/jme3-jogg-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-networking/build/libs/jme3-networking-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-niftygui/build/libs/jme3-niftygui-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins/build/libs/jme3-plugins-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-terrain/build/libs/jme3-terrain-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-awt-dialogs/build/libs/jme3-awt-dialogs-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-core/build/libs/jme3-core-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json-gson/build/libs/jme3-plugins-json-gson-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json/build/libs/jme3-plugins-json-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-testdata/build/libs/jme3-testdata-null-SNAPSHOT.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-examples/1.4.3/4a41c559851c0c5a77ba3a9d1ccc8e6e92207dc7/nifty-examples-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjglx/lwjgl3-awt/0.2.3/2be63e81d6b73300d8203ce7235b2660c62eb3ea/lwjgl3-awt-0.2.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/7119f7d0eeb1e5502ff0ca71d2b4d47317da015/lwjgl-glfw-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/99ef08056feb9627f90425a4d2a22cd9fae8e39b/lwjgl-glfw-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/cfa8f1e96d572ed56da5945adf5167628f5eecdb/lwjgl-glfw-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/797e0965709ad180d9b00c88a086dbda15002203/lwjgl-glfw-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/671adf04a6bc4f792af13892e37f804be30b7070/lwjgl-glfw-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/b54023af492b4c2c72451f3a7aa0f385e9969474/lwjgl-glfw-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/82c8d748a654241b5961ddd1c098e8b648e38a48/lwjgl-glfw-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/399b42b491c5dfa6595ae6fd79dcba61b93538a7/lwjgl-glfw-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jawt/3.3.6/43299e222bd7db5e99254a8e620330954b73c2a6/lwjgl-jawt-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/245910eb57f2444429c74e6bf96030e5ec0a6739/lwjgl-jemalloc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/f9da76351e14a695be172d6915c8a7b2905307f/lwjgl-jemalloc-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c86043a342a33e5d32fabf962578580633db3c6e/lwjgl-jemalloc-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/26f8b467dc2e0f3000d608de3564b572bb46f927/lwjgl-jemalloc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c484cae39a718010dbc7931fe5e12664600a13c2/lwjgl-jemalloc-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1bc2e16e70df7f418d668c2984ac8066f1f6f5b1/lwjgl-jemalloc-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/9a42df0f2e9747815490311d7db7b4a046d5f40/lwjgl-jemalloc-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1f828c1fc06792475850162725433adf5ad001c0/lwjgl-jemalloc-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ad313317ff399fd2a7f4dd74716a68cf3976c6ad/lwjgl-openal-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/9c2b9b660e085bb0b47a4453dc0e26f24a5475e4/lwjgl-openal-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/82f693541d69aa125750bf8be9c4194435c56f03/lwjgl-openal-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ef356c04ef141d4efbde07793f31784f1f1a1bae/lwjgl-openal-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/7830af894fa110e65bf5075deb9183efbdbc50f5/lwjgl-openal-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/fd2c17603c63e8d543cb57d1db77ebd4574f3b7a/lwjgl-openal-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/c39f6827f0bd97601fc4e389801d5c813f59a5f2/lwjgl-openal-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/13f692aec4ae4b2d3c468aa0008472175f0ea1e0/lwjgl-openal-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opencl/3.3.6/93fdcea16d27b1466450e38dc28c8e1b4819ec25/lwjgl-opencl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ac2532612a4df374e9a9282bcf8ce2573018ebbb/lwjgl-opengl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/18dc639ebc94aa5202c2157f7490d28997b697c5/lwjgl-opengl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b0ab1d0e315d2fcc50d6cab7e8feaf4688d5d9a0/lwjgl-opengl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b8dc6467fe232d552793c53dc56f9fa8a385299c/lwjgl-opengl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ee815fbf454b916f13c10fff62e513eb09042ef0/lwjgl-opengl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/44de180f79e0b45c9e5bee10ca7540dcb5ddd373/lwjgl-opengl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/59f708eb4bf0be0204bbc9c06807911724673db6/lwjgl-opengl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/fee4fb2ee786af6530b6f9188205a76bc4e05268/lwjgl-opengl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-vulkan/3.3.6/a403e0931b03b138854bb2ba9c48dab646cba6d8/lwjgl-vulkan-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/9d0964fe2b75f64d9dab9839c2b059b7e8f71115/lwjgl-shaderc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/ab69a0e011f057ed25857c97fa3c87f20ab8f670/lwjgl-shaderc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/ce7721d30cfaf47feaed10213e0c43eb55c49d68/lwjgl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9a29b6a22fc5184604b8cb434ee5d5ecc4bfcbee/lwjgl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/7a6f04e02429ba2f4bda9be191347bb7d3c71127/lwjgl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/dc7db8fc4f1e6563867f9155b9a42d9c73d8992f/lwjgl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/2c9d698e76c3d0fe307d94cc6f428038492f25df/lwjgl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9eeb8887b5e3aa672efd2e1b0973ffa5891a3151/lwjgl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/f14e7a5289d2355822f4f83b3fd38d158c939acd/lwjgl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/832e2964ce74e02e768814a29c06d60645115b9a/lwjgl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/jbullet/1.0.3/362f53e8aa981037c2523ac24eb4d9b190a49036/jbullet-1.0.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/javax.vecmath/vecmath/1.5.2/fd17bc3e67f909573dfc039d8e2abecf407c4e27/vecmath-1.5.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/j-ogg-vorbis/1.0.6/a69d1cf62eaf75b71af61f9c23265d278a966735/j-ogg-vorbis-1.0.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-default-controls/1.4.3/2ccafe0182a73da87657ca24b639b6e8c1accd50/nifty-default-controls-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty/1.4.3/fa9ac16e00d1b375d10f58d1c1eb576950ae8c9d/nifty-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-style-black/1.4.3/c20a02dbdeb0bd9d2be258955fceb55c13185a8/nifty-style-black-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.9.1/2cc2131b98ebfb04e2b2c7dfb84431f4045096b/gson-2.9.1.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/stack-alloc/1.0.2/13cbb10c01ec09d0f5879f988946a97998175dfc/stack-alloc-1.0.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/xpp3/xpp3/1.1.4c/9b988ea84b9e4e9f1874e390ce099b8ac12cfff5/xpp3-1.1.4c.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/2.0.2/516c03b21d50a644d538de0f0369c620989cd8f0/jsr305-2.0.2.jar +Launcher Type: SUN_STANDARD + +[Global flags] + intx CICompilerCount = 4 {product} {ergonomic} + uint ConcGCThreads = 2 {product} {ergonomic} + uint G1ConcRefinementThreads = 8 {product} {ergonomic} + size_t G1HeapRegionSize = 4194304 {product} {ergonomic} + size_t InitialHeapSize = 524288000 {product} {ergonomic} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MarkStackSizeMax = 536870912 {product} {ergonomic} + size_t MaxHeapSize = 8388608000 {product} {ergonomic} + size_t MaxNewSize = 5033164800 {product} {ergonomic} + size_t MinHeapDeltaBytes = 4194304 {product} {ergonomic} + size_t MinHeapSize = 8388608 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 5836800 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 122912768 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 122908672 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + size_t SoftMaxHeapSize = 8388608000 {manageable} {ergonomic} + bool UseCompressedOops = true {product lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags foldmultilines=false + #1: stderr all=off uptime,level,tags foldmultilines=false + +Environment Variables: +PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin +USERNAME=codex +SHELL=/bin/bash +DISPLAY=:1 +LANG=en_US.UTF-8 + +Active Locale: +LC_ALL=en_US.UTF-8 +LC_COLLATE=en_US.UTF-8 +LC_CTYPE=en_US.UTF-8 +LC_MESSAGES=en_US.UTF-8 +LC_MONETARY=en_US.UTF-8 +LC_NUMERIC=en_US.UTF-8 +LC_TIME=en_US.UTF-8 + +Signal Handlers: + SIGSEGV: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGBUS: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGFPE: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGPIPE: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGXFSZ: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGILL: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGUSR2: SR_handler in libjvm.so, mask=00000000000000000000000000000000, flags=SA_RESTART|SA_SIGINFO, blocked + SIGHUP: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGINT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGTERM: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGQUIT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGTRAP: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + + +Periodic native trim disabled + +--------------- S Y S T E M --------------- + +OS: +DISTRIB_ID=Pop +DISTRIB_RELEASE=22.04 +DISTRIB_CODENAME=jammy +DISTRIB_DESCRIPTION="Pop!_OS 22.04 LTS" +uname: Linux 6.9.3-76060903-generic #202405300957~1726766035~22.04~4092a0e SMP PREEMPT_DYNAMIC Thu S x86_64 +OS uptime: 0 days 15:18 hours +libc: glibc 2.35 NPTL 2.35 +rlimit (soft/hard): STACK 8192k/infinity , CORE 0k/infinity , NPROC 127655/127655 , NOFILE 1048576/1048576 , AS infinity/infinity , CPU infinity/infinity , DATA infinity/infinity , FSIZE infinity/infinity , MEMLOCK 4095956k/4095956k +load average: 1.41 1.57 1.15 + +/proc/meminfo: +MemTotal: 32767652 kB +MemFree: 20134740 kB +MemAvailable: 23540972 kB +Buffers: 347504 kB +Cached: 5014736 kB +SwapCached: 0 kB +Active: 8818268 kB +Inactive: 2816324 kB +Active(anon): 6307560 kB +Inactive(anon): 0 kB +Active(file): 2510708 kB +Inactive(file): 2816324 kB +Unevictable: 15204 kB +Mlocked: 72 kB +SwapTotal: 20970996 kB +SwapFree: 20970996 kB +Zswap: 0 kB +Zswapped: 0 kB +Dirty: 324 kB +Writeback: 0 kB +AnonPages: 6287800 kB +Mapped: 1828896 kB +Shmem: 35208 kB +KReclaimable: 197260 kB +Slab: 386392 kB +SReclaimable: 197260 kB +SUnreclaim: 189132 kB +KernelStack: 22880 kB +PageTables: 54428 kB +SecPageTables: 0 kB +NFS_Unstable: 0 kB +Bounce: 0 kB +WritebackTmp: 0 kB +CommitLimit: 37354820 kB +Committed_AS: 12325568 kB +VmallocTotal: 34359738367 kB +VmallocUsed: 252400 kB +VmallocChunk: 0 kB +Percpu: 9472 kB +HardwareCorrupted: 0 kB +AnonHugePages: 0 kB +ShmemHugePages: 6144 kB +ShmemPmdMapped: 0 kB +FileHugePages: 0 kB +FilePmdMapped: 0 kB +Unaccepted: 0 kB +HugePages_Total: 0 +HugePages_Free: 0 +HugePages_Rsvd: 0 +HugePages_Surp: 0 +Hugepagesize: 2048 kB +Hugetlb: 0 kB +DirectMap4k: 851768 kB +DirectMap2M: 15826944 kB +DirectMap1G: 16777216 kB + +/sys/kernel/mm/transparent_hugepage/enabled: always [madvise] never +/sys/kernel/mm/transparent_hugepage/hpage_pmd_size: 2097152 +/sys/kernel/mm/transparent_hugepage/shmem_enabled: always within_size advise [never] deny force +/sys/kernel/mm/transparent_hugepage/defrag (defrag/compaction efforts parameter): always defer defer+madvise [madvise] never + +Process Memory: +Virtual Size: 13446916K (peak: 13510788K) +Resident Set Size: 317340K (peak: 317340K) (anon: 171248K, file: 145068K, shmem: 1024K) +Swapped out: 0K +C-Heap outstanding allocations: 79001K, retained: 32298K +glibc malloc tunables: (default) + +/proc/sys/kernel/threads-max (system-wide limit on the number of threads): 255310 +/proc/sys/vm/max_map_count (maximum number of memory map areas a process may have): 2147483642 +/proc/sys/vm/swappiness (control to define how aggressively the kernel swaps out anonymous memory): 180 +/proc/sys/kernel/pid_max (system-wide limit on number of process identifiers): 4194304 + +container (cgroup) information: +container_type: cgroupv2 +cpu_cpuset_cpus: not supported +cpu_memory_nodes: not supported +active_processor_count: 8 +cpu_quota: not supported +cpu_period: not supported +cpu_shares: not supported +memory_limit_in_bytes: unlimited +memory_and_swap_limit_in_bytes: unlimited +memory_soft_limit_in_bytes: 0 +memory_usage_in_bytes: 5982148 k +memory_max_usage_in_bytes: not supported +rss_usage_in_bytes: 3571588 k +cache_usage_in_bytes: 2327152 k +memory_swap_current_in_bytes: 0 +memory_swap_max_limit_in_bytes: unlimited +maximum number of tasks: 38296 +current number of tasks: 328 + +Steal ticks since vm start: 0 +Steal ticks percentage since vm start: 0.000 + +CPU: total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 158 stepping 9 microcode 0xf8, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, adx, fma, vzeroupper, clflush, clflushopt, rdtscp, f16c +CPU Model and flags from /proc/cpuinfo: +model name : Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz +flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities + +Online cpus: 0-7 +Offline cpus: +BIOS frequency limitation: +Frequency switch latency (ns): 0 +Available cpu frequencies: +Current governor: powersave +Core performance/turbo boost: + +Memory: 4k page, physical 32767652k(23540972k free), swap 20970996k(20970996k free) +Page Sizes: 4k + +vm_info: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58) for linux-amd64 JRE (23.0.2+7-58), built on 2024-11-29T09:34:55Z with gcc 13.2.0 + +END. diff --git a/jme3-core/build.gradle b/jme3-core/build.gradle index b741fc18cc..b3a96bdab7 100644 --- a/jme3-core/build.gradle +++ b/jme3-core/build.gradle @@ -67,6 +67,7 @@ dependencies { runtimeOnly(variantOf(libs.lwjgl3.openal){ classifier('natives-linux-arm64') }) runtimeOnly(variantOf(libs.lwjgl3.openal){ classifier('natives-macos') }) runtimeOnly(variantOf(libs.lwjgl3.openal){ classifier('natives-macos-arm64') }) + runtimeOnly(variantOf(libs.lwjgl3.shaderc) { classifier('natives-linux') }) } diff --git a/jme3-core/src/main/java/com/jme3/renderer/vulkan/VulkanUtils.java b/jme3-core/src/main/java/com/jme3/renderer/vulkan/VulkanUtils.java index e3992ac3a3..2e9ce16e45 100644 --- a/jme3-core/src/main/java/com/jme3/renderer/vulkan/VulkanUtils.java +++ b/jme3-core/src/main/java/com/jme3/renderer/vulkan/VulkanUtils.java @@ -3,6 +3,8 @@ import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryUtil; +import org.lwjgl.system.Struct; +import org.lwjgl.system.StructBuffer; import org.lwjgl.vulkan.VkInstance; import java.nio.ByteBuffer; @@ -17,26 +19,63 @@ public class VulkanUtils { - public static void check(int vulkanCode, String message) { + public static final int UINT32_MAX = 0xFFFFFFFF; + + public static int check(int vulkanCode, String message) { if (vulkanCode != VK_SUCCESS) { throw new RuntimeException(message); } + return vulkanCode; + } + + public static int check(int vulkanCode) { + return check(vulkanCode, "Operation unsuccessful: " + vulkanCode); + } + + public static long nonNull(long id, String message) { + if (id == MemoryUtil.NULL) { + throw new NullPointerException(message); + } + return id; + } + + public static long nonNull(long id) { + return nonNull(id, "Pointer ID is NULL."); } public static T enumerateBuffer(MemoryStack stack, IntFunction factory, BiConsumer fetch) { IntBuffer count = stack.callocInt(1); fetch.accept(count, null); + if (count.get(0) <= 0) { + return null; + } T buffer = factory.apply(count.get(0)); fetch.accept(count, buffer); return buffer; } + public static T enumerateBuffer(IntFunction factory, BiConsumer fetch) { + IntBuffer count = MemoryUtil.memAllocInt(1); + fetch.accept(count, null); + if (count.get(0) <= 0) { + return null; + } + T buffer = factory.apply(count.get(0)); + fetch.accept(count, buffer); + MemoryUtil.memFree(count); + return buffer; + } + public static PointerBuffer toPointers(MemoryStack stack, Stream stream, int count, Function toBytes) { PointerBuffer ptrs = stack.mallocPointer(count); stream.map(toBytes).forEach(ptrs::put); return ptrs.rewind(); } + public static PointerBuffer toPointers(MemoryStack stack, Collection collection, Function toBytes) { + return toPointers(stack, collection.stream(), collection.size(), toBytes); + } + public static long getPointer(MemoryStack stack, Consumer action) { PointerBuffer ptr = stack.mallocPointer(1); action.accept(ptr); @@ -49,6 +88,12 @@ public static long getLong(MemoryStack stack, Consumer action) { return l.get(0); } + public static int getInt(MemoryStack stack, Consumer action) { + IntBuffer i = stack.mallocInt(1); + action.accept(i); + return i.get(0); + } + public static PointerBuffer gatherPointers(MemoryStack stack, Collection pointers) { int size = 0; for (PointerBuffer p : pointers) { @@ -82,6 +127,14 @@ public static boolean isBitSet(int n, int bit) { return (n & bit) > 0; } + public static , E extends Struct> T accumulate(Collection collection, IntFunction allocate) { + T buffer = allocate.apply(collection.size()); + for (E e : collection) { + buffer.put(e); + } + return buffer.rewind(); + } + public static class NativeIterator implements Iterable, Iterator { private final PointerBuffer pointers; diff --git a/jme3-core/src/main/java/com/jme3/util/natives/BasicNativeManager.java b/jme3-core/src/main/java/com/jme3/util/natives/BasicNativeManager.java new file mode 100644 index 0000000000..6bfcfdb68f --- /dev/null +++ b/jme3-core/src/main/java/com/jme3/util/natives/BasicNativeManager.java @@ -0,0 +1,104 @@ +package com.jme3.util.natives; + +import java.lang.ref.PhantomReference; +import java.lang.ref.ReferenceQueue; +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicLong; + +public class BasicNativeManager implements NativeManager { + + private static NativeManager globalInstance = new BasicNativeManager(); + + public static void setGlobalInstance(NativeManager instance) { + globalInstance = Objects.requireNonNull(instance, "NativeManager global instance cannot be null."); + } + + public static NativeManager getGlobalInstance() { + return globalInstance; + } + + private final ReferenceQueue unreachable = new ReferenceQueue<>(); + private final Map refMap = new ConcurrentHashMap<>(); + private final AtomicLong nextId = new AtomicLong(0L); + + @Override + public NativeRef register(Native object) { + NativeRef ref = new NativeRef(nextId.getAndIncrement(), object, unreachable); + refMap.put(ref.getId(), ref); + return ref; + } + + @Override + public int flush() { + int flushed = 0; + for (NativeRef ref; (ref = (NativeRef)unreachable.poll()) != null;) { + ref.destroy(); + flushed++; + } + return flushed; + } + + @Override + public int clear() { + int size = refMap.size(); + for (NativeRef ref : refMap.values()) { + ref.destroyNoRemove(); + } + refMap.clear(); + return size; + } + + public class NativeRef extends WeakReference implements NativeReference { + + private final long id; + private final Runnable destroyer; + private final WeakReference weakRef; + private final AtomicBoolean active = new AtomicBoolean(true); + private final Collection dependents = new ArrayList<>(); + + private NativeRef(long id, Native referent, ReferenceQueue q) { + super(referent, q); + this.id = id; + destroyer = referent.createNativeDestroyer(); + weakRef = new WeakReference<>(referent); + } + + @Override + public void destroy() { + if (active.getAndSet(false)) { + dependents.clear(); + destroyNoRemove(); + refMap.remove(id, this); + } + } + + @Override + public void addDependent(NativeReference reference) { + dependents.add(reference); + } + + private long getId() { + return id; + } + + private void destroyNoRemove() { + for (NativeReference ref : dependents) { + ref.destroy(); + } + dependents.clear(); + destroyer.run(); + Native referent = weakRef.get(); + if (referent != null) { + referent.prematureNativeDestruction(); + } + } + + } + +} diff --git a/jme3-core/src/main/java/com/jme3/util/natives/Native.java b/jme3-core/src/main/java/com/jme3/util/natives/Native.java new file mode 100644 index 0000000000..9ba9f8775c --- /dev/null +++ b/jme3-core/src/main/java/com/jme3/util/natives/Native.java @@ -0,0 +1,36 @@ +package com.jme3.util.natives; + +import org.lwjgl.system.MemoryUtil; + +public interface Native extends AutoCloseable { + + T getNativeObject(); + + Runnable createNativeDestroyer(); + + void prematureNativeDestruction(); + + NativeReference getNativeReference(); + + @Override + default void close() { + getNativeReference().destroy(); + } + + static void set(NativeManager manager) { + BasicNativeManager.setGlobalInstance(manager); + } + + static NativeManager get() { + return BasicNativeManager.getGlobalInstance(); + } + + static T getObject(Native n) { + return n != null ? n.getNativeObject() : null; + } + + static long getId(Native n) { + return n != null ? n.getNativeObject() : MemoryUtil.NULL; + } + +} diff --git a/jme3-core/src/main/java/com/jme3/util/natives/NativeManager.java b/jme3-core/src/main/java/com/jme3/util/natives/NativeManager.java new file mode 100644 index 0000000000..95e2dce698 --- /dev/null +++ b/jme3-core/src/main/java/com/jme3/util/natives/NativeManager.java @@ -0,0 +1,13 @@ +package com.jme3.util.natives; + +import org.lwjgl.system.NativeResource; + +public interface NativeManager { + + NativeReference register(Native object); + + int flush(); + + int clear(); + +} diff --git a/jme3-core/src/main/java/com/jme3/util/natives/NativeReference.java b/jme3-core/src/main/java/com/jme3/util/natives/NativeReference.java new file mode 100644 index 0000000000..ddbefb178a --- /dev/null +++ b/jme3-core/src/main/java/com/jme3/util/natives/NativeReference.java @@ -0,0 +1,9 @@ +package com.jme3.util.natives; + +public interface NativeReference { + + void destroy(); + + void addDependent(NativeReference reference); + +} diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java new file mode 100644 index 0000000000..f374d7f5a8 --- /dev/null +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java @@ -0,0 +1,394 @@ +package jme3test.vulkan; + +import com.jme3.app.SimpleApplication; +import com.jme3.material.RenderState; +import com.jme3.shaderc.ShaderType; +import com.jme3.shaderc.ShadercLoader; +import com.jme3.system.AppSettings; +import com.jme3.system.vulkan.LwjglVulkanContext; +import com.jme3.vulkan.*; +import org.lwjgl.glfw.GLFW; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.vulkan.*; + +import java.nio.IntBuffer; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.logging.Level; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.system.MemoryUtil.NULL; +import static org.lwjgl.vulkan.EXTDebugUtils.*; +import static org.lwjgl.vulkan.EXTDebugUtils.VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT; +import static org.lwjgl.vulkan.VK13.*; + +public class VulkanHelperTest extends SimpleApplication { + + private VulkanInstance instance; + private Surface surface; + private LogicalDevice device; + private SimpleQueueFamilies queues; + private Swapchain swapchain; + private List swapchainImages; + private ShaderModule vertModule, fragModule; + private PipelineLayout pipelineLayout; + private RenderPass renderPass; + private GraphicsPipeline pipeline; + private final List frameBuffers = new ArrayList<>(); + private CommandBuffer graphicsCommands; + private VulkanRenderManager renderer; + + private long debugMessenger = NULL; + private final VkDebugUtilsMessengerCallbackEXT debugCallback = new VulkanDebugCallback(Level.SEVERE); + + public static void main(String[] args) { + VulkanHelperTest app = new VulkanHelperTest(); + AppSettings settings = new AppSettings(true); + settings.setWidth(800); + settings.setHeight(800); + settings.setRenderer("CUSTOM" + LwjglVulkanContext.class.getName()); + app.setSettings(settings); + app.setShowSettings(false); + app.start(); + } + + @Override + public void simpleInitApp() { + long window = ((LwjglVulkanContext)context).getWindowHandle(); + try (InstanceBuilder inst = new InstanceBuilder(VK13.VK_API_VERSION_1_3)) { + inst.addGlfwExtensions(); + inst.addDebugExtension(); + inst.addLunarGLayer(); + inst.setApplicationName(VulkanHelperTest.class.getSimpleName()); + inst.setApplicationVersion(1, 0, 0); + instance = inst.build(); + try (MemoryStack stack = MemoryStack.stackPush()) { + createDebugMessenger(stack); + } + surface = new Surface(instance, window); + PhysicalDevice physDevice = PhysicalDevice.getPhysicalDevice( + instance.getNativeObject(), + Arrays.asList(surface, DeviceEvaluator.extensions(inst.getNamedExtensions()), DeviceEvaluator.swapchain(surface)), + () -> new SimpleQueueFamilies(surface)); + queues = physDevice.getQueueFamilies(); + device = new LogicalDevice(physDevice, inst.getExtensions(), inst.getLayers()); + physDevice.getQueueFamilies().createQueues(device); + try (SimpleSwapchainSupport support = new SimpleSwapchainSupport(physDevice, surface, window)) { + swapchain = new Swapchain(device, surface, support); + } + } + swapchainImages = swapchain.createViews(); + vertModule = new ShaderModule(device, assetManager.loadAsset(ShadercLoader.key( + "Shaders/VulkanVertTest.glsl", ShaderType.Vertex)), "main"); + fragModule = new ShaderModule(device, assetManager.loadAsset(ShadercLoader.key( + "Shader/VulkanFragTest.glsl", ShaderType.Fragment)), "main"); + pipelineLayout = new PipelineLayout(device); + try (RenderPassBuilder pass = new RenderPassBuilder()) { + int color = pass.createAttachment(a -> a + .format(swapchain.getFormat()) + .samples(VK_SAMPLE_COUNT_1_BIT) + .loadOp(VK_ATTACHMENT_LOAD_OP_CLEAR) + .storeOp(VK_ATTACHMENT_STORE_OP_STORE) + .stencilLoadOp(VK_ATTACHMENT_LOAD_OP_DONT_CARE) + .stencilStoreOp(VK_ATTACHMENT_STORE_OP_DONT_CARE) + .initialLayout(VK_IMAGE_LAYOUT_UNDEFINED) + .finalLayout(KHRSwapchain.VK_IMAGE_LAYOUT_PRESENT_SRC_KHR)); + int subpass = pass.createSubpass(s -> { + VkAttachmentReference.Buffer ref = VkAttachmentReference.calloc(1, pass.getStack()) + .attachment(color) + .layout(VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL); + s.pipelineBindPoint(VK_PIPELINE_BIND_POINT_GRAPHICS) + .colorAttachmentCount(1) + .pColorAttachments(ref); + }); + pass.createDependency() + .srcSubpass(VK_SUBPASS_EXTERNAL) + .dstSubpass(subpass) + .srcStageMask(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT) + .srcAccessMask(subpass) + .dstStageMask(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT) + .dstAccessMask(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT); + renderPass = pass.build(device); + } + pipeline = new GraphicsPipeline(device, pipelineLayout, renderPass, new RenderState(), vertModule, fragModule); + for (ImageView v : swapchainImages) { + frameBuffers.add(new FrameBuffer(device, renderPass, + swapchain.getExtent().width(), swapchain.getExtent().height(), 1, v)); + } + CommandPool graphicsPool = new CommandPool(device, queues.getGraphicsQueue(), false, true); + graphicsCommands = graphicsPool.allocateCommandBuffer(); + renderer = new VulkanRenderManager(2, Frame::new); + } + + @Override + public void stop() { + if (debugMessenger != NULL) { + System.out.println(" destroy debug messenger"); + verifyExtensionMethod(instance.getNativeObject(), "vkDestroyDebugUtilsMessengerEXT"); + vkDestroyDebugUtilsMessengerEXT(instance.getNativeObject(), debugMessenger, null); + } + super.stop(); + } + + @Override + public void simpleUpdate(float tpf) { + renderer.render(tpf); + } + + private VkDebugUtilsMessengerCreateInfoEXT createDebugger(MemoryStack stack, VkDebugUtilsMessengerCallbackEXT callback) { + VkDebugUtilsMessengerCreateInfoEXT create = VkDebugUtilsMessengerCreateInfoEXT.calloc(stack) + .sType(VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT) + .messageSeverity(VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT + | VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT) + .messageType(VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT | + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT); + if (callback != null) { + create.pfnUserCallback(callback); + } + return create; + } + + private void createDebugMessenger(MemoryStack stack) { + verifyExtensionMethod(instance.getNativeObject(), "vkCreateDebugUtilsMessengerEXT"); + debugMessenger = getLong(stack, ptr -> vkCreateDebugUtilsMessengerEXT( + instance.getNativeObject(), createDebugger(stack, debugCallback), null, ptr)); + } + + private class Frame implements Runnable { + + private final int index; + private final Semaphore imageAvailable = new Semaphore(device); + private final Semaphore renderFinished = new Semaphore(device); + private final Fence inFlight = new Fence(device, true); + + private Frame(int index) { + this.index = index; + } + + @Override + public void run() { + inFlight.blockThenReset(5000); + Swapchain.SwapchainImage image = swapchain.acquireNextImage(imageAvailable, null, 5000); + graphicsCommands.reset(); + graphicsCommands.begin(); + renderPass.begin(graphicsCommands, frameBuffers.get(index)); + pipeline.bind(graphicsCommands); + try (MemoryStack stack = MemoryStack.stackPush()) { + VkViewport.Buffer vp = VkViewport.calloc(1, stack) + .x(0f).y(0f) + .width(swapchain.getExtent().width()) + .height(swapchain.getExtent().height()) + .minDepth(0f).maxDepth(1f); + vkCmdSetViewport(graphicsCommands.getBuffer(), 0, vp); + VkRect2D.Buffer scissor = VkRect2D.calloc(1, stack); + scissor.offset().set(0, 0); + scissor.extent(swapchain.getExtent()); + vkCmdSetScissor(graphicsCommands.getBuffer(), 0, scissor); + } + vkCmdDraw(graphicsCommands.getBuffer(), 3, 1, 0, 0); + vkCmdEndRenderPass(graphicsCommands.getBuffer()); + graphicsCommands.end(); + graphicsCommands.submit(imageAvailable, renderFinished, inFlight); + swapchain.present(queues.getPresentQueue(), image, renderFinished); + } + + } + + private static class SimpleQueueFamilies implements QueueFamilies { + + public static final int NUM_QUEUES = 2; + + private final Surface surface; + private Integer graphicsIndex = null; + private Integer presentIndex = null; + private Queue graphics, present; + + public SimpleQueueFamilies(Surface surface) { + this.surface = surface; + } + + @Override + public boolean populate(PhysicalDevice device, VkQueueFamilyProperties.Buffer properties) { + IntBuffer ibuf = MemoryUtil.memAllocInt(1); + for (int i = 0; i < properties.limit(); i++) { + VkQueueFamilyProperties props = properties.get(i); + if (graphicsIndex == null && (props.queueFlags() & VK13.VK_QUEUE_GRAPHICS_BIT) > 0) { + graphicsIndex = i; + } + if (presentIndex == null) { + KHRSurface.vkGetPhysicalDeviceSurfaceSupportKHR( + device.getDevice(), i, surface.getNativeObject(), ibuf); + if (ibuf.get(0) == VK13.VK_TRUE) { + presentIndex = i; + } + } + } + MemoryUtil.memFree(ibuf); + return isComplete(); + } + + @Override + public VkDeviceQueueCreateInfo.Buffer createLogicalBuffers(MemoryStack stack) { + VkDeviceQueueCreateInfo.Buffer create = VkDeviceQueueCreateInfo.calloc(NUM_QUEUES, stack); + create.get(0).sType(VK13.VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO) + .queueFamilyIndex(graphicsIndex) + .pQueuePriorities(stack.floats(1f)); + create.get(1).sType(VK13.VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO) + .queueFamilyIndex(presentIndex) + .pQueuePriorities(stack.floats(1f)); + return create; + } + + @Override + public void createQueues(LogicalDevice device) { + graphics = new Queue(device, graphicsIndex, 0); + present = new Queue(device, presentIndex, 0); + } + + @Override + public boolean isComplete() { + return graphicsIndex != null && presentIndex != null; + } + + @Override + public IntBuffer getSwapchainConcurrentBuffers(MemoryStack stack) { + return null; + } + + public Queue getGraphicsQueue() { + return graphics; + } + + public Queue getPresentQueue() { + return present; + } + + } + + private static class SimpleSwapchainSupport implements SwapchainSupport, AutoCloseable { + + private final MemoryStack stack; + private final VkSurfaceCapabilitiesKHR caps; + private final VkSurfaceFormatKHR.Buffer formats; + private final IntBuffer modes; + private final long window; + + public SimpleSwapchainSupport(PhysicalDevice device, Surface surface, long window) { + stack = MemoryStack.stackPush(); + caps = VkSurfaceCapabilitiesKHR.malloc(stack); + KHRSurface.vkGetPhysicalDeviceSurfaceCapabilitiesKHR(device.getDevice(), surface.getNativeObject(), caps); + formats = enumerateBuffer(stack, n -> VkSurfaceFormatKHR.malloc(n, stack), + (count, buffer) -> KHRSurface.vkGetPhysicalDeviceSurfaceFormatsKHR( + device.getDevice(), surface.getNativeObject(), count, buffer)); + modes = enumerateBuffer(stack, stack::mallocInt, + (count, buffer) -> KHRSurface.vkGetPhysicalDeviceSurfacePresentModesKHR( + device.getDevice(), surface.getNativeObject(), count, buffer)); + this.window = window; + } + + @Override + public void close() { + stack.pop(); + } + + @Override + public VkSurfaceFormatKHR selectFormat() { + return formats.stream() + .filter(f -> f.format() == VK_FORMAT_B8G8R8A8_SRGB) + .filter(f -> f.colorSpace() == KHRSurface.VK_COLOR_SPACE_SRGB_NONLINEAR_KHR) + .findAny().orElse(formats.get(0)); + } + + @Override + public int selectMode() { + for (int i = 0; i < modes.limit(); i++) { + if (modes.get(i) == KHRSurface.VK_PRESENT_MODE_MAILBOX_KHR) { + return modes.get(i); + } + } + return KHRSurface.VK_PRESENT_MODE_FIFO_KHR; + } + + @Override + public VkExtent2D selectExtent() { + if (caps.currentExtent().width() != UINT32_MAX) { + return caps.currentExtent(); + } + try (MemoryStack stack = MemoryStack.stackPush()) { + IntBuffer width = stack.mallocInt(1); + IntBuffer height = stack.mallocInt(1); + GLFW.glfwGetFramebufferSize(window, width, height); + VkExtent2D ext = VkExtent2D.malloc(stack); + ext.width(Math.min(Math.max(width.get(0), caps.minImageExtent().width()), caps.maxImageExtent().width())); + ext.height(Math.min(Math.max(width.get(0), caps.minImageExtent().height()), caps.maxImageExtent().height())); + return ext; + } + } + + @Override + public int selectImageCount() { + int n = caps.minImageCount() + 1; + return caps.minImageCount() > 0 ? Math.min(n, caps.minImageCount()) : n; + } + + @Override + public boolean isSupported() { + return formats != null && modes != null; + } + + public VkSurfaceCapabilitiesKHR getCaps() { + return caps; + } + + public VkSurfaceFormatKHR.Buffer getFormats() { + return formats; + } + + public IntBuffer getModes() { + return modes; + } + + } + + private static class VulkanDebugCallback extends VkDebugUtilsMessengerCallbackEXT { + + private final Level exceptionThreshold; + + public VulkanDebugCallback(Level exceptionThreshold) { + this.exceptionThreshold = exceptionThreshold; + } + + @Override + public int invoke(int messageSeverity, int messageTypes, long pCallbackData, long pUserData) { + try (VkDebugUtilsMessengerCallbackDataEXT data = VkDebugUtilsMessengerCallbackDataEXT.create(pCallbackData)) { + //LOG.log(getLoggingLevel(messageSeverity), data.pMessageString()); + Level lvl = getLoggingLevel(messageSeverity); + if (exceptionThreshold != null && lvl.intValue() >= exceptionThreshold.intValue()) { + throw new RuntimeException(lvl.getName() + ": " + data.pMessageString()); + } else { + System.err.println(lvl.getName() + " " + data.pMessageString()); + } + } + return VK_FALSE; // always return false, true is only really used for testing validation layers + } + + public Level getLoggingLevel(int messageSeverity) { + switch (messageSeverity) { + case EXTDebugUtils.VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT: + return Level.SEVERE; + case EXTDebugUtils.VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT: + return Level.WARNING; + case EXTDebugUtils.VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT: + return Level.INFO; + case EXTDebugUtils.VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT: + return Level.FINE; + default: throw new UnsupportedOperationException("Unsupported severity bit: " + + Integer.numberOfTrailingZeros(Integer.highestOneBit(messageSeverity))); + } + } + + } + +} diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java index 935d8bc973..49133a1c8b 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java @@ -1,22 +1,40 @@ package jme3test.vulkan; import com.jme3.app.SimpleApplication; +import com.jme3.asset.AssetInfo; +import com.jme3.asset.AssetKey; +import com.jme3.asset.AssetLoader; +import com.jme3.shaderc.ShaderType; +import com.jme3.shaderc.ShadercLoader; import com.jme3.system.AppSettings; -import com.jme3.system.vulkan.DeviceEvaluator; +import com.jme3.util.natives.Native; +import com.jme3.vulkan.DeviceEvaluator; import com.jme3.system.vulkan.LwjglVulkanContext; +import com.jme3.vulkan.Fence; +import com.jme3.vulkan.Semaphore; +import com.jme3.vulkan.VulkanRenderManager; +import jme3tools.shader.ShaderDebug; +import org.lwjgl.BufferUtils; import org.lwjgl.PointerBuffer; +import org.lwjgl.glfw.GLFW; import org.lwjgl.glfw.GLFWVulkan; import org.lwjgl.system.MemoryStack; +import org.lwjgl.util.shaderc.Shaderc; import org.lwjgl.vulkan.*; +import java.io.*; +import java.nio.ByteBuffer; +import java.nio.IntBuffer; +import java.nio.LongBuffer; import java.util.*; +import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; import static com.jme3.renderer.vulkan.VulkanUtils.*; import static org.lwjgl.system.MemoryUtil.NULL; import static org.lwjgl.vulkan.EXTDebugUtils.*; -import static org.lwjgl.vulkan.VK10.*; +import static org.lwjgl.vulkan.VK13.*; public class VulkanTest extends SimpleApplication { @@ -24,12 +42,29 @@ public class VulkanTest extends SimpleApplication { private VkInstance instance; private VkDevice device; - private VkQueue graphics; - private final Collection extensions = new ArrayList<>(); + private VkQueue graphicsQueue, presentQueue; + private VkCommandBuffer commandBuffer; + private final VulkanRenderManager renderer = new VulkanRenderManager(2, n -> new Frame()); + private final Collection instanceExtensions = new ArrayList<>(); + private final Collection deviceExtensions = new ArrayList<>(); private final List layers = new ArrayList<>(); private final Collection deviceEvaluators = new ArrayList<>(); - private final VkDebugUtilsMessengerCallbackEXT debugCallback = new VulkanDebugCallback(); + private final VkDebugUtilsMessengerCallbackEXT debugCallback = new VulkanDebugCallback(Level.SEVERE); + private LwjglVulkanContext vulkanContext; + private Swapchain swapchain; + private LongBuffer imageViews; + private LongBuffer frameBuffers; + private long surface = NULL; + private long vertModule = NULL; + private long fragModule = NULL; + private long pipelineLayout = NULL; + private long renderPass = NULL; + private long pipeline = NULL; private long debugMessenger = NULL; + private long commandPool = NULL; + private Semaphore imageAvailableSemaphore; + private Semaphore renderFinishedSemaphore; + private Fence inFlightFence; public static void main(String[] args) { VulkanTest app = new VulkanTest(); @@ -43,40 +78,113 @@ public static void main(String[] args) { @Override public void simpleInitApp() { - // basic validation layer from the Vulkan SDK - //layers.add("VK_LAYER_KHRONOS_validation"); + vulkanContext = (LwjglVulkanContext)context; + assetManager.registerLoader(ShadercLoader.class, "glsl"); + flyCam.setDragToRotate(true); + + deviceExtensions.add(KHRSwapchain.VK_KHR_SWAPCHAIN_EXTENSION_NAME); + layers.add("VK_LAYER_KHRONOS_validation"); // basic validation layer from the Vulkan SDK try (MemoryStack stack = MemoryStack.stackPush()) { PointerBuffer layerPtrs = createLayerBuffer(stack, layers); - LOG.info("Validation layers: " + layers.size() + ", buffer: " + layerPtrs); createInstance(stack, layerPtrs); - createDebugMessenger(stack); - PhysicalDevice physDevice = findPhysicalDevice(stack); - QueueFamilyIndices queues = populateQueueFamily(stack, physDevice.getDevice()); - device = createLogicalDevice(stack, physDevice, queues, layerPtrs); - graphics = getQueue(stack, device, queues, 0); + if (layerPtrs != null) { + createDebugMessenger(stack); + } + surface = createSurface(stack, instance); + PhysicalDevice physDevice = findPhysicalDevice(stack, instance, surface); + QueueFamilyIndices queues = populateQueueFamilies(stack, physDevice.getDevice()); + device = createLogicalDevice(stack, physDevice, queues, createLayerBuffer(stack, layers)); + graphicsQueue = getQueue(stack, device, queues.getGraphics(), 0); + presentQueue = getQueue(stack, device, queues.getPresents(), 0); + swapchain = new Swapchain(stack, new SwapchainSupport(stack, physDevice.getDevice(), surface), + device, queues, surface, vulkanContext.getWindowHandle()); + imageViews = swapchain.createImageViews(stack, device); + vertModule = createVertexModule(stack, device); + fragModule = createFragmentModule(stack, device); + pipelineLayout = createPipelineLayout(stack, device); + renderPass = createRenderPass(stack, device, swapchain); + pipeline = createGraphicsPipeline(stack, device, vertModule, fragModule, pipelineLayout, renderPass); + frameBuffers = createFrameBuffers(stack, device, swapchain, imageViews, renderPass); + commandPool = createCommandPool(stack, device, queues); + commandBuffer = createCommandBuffer(stack, device, commandPool); + createSyncObjects(device); } + } @Override public void stop() { - LOG.info("Destroying vulkan device and instance."); + Native.get().clear(); // clear all native objects + // destruction will later be handled by a NativeObjectManager + System.out.println("Destroy vulkan objects..."); + if (commandPool != NULL) { + System.out.println(" destroy command pool"); + vkDestroyCommandPool(device, commandPool, null); + } + if (frameBuffers != null) { + System.out.println(" destroy framebuffers (" + frameBuffers.limit() + ")"); + for (int i = 0; i < frameBuffers.limit(); i++) { + vkDestroyFramebuffer(device, frameBuffers.get(i), null); + } + } + if (vertModule != NULL) { + System.out.println(" destroy vertex module"); + vkDestroyShaderModule(device, vertModule, null); + } + if (fragModule != NULL) { + System.out.println(" destroy fragment module"); + vkDestroyShaderModule(device, fragModule, null); + } + if (renderPass != NULL) { + System.out.println(" destroy render pass"); + vkDestroyRenderPass(device, renderPass, null); + } + if (pipeline != NULL) { + System.out.println(" destroy graphics pipeline"); + vkDestroyPipeline(device, pipeline, null); + } + if (pipelineLayout != NULL) { + System.out.println(" destroy pipeline layout"); + vkDestroyPipelineLayout(device, pipelineLayout, null); + } + if (imageViews != null) { + System.out.println(" destroy image views"); + for (int i = 0; i < imageViews.limit(); i++) { + vkDestroyImageView(device, imageViews.get(i), null); + } + } + if (swapchain != null) { + System.out.println(" destroy swapchain"); + swapchain.destroy(device); + } if (device != null) { - System.out.println("Destroy device"); + System.out.println(" destroy device"); vkDeviceWaitIdle(device); vkDestroyDevice(device, null); } if (debugMessenger != NULL) { - System.out.println("Destroy messenger"); + System.out.println(" destroy debug messenger"); verifyExtensionMethod(instance, "vkDestroyDebugUtilsMessengerEXT"); vkDestroyDebugUtilsMessengerEXT(instance, debugMessenger, null); } + if (surface != NULL) { + System.out.println(" destroy surface"); + KHRSurface.vkDestroySurfaceKHR(instance, surface, null); + } if (instance != null) { - System.out.println("Destroy instance"); + System.out.println(" destroy instance"); vkDestroyInstance(instance, null); } + System.out.println("Vulkan destruction complete!"); super.stop(); } + @Override + public void simpleUpdate(float tpf) { + renderer.render(tpf); + Native.get().flush(); // flush unused native objects + } + private void createInstance(MemoryStack stack, PointerBuffer layers) { VkApplicationInfo app = VkApplicationInfo.calloc(stack) .sType(VK_STRUCTURE_TYPE_APPLICATION_INFO) @@ -84,22 +192,19 @@ private void createInstance(MemoryStack stack, PointerBuffer layers) { .applicationVersion(VK_MAKE_VERSION(1, 0, 0)) .pEngineName(stack.ASCII("JMonkeyEngine")) .engineVersion(VK_MAKE_VERSION(3, 9, 0)) - .apiVersion(VK_API_VERSION_1_0); + .apiVersion(VK_API_VERSION_1_3); VkInstanceCreateInfo create = VkInstanceCreateInfo.calloc(stack) .sType(VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO) - //.pNext(createDebugger(stack, debugCallback)) // causing native crashes when destroying instance .pApplicationInfo(app); + addExtension(Objects.requireNonNull(GLFWVulkan.glfwGetRequiredInstanceExtensions())); + addExtension(stack, VK_EXT_DEBUG_UTILS_EXTENSION_NAME); + create.ppEnabledExtensionNames(gatherPointers(stack, instanceExtensions)); if (layers != null) { + //create.pNext(createDebugger(stack, debugCallback)); // causing native crashes? create.ppEnabledLayerNames(layers); } - addExtension(Objects.requireNonNull(GLFWVulkan.glfwGetRequiredInstanceExtensions())); - addExtension(stack, VK_EXT_DEBUG_UTILS_EXTENSION_NAME); - create.ppEnabledExtensionNames(gatherPointers(stack, extensions)); instance = new VkInstance(getPointer(stack, ptr -> check(vkCreateInstance(create, null, ptr), "Failed to create instance.")), create); - if (instance.address() == NULL) { - throw new NullPointerException("Instance pointer is null."); - } } private PointerBuffer createLayerBuffer(MemoryStack stack, Collection layers) { @@ -112,13 +217,18 @@ private void createDebugMessenger(MemoryStack stack) { debugMessenger = getLong(stack, ptr -> vkCreateDebugUtilsMessengerEXT(instance, createDebugger(stack, debugCallback), null, ptr)); } - private PhysicalDevice findPhysicalDevice(MemoryStack stack) { - PointerBuffer devices = enumerateBuffer(stack, stack::mallocPointer, (count, buffer) -> vkEnumeratePhysicalDevices(instance, count, buffer)); + private long createSurface(MemoryStack stack, VkInstance instance) { + return getLong(stack, ptr -> GLFWVulkan.glfwCreateWindowSurface(instance, vulkanContext.getWindowHandle(), null, ptr)); + } + + private PhysicalDevice findPhysicalDevice(MemoryStack stack, VkInstance instance, long surface) { + PointerBuffer devices = enumerateBuffer(stack, stack::mallocPointer, + (count, buffer) -> check(vkEnumeratePhysicalDevices(instance, count, buffer), "Failed to enumerate physical devices")); PhysicalDevice device = null; float score = 0f; for (PhysicalDevice d : iteratePointers(devices, p -> new PhysicalDevice(new VkPhysicalDevice(p, instance)))) { - Float s = evaluateDevice(d); - if (s != null && (device == null || s > score) && populateQueueFamily(stack, d.getDevice()).isComplete()) { + Float s = evaluateDevice(d, surface); + if (s != null && (device == null || s > score) && populateQueueFamilies(stack, d.getDevice()).isComplete()) { device = d; score = s; } @@ -129,59 +239,296 @@ private PhysicalDevice findPhysicalDevice(MemoryStack stack) { return device; } - private Float evaluateDevice(PhysicalDevice device) { - if (deviceEvaluators.isEmpty()) { - return 0f; - } - float score = 0f; - for (DeviceEvaluator e : deviceEvaluators) { - Float s = e.evaluateDevice(device.getDevice(), device.getProps(), device.getFeatures()); - if (s == null) { + private Float evaluateDevice(PhysicalDevice device, long surface) { + try (MemoryStack stack = MemoryStack.stackPush()) { + System.out.println("evaluating device"); + VkExtensionProperties.Buffer exts = Objects.requireNonNull(enumerateBuffer(stack, n -> { + System.out.println("create extension properties buffer: " + n); + return VkExtensionProperties.malloc(n, stack); + }, + (count, buffer) -> vkEnumerateDeviceExtensionProperties(device.getDevice(), (ByteBuffer) null, count, buffer))); + if (!deviceExtensions.stream().allMatch(e -> { + for (VkExtensionProperties p : exts) { + if (p.extensionNameString().equals(e)) { + return true; + } + } + return false; + })) return null; + if (!new SwapchainSupport(stack, device.getDevice(), surface).isSupported()) { return null; } - score += s; + if (deviceEvaluators.isEmpty()) { + return 0f; + } + float score = 0f; + for (DeviceEvaluator e : deviceEvaluators) { + //Float s = e.evaluateDevice(device.getDevice()); + Float s = 0f; + if (s == null) { + return null; + } + score += s; + } + return score; } - return score; } - private QueueFamilyIndices populateQueueFamily(MemoryStack stack, VkPhysicalDevice device) { + private QueueFamilyIndices populateQueueFamilies(MemoryStack stack, VkPhysicalDevice device) { QueueFamilyIndices fams = new QueueFamilyIndices(); VkQueueFamilyProperties.Buffer props = enumerateBuffer(stack, VkQueueFamilyProperties::malloc, (count, buffer) -> vkGetPhysicalDeviceQueueFamilyProperties(device, count, buffer)); - int i = 0; + int index = 0; for (VkQueueFamilyProperties p : props) { + final int i = index; if (isBitSet(p.queueFlags(), VK_QUEUE_GRAPHICS_BIT)) { - fams.graphics = i; + fams.setGraphics(i); + } + if (getInt(stack, result -> KHRSurface.vkGetPhysicalDeviceSurfaceSupportKHR(device, i, surface, result)) == VK_TRUE) { + fams.setPresents(i); } - i++; + index++; } return fams; } private VkDevice createLogicalDevice(MemoryStack stack, PhysicalDevice device, QueueFamilyIndices fams, PointerBuffer layers) { - VkDeviceQueueCreateInfo.Buffer queueCreate = VkDeviceQueueCreateInfo.malloc(1, stack) - .sType(VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO) - .queueFamilyIndex(fams.graphics) - .pQueuePriorities(stack.floats(1f)); - VkDeviceCreateInfo deviceCreate = VkDeviceCreateInfo.malloc(stack) + // todo: register present queue here + VkDeviceQueueCreateInfo.Buffer queueCreate = VkDeviceQueueCreateInfo.calloc(fams.getLength(), stack); + for (int i = 0; i < fams.getLength(); i++) { + System.out.println("Queue family index: " + fams.getQueue(i)); + queueCreate.get(i).sType(VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO) + .queueFamilyIndex(fams.getQueue(i)) + .pQueuePriorities(stack.floats(1f)); + } + queueCreate.rewind(); + PointerBuffer exts = toPointers(stack, deviceExtensions.stream(), deviceExtensions.size(), stack::UTF8); + VkDeviceCreateInfo deviceCreate = VkDeviceCreateInfo.calloc(stack) .sType(VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO) .pQueueCreateInfos(queueCreate) - .pEnabledFeatures(device.getFeatures()); + .pEnabledFeatures(device.getFeatures()) + .ppEnabledExtensionNames(exts); if (layers != null) { deviceCreate.ppEnabledLayerNames(layers); } - return new VkDevice(getPointer(stack, - ptr -> check(vkCreateDevice(device.getDevice(), deviceCreate, null, ptr), "Failed to create logical device.")), - device.getDevice(), deviceCreate); + System.out.println("device: " + device.getDevice() + ", device_create: " + deviceCreate); + long devHandle = getPointer(stack, ptr -> check(vkCreateDevice(device.getDevice(), deviceCreate, null, ptr), + "Failed to create logical device.")); + return new VkDevice(devHandle, device.getDevice(), deviceCreate); } - private VkQueue getQueue(MemoryStack stack, VkDevice device, QueueFamilyIndices fams, int i) { - return new VkQueue(getPointer(stack, ptr -> vkGetDeviceQueue(device, fams.graphics, i, ptr)), device); + private VkQueue getQueue(MemoryStack stack, VkDevice device, int queueIndex, int i) { + return new VkQueue(getPointer(stack, ptr -> vkGetDeviceQueue(device, queueIndex, i, ptr)), device); + } + + private long createVertexModule(MemoryStack stack, VkDevice device) { + return createShaderModule(stack, device, assetManager.loadAsset(ShadercLoader.key("Shaders/VulkanVertTest.glsl", ShaderType.Vertex))); + } + + private long createFragmentModule(MemoryStack stack, VkDevice device) { + return createShaderModule(stack, device, assetManager.loadAsset(ShadercLoader.key("Shaders/VulkanFragTest.glsl", ShaderType.Fragment))); + } + + private long createPipelineLayout(MemoryStack stack, VkDevice device) { + VkPipelineLayoutCreateInfo layoutCreate = VkPipelineLayoutCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO); + return getLong(stack, ptr -> check(vkCreatePipelineLayout(device, layoutCreate, null, ptr), + "Failed to create pipeline layout.")); + } + + private long createShaderModule(MemoryStack stack, VkDevice device, ByteBuffer code) { + VkShaderModuleCreateInfo create = VkShaderModuleCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO) + .pCode(code); + return getLong(stack, ptr -> check(vkCreateShaderModule(device, create, null, ptr), + "Failed to create shader module.")); + } + + private long createGraphicsPipeline(MemoryStack stack, VkDevice device, long vert, long frag, long layout, long renderPass) { + VkPipelineShaderStageCreateInfo.Buffer stages = VkPipelineShaderStageCreateInfo.calloc(2, stack); + stages.get(0).sType(VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO) + .stage(VK_SHADER_STAGE_VERTEX_BIT) + .module(vert) + .pName(stack.UTF8("main")); // function initially called in the shader + stages.get(1).sType(VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO) + .stage(VK_SHADER_STAGE_FRAGMENT_BIT) + .module(frag) + .pName(stack.UTF8("main")); + VkPipelineDynamicStateCreateInfo dynamic = VkPipelineDynamicStateCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO) + .pDynamicStates(stack.ints(VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR)); + VkPipelineVertexInputStateCreateInfo vertInput = VkPipelineVertexInputStateCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO); + VkPipelineInputAssemblyStateCreateInfo assembly = VkPipelineInputAssemblyStateCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO) + .topology(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST) + .primitiveRestartEnable(false); + VkViewport.Buffer viewport = VkViewport.calloc(1, stack) + .x(0f).y(0f) + .width(swapchain.getExtent().width()).height(swapchain.getExtent().height()) + .minDepth(0f).maxDepth(1f); + VkRect2D.Buffer scissor = VkRect2D.calloc(1, stack) + .offset(VkOffset2D.calloc(stack).set(0, 0)) + .extent(swapchain.getExtent()); + VkPipelineViewportStateCreateInfo vpState = VkPipelineViewportStateCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO) + .pViewports(viewport) + .pScissors(scissor); + VkPipelineRasterizationStateCreateInfo raster = VkPipelineRasterizationStateCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO) + .depthClampEnable(false) + .rasterizerDiscardEnable(false) + .polygonMode(VK_POLYGON_MODE_FILL) + .lineWidth(1f) + .cullMode(VK_CULL_MODE_BACK_BIT) + .frontFace(VK_FRONT_FACE_CLOCKWISE) + .depthBiasEnable(false); + VkPipelineMultisampleStateCreateInfo multisample = VkPipelineMultisampleStateCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO) + .sampleShadingEnable(false) + .rasterizationSamples(VK_SAMPLE_COUNT_1_BIT); + // todo: configure depth and stencil buffers + VkPipelineColorBlendAttachmentState.Buffer blendAtt = VkPipelineColorBlendAttachmentState.calloc(1, stack) + .colorWriteMask(VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT) + .blendEnable(false) + .srcColorBlendFactor(VK_BLEND_FACTOR_ONE) + .dstColorBlendFactor(VK_BLEND_FACTOR_ZERO) + .colorBlendOp(VK_BLEND_OP_ADD) + .srcAlphaBlendFactor(VK_BLEND_FACTOR_ONE) + .srcAlphaBlendFactor(VK_BLEND_FACTOR_ZERO) + .alphaBlendOp(VK_BLEND_OP_ADD); + VkPipelineColorBlendStateCreateInfo blend = VkPipelineColorBlendStateCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO) + .logicOpEnable(false) + .logicOp(VK_LOGIC_OP_COPY) + .pAttachments(blendAtt); + VkGraphicsPipelineCreateInfo.Buffer pipeline = VkGraphicsPipelineCreateInfo.calloc(1, stack) + .sType(VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO) + .stageCount(2) + .pStages(stages) + .pVertexInputState(vertInput) + .pInputAssemblyState(assembly) + .pViewportState(vpState) + .pRasterizationState(raster) + .pMultisampleState(multisample) + .pColorBlendState(blend) + .pDynamicState(dynamic) + .layout(layout) + .renderPass(renderPass) + .subpass(0) + .basePipelineHandle(VK_NULL_HANDLE) + .basePipelineIndex(-1); + return getLong(stack, ptr -> check(vkCreateGraphicsPipelines(device, VK_NULL_HANDLE, pipeline, null, ptr), + "Failed to create graphics pipeline.")); + } + + private long createRenderPass(MemoryStack stack, VkDevice device, Swapchain swapchain) { + VkAttachmentDescription.Buffer color = VkAttachmentDescription.calloc(1, stack) + .format(swapchain.getFormat()) + .samples(VK_SAMPLE_COUNT_1_BIT) + .loadOp(VK_ATTACHMENT_LOAD_OP_CLEAR) + .storeOp(VK_ATTACHMENT_STORE_OP_STORE) + .stencilLoadOp(VK_ATTACHMENT_LOAD_OP_DONT_CARE) + .stencilStoreOp(VK_ATTACHMENT_STORE_OP_DONT_CARE) + .initialLayout(VK_IMAGE_LAYOUT_UNDEFINED) + .finalLayout(KHRSwapchain.VK_IMAGE_LAYOUT_PRESENT_SRC_KHR); + VkAttachmentReference.Buffer refs = VkAttachmentReference.calloc(1, stack) + .attachment(0) // references the attachment in the render pass attachment array + .layout(VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL); + VkSubpassDescription.Buffer subpass = VkSubpassDescription.calloc(1, stack) + .pipelineBindPoint(VK_PIPELINE_BIND_POINT_GRAPHICS) + .colorAttachmentCount(1) + .pColorAttachments(refs); + VkSubpassDependency.Buffer dependency = VkSubpassDependency.calloc(1, stack) + .srcSubpass(VK_SUBPASS_EXTERNAL) // refers to the implicit pass before our subpass + .dstSubpass(0) // refers to our only subpass + .srcStageMask(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT) + .srcAccessMask(0) + .dstStageMask(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT) + .dstAccessMask(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT); + VkRenderPassCreateInfo create = VkRenderPassCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO) + .pAttachments(color) // render pass attachment array + .pSubpasses(subpass) + .pDependencies(dependency); + return getLong(stack, ptr -> check(vkCreateRenderPass(device, create, null, ptr), + "Failed to create render pass.")); + } + + private LongBuffer createFrameBuffers(MemoryStack stack, VkDevice device, Swapchain swapchain, LongBuffer imageViews, long renderPass) { + LongBuffer buffers = BufferUtils.createLongBuffer(imageViews.limit()); + for (int i = 0; i < imageViews.limit(); i++) { + VkFramebufferCreateInfo create = VkFramebufferCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO) + .renderPass(renderPass) + .pAttachments(stack.longs(imageViews.get(i))) + .width(swapchain.getExtent().width()) + .height(swapchain.getExtent().height()) + .layers(1); + buffers.put(i, getLong(stack, ptr -> check(vkCreateFramebuffer(device, create, null, ptr), + "Failed to create framebuffer."))); + } + return buffers; + } + + private long createCommandPool(MemoryStack stack, VkDevice device, QueueFamilyIndices queues) { + VkCommandPoolCreateInfo create = VkCommandPoolCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO) + .flags(VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT) + .queueFamilyIndex(queues.getGraphics()); + return getLong(stack, ptr -> check(vkCreateCommandPool(device, create, null, ptr), + "Failed to create command pool.")); + } + + private VkCommandBuffer createCommandBuffer(MemoryStack stack, VkDevice device, long commandPool) { + VkCommandBufferAllocateInfo allocate = VkCommandBufferAllocateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO) + .commandPool(commandPool) + .level(VK_COMMAND_BUFFER_LEVEL_PRIMARY) + .commandBufferCount(1); + return new VkCommandBuffer(getPointer(stack, ptr -> check(vkAllocateCommandBuffers(device, allocate, ptr), + "Failed to create command buffer.")), device); + } + + private void recordCommandBuffer(MemoryStack stack, int imageIndex) { + VkCommandBufferBeginInfo commandBegin = VkCommandBufferBeginInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO); + check(vkBeginCommandBuffer(commandBuffer, commandBegin), "Failed to begin recording command buffer"); + VkRenderPassBeginInfo passBegin = VkRenderPassBeginInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO) + .renderPass(renderPass) + .framebuffer(frameBuffers.get(imageIndex)) + .clearValueCount(1); + VkClearValue.Buffer clear = VkClearValue.calloc(1, stack); + clear.color().float32(stack.floats(0f, 0f, 0f, 1f)); + passBegin.pClearValues(clear); + passBegin.renderArea().offset(VkOffset2D.malloc(stack).set(0, 0)) + .extent(swapchain.getExtent()); + vkCmdBeginRenderPass(commandBuffer, passBegin, VK_SUBPASS_CONTENTS_INLINE); + vkCmdBindPipeline(commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline); + VkViewport.Buffer vp = VkViewport.calloc(1, stack) + .x(0f).y(0f).width(swapchain.getExtent().width()).height(swapchain.getExtent().height()) + .minDepth(0f).maxDepth(1f); + vkCmdSetViewport(commandBuffer, 0, vp); + VkRect2D.Buffer scissor = VkRect2D.calloc(1, stack) + .offset(VkOffset2D.malloc(stack).set(0, 0)) + .extent(swapchain.getExtent()); + vkCmdSetScissor(commandBuffer, 0, scissor); + vkCmdDraw(commandBuffer, 3, 1, 0, 0); + vkCmdEndRenderPass(commandBuffer); + check(vkEndCommandBuffer(commandBuffer), "Failed to record command buffer."); + } + + private void createSyncObjects(VkDevice device) { + //imageAvailableSemaphore = new Semaphore(device); + //renderFinishedSemaphore = new Semaphore(device); + //inFlightFence = new Fence(device, true); } private void verifyValidationLayerSupport(MemoryStack stack) { VkLayerProperties.Buffer supported = enumerateBuffer(stack, n -> VkLayerProperties.malloc(n, stack), VK10::vkEnumerateInstanceLayerProperties); + Objects.requireNonNull(supported); requestLoop: for (String r : layers) { for (VkLayerProperties l : supported) { if (r.equals(l.layerNameString())) { @@ -193,29 +540,145 @@ private void verifyValidationLayerSupport(MemoryStack stack) { } private VkDebugUtilsMessengerCreateInfoEXT createDebugger(MemoryStack stack, VkDebugUtilsMessengerCallbackEXT callback) { - return VkDebugUtilsMessengerCreateInfoEXT.malloc(stack) + VkDebugUtilsMessengerCreateInfoEXT create = VkDebugUtilsMessengerCreateInfoEXT.calloc(stack) .sType(VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT) .messageSeverity(VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT) .messageType(VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT | - VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT) - .pfnUserCallback(callback); + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT); + if (callback != null) { + create.pfnUserCallback(callback); + } + return create; } private void addExtension(MemoryStack stack, String ext) { - extensions.add(stack.mallocPointer(1).put(stack.UTF8(ext)).rewind()); + instanceExtensions.add(stack.mallocPointer(1).put(stack.UTF8(ext)).rewind()); } private void addExtension(PointerBuffer ext) { - extensions.add(ext); + instanceExtensions.add(ext); + } + + private class Frame implements Runnable { + + private final Semaphore imageAvailable = null; + private final Semaphore renderFinished = null; + private final Fence inFlight = null; + + public Frame() {} + + @Override + public void run() { + try (MemoryStack stack = MemoryStack.stackPush()) { + System.out.println("start frame render commands"); + inFlight.blockThenReset(5000); + int image = getInt(stack, i -> check(KHRSwapchain.vkAcquireNextImageKHR( + device, swapchain.getSwapchain(), TimeUnit.SECONDS.toNanos(5), imageAvailable.getId(), VK_NULL_HANDLE, i), + "Failed to acquire next swapchain image.")); // forces rendering to wait for image availability + vkResetCommandBuffer(commandBuffer, 0); + recordCommandBuffer(stack, image); + VkSubmitInfo.Buffer submit = VkSubmitInfo.calloc(1, stack) + .sType(VK_STRUCTURE_TYPE_SUBMIT_INFO) + .waitSemaphoreCount(1) + .pWaitSemaphores(imageAvailableSemaphore.toBuffer(stack)) // waits until the image has been acquired + .pWaitDstStageMask(stack.ints(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT)) + .pCommandBuffers(stack.pointers(commandBuffer)) + .pSignalSemaphores(stack.longs(renderFinished.getId())); // forces the present operation to wait + check(vkQueueSubmit(graphicsQueue, submit, inFlightFence.getId()), "Failed to submit commands to graphics queue."); + VkPresentInfoKHR present = VkPresentInfoKHR.calloc(stack) + .sType(KHRSwapchain.VK_STRUCTURE_TYPE_PRESENT_INFO_KHR) + .pWaitSemaphores(renderFinishedSemaphore.toBuffer(stack)) // waits until rendering has completed + .swapchainCount(1) + .pSwapchains(stack.longs(swapchain.getSwapchain())) + .pImageIndices(stack.ints(image)); + check(KHRSwapchain.vkQueuePresentKHR(presentQueue, present), "Failed to present image to swapchain"); + System.out.println("end frame render commands"); + } + } + + private void recordCommandBuffer(MemoryStack stack, int imageIndex) { + VkCommandBufferBeginInfo commandBegin = VkCommandBufferBeginInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO); + check(vkBeginCommandBuffer(commandBuffer, commandBegin), "Failed to begin recording command buffer"); + VkRenderPassBeginInfo passBegin = VkRenderPassBeginInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO) + .renderPass(renderPass) + .framebuffer(frameBuffers.get(imageIndex)) + .clearValueCount(1); + + VkClearValue.Buffer clear = VkClearValue.calloc(1, stack); + clear.color().float32(stack.floats(0f, 0f, 0f, 1f)); + passBegin.pClearValues(clear); + passBegin.renderArea().offset(VkOffset2D.malloc(stack).set(0, 0)) + .extent(swapchain.getExtent()); + vkCmdBeginRenderPass(commandBuffer, passBegin, VK_SUBPASS_CONTENTS_INLINE); + vkCmdBindPipeline(commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline); + VkViewport.Buffer vp = VkViewport.calloc(1, stack) + .x(0f).y(0f).width(swapchain.getExtent().width()).height(swapchain.getExtent().height()) + .minDepth(0f).maxDepth(1f); + vkCmdSetViewport(commandBuffer, 0, vp); + VkRect2D.Buffer scissor = VkRect2D.calloc(1, stack) + .offset(VkOffset2D.malloc(stack).set(0, 0)) + .extent(swapchain.getExtent()); + vkCmdSetScissor(commandBuffer, 0, scissor); + vkCmdDraw(commandBuffer, 3, 1, 0, 0); + vkCmdEndRenderPass(commandBuffer); + check(vkEndCommandBuffer(commandBuffer), "Failed to record command buffer."); + } + } private static class QueueFamilyIndices { - public Integer graphics; + public static final int GRAPHICS = 0, PRESENTS = 1; + private final Integer[] queues = new Integer[2]; + + public void setGraphics(Integer graphics) { + queues[GRAPHICS] = graphics; + } + + public void setPresents(Integer presents) { + queues[PRESENTS] = presents; + } + + public Integer[] getQueues() { + return queues; + } + + public Integer getQueue(int i) { + return queues[i]; + } + + public Integer getGraphics() { + return queues[GRAPHICS]; + } + + public Integer getPresents() { + return queues[PRESENTS]; + } + + public int getLength() { + return queues.length; + } public boolean isComplete() { - return graphics != null; + return Arrays.stream(queues).allMatch(Objects::nonNull); + } + + public boolean requiresConcurrentSharing() { + return !Objects.equals(getGraphics(), getPresents()); + } + + private IntBuffer toBuffer(MemoryStack stack) { + if (!isComplete()) { + throw new IllegalStateException("Not all queues found in this context."); + } + IntBuffer buf = stack.mallocInt(queues.length); + for (int i = 0; i < queues.length; i++) { + buf.put(i, queues[i]); + } + return buf; } } @@ -233,11 +696,6 @@ private PhysicalDevice(VkPhysicalDevice device) { vkGetPhysicalDeviceFeatures(device, features); this.device = device; } - private PhysicalDevice(VkPhysicalDevice device, VkPhysicalDeviceProperties props, VkPhysicalDeviceFeatures features) { - this.device = device; - this.props = props; - this.features = features; - } public VkPhysicalDevice getDevice() { return device; @@ -253,13 +711,176 @@ public VkPhysicalDeviceFeatures getFeatures() { } + private static class SwapchainSupport { + + private final VkSurfaceCapabilitiesKHR caps; + private final VkSurfaceFormatKHR.Buffer formats; + private final IntBuffer modes; + + public SwapchainSupport(MemoryStack stack, VkPhysicalDevice device, long surface) { + caps = VkSurfaceCapabilitiesKHR.malloc(stack); + KHRSurface.vkGetPhysicalDeviceSurfaceCapabilitiesKHR(device, surface, caps); + formats = enumerateBuffer(stack, n -> VkSurfaceFormatKHR.malloc(n, stack), + (count, buffer) -> KHRSurface.vkGetPhysicalDeviceSurfaceFormatsKHR(device, surface, count, buffer)); + modes = enumerateBuffer(stack, stack::mallocInt, + (count, buffer) -> KHRSurface.vkGetPhysicalDeviceSurfacePresentModesKHR(device, surface, count, buffer)); + } + + public VkSurfaceFormatKHR selectFormat() { + return formats.stream() + .filter(f -> f.format() == VK_FORMAT_B8G8R8A8_SRGB) + .filter(f -> f.colorSpace() == KHRSurface.VK_COLOR_SPACE_SRGB_NONLINEAR_KHR) + .findAny().orElse(formats.get(0)); + } + + public int selectMode() { + for (int i = 0; i < modes.limit(); i++) { + if (modes.get(i) == KHRSurface.VK_PRESENT_MODE_MAILBOX_KHR) { + return modes.get(i); + } + } + return KHRSurface.VK_PRESENT_MODE_FIFO_KHR; + } + + public VkExtent2D selectExtent(MemoryStack stack, long window) { + if (caps.currentExtent().width() != UINT32_MAX) { + return caps.currentExtent(); + } + IntBuffer width = stack.mallocInt(1); + IntBuffer height = stack.mallocInt(1); + GLFW.glfwGetFramebufferSize(window, width, height); + VkExtent2D ext = VkExtent2D.malloc(stack); + ext.width(Math.min(Math.max(width.get(0), caps.minImageExtent().width()), caps.maxImageExtent().width())); + ext.height(Math.min(Math.max(width.get(0), caps.minImageExtent().height()), caps.maxImageExtent().height())); + return ext; + } + + public int selectImageCount() { + int n = caps.minImageCount() + 1; + return caps.minImageCount() > 0 ? Math.min(n, caps.minImageCount()) : n; + } + + public boolean isSupported() { + return formats != null && modes != null; + } + + public VkSurfaceCapabilitiesKHR getCaps() { + return caps; + } + + public VkSurfaceFormatKHR.Buffer getFormats() { + return formats; + } + + public IntBuffer getModes() { + return modes; + } + + } + + private static class Swapchain { + + private final long swapchain; + private final LongBuffer images; + private final int format; + private final VkExtent2D extent; + + @SuppressWarnings("resource") // todo: watch for memory leaks + public Swapchain(MemoryStack stack, SwapchainSupport support, VkDevice device, QueueFamilyIndices queues, long surface, long window) { + VkSurfaceFormatKHR fmt = support.selectFormat(); + format = fmt.format(); + extent = support.selectExtent(stack, window); + VkSwapchainCreateInfoKHR create = VkSwapchainCreateInfoKHR.calloc(stack) + .sType(KHRSwapchain.VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR) + .surface(surface) + .minImageCount(support.selectImageCount()) + .imageFormat(format) + .imageColorSpace(fmt.colorSpace()) + .imageExtent(extent) + .imageArrayLayers(1) // this will probably never change for games + .imageUsage(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT) // rendering directly to the swapchain images + .preTransform(support.getCaps().currentTransform()) + .compositeAlpha(KHRSurface.VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR) // blending with other windows + .presentMode(support.selectMode()) + .clipped(true) + .oldSwapchain(VK_NULL_HANDLE); + if (queues.requiresConcurrentSharing()) { // different graphics and present queues + create.imageSharingMode(VK_SHARING_MODE_CONCURRENT) + .queueFamilyIndexCount(queues.getLength()) + .pQueueFamilyIndices(queues.toBuffer(stack)); + } else { // use a faster sharing mode + create.imageSharingMode(VK_SHARING_MODE_EXCLUSIVE); + } + swapchain = getLong(stack, ptr -> check(KHRSwapchain.vkCreateSwapchainKHR(device, create, null, ptr), + "Failed to create swapchain.")); + images = enumerateBuffer(stack, BufferUtils::createLongBuffer, + (count, buffer) -> KHRSwapchain.vkGetSwapchainImagesKHR(device, swapchain, count, buffer)); + } + + public LongBuffer createImageViews(MemoryStack stack, VkDevice device) { + LongBuffer views = BufferUtils.createLongBuffer(images.limit()); + for (int i = 0; i < images.limit(); i++) { + VkImageViewCreateInfo create = VkImageViewCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO) + .image(images.get(i)) + .viewType(VK_IMAGE_VIEW_TYPE_2D) + .format(format); + create.components().r(VK_COMPONENT_SWIZZLE_IDENTITY) + .g(VK_COMPONENT_SWIZZLE_IDENTITY) + .b(VK_COMPONENT_SWIZZLE_IDENTITY) + .a(VK_COMPONENT_SWIZZLE_IDENTITY); + create.subresourceRange().aspectMask(VK_IMAGE_ASPECT_COLOR_BIT) + .baseMipLevel(0) + .levelCount(1) + .baseArrayLayer(0) + .layerCount(1); + views.put(getLong(stack, ptr -> check(vkCreateImageView(device, create, null, ptr), + "Failed to create image view."))); + } + views.rewind(); + return views; + } + + public void destroy(VkDevice device) { + KHRSwapchain.vkDestroySwapchainKHR(device, swapchain, null); + } + + public long getSwapchain() { + return swapchain; + } + + public LongBuffer getImages() { + return images; + } + + public int getFormat() { + return format; + } + + public VkExtent2D getExtent() { + return extent; + } + + } + private static class VulkanDebugCallback extends VkDebugUtilsMessengerCallbackEXT { + private Level exceptionThreshold; + + public VulkanDebugCallback(Level exceptionThreshold) { + this.exceptionThreshold = exceptionThreshold; + } + @Override public int invoke(int messageSeverity, int messageTypes, long pCallbackData, long pUserData) { try (VkDebugUtilsMessengerCallbackDataEXT data = VkDebugUtilsMessengerCallbackDataEXT.create(pCallbackData)) { //LOG.log(getLoggingLevel(messageSeverity), data.pMessageString()); - System.err.println(getLoggingLevel(messageSeverity).getName() + " " + data.pMessageString()); + Level lvl = getLoggingLevel(messageSeverity); + if (exceptionThreshold != null && lvl.intValue() >= exceptionThreshold.intValue()) { + throw new RuntimeException(lvl.getName() + ": " + data.pMessageString()); + } else { + System.err.println(lvl.getName() + " " + data.pMessageString()); + } } return VK_FALSE; // always return false, true is only really used for testing validation layers } diff --git a/jme3-lwjgl3/build.gradle b/jme3-lwjgl3/build.gradle index 82a83ac21c..efd0863fea 100644 --- a/jme3-lwjgl3/build.gradle +++ b/jme3-lwjgl3/build.gradle @@ -13,6 +13,7 @@ dependencies { api libs.lwjgl3.opencl api libs.lwjgl3.opengl api libs.lwjgl3.vulkan + api libs.lwjgl3.shaderc runtimeOnly(variantOf(libs.lwjgl3.base){ classifier('natives-windows') }) runtimeOnly(variantOf(libs.lwjgl3.base){ classifier('natives-windows-x86') }) diff --git a/jme3-lwjgl3/src/main/java/com/jme3/shaderc/ShaderType.java b/jme3-lwjgl3/src/main/java/com/jme3/shaderc/ShaderType.java new file mode 100644 index 0000000000..2aff284de9 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/shaderc/ShaderType.java @@ -0,0 +1,37 @@ +package com.jme3.shaderc; + +import org.lwjgl.util.shaderc.Shaderc; +import org.lwjgl.vulkan.VK10; + +public enum ShaderType { + + Vertex(VK10.VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, VK10.VK_SHADER_STAGE_VERTEX_BIT, Shaderc.shaderc_vertex_shader), + Fragment(VK10.VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, VK10.VK_SHADER_STAGE_FRAGMENT_BIT, Shaderc.shaderc_fragment_shader), + Tessellation(VK10.VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, VK10.VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, Shaderc.shaderc_tess_evaluation_shader), + TessellationControl(VK10.VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, VK10.VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, Shaderc.shaderc_tess_control_shader), + Geometry(VK10.VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, VK10.VK_SHADER_STAGE_GEOMETRY_BIT, Shaderc.shaderc_geometry_shader), + Compute(VK10.VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK10.VK_SHADER_STAGE_COMPUTE_BIT, Shaderc.shaderc_compute_shader); + + private final int vulkanPipeline; + private final int vulkanShader; + private final int shaderc; + + ShaderType(int vulkanPipeline, int vulkanShader, int shaderc) { + this.vulkanPipeline = vulkanPipeline; + this.vulkanShader = vulkanShader; + this.shaderc = shaderc; + } + + public int getVulkanPipeline() { + return vulkanPipeline; + } + + public int getVulkanShader() { + return vulkanShader; + } + + public int getShaderc() { + return shaderc; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/shaderc/ShadercLoader.java b/jme3-lwjgl3/src/main/java/com/jme3/shaderc/ShadercLoader.java new file mode 100644 index 0000000000..a816e1b0b4 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/shaderc/ShadercLoader.java @@ -0,0 +1,130 @@ +package com.jme3.shaderc; + +import com.jme3.asset.AssetInfo; +import com.jme3.asset.AssetKey; +import com.jme3.asset.AssetLoader; +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import jme3tools.shader.ShaderDebug; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.util.shaderc.Shaderc; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.ByteBuffer; +import java.util.Objects; +import java.util.logging.Level; +import java.util.logging.Logger; + +import static org.lwjgl.system.MemoryUtil.NULL; + +public class ShadercLoader implements AssetLoader { + + private static final Logger LOG = Logger.getLogger(ShadercLoader.class.getName()); + private static final Compiler compiler = new Compiler(); + + @Override + public Object load(AssetInfo assetInfo) throws IOException { + if (!(assetInfo.getKey() instanceof Key)) { + throw new IllegalArgumentException("Requires " + Key.class.getName()); + } + Key key = (Key)assetInfo.getKey(); + try (InputStream in = assetInfo.openStream()) { + BufferedReader reader = new BufferedReader(new InputStreamReader(in)); + StringBuilder code = new StringBuilder(); + for (String line; (line = reader.readLine()) != null; ) { + code.append(line).append('\n'); + } + return compile(key.getName(), code.toString(), key.getShaderType(), key.getEntryPoint()); + } + } + + public static ByteBuffer compile(String name, String code, ShaderType type, String entry) { + synchronized (compiler) { try (MemoryStack stack = MemoryStack.stackPush()) { + long preprocessed = Shaderc.shaderc_compile_into_preprocessed_text(compiler.getNativeObject(), code, + type.getShaderc(), name, entry, NULL); + ByteBuffer bytecode = Objects.requireNonNull(Shaderc.shaderc_result_get_bytes(preprocessed)); + long compiled = Shaderc.shaderc_compile_into_spv(compiler.getNativeObject(), bytecode, + type.getShaderc(), stack.UTF8(name), stack.UTF8(entry), NULL); + if (Shaderc.shaderc_result_get_compilation_status(compiled) != Shaderc.shaderc_compilation_status_success) { + LOG.log(Level.SEVERE, "Bad compile of\n{0}", ShaderDebug.formatShaderSource(code)); + throw new RuntimeException("Failed to compile " + name + ":\n" + + Shaderc.shaderc_result_get_error_message(compiled)); + } + long warnings = Shaderc.shaderc_result_get_num_warnings(compiled); + if (warnings > 0) { + LOG.warning("Compiled with " + warnings + " warning" + (warnings == 1 ? "" : "s") + ": " + name); + } else { + LOG.fine("Compiled with no warnings: " + name); + } + return Shaderc.shaderc_result_get_bytes(compiled); + }} + } + + public static AssetKey key(String name, ShaderType type) { + return new Key(name, type, "main"); + } + + public static AssetKey key(String name, ShaderType type, String entry) { + return new Key(name, type, entry); + } + + private static class Compiler implements Native { + + private final NativeReference ref; + private long id; + + private Compiler() { + id = Shaderc.shaderc_compiler_initialize(); + if (id == NULL) { + throw new NullPointerException("Unable to initialize Shaderc compiler."); + } + ref = Native.get().register(this); + } + + @Override + public Long getNativeObject() { + return id; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> Shaderc.shaderc_compiler_release(id); + } + + @Override + public void prematureNativeDestruction() { + id = NULL; + } + + @Override + public NativeReference getNativeReference() { + return ref; + } + + } + + public static class Key extends AssetKey { + + private final ShaderType shaderType; + private final String entryPoint; + + public Key(String name, ShaderType shaderType, String entryPoint) { + super(name); + this.shaderType = shaderType; + this.entryPoint = entryPoint; + } + + public ShaderType getShaderType() { + return shaderType; + } + + public String getEntryPoint() { + return entryPoint; + } + + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/system/vulkan/DeviceEvaluator.java b/jme3-lwjgl3/src/main/java/com/jme3/system/vulkan/DeviceEvaluator.java deleted file mode 100644 index 2cde580774..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/system/vulkan/DeviceEvaluator.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.jme3.system.vulkan; - -import org.lwjgl.vulkan.VkPhysicalDevice; -import org.lwjgl.vulkan.VkPhysicalDeviceFeatures; -import org.lwjgl.vulkan.VkPhysicalDeviceProperties; - -public interface DeviceEvaluator { - - Float evaluateDevice(VkPhysicalDevice device, VkPhysicalDeviceProperties props, VkPhysicalDeviceFeatures features); - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/system/vulkan/LwjglVulkanContext.java b/jme3-lwjgl3/src/main/java/com/jme3/system/vulkan/LwjglVulkanContext.java index 406b9c667d..af3853d0c8 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/system/vulkan/LwjglVulkanContext.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/system/vulkan/LwjglVulkanContext.java @@ -93,9 +93,6 @@ protected void engineInitialize() { } protected void glfwInitialize() { - //if (!GLFWVulkan.glfwVulkanSupported()) { - // throw new NullPointerException("Hardware does not support Vulkan."); - //} glfwSetErrorCallback(errorCallback = new GLFWErrorCallback() { @Override public void invoke(int error, long description) { @@ -109,6 +106,9 @@ public void invoke(int error, long description) { glfwInitHint(GLFW_WAYLAND_LIBDECOR, settings.isFullscreen() ? GLFW_WAYLAND_DISABLE_LIBDECOR : GLFW_WAYLAND_PREFER_LIBDECOR); } glfwInit(); + if (!GLFWVulkan.glfwVulkanSupported()) { + throw new NullPointerException("Hardware does not support Vulkan."); + } glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API); glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE); window = glfwCreateWindow(getSettings().getWidth(), getSettings().getHeight(), getSettings().getTitle(), NULL, NULL); @@ -173,10 +173,11 @@ protected void syncFrames() { } protected void engineTerminate() { + System.out.println("terminate engine"); engine.destroy(); glfwDestroyWindow(window); glfwTerminate(); - LOGGER.fine("Display destroyed."); + LOGGER.info("Display destroyed."); } protected void updateSizes() { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Attachment.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Attachment.java new file mode 100644 index 0000000000..73689892db --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Attachment.java @@ -0,0 +1,54 @@ +package com.jme3.vulkan; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import org.lwjgl.vulkan.VkAttachmentDescription; +import org.lwjgl.vulkan.VkAttachmentReference; + +import static org.lwjgl.vulkan.VK10.*; + +public class Attachment implements Native { + + private final NativeReference ref; + private VkAttachmentDescription description; + private VkAttachmentReference reference; + + public Attachment(int format, int samples, int finalLayout) { + description = VkAttachmentDescription.create() + .format(format) + .samples(samples) + .loadOp(VK_ATTACHMENT_LOAD_OP_CLEAR) + .storeOp(VK_ATTACHMENT_STORE_OP_STORE) + .stencilLoadOp(VK_ATTACHMENT_LOAD_OP_CLEAR) + .stencilLoadOp(VK_ATTACHMENT_STORE_OP_STORE) + .initialLayout(VK_IMAGE_LAYOUT_UNDEFINED) + .finalLayout(finalLayout); + reference = VkAttachmentReference.create(); + ref = Native.get().register(this); + } + + @Override + public VkAttachmentDescription getNativeObject() { + return description; + } + + @Override + public Runnable createNativeDestroyer() { + return description::free; + } + + @Override + public void prematureNativeDestruction() { + description = null; + } + + @Override + public NativeReference getNativeReference() { + return null; + } + + public VkAttachmentDescription getDescription() { + return description; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandBuffer.java new file mode 100644 index 0000000000..621467db72 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandBuffer.java @@ -0,0 +1,87 @@ +package com.jme3.vulkan; + +import org.lwjgl.BufferUtils; +import org.lwjgl.PointerBuffer; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.vulkan.VkCommandBuffer; +import org.lwjgl.vulkan.VkCommandBufferAllocateInfo; +import org.lwjgl.vulkan.VkCommandBufferBeginInfo; +import org.lwjgl.vulkan.VkSubmitInfo; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.vulkan.VK10.*; + +public class CommandBuffer { + + protected final CommandPool pool; + protected final VkCommandBuffer buffer; + protected boolean recording = false; + + public CommandBuffer(CommandPool pool) { + this.pool = pool; + VkCommandBufferAllocateInfo allocate = VkCommandBufferAllocateInfo.create() + .sType(VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO) + .commandPool(pool.getNativeObject()) + .level(VK_COMMAND_BUFFER_LEVEL_PRIMARY) + .commandBufferCount(1); + PointerBuffer ptr = MemoryUtil.memAllocPointer(1); + check(vkAllocateCommandBuffers(pool.getDevice().getNativeObject(), allocate, ptr), + "Failed to allocate command buffer"); + buffer = new VkCommandBuffer(ptr.get(0), pool.getDevice().getNativeObject()); + allocate.close(); + MemoryUtil.memFree(ptr); + } + + public void begin() { + if (recording) { + throw new IllegalStateException("Command buffer already recording."); + } + VkCommandBufferBeginInfo begin = VkCommandBufferBeginInfo.create() + .sType(VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO); + check(vkBeginCommandBuffer(buffer, begin), "Failed to begin command buffer"); + begin.close(); + recording = true; + } + + public void end() { + check(vkEndCommandBuffer(buffer), "Failed to record command buffer"); + } + + public void submit(Semaphore wait, Semaphore signal, Fence fence) { + if (!recording) { + throw new IllegalStateException("Command buffer has not begun recording."); + } + try (MemoryStack stack = MemoryStack.stackPush()) { + VkSubmitInfo.Buffer submit = VkSubmitInfo.calloc(1, stack) + .sType(VK_STRUCTURE_TYPE_SUBMIT_INFO) + .pCommandBuffers(stack.pointers(buffer)); + if (wait != null) { + submit.waitSemaphoreCount(1).pWaitSemaphores(stack.longs(wait.getNativeObject())) + .pWaitDstStageMask(stack.ints(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT)); + } + if (signal != null) { + submit.pSignalSemaphores(stack.longs(signal.getNativeObject())); + } + pool.getQueue().submit(submit, fence); + } + recording = false; + } + + public void reset() { + vkResetCommandBuffer(buffer, 0); + } + + public CommandPool getPool() { + return pool; + } + + public VkCommandBuffer getBuffer() { + return buffer; + } + + public boolean isRecording() { + return recording; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandPool.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandPool.java new file mode 100644 index 0000000000..aca0119358 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandPool.java @@ -0,0 +1,73 @@ +package com.jme3.vulkan; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.vulkan.VkCommandPoolCreateInfo; + +import java.nio.LongBuffer; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.vulkan.VK10.*; + +public class CommandPool implements Native { + + private final LogicalDevice device; + private final Queue queue; + private final NativeReference ref; + private LongBuffer id = MemoryUtil.memAllocLong(1); + + public CommandPool(LogicalDevice device, Queue queue, boolean isTransient, boolean reset) { + this.device = device; + this.queue = queue; + VkCommandPoolCreateInfo create = VkCommandPoolCreateInfo.create() + .sType(VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO) + .flags((isTransient ? VK_COMMAND_POOL_CREATE_TRANSIENT_BIT : 0) + | (reset ? VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT : 0)) + .queueFamilyIndex(queue.getFamilyIndex()); + check(vkCreateCommandPool(device.getNativeObject(), create, null, id), "Failed to create command pool."); + create.close(); + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + } + + @Override + public Long getNativeObject() { + return id != null ? id.get(0) : null; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> { + vkDestroyCommandPool(device.getNativeObject(), id.get(0), null); + MemoryUtil.memFree(id); + }; + } + + @Override + public void prematureNativeDestruction() { + id = null; + } + + @Override + public NativeReference getNativeReference() { + return null; + } + + public CommandBuffer allocateCommandBuffer() { + return new CommandBuffer(this); + } + + public OneTimeCommandBuffer allocateOneTimeCommandBuffer() { + return new OneTimeCommandBuffer(this); + } + + public LogicalDevice getDevice() { + return device; + } + + public Queue getQueue() { + return queue; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/DeviceEvaluator.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/DeviceEvaluator.java new file mode 100644 index 0000000000..44e9ed7925 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/DeviceEvaluator.java @@ -0,0 +1,57 @@ +package com.jme3.vulkan; + +import org.lwjgl.vulkan.VkExtensionProperties; + +import java.util.Arrays; +import java.util.Collection; + +public interface DeviceEvaluator { + + Float evaluateDevice(PhysicalDevice device); + + static DeviceExtensionSupport extensions(String... exts) { + return new DeviceExtensionSupport(Arrays.asList(exts)); + } + + static DeviceExtensionSupport extensions(Collection exts) { + return new DeviceExtensionSupport(exts); + } + + static DeviceSwapchainSupport swapchain(Surface surface) { + return new DeviceSwapchainSupport(surface); + } + + class DeviceExtensionSupport implements DeviceEvaluator { + + private final Collection extensions; + + public DeviceExtensionSupport(Collection extensions) { + this.extensions = extensions; + } + + @Override + public Float evaluateDevice(PhysicalDevice device) { + VkExtensionProperties.Buffer exts = device.getExtensions(); + if (extensions.stream().allMatch(e -> exts.stream().anyMatch( + p -> p.extensionNameString().equals(e)))) return 0f; + return null; + } + + } + + class DeviceSwapchainSupport implements DeviceEvaluator { + + private final Surface surface; + + public DeviceSwapchainSupport(Surface surface) { + this.surface = surface; + } + + @Override + public Float evaluateDevice(PhysicalDevice device) { + return device.querySwapchainSupport(surface) ? 0f : null; + } + + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Fence.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Fence.java new file mode 100644 index 0000000000..3f21ff483c --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Fence.java @@ -0,0 +1,76 @@ +package com.jme3.vulkan; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkDevice; +import org.lwjgl.vulkan.VkFenceCreateInfo; + +import java.util.concurrent.TimeUnit; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.system.MemoryUtil.NULL; +import static org.lwjgl.vulkan.VK10.*; + +public class Fence implements Native { + + private final LogicalDevice device; + private final NativeReference ref; + private long id; + + public Fence(LogicalDevice device) { + this(device, false); + } + + public Fence(LogicalDevice device, boolean signal) { + this.device = device; + try (MemoryStack stack = MemoryStack.stackPush()) { + VkFenceCreateInfo create = VkFenceCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_FENCE_CREATE_INFO) + .flags(signal ? VK_FENCE_CREATE_SIGNALED_BIT : 0); + id = getLong(stack, ptr -> check(vkCreateFence(device.getNativeObject(), create, null, ptr), + "Failed to create fence.")); + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + } + } + + @Override + public Long getNativeObject() { + return id; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> vkDestroyFence(device.getNativeObject(), nonNull(id), null); + } + + @Override + public void prematureNativeDestruction() { + id = NULL; + } + + @Override + public NativeReference getNativeReference() { + return ref; + } + + public void block(long timeoutMillis) { + check(vkWaitForFences(device.getNativeObject(), id, true, TimeUnit.MILLISECONDS.toNanos(timeoutMillis)), + "Fence wait expired."); + } + + public void blockThenReset(long timeoutMillis) { + block(timeoutMillis); + reset(); + } + + public void reset() { + vkResetFences(device.getNativeObject(), id); + } + + public long getId() { + return id; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/FrameBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/FrameBuffer.java new file mode 100644 index 0000000000..b94f3ddff4 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/FrameBuffer.java @@ -0,0 +1,83 @@ +package com.jme3.vulkan; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.vulkan.VkFramebufferCreateInfo; + +import java.nio.LongBuffer; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.vulkan.VK10.*; + +public class FrameBuffer implements Native { + + private final LogicalDevice device; + private final NativeReference ref; + private final int width, height, layers; + private final ImageView[] attachments; + private LongBuffer id = MemoryUtil.memAllocLong(1); + + public FrameBuffer(LogicalDevice device, RenderPass compat, int width, int height, int layers, ImageView... attachments) { + this.device = device; + this.width = width; + this.height = height; + this.layers = layers; + this.attachments = attachments; + LongBuffer att = MemoryUtil.memAllocLong(attachments.length); + for (int i = 0; i < attachments.length; i++) { + att.put(i, attachments[i].getNativeObject()); + } + VkFramebufferCreateInfo create = VkFramebufferCreateInfo.create() + .sType(VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO) + .renderPass(compat.getNativeObject()) + .pAttachments(att) + .width(width).height(height) + .layers(layers); + check(vkCreateFramebuffer(device.getNativeObject(), create, null, id)); + MemoryUtil.memFree(att); + create.close(); + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + } + + @Override + public Long getNativeObject() { + return id != null ? id.get(0) : null; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> { + vkDestroyFramebuffer(device.getNativeObject(), id.get(0), null); + MemoryUtil.memFree(id); + }; + } + + @Override + public void prematureNativeDestruction() { + id = null; + } + + @Override + public NativeReference getNativeReference() { + return ref; + } + + public int getWidth() { + return width; + } + + public int getHeight() { + return height; + } + + public int getLayers() { + return layers; + } + + public ImageView[] getAttachments() { + return attachments; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java new file mode 100644 index 0000000000..9719122fee --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java @@ -0,0 +1,132 @@ +package com.jme3.vulkan; + +import com.jme3.material.RenderState; +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.vulkan.*; + +import java.nio.LongBuffer; + +import static com.jme3.renderer.vulkan.VulkanUtils.check; +import static org.lwjgl.vulkan.VK10.*; +import static org.lwjgl.vulkan.VK10.VK_NULL_HANDLE; + +public class GraphicsPipeline implements Native { + + private final LogicalDevice device; + private final NativeReference ref; + private LongBuffer id = MemoryUtil.memAllocLong(1); + + public GraphicsPipeline(LogicalDevice device, PipelineLayout layout, RenderPass compat, RenderState state, ShaderModule vert, ShaderModule frag) { + this.device = device; + try (MemoryStack stack = MemoryStack.stackPush()) { + VkPipelineShaderStageCreateInfo.Buffer stages = VkPipelineShaderStageCreateInfo.calloc(2, stack); + stages.get(0).sType(VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO) + .stage(VK_SHADER_STAGE_VERTEX_BIT) + .module(vert.getNativeObject()) + .pName(stack.UTF8(vert.getEntryPoint())); // function initially called in the shader + stages.get(1).sType(VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO) + .stage(VK_SHADER_STAGE_FRAGMENT_BIT) + .module(frag.getNativeObject()) + .pName(stack.UTF8(frag.getEntryPoint())); + VkPipelineDynamicStateCreateInfo dynamic = VkPipelineDynamicStateCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO) + .pDynamicStates(stack.ints(VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR)); + VkPipelineVertexInputStateCreateInfo vertInput = VkPipelineVertexInputStateCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO); + VkPipelineInputAssemblyStateCreateInfo assembly = VkPipelineInputAssemblyStateCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO) + .topology(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST) + .primitiveRestartEnable(false); + VkViewport.Buffer viewport = VkViewport.calloc(1, stack) + .x(0f).y(0f) + .width(1024).height(1024) // todo: ensure passing random values here is acceptable + .minDepth(0f).maxDepth(1f); + VkRect2D.Buffer scissor = VkRect2D.calloc(1, stack); + scissor.offset().set(0, 0); + scissor.extent().width(1024).height(1024); // todo: ensure passing random values here is acceptable + VkPipelineViewportStateCreateInfo vpState = VkPipelineViewportStateCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO) + .pViewports(viewport) + .pScissors(scissor); + VkPipelineRasterizationStateCreateInfo raster = VkPipelineRasterizationStateCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO) + .depthClampEnable(false) + .rasterizerDiscardEnable(false) + .polygonMode(VK_POLYGON_MODE_FILL) + .lineWidth(1f) + .cullMode(RenderStateToVulkan.faceCull(state.getFaceCullMode())) + .frontFace(VK_FRONT_FACE_CLOCKWISE) + .depthBiasEnable(false); + VkPipelineMultisampleStateCreateInfo multisample = VkPipelineMultisampleStateCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO) + .sampleShadingEnable(false) + .rasterizationSamples(VK_SAMPLE_COUNT_1_BIT); + // todo: configure depth and stencil buffers + VkPipelineColorBlendAttachmentState.Buffer blendAtt = VkPipelineColorBlendAttachmentState.calloc(1, stack) + .colorWriteMask(VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT) + .blendEnable(state.getBlendMode() != RenderState.BlendMode.Off) + .srcColorBlendFactor(VK_BLEND_FACTOR_ONE) // todo: control with render state + .dstColorBlendFactor(VK_BLEND_FACTOR_ZERO) + .colorBlendOp(RenderStateToVulkan.blendEquation(state.getBlendEquation())) + .srcAlphaBlendFactor(VK_BLEND_FACTOR_ONE) + .srcAlphaBlendFactor(VK_BLEND_FACTOR_ZERO) + .alphaBlendOp(RenderStateToVulkan.blendEquationAlpha(state.getBlendEquationAlpha(), state.getBlendEquation())); + VkPipelineColorBlendStateCreateInfo blend = VkPipelineColorBlendStateCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO) + .logicOpEnable(false) + .logicOp(VK_LOGIC_OP_COPY) + .pAttachments(blendAtt); + VkGraphicsPipelineCreateInfo.Buffer pipeline = VkGraphicsPipelineCreateInfo.calloc(1, stack) + .sType(VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO) + .stageCount(2) + .pStages(stages) + .pVertexInputState(vertInput) + .pInputAssemblyState(assembly) + .pViewportState(vpState) + .pRasterizationState(raster) + .pMultisampleState(multisample) + .pColorBlendState(blend) + .pDynamicState(dynamic) + .layout(layout.getNativeObject()) + .renderPass(compat.getNativeObject()) + .subpass(0) + .basePipelineHandle(VK_NULL_HANDLE) + .basePipelineIndex(-1); + check(vkCreateGraphicsPipelines(device.getNativeObject(), VK_NULL_HANDLE, pipeline, null, id), + "Failed to create graphics pipeline"); + } + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + } + + @Override + public Long getNativeObject() { + return id != null ? id.get(0) : null; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> { + vkDestroyPipeline(device.getNativeObject(), id.get(0), null); + MemoryUtil.memFree(id); + }; + } + + @Override + public void prematureNativeDestruction() { + id = null; + } + + @Override + public NativeReference getNativeReference() { + return ref; + } + + public void bind(CommandBuffer cmd) { + vkCmdBindPipeline(cmd.getBuffer(), VK_PIPELINE_BIND_POINT_GRAPHICS, id.get(0)); + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Image.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Image.java new file mode 100644 index 0000000000..9bf5755a14 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Image.java @@ -0,0 +1,121 @@ +package com.jme3.vulkan; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.vulkan.*; + +import java.nio.LongBuffer; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.vulkan.VK10.*; + +public class Image implements Native { + + private final LogicalDevice device; + private final NativeReference ref; + private final int width, height, format, tiling, usage, mem; + protected LongBuffer id = MemoryUtil.memAllocLong(1); + protected LongBuffer memory = MemoryUtil.memAllocLong(1); + + public Image(LogicalDevice device, int width, int height, int format, int tiling, int usage, int mem) { + this.device = device; + this.width = width; + this.height = height; + this.format = format; + this.tiling = tiling; + this.usage = usage; + this.mem = mem; + VkImageCreateInfo create = VkImageCreateInfo.create() + .sType(VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO) + .imageType(VK_IMAGE_TYPE_2D) + .mipLevels(1) + .arrayLayers(1) + .format(format) + .tiling(tiling) + .initialLayout(VK_IMAGE_LAYOUT_UNDEFINED) + .usage(usage) + .samples(VK_SAMPLE_COUNT_1_BIT) + .sharingMode(VK_SHARING_MODE_EXCLUSIVE); + create.extent().width(width).height(height).depth(1); + createImageMemory(create, mem); + create.free(); + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + } + + public Image(LogicalDevice device, VkImageCreateInfo create, int mem) { + this.device = device; + this.width = create.extent().width(); + this.height = create.extent().height(); + this.format = create.format(); + this.tiling = create.tiling(); + this.usage = create.usage(); + this.mem = mem; + createImageMemory(create, mem); + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + } + + public Image(LogicalDevice device, long id) { + width = height = format = tiling = usage = mem = 0; // todo: fix image interfacing + this.device = device; + this.id.put(0, id); + this.memory.put(0, MemoryUtil.NULL); + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + } + + private void createImageMemory(VkImageCreateInfo create, int mem) { + create.sType(VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO); + vkCreateImage(device.getNativeObject(), create, null, id); + VkMemoryRequirements memReq = VkMemoryRequirements.create(); + vkGetImageMemoryRequirements(device.getNativeObject(), id.get(0), memReq); + VkMemoryAllocateInfo allocate = VkMemoryAllocateInfo.create() + .sType(VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO) + .allocationSize(memReq.size()) + .memoryTypeIndex(device.getPhysicalDevice().findMemoryType(memReq.memoryTypeBits(), mem)); + check(vkAllocateMemory(device.getNativeObject(), allocate, null, memory), "Failed to allocate image memory"); + vkBindImageMemory(device.getNativeObject(), id.get(0), memory.get(0), 0); + memReq.free(); + allocate.free(); + } + + @Override + public Long getNativeObject() { + return id != null ? id.get(0) : null; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> { + vkDestroyImage(device.getNativeObject(), id.get(0), null); + MemoryUtil.memFree(id); + MemoryUtil.memFree(memory); + }; + } + + @Override + public void prematureNativeDestruction() { + id = null; + memory = null; + } + + @Override + public NativeReference getNativeReference() { + return ref; + } + + public LogicalDevice getDevice() { + return device; + } + + public long getMemory() { + return memory != null ? memory.get(0) : MemoryUtil.NULL; + } + + public ImageView createView(VkImageViewCreateInfo create) { + return new ImageView(this, create); + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ImageView.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ImageView.java new file mode 100644 index 0000000000..377e4d4b70 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ImageView.java @@ -0,0 +1,53 @@ +package com.jme3.vulkan; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.vulkan.VK10; +import org.lwjgl.vulkan.VkImageViewCreateInfo; + +import java.nio.LongBuffer; + +public class ImageView implements Native { + + private final Image image; + private final NativeReference ref; + private LongBuffer id = MemoryUtil.memAllocLong(1); + + public ImageView(Image image, VkImageViewCreateInfo create) { + this.image = image; + create.sType(VK10.VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO); + create.image(image.getNativeObject()); + VK10.vkCreateImageView(image.getDevice().getNativeObject(), create, null, id); + ref = Native.get().register(this); + image.getNativeReference().addDependent(ref); + } + + @Override + public Long getNativeObject() { + return id != null ? id.get(0) : null; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> { + VK10.vkDestroyImageView(image.getDevice().getNativeObject(), id.get(0), null); + MemoryUtil.memFree(id); + }; + } + + @Override + public void prematureNativeDestruction() { + id = null; + } + + @Override + public NativeReference getNativeReference() { + return ref; + } + + public Image getImage() { + return image; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/InstanceBuilder.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/InstanceBuilder.java new file mode 100644 index 0000000000..6ad8d52c5d --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/InstanceBuilder.java @@ -0,0 +1,146 @@ +package com.jme3.vulkan; + +import com.jme3.system.JmeVersion; +import org.lwjgl.PointerBuffer; +import org.lwjgl.glfw.GLFWVulkan; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.EXTDebugUtils; +import org.lwjgl.vulkan.VK10; +import org.lwjgl.vulkan.VkApplicationInfo; +import org.lwjgl.vulkan.VkInstanceCreateInfo; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Objects; + +import static org.lwjgl.vulkan.VK10.*; + +public class InstanceBuilder implements AutoCloseable { + + public static final String LUNARG_LAYER = "VK_LAYER_KHRONOS_validation"; + + private final MemoryStack stack; + private final VkApplicationInfo info; + private final Collection extPointers = new ArrayList<>(); + private final Collection extensions = new ArrayList<>(); + private final Collection layers = new ArrayList<>(); + + public InstanceBuilder() { + this(VK_API_VERSION_1_0); + } + + public InstanceBuilder(int vulkanApi) { + stack = MemoryStack.stackPush(); + String[] ver = JmeVersion.VERSION_NUMBER.split("\\.", 3); + info = VkApplicationInfo.calloc(stack).sType(VK_STRUCTURE_TYPE_APPLICATION_INFO) + .pEngineName(stack.UTF8("jMonkeyEngine")) + .engineVersion(VK_MAKE_VERSION( + Integer.parseInt(ver[0]), + Integer.parseInt(ver[1]), + Integer.parseInt(ver[2]))) + .apiVersion(vulkanApi); + } + + @Override + public void close() { + stack.pop(); + } + + public VulkanInstance build() { + return new VulkanInstance(info, getExtensions(), getLayers()); + } + + public void setApplicationName(String name) { + info.pApplicationName(stack.UTF8(name)); + } + + public void setApplicationVersion(int major, int minor, int patch) { + info.applicationVersion(VK_MAKE_VERSION(major, minor, patch)); + } + + public void addGlfwExtensions() { + addExtensions(Objects.requireNonNull(GLFWVulkan.glfwGetRequiredInstanceExtensions())); + } + + public void addDebugExtension() { + addExtension(EXTDebugUtils.VK_EXT_DEBUG_UTILS_EXTENSION_NAME); + } + + public void addLunarGLayer() { + addLayer(LUNARG_LAYER); + } + + public void addExtensions(PointerBuffer exts) { + extPointers.add(exts); + } + + public void addExtension(String ext) { + extensions.add(ext); + } + + public void addLayer(String layer) { + layers.add(layer); + } + + public VkApplicationInfo getInfo() { + return info; + } + + public PointerBuffer getExtensions() { + return getExtensions(stack.mallocPointer(getNumExtensions())); + } + + public PointerBuffer getExtensions(PointerBuffer exts) { + for (PointerBuffer ptr : extPointers) { + for (int i = 0; i < ptr.limit(); i++) { + if (exts.hasRemaining()) { + exts.put(ptr.get(i)); + } else return exts.rewind(); + } + } + for (String e : extensions) { + if (exts.hasRemaining()) { + exts.put(stack.UTF8(e)); + } else break; + } + return exts.rewind(); + } + + public Collection getUnnamedExtensions() { + return extPointers; + } + + public Collection getNamedExtensions() { + return extensions; + } + + public int getNumExtensions() { + int size = extensions.size(); + for (PointerBuffer exts : extPointers) { + size += exts.limit(); + } + return size; + } + + public PointerBuffer getLayers() { + return getLayers(stack.mallocPointer(layers.size())); + } + + public PointerBuffer getLayers(PointerBuffer lyrs) { + for (String l : layers) { + if (lyrs.hasRemaining()) { + lyrs.put(stack.UTF8(l)); + } + } + return lyrs.rewind(); + } + + public Collection getNamedLayers() { + return layers; + } + + public int getNumLayers() { + return layers.size(); + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/LogicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/LogicalDevice.java new file mode 100644 index 0000000000..0b841e29d1 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/LogicalDevice.java @@ -0,0 +1,68 @@ +package com.jme3.vulkan; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import org.lwjgl.PointerBuffer; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.vulkan.VkDevice; +import org.lwjgl.vulkan.VkDeviceCreateInfo; +import org.lwjgl.vulkan.VkPhysicalDeviceFeatures; + +import java.util.Collection; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.vulkan.VK10.*; + +public class LogicalDevice implements Native { + + private final PhysicalDevice physical; + private final NativeReference ref; + private VkDevice device; + + public LogicalDevice(PhysicalDevice physical, PointerBuffer extensions, PointerBuffer layers) { + this.physical = physical; + try (MemoryStack stack = MemoryStack.stackPush()) { + VkDeviceCreateInfo create = VkDeviceCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO) + .pQueueCreateInfos(physical.getQueueFamilies().createLogicalBuffers(stack)) + .pEnabledFeatures(physical.getFeatures()); + if (extensions != null) { + create.ppEnabledExtensionNames(extensions); + } + if (layers != null) { + create.ppEnabledLayerNames(layers); + } + PointerBuffer ptr = stack.mallocPointer(1); + device = new VkDevice(check(vkCreateDevice(physical.getDevice(), create, null, ptr), + "Failed to create logical device."), physical.getDevice(), create); + MemoryUtil.memFree(ptr); + } + ref = Native.get().register(this); + } + + @Override + public VkDevice getNativeObject() { + return device; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> vkDestroyDevice(device, null); + } + + @Override + public void prematureNativeDestruction() { + device = null; + } + + @Override + public NativeReference getNativeReference() { + return ref; + } + + public PhysicalDevice getPhysicalDevice() { + return physical; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MemoryBarrier.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MemoryBarrier.java new file mode 100644 index 0000000000..c7322df3db --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MemoryBarrier.java @@ -0,0 +1,4 @@ +package com.jme3.vulkan; + +public class MemoryBarrier { +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/OneTimeCommandBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/OneTimeCommandBuffer.java new file mode 100644 index 0000000000..92e4991add --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/OneTimeCommandBuffer.java @@ -0,0 +1,62 @@ +package com.jme3.vulkan; + +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkCommandBufferBeginInfo; +import org.lwjgl.vulkan.VkSubmitInfo; + +import static org.lwjgl.vulkan.VK10.*; + +public class OneTimeCommandBuffer extends CommandBuffer { + + private boolean active = false; + + public OneTimeCommandBuffer(CommandPool pool) { + super(pool); + } + + @Override + public void begin() { + if (recording) { + throw new IllegalStateException("Command buffer already recording."); + } + if (active) { + throw new IllegalStateException("Buffer already freed."); + } + VkCommandBufferBeginInfo begin = VkCommandBufferBeginInfo.create() + .sType(VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO) + .flags(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT); + vkBeginCommandBuffer(buffer, begin); + begin.close(); + recording = true; + } + + @Override + public void submit(Semaphore wait, Semaphore signal, Fence fence) { + if (!recording) { + throw new IllegalStateException("Command buffer has not begun recording."); + } + try (MemoryStack stack = MemoryStack.stackPush()) { + VkSubmitInfo.Buffer submit = VkSubmitInfo.calloc(1, stack) + .sType(VK_STRUCTURE_TYPE_SUBMIT_INFO) + .pCommandBuffers(stack.pointers(buffer)); + if (wait != null) { + submit.waitSemaphoreCount(1).pWaitSemaphores(stack.longs(wait.getNativeObject())) + .pWaitDstStageMask(stack.ints(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT)); + } + if (signal != null) { + submit.pSignalSemaphores(stack.longs(signal.getNativeObject())); + } + pool.getQueue().submit(submit, fence); + pool.getQueue().waitIdle(); + vkFreeCommandBuffers(pool.getDevice().getNativeObject(), + pool.getNativeObject(), buffer); + } + active = false; + recording = false; + } + + public boolean isActive() { + return active; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java new file mode 100644 index 0000000000..c9a591edc7 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java @@ -0,0 +1,138 @@ +package com.jme3.vulkan; + +import org.lwjgl.PointerBuffer; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.vulkan.*; + +import java.nio.ByteBuffer; +import java.nio.IntBuffer; +import java.util.Collection; +import java.util.function.Supplier; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.vulkan.VK10.*; + +public class PhysicalDevice { + + private final VkPhysicalDevice device; + private final T queues; + private final VkQueueFamilyProperties.Buffer queueProperties; + + public PhysicalDevice(VkInstance instance, T queues, long id) { + try (MemoryStack stack = MemoryStack.stackPush()) { + this.queues = queues; + this.device = new VkPhysicalDevice(id, instance); + this.queueProperties = enumerateBuffer(stack, VkQueueFamilyProperties::malloc, + (count, buffer) -> vkGetPhysicalDeviceQueueFamilyProperties(device, count, buffer)); + this.queues.populate(this, getQueueFamilyProperties()); + } + } + + public Float evaluate(Collection evaluators) { + if (evaluators.isEmpty()) { + return 0f; + } + float score = 0f; + for (DeviceEvaluator e : evaluators) { + Float s = e.evaluateDevice(this); + if (s == null) return null; + score += s; + } + return score; + } + + public VkPhysicalDevice getDevice() { + return device; + } + + public T getQueueFamilies() { + return queues; + } + + public VkQueueFamilyProperties.Buffer getQueueFamilyProperties() { + return queueProperties; + } + + public VkPhysicalDeviceProperties getProperties() { + VkPhysicalDeviceProperties props = VkPhysicalDeviceProperties.create(); + vkGetPhysicalDeviceProperties(device, props); + return props; + } + + public VkPhysicalDeviceFeatures getFeatures() { + VkPhysicalDeviceFeatures features = VkPhysicalDeviceFeatures.create(); + vkGetPhysicalDeviceFeatures(device, features); + return features; + } + + public VkExtensionProperties.Buffer getExtensions() { + return enumerateBuffer(VkExtensionProperties::create, (count, buffer) -> + vkEnumerateDeviceExtensionProperties(device, (ByteBuffer)null, count, buffer)); + } + + public int findSupportedFormat(int tiling, int features, int... candidates) { + VkFormatProperties props = VkFormatProperties.create(); + for (int f : candidates) { + vkGetPhysicalDeviceFormatProperties(device, f, props); + if ((tiling == VK_IMAGE_TILING_LINEAR && (props.linearTilingFeatures() & features) == features) + || (tiling == VK_IMAGE_TILING_OPTIMAL && (props.optimalTilingFeatures() & features) == features)) { + return f; + } + } + throw new NullPointerException("Failed to find supported format."); + } + + public int findMemoryType(int filter, int properties) { + try (MemoryStack stack = MemoryStack.stackPush()) { + VkPhysicalDeviceMemoryProperties memProps = VkPhysicalDeviceMemoryProperties.malloc(stack); + vkGetPhysicalDeviceMemoryProperties(device, memProps); + for (int i = 0; i < memProps.memoryTypeCount(); i++) { + if ((filter & (1 << i)) != 0 && (memProps.memoryTypes(i).propertyFlags() & properties) == properties) { + return i; + } + } + throw new NullPointerException("Failed to find suitable memory type."); + } + } + + public boolean querySwapchainSupport(Surface surface) { + IntBuffer count = MemoryUtil.memAllocInt(1); + KHRSurface.vkGetPhysicalDeviceSurfaceFormatsKHR(device, surface.getNativeObject(), count, null); + if (count.get(0) <= 0) { + return false; + } + KHRSurface.vkGetPhysicalDeviceSurfacePresentModesKHR(device, surface.getNativeObject(), count, null); + int n = count.get(0); + MemoryUtil.memFree(count); + return n > 0; + } + + @SuppressWarnings("unchecked") + public static PhysicalDevice getPhysicalDevice(VkInstance instance, + Collection evaluators, + Supplier queueFactory) { + try (MemoryStack stack = MemoryStack.stackPush()) { + PointerBuffer devices = enumerateBuffer(stack, stack::mallocPointer, + (count, buffer) -> check(vkEnumeratePhysicalDevices(instance, count, buffer), + "Failed to enumerate physical devices.")); + PhysicalDevice device = null; + float score = 0f; + for (PhysicalDevice d : iteratePointers(devices, ptr -> new PhysicalDevice(instance, queueFactory.get(), ptr))) { + if (!d.queues.isComplete()) { + continue; + } + Float s = d.evaluate(evaluators); + if (s != null && (device == null || s > score)) { + device = d; + score = s; + } + } + if (device == null) { + throw new NullPointerException("Failed to find suitable physical device."); + } + return device; + } + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java new file mode 100644 index 0000000000..6ff22e8bb6 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java @@ -0,0 +1,53 @@ +package com.jme3.vulkan; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.vulkan.VkPipelineLayoutCreateInfo; + +import java.nio.LongBuffer; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.vulkan.VK10.*; + +public class PipelineLayout implements Native { + + private final LogicalDevice device; + private final NativeReference ref; + private LongBuffer id = MemoryUtil.memAllocLong(1); + + public PipelineLayout(LogicalDevice device) { + this.device = device; + VkPipelineLayoutCreateInfo create = VkPipelineLayoutCreateInfo.create() + .sType(VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO); + check(vkCreatePipelineLayout(device.getNativeObject(), create, null, id), + "Failed to create pipeline."); + create.close(); + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + } + + @Override + public Long getNativeObject() { + return id != null ? id.get(0) : null; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> { + vkDestroyPipelineLayout(device.getNativeObject(), id.get(0), null); + MemoryUtil.memFree(id); + }; + } + + @Override + public void prematureNativeDestruction() { + id = null; + } + + @Override + public NativeReference getNativeReference() { + return ref; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Queue.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Queue.java new file mode 100644 index 0000000000..a8ca8563b0 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Queue.java @@ -0,0 +1,57 @@ +package com.jme3.vulkan; + +import com.jme3.renderer.vulkan.VulkanUtils; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkQueue; +import org.lwjgl.vulkan.VkSubmitInfo; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.vulkan.VK10.*; + +public class Queue { + + private final LogicalDevice device; + private final VkQueue queue; + private final int familyIndex, queueIndex; + + public Queue(LogicalDevice device, int familyIndex, int queueIndex) { + this.device = device; + this.familyIndex = familyIndex; + this.queueIndex = queueIndex; + try (MemoryStack stack = MemoryStack.stackPush()) { + queue = new VkQueue(VulkanUtils.getPointer(stack, + ptr -> vkGetDeviceQueue(device.getNativeObject(), familyIndex, queueIndex, ptr)), + device.getNativeObject()); + } + } + + public void submit(VkSubmitInfo.Buffer info) { + submit(info, null); + } + + public void submit(VkSubmitInfo.Buffer info, Fence fence) { + check(vkQueueSubmit(queue, info, fence != null ? fence.getNativeObject() : VK_NULL_HANDLE), + "Failed to submit to queue."); + } + + public void waitIdle() { + vkQueueWaitIdle(queue); + } + + public LogicalDevice getDevice() { + return device; + } + + public VkQueue getQueue() { + return queue; + } + + public int getFamilyIndex() { + return familyIndex; + } + + public int getQueueIndex() { + return queueIndex; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/QueueFamilies.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/QueueFamilies.java new file mode 100644 index 0000000000..73948fe46f --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/QueueFamilies.java @@ -0,0 +1,21 @@ +package com.jme3.vulkan; + +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkDeviceQueueCreateInfo; +import org.lwjgl.vulkan.VkQueueFamilyProperties; + +import java.nio.IntBuffer; + +public interface QueueFamilies { + + boolean populate(PhysicalDevice device, VkQueueFamilyProperties.Buffer properties); + + VkDeviceQueueCreateInfo.Buffer createLogicalBuffers(MemoryStack stack); + + void createQueues(LogicalDevice device); + + boolean isComplete(); + + IntBuffer getSwapchainConcurrentBuffers(MemoryStack stack); + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPass.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPass.java new file mode 100644 index 0000000000..cd2e4889e0 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPass.java @@ -0,0 +1,73 @@ +package com.jme3.vulkan; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.vulkan.VkClearValue; +import org.lwjgl.vulkan.VkRenderPassBeginInfo; +import org.lwjgl.vulkan.VkRenderPassCreateInfo; + +import java.nio.LongBuffer; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.vulkan.VK10.*; + +public class RenderPass implements Native { + + private final LogicalDevice device; + private final NativeReference ref; + private LongBuffer id = MemoryUtil.memAllocLong(1); + + public RenderPass(LogicalDevice device, VkRenderPassCreateInfo create) { + this.device = device; + check(vkCreateRenderPass(device.getNativeObject(), create, null, id), + "Failed to create render pass."); + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + } + + @Override + public Long getNativeObject() { + return id != null ? id.get(0) : null; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> { + vkDestroyRenderPass(device.getNativeObject(), id.get(0), null); + MemoryUtil.memFree(id); + }; + } + + @Override + public void prematureNativeDestruction() { + id = null; + } + + @Override + public NativeReference getNativeReference() { + return ref; + } + + public void begin(CommandBuffer cmd, FrameBuffer fbo) { + try (MemoryStack stack = MemoryStack.stackPush()) { + VkClearValue.Buffer clear = VkClearValue.calloc(1, stack); + clear.color().float32(stack.floats(0f, 0f, 0f, 1f)); + VkRenderPassBeginInfo begin = VkRenderPassBeginInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO) + .renderPass(id.get(0)) + .framebuffer(fbo.getNativeObject()) + .clearValueCount(clear.limit()) + .pClearValues(clear); + begin.renderArea().offset().set(0, 0); + begin.renderArea().extent().width(fbo.getWidth()).height(fbo.getHeight()); + vkCmdBeginRenderPass(cmd.getBuffer(), begin, VK_SUBPASS_CONTENTS_INLINE); + } + } + + public LogicalDevice getDevice() { + return device; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPassBuilder.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPassBuilder.java new file mode 100644 index 0000000000..3be74d53bf --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPassBuilder.java @@ -0,0 +1,76 @@ +package com.jme3.vulkan; + +import com.jme3.renderer.vulkan.VulkanUtils; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.Struct; +import org.lwjgl.vulkan.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Consumer; + +import static org.lwjgl.vulkan.VK10.*; + +public class RenderPassBuilder implements AutoCloseable { + + private final MemoryStack stack = MemoryStack.stackPush(); + private final List attachments = new ArrayList<>(); + private final List subpasses = new ArrayList<>(); + private final List dependencies = new ArrayList<>(); + + @Override + public void close() { + attachments.clear(); + subpasses.clear(); + dependencies.clear(); + stack.pop(); + } + + public RenderPass build(LogicalDevice device) { + VkAttachmentDescription.Buffer attBuf = VulkanUtils.accumulate(attachments, n -> VkAttachmentDescription.malloc(n, stack)); + VkSubpassDescription.Buffer subBuf = VulkanUtils.accumulate(subpasses, n -> VkSubpassDescription.malloc(n, stack)); + VkSubpassDependency.Buffer depBuf = VulkanUtils.accumulate(dependencies, n -> VkSubpassDependency.malloc(n, stack)); + VkRenderPassCreateInfo create = VkRenderPassCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO) + .pAttachments(attBuf) + .pSubpasses(subBuf) + .pDependencies(depBuf); + return new RenderPass(device, create); + } + + public int createAttachment(Consumer config) { + VkAttachmentDescription a = VkAttachmentDescription.calloc(stack); + config.accept(a); + return addAttachment(a); + } + + public int createSubpass(Consumer config) { + VkSubpassDescription s = VkSubpassDescription.calloc(stack); + config.accept(s); + return addSubpass(s); + } + + public VkSubpassDependency createDependency() { + return addDependency(VkSubpassDependency.calloc(stack)); + } + + public int addAttachment(VkAttachmentDescription attachment) { + attachments.add(attachment); + return attachments.size() - 1; + } + + public int addSubpass(VkSubpassDescription subpass) { + subpasses.add(subpass); + return subpasses.size() - 1; + } + + public VkSubpassDependency addDependency(VkSubpassDependency dependency) { + dependencies.add(dependency); + return dependency; + } + + public MemoryStack getStack() { + return stack; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderStateToVulkan.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderStateToVulkan.java new file mode 100644 index 0000000000..932fddd4d3 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderStateToVulkan.java @@ -0,0 +1,70 @@ +package com.jme3.vulkan; + +import com.jme3.material.RenderState.*; +import static org.lwjgl.vulkan.VK10.*; + +public class RenderStateToVulkan { + + private static RuntimeException unrecognized(Object state) { + return new UnsupportedOperationException("Unrecognized: " + state); + } + + public static int blendEquation(BlendEquation eq) { + switch (eq) { + case Add: return VK_BLEND_OP_ADD; + case Subtract: return VK_BLEND_OP_SUBTRACT; + case ReverseSubtract: return VK_BLEND_OP_REVERSE_SUBTRACT; + case Min: return VK_BLEND_OP_MIN; + case Max: return VK_BLEND_OP_MAX; + default: throw unrecognized(eq); + } + } + + public static int blendEquationAlpha(BlendEquationAlpha eqA, BlendEquation eq) { + switch (eqA) { + case InheritColor: return blendEquation(eq); + case Add: return VK_BLEND_OP_ADD; + case Subtract: return VK_BLEND_OP_SUBTRACT; + case ReverseSubtract: return VK_BLEND_OP_REVERSE_SUBTRACT; + case Min: return VK_BLEND_OP_MIN; + case Max: return VK_BLEND_OP_MAX; + default: throw unrecognized(eqA); + } + } + + public static int blendFunc(BlendFunc func) { + switch (func) { + case Zero: return VK_BLEND_FACTOR_ZERO; + case One: return VK_BLEND_FACTOR_ONE; + case Src_Color: return VK_BLEND_FACTOR_SRC_COLOR; + case One_Minus_Src_Color: return VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR; + case Dst_Color: return VK_BLEND_FACTOR_DST_COLOR; + case One_Minus_Dst_Color: return VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR; + case Src_Alpha: return VK_BLEND_FACTOR_SRC_ALPHA; + case One_Minus_Src_Alpha: return VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA; + case Dst_Alpha: return VK_BLEND_FACTOR_DST_ALPHA; + case One_Minus_Dst_Alpha: return VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA; + case Src_Alpha_Saturate: return VK_BLEND_FACTOR_SRC_ALPHA_SATURATE; + default: throw unrecognized(func); + } + } + + public static int faceCull(FaceCullMode mode) { + switch (mode) { + case Off: return VK_CULL_MODE_NONE; + case Front: return VK_CULL_MODE_FRONT_BIT; + case Back: return VK_CULL_MODE_BACK_BIT; + case FrontAndBack: return VK_CULL_MODE_FRONT_AND_BACK; + default: throw unrecognized(mode); + } + } + + public static int wireframe(boolean wireframe, int def) { + return wireframe ? VK_POLYGON_MODE_LINE : def; + } + + public static int wireframe(boolean wireframe) { + return wireframe(wireframe, VK_POLYGON_MODE_FILL); + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Semaphore.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Semaphore.java new file mode 100644 index 0000000000..27488eb934 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Semaphore.java @@ -0,0 +1,60 @@ +package com.jme3.vulkan; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.vulkan.VkSemaphoreCreateInfo; + +import java.nio.LongBuffer; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.vulkan.VK10.*; + +public class Semaphore implements Native { + + private final LogicalDevice device; + private final NativeReference ref; + private long id; + + public Semaphore(LogicalDevice device) { + this.device = device; + try (MemoryStack stack = MemoryStack.stackPush()) { + VkSemaphoreCreateInfo create = VkSemaphoreCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO); + id = getLong(stack, ptr -> check(vkCreateSemaphore(device.getNativeObject(), create, null, ptr), + "Failed to create semaphore.")); + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + } + } + + @Override + public Long getNativeObject() { + return id; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> vkDestroySemaphore(device.getNativeObject(), nonNull(id), null); + } + + @Override + public void prematureNativeDestruction() { + id = MemoryUtil.NULL; + } + + @Override + public NativeReference getNativeReference() { + return ref; + } + + public long getId() { + return id; + } + + public LongBuffer toBuffer(MemoryStack stack) { + return stack.longs(id); + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ShaderModule.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ShaderModule.java new file mode 100644 index 0000000000..79d2c5d169 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ShaderModule.java @@ -0,0 +1,58 @@ +package com.jme3.vulkan; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.vulkan.VkShaderModuleCreateInfo; + +import java.nio.ByteBuffer; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.vulkan.VK10.*; + +public class ShaderModule implements Native { + + private final LogicalDevice device; + private final NativeReference ref; + private final String entryPoint; + private long id; + + public ShaderModule(LogicalDevice device, ByteBuffer code, String entryPoint) { + this.device = device; + this.entryPoint = entryPoint; + try (MemoryStack stack = MemoryStack.stackPush()) { + VkShaderModuleCreateInfo create = VkShaderModuleCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO) + .pCode(code); + id = getLong(stack, ptr -> check(vkCreateShaderModule(device.getNativeObject(), create, null, ptr), + "Failed to create shader module.")); + } + ref = Native.get().register(this); + } + + @Override + public Long getNativeObject() { + return id; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> vkDestroyShaderModule(device.getNativeObject(), id, null); + } + + @Override + public void prematureNativeDestruction() { + id = MemoryUtil.NULL; + } + + @Override + public NativeReference getNativeReference() { + return ref; + } + + public String getEntryPoint() { + return entryPoint; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Surface.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Surface.java new file mode 100644 index 0000000000..81fbf0f595 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Surface.java @@ -0,0 +1,70 @@ +package com.jme3.vulkan; + +import com.jme3.renderer.vulkan.VulkanUtils; +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import org.lwjgl.glfw.GLFWVulkan; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.vulkan.KHRSurface; + +import java.nio.IntBuffer; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; + +public class Surface implements Native, DeviceEvaluator { + + private final VulkanInstance instance; + private final NativeReference ref; + private final long window; + private long id; + + public Surface(VulkanInstance instance, long window) { + this.instance = instance; + this.window = window; + try (MemoryStack stack = MemoryStack.stackPush()) { + id = getLong(stack, ptr -> check(GLFWVulkan.glfwCreateWindowSurface( + instance.getNativeObject(), window, null, ptr), + "Failed to create surface for GLFW window.")); + ref = Native.get().register(this); + instance.getNativeReference().addDependent(ref); + } + } + + @Override + public Float evaluateDevice(PhysicalDevice device) { + try (MemoryStack stack = MemoryStack.stackPush()) { + IntBuffer count = stack.mallocInt(1); + KHRSurface.vkGetPhysicalDeviceSurfaceFormatsKHR(device.getDevice(), id, count, null); + if (count.get(0) == 0) { + return null; + } + KHRSurface.vkGetPhysicalDeviceSurfacePresentModesKHR(device.getDevice(), id, count, null); + if (count.get(0) == 0) { + return null; + } + return 0f; + } + } + + @Override + public Long getNativeObject() { + return id; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> KHRSurface.vkDestroySurfaceKHR(instance.getNativeObject(), id, null); + } + + @Override + public void prematureNativeDestruction() { + id = MemoryUtil.NULL; + } + + @Override + public NativeReference getNativeReference() { + return ref; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java new file mode 100644 index 0000000000..2184eb3973 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java @@ -0,0 +1,189 @@ +package com.jme3.vulkan; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.vulkan.*; + +import java.nio.IntBuffer; +import java.nio.LongBuffer; +import java.util.*; +import java.util.concurrent.TimeUnit; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.vulkan.VK10.*; + +public class Swapchain implements Native { + + private final LogicalDevice device; + private final Surface surface; + private final NativeReference ref; + private final List images = new ArrayList<>(); + private final VkExtent2D extent; + private final int format; + private LongBuffer id = MemoryUtil.memAllocLong(1); + private VkSurfaceCapabilitiesKHR caps; + + public Swapchain(LogicalDevice device, Surface surface, SwapchainSupport support) { + assert support.isSupported() : "Swapchain for device is not supported."; + this.device = device; + this.surface = surface; + caps = VkSurfaceCapabilitiesKHR.create(); + KHRSurface.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( + device.getPhysicalDevice().getDevice(), surface.getNativeObject(), caps); + VkSurfaceFormatKHR fmt = support.selectFormat(); + try (MemoryStack stack = MemoryStack.stackPush()) { + format = fmt.format(); + extent = support.selectExtent(); + VkSwapchainCreateInfoKHR create = VkSwapchainCreateInfoKHR.calloc(stack) + .sType(KHRSwapchain.VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR) + .surface(surface.getNativeObject()) + .minImageCount(support.selectImageCount()) + .imageFormat(format) + .imageColorSpace(fmt.colorSpace()) + .imageExtent(extent) + .imageArrayLayers(1) + .imageUsage(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT) + .preTransform(caps.currentTransform()) + .compositeAlpha(KHRSurface.VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR) + .presentMode(support.selectMode()) + .clipped(true) + .oldSwapchain(VK_NULL_HANDLE); + IntBuffer concurrent = device.getPhysicalDevice().getQueueFamilies().getSwapchainConcurrentBuffers(stack); + if (concurrent != null) { + create.imageSharingMode(VK_SHARING_MODE_CONCURRENT) + .queueFamilyIndexCount(concurrent.limit()) + .pQueueFamilyIndices(concurrent); + } else { + create.imageSharingMode(VK_SHARING_MODE_EXCLUSIVE); + } + check(KHRSwapchain.vkCreateSwapchainKHR(device.getNativeObject(), create, null, id), + "Failed to create swapchain."); + LongBuffer imgs = enumerateBuffer(stack, stack::mallocLong, (c, b) -> + KHRSwapchain.vkGetSwapchainImagesKHR(device.getNativeObject(), id.get(0), c, b)); + Objects.requireNonNull(imgs, "Swapchain contains no images."); + for (int i = 0; i < imgs.limit(); i++) { + images.add(new SwapchainImage(device, imgs.get(i))); + } + } + fmt.close(); + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + surface.getNativeReference().addDependent(ref); + } + + @Override + public Long getNativeObject() { + return id != null ? id.get(0) : null; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> { + KHRSwapchain.vkDestroySwapchainKHR(device.getNativeObject(), id.get(0), null); + MemoryUtil.memFree(id); + caps.free(); + }; + } + + @Override + public void prematureNativeDestruction() { + id = null; + caps = null; + } + + @Override + public NativeReference getNativeReference() { + return null; + } + + public SwapchainImage acquireNextImage(Semaphore semaphore, Fence fence, long timeout) { + IntBuffer i = MemoryUtil.memAllocInt(1); + check(KHRSwapchain.vkAcquireNextImageKHR(device.getNativeObject(), id.get(0), + TimeUnit.MILLISECONDS.toNanos(timeout), Native.getId(semaphore), Native.getId(fence), i), + "Failed to acquire next swapchain image."); + SwapchainImage img = getImage(i.get(0)); + MemoryUtil.memFree(i); + return img; + } + + public void present(Queue presentQueue, SwapchainImage image, Semaphore wait) { + try (MemoryStack stack = MemoryStack.stackPush()) { + VkPresentInfoKHR info = VkPresentInfoKHR.calloc(stack) + .sType(KHRSwapchain.VK_STRUCTURE_TYPE_PRESENT_INFO_KHR) + .swapchainCount(1) + .pSwapchains(id) + .pImageIndices(stack.ints(images.indexOf(image))); + if (wait != null) { + info.pWaitSemaphores(stack.longs(wait.getNativeObject())); + } + check(KHRSwapchain.vkQueuePresentKHR(presentQueue.getQueue(), info)); + } + } + + public List createViews() { + List result = new ArrayList<>(images.size()); + for (SwapchainImage img : images) { + VkImageViewCreateInfo create = VkImageViewCreateInfo.create() + .sType(VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO) + .image(img.getNativeObject()) + .viewType(VK_IMAGE_VIEW_TYPE_2D) + .format(format); + create.components().r(VK_COMPONENT_SWIZZLE_IDENTITY) + .g(VK_COMPONENT_SWIZZLE_IDENTITY) + .b(VK_COMPONENT_SWIZZLE_IDENTITY) + .a(VK_COMPONENT_SWIZZLE_IDENTITY); + create.subresourceRange().aspectMask(VK_IMAGE_ASPECT_COLOR_BIT) + .baseMipLevel(0) + .levelCount(1) + .baseArrayLayer(0) + .layerCount(1); + result.add(new ImageView(img, create)); + create.free(); + } + return result; + } + + public LogicalDevice getDevice() { + return device; + } + + public Surface getSurface() { + return surface; + } + + public List getImages() { + return Collections.unmodifiableList(images); + } + + public SwapchainImage getImage(long id) { + return images.stream().filter(i -> i.getNativeObject() == id) + .findAny().orElseThrow(() -> new NoSuchElementException("Image not found.")); + } + + public VkExtent2D getExtent() { + return extent; + } + + public int getFormat() { + return format; + } + + public static class SwapchainImage extends Image { + + private SwapchainImage(LogicalDevice device, long id) { + super(device, id); + } + + @Override + public Runnable createNativeDestroyer() { + return () -> { + MemoryUtil.memFree(id); + MemoryUtil.memFree(memory); + }; + } + + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/SwapchainSupport.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/SwapchainSupport.java new file mode 100644 index 0000000000..33275aa453 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/SwapchainSupport.java @@ -0,0 +1,18 @@ +package com.jme3.vulkan; + +import org.lwjgl.vulkan.VkExtent2D; +import org.lwjgl.vulkan.VkSurfaceFormatKHR; + +public interface SwapchainSupport { + + VkSurfaceFormatKHR selectFormat(); + + VkExtent2D selectExtent(); + + int selectMode(); + + int selectImageCount(); + + boolean isSupported(); + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanInstance.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanInstance.java new file mode 100644 index 0000000000..1f97c48591 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanInstance.java @@ -0,0 +1,60 @@ +package com.jme3.vulkan; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import org.lwjgl.PointerBuffer; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.vulkan.VkApplicationInfo; +import org.lwjgl.vulkan.VkInstance; +import org.lwjgl.vulkan.VkInstanceCreateInfo; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.vulkan.VK10.*; + +public class VulkanInstance implements Native { + + private final NativeReference ref; + private VkInstance instance; + + public VulkanInstance(VkApplicationInfo appInfo, PointerBuffer extensions, PointerBuffer layers) { + try (MemoryStack stack = MemoryStack.stackPush()) { + VkInstanceCreateInfo create = VkInstanceCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO) + .pApplicationInfo(appInfo) + .ppEnabledExtensionNames(extensions); + if (layers != null) { + create.ppEnabledLayerNames(layers); + } + PointerBuffer ptr = stack.mallocPointer(1); + check(vkCreateInstance(create, null, ptr), "Failed to create instance."); + instance = new VkInstance(ptr.get(0), create); + } + ref = Native.get().register(this); + } + + public Surface createGlfwSurface(long window) { + return new Surface(this, window); + } + + @Override + public VkInstance getNativeObject() { + return instance; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> vkDestroyInstance(instance, null); + } + + @Override + public void prematureNativeDestruction() { + instance = null; + } + + @Override + public NativeReference getNativeReference() { + return ref; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanRenderManager.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanRenderManager.java new file mode 100644 index 0000000000..b76424a749 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanRenderManager.java @@ -0,0 +1,34 @@ +package com.jme3.vulkan; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.IntFunction; + +public class VulkanRenderManager { + + private final IntFunction frameFactory; + private final List frames = new ArrayList<>(); + private int currentFrame = 0; + + public VulkanRenderManager(int frames, IntFunction frameFactory) { + this.frameFactory = frameFactory; + setFrames(frames); + } + + public void render(float tpf) { + frames.get(currentFrame).run(); + if (++currentFrame >= frames.size()) { + currentFrame = 0; + } + } + + public void setFrames(int n) { + while (n > frames.size()) { + frames.add(frameFactory.apply(frames.size())); + } + while (n < frames.size()) { + frames.remove(frames.size() - 1); + } + } + +} diff --git a/jme3-testdata/src/main/resources/Shaders/VulkanFragTest.glsl b/jme3-testdata/src/main/resources/Shaders/VulkanFragTest.glsl new file mode 100644 index 0000000000..13009da8fe --- /dev/null +++ b/jme3-testdata/src/main/resources/Shaders/VulkanFragTest.glsl @@ -0,0 +1,9 @@ +#version 450 + +layout(location = 0) in vec3 fragColor; + +layout(location = 0) out vec4 outColor; + +void main() { + outColor = vec4(fragColor, 1.0); +} \ No newline at end of file diff --git a/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl b/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl new file mode 100644 index 0000000000..ad32c2cc70 --- /dev/null +++ b/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl @@ -0,0 +1,19 @@ +#version 450 + +vec2 positions[3] = vec2[] ( + vec2(0.0, -0.5), + vec2(0.5, 0.5), + vec2(-0.5, 0.5) +); +vec3 colors[3] = vec3[] ( + vec3(1.0, 0.0, 0.0), + vec3(0.0, 1.0, 0.0), + vec3(0.0, 0.0, 1.0) +); + +layout(location = 0) out vec3 fragColor; + +void main() { + gl_Position = vec4(positions[gl_VertexIndex], 0.0, 1.0); + fragColor = colors[gl_VertexIndex]; +} \ No newline at end of file From 1b2ee3d938061933000089b6b76c7fc345498df3 Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Sat, 26 Jul 2025 21:57:13 -0400 Subject: [PATCH 12/37] debug initial vulkan engine interface --- hs_err_pid76953.log | 1571 ---------------- hs_err_pid77449.log | 1426 --------------- hs_err_pid84545.log | 1595 ---------------- hs_err_pid84939.log | 1600 ----------------- hs_err_pid85302.log | 1596 ---------------- hs_err_pid85657.log | 1598 ---------------- .../jme3test/vulkan/VulkanHelperTest.java | 99 +- .../main/java/jme3test/vulkan/VulkanTest.java | 1 + .../java/com/jme3/vulkan/CommandBuffer.java | 36 +- .../java/com/jme3/vulkan/CommandPool.java | 27 +- .../java/com/jme3/vulkan/DeviceEvaluator.java | 24 +- .../main/java/com/jme3/vulkan/Extent2.java | 58 + .../src/main/java/com/jme3/vulkan/Fence.java | 8 + .../java/com/jme3/vulkan/FrameBuffer.java | 37 +- .../com/jme3/vulkan/GraphicsPipeline.java | 16 +- .../src/main/java/com/jme3/vulkan/Image.java | 117 +- .../main/java/com/jme3/vulkan/ImageView.java | 20 +- .../java/com/jme3/vulkan/InstanceBuilder.java | 4 + .../java/com/jme3/vulkan/LogicalDevice.java | 10 +- .../java/com/jme3/vulkan/PhysicalDevice.java | 24 +- .../java/com/jme3/vulkan/PipelineLayout.java | 26 +- .../main/java/com/jme3/vulkan/RenderPass.java | 21 +- .../main/java/com/jme3/vulkan/Surface.java | 2 + .../main/java/com/jme3/vulkan/Swapchain.java | 176 +- .../com/jme3/vulkan/SwapchainUpdater.java | 7 + .../resources/Shaders/VulkanVertTest.glsl | 14 +- 26 files changed, 379 insertions(+), 9734 deletions(-) delete mode 100644 hs_err_pid76953.log delete mode 100644 hs_err_pid77449.log delete mode 100644 hs_err_pid84545.log delete mode 100644 hs_err_pid84939.log delete mode 100644 hs_err_pid85302.log delete mode 100644 hs_err_pid85657.log create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/Extent2.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/SwapchainUpdater.java diff --git a/hs_err_pid76953.log b/hs_err_pid76953.log deleted file mode 100644 index ed37f27859..0000000000 --- a/hs_err_pid76953.log +++ /dev/null @@ -1,1571 +0,0 @@ -# -# A fatal error has been detected by the Java Runtime Environment: -# -# SIGSEGV (0xb) at pc=0x000078ab98a15645, pid=76953, tid=76987 -# -# JRE version: Java(TM) SE Runtime Environment (23.0.2+7) (build 23.0.2+7-58) -# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64) -# Problematic frame: -# C [libjemalloc.so+0x15645] -# -# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/codex/java/prj/jmonkeyengine/core.76953) -# -# If you would like to submit a bug report, please visit: -# https://bugreport.java.com/bugreport/crash.jsp -# The crash happened outside the Java Virtual Machine in native code. -# See problematic frame for where to report the bug. -# - ---------------- S U M M A R Y ------------ - -Command Line: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant jme3test.vulkan.VulkanHelperTest - -Host: Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz, 8 cores, 31G, Pop!_OS 22.04 LTS -Time: Wed Jul 2 22:32:45 2025 EDT elapsed time: 0.808817 seconds (0d 0h 0m 0s) - ---------------- T H R E A D --------------- - -Current thread (0x000078abc05a8d30): JavaThread "LwjglVulkanContext" [_thread_in_native, id=76987, stack(0x000078ab98100000,0x000078ab98200000) (1024K)] - -Stack: [0x000078ab98100000,0x000078ab98200000], sp=0x000078ab981fe350, free space=1016k -Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) -C [libjemalloc.so+0x15645] -Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) -j org.lwjgl.system.JNI.invokePV(JJ)V+0 -j org.lwjgl.system.jemalloc.JEmalloc.nje_free(J)V+6 -j org.lwjgl.system.jemalloc.JEmallocAllocator.free(J)V+1 -j org.lwjgl.system.MemoryUtil.nmemFree(J)V+4 -j org.lwjgl.system.Struct.free()V+4 -j com.jme3.vulkan.VulkanInstance.(Lorg/lwjgl/vulkan/VkApplicationInfo;Lorg/lwjgl/PointerBuffer;Lorg/lwjgl/PointerBuffer;)V+73 -j com.jme3.vulkan.InstanceBuilder.build()Lcom/jme3/vulkan/VulkanInstance;+16 -j jme3test.vulkan.VulkanHelperTest.simpleInitApp()V+52 -j com.jme3.app.SimpleApplication.initialize()V+282 -j com.jme3.system.vulkan.LwjglVulkanContext.engineInitialize()V+23 -j com.jme3.system.vulkan.LwjglVulkanContext.run()V+1 -j java.lang.Thread.runWith(Ljava/lang/Object;Ljava/lang/Runnable;)V+5 java.base@23.0.2 -j java.lang.Thread.run()V+19 java.base@23.0.2 -v ~StubRoutines::call_stub 0x000078abafd37c86 - -siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000002700 - -Registers: -RAX=0x0000000000002700, RBX=0x000078aaf0002510, RCX=0x000078ab98b71cf0, RDX=0x000078aaf00025d8 -RSP=0x000078ab981fe350, RBP=0x000078aaf0002420, RSI=0x000078aaf00026d8, RDI=0x000078aaf00026e8 -R8 =0x0000000000000001, R9 =0x000078aaf00026c8, R10=0x0000000000000001, R11=0x0000000000000000 -R12=0x000078abc04e00e0, R13=0x000078abc0000000, R14=0x000078aaf0002780, R15=0x000078abc05a8d30 -RIP=0x000078ab98a15645, EFLAGS=0x0000000000010206, CSGSFS=0x002b000000000033, ERR=0x0000000000000004 - TRAPNO=0x000000000000000e - - -Register to memory mapping: - -RAX=0x0000000000002700 is an unknown value -RBX=0x000078aaf0002510 points into unknown readable memory: 0x0000000000000000 | 00 00 00 00 00 00 00 00 -RCX=0x000078ab98b71cf0: in /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so at 0x000078ab98a00000 -RDX=0x000078aaf00025d8 points into unknown readable memory: 0x0000000000000001 | 01 00 00 00 00 00 00 00 -RSP=0x000078ab981fe350 is pointing into the stack for thread: 0x000078abc05a8d30 -RBP=0x000078aaf0002420 points into unknown readable memory: 0x0000000000000001 | 01 00 00 00 00 00 00 00 -RSI=0x000078aaf00026d8 points into unknown readable memory: 0x0000000000000001 | 01 00 00 00 00 00 00 00 -RDI=0x000078aaf00026e8 points into unknown readable memory: 0x0000000000000001 | 01 00 00 00 00 00 00 00 -R8 =0x0000000000000001 is an unknown value -R9 =0x000078aaf00026c8 points into unknown readable memory: 0x000078abc0000000 | 00 00 00 c0 ab 78 00 00 -R10=0x0000000000000001 is an unknown value -R11=0x0 is null -R12=0x000078abc04e00e0 points into unknown readable memory: 0x0000000000000001 | 01 00 00 00 00 00 00 00 -R13=0x000078abc0000000 points into unknown readable memory: 0x000078abc0000030 | 30 00 00 c0 ab 78 00 00 -R14=0x000078aaf0002780 points into unknown readable memory: 0x000078aaf0002520 | 20 25 00 f0 aa 78 00 00 -R15=0x000078abc05a8d30 is a thread - -Top of Stack: (sp=0x000078ab981fe350) -0x000078ab981fe350: 000078aaf00025d8 000078ab430ac9b8 -0x000078ab981fe360: 0000000000000004 0000000000000000 -0x000078ab981fe370: 000078ab981fe390 000000000000000f -0x000078ab981fe380: 000078ab98a77fe0 000078abc0000000 -0x000078ab981fe390: 000078ab3852b1c8 000078ab981fe498 -0x000078ab981fe3a0: 000078abc05a8d30 000078abc915fd0c -0x000078ab981fe3b0: 000078ab981fe3c0 000078ab3852b1c8 -0x000078ab981fe3c0: 000078ab981fe460 0000000000000000 -0x000078ab981fe3d0: 000078ab3852b1c8 000078ab981fe498 -0x000078ab981fe3e0: 000078abc05a8d30 000078abafd43d7c -0x000078ab981fe3f0: 000078abc0475a48 000078ab424b05f0 -0x000078ab981fe400: 000078ab43011660 000078ab4301e4d8 -0x000078ab981fe410: 0000000000000000 fffffffffffffff7 -0x000078ab981fe420: 0000000000000000 0000000000000007 -0x000078ab981fe430: 000078ab38562f28 0000000000000000 -0x000078ab981fe440: 000000062a844740 000078ab3852b1c8 -0x000078ab981fe450: 0000000000000000 000078ab981fe480 -0x000078ab981fe460: 000078ab981fe4e8 000078abafd3f020 -0x000078ab981fe470: 000000062a844740 000078abafd411f7 -0x000078ab981fe480: 000078ab98a16160 0000000000000000 -0x000078ab981fe490: 000078abc04e00e0 0000000000000000 -0x000078ab981fe4a0: fffffffffffffff7 000078ab3850b486 -0x000078ab981fe4b0: 0000000000000005 000078ab385107a0 -0x000078ab981fe4c0: 0000000000000000 000000062aff01d0 -0x000078ab981fe4d0: 000078ab3850b4b0 fffffffffffffff3 -0x000078ab981fe4e0: 000078ab981fe508 000078ab981fe560 -0x000078ab981fe4f0: 000078abafd3f020 000078ab98a16160 -0x000078ab981fe500: 0000000000000000 000078abc04e00e0 -0x000078ab981fe510: 0000000000000000 fffffffffffffff7 -0x000078ab981fe520: 000078ab38508c71 0000000000000004 -0x000078ab981fe530: 000078ab385090b0 0000000000000000 -0x000078ab981fe540: 000000062afdf250 000078ab38508c98 - -Instructions: (pc=0x000078ab98a15645) -0x000078ab98a15545: 06 00 48 89 3c 24 48 89 ef 4c 89 44 24 10 e8 28 -0x000078ab98a15555: a7 ff ff 4c 8b 44 24 10 48 8b 3c 24 48 89 c3 e9 -0x000078ab98a15565: fb fb ff ff 4d 89 df e9 5d f6 ff ff b9 07 00 00 -0x000078ab98a15575: 00 48 c1 e1 3c 49 39 cc 77 37 4f 8d 34 24 41 ba -0x000078ab98a15585: 07 00 00 00 be 01 00 00 00 49 83 ee 01 49 0f bd -0x000078ab98a15595: c6 48 98 4c 39 d0 49 0f 42 c2 48 8d 48 fd 48 d3 -0x000078ab98a155a5: e6 4a 8d 54 26 ff 48 f7 de 48 21 f2 e9 c8 fe ff -0x000078ab98a155b5: ff 31 d2 e9 c1 fe ff ff 0f 1f 00 48 85 ff 0f 84 -0x000078ab98a155c5: 57 01 00 00 41 57 41 56 41 55 41 54 49 89 fc 55 -0x000078ab98a155d5: 53 48 83 ec 68 66 48 8d 3d fe 29 06 00 66 66 48 -0x000078ab98a155e5: e8 f6 2b ff ff 80 b8 38 03 00 00 00 48 89 c5 0f -0x000078ab98a155f5: 85 2e 01 00 00 4c 89 e3 4d 89 e5 4c 8d b5 60 03 -0x000078ab98a15605: 00 00 48 c1 eb 1a 49 81 e5 00 00 00 c0 48 8d 95 -0x000078ab98a15615: b8 01 00 00 81 e3 f0 00 00 00 48 01 eb 4c 8b 93 -0x000078ab98a15625: b8 01 00 00 4d 39 d5 0f 85 0e 03 00 00 4c 89 e0 -0x000078ab98a15635: 48 c1 e8 09 25 f8 ff 1f 00 48 03 83 c0 01 00 00 -0x000078ab98a15645: 4c 8b 10 4c 8d 3d 31 c4 26 00 4c 89 d0 48 c1 e8 -0x000078ab98a15655: 30 41 83 e2 01 89 c1 41 89 c1 4d 8b 3c cf 0f 84 -0x000078ab98a15665: 37 02 00 00 48 8d 3c 40 4c 8d 04 49 48 c1 e7 03 -0x000078ab98a15675: 4e 8d 6c c5 00 48 8d 5c 3d 00 48 8b b3 68 03 00 -0x000078ab98a15685: 00 66 41 39 b5 7a 03 00 00 0f 84 fc 02 00 00 4c -0x000078ab98a15695: 8d 5e f8 4c 89 9b 68 03 00 00 4c 89 66 f8 48 8b -0x000078ab98a156a5: 9d 50 03 00 00 4c 8b 45 20 4c 8d 4d 18 48 8d 55 -0x000078ab98a156b5: 20 66 49 0f 6e f1 66 48 0f 6e fa c6 44 24 30 00 -0x000078ab98a156c5: 4c 8d a5 50 03 00 00 48 8d bd 58 03 00 00 66 49 -0x000078ab98a156d5: 0f 6e ec 49 8d 34 1f 49 29 d8 66 4c 0f 6e c7 66 -0x000078ab98a156e5: 0f 6c ee 66 41 0f 6c f8 0f 11 6c 24 38 0f 11 7c -0x000078ab98a156f5: 24 48 48 89 b5 50 03 00 00 4d 39 c7 0f 83 81 01 -0x000078ab98a15705: 00 00 48 83 c4 68 5b 5d 41 5c 41 5d 41 5e 41 5f -0x000078ab98a15715: c3 66 2e 0f 1f 84 00 00 00 00 00 c3 0f 1f 80 00 -0x000078ab98a15725: 00 00 00 be 01 00 00 00 48 89 c7 e8 7b 8f 04 00 -0x000078ab98a15735: 80 b8 38 03 00 00 00 48 89 c5 0f 84 b5 fe ff ff - - -Stack slot to memory mapping: - -stack at sp + 0 slots: 0x000078aaf00025d8 points into unknown readable memory: 0x0000000000000001 | 01 00 00 00 00 00 00 00 -stack at sp + 1 slots: 0x000078ab430ac9b8 is a pointer to class: -org.lwjgl.vulkan.VkInstanceCreateInfo {0x000078ab430ac9b8} - - instance size: 3 - - klass size: 108 - - access: public synchronized - - flags: rewritten has_nonstatic_fields should_verify_class has_nonstatic_concrete_methods has_localvariable_table has_miranda_methods - - state: fully_initialized - - name: 'org/lwjgl/vulkan/VkInstanceCreateInfo' - - super: 'org/lwjgl/system/Struct' - - sub: - - arrays: null - - methods: Array(0x000078ab387e9640) - - method ordering: Array(0x000078ab426f1b90) - - default_methods: Array(0x000078ab387ed0c0) - - default vtable indices: Array(0x000078ab387ed0d0) - - local interfaces: Array(0x000078ab387e9630) - - trans. interfaces: Array(0x000078ab387ed028) - - secondary supers: Array(0x000078ab387ed0a0) - - hash_slot: 62 - - bitmap: 0x8a00000000000000 - - constants: constant pool [373] {0x000078ab387e8978} for 'org/lwjgl/vulkan/VkInstanceCreateInfo' cache=0x000078ab387ed8b0 - - class loader data: loader data: 0x000078abc01474b0 for instance a 'jdk/internal/loader/ClassLoaders$AppClassLoader'{0x00000007ffd01490} - - source file: 'VkInstanceCreateInfo.java' - - generic signature: 'Lorg/lwjgl/system/Struct;Lorg/lwjgl/system/NativeResource;' - - inner classes: Array(0x000078ab387ed000) - - nest members: Array(0x000078ab42676730) - - permitted subclasses: Array(0x000078ab42676730) - - java mirror: a 'java/lang/Class'{0x0000000629d4a1e0} = 'org/lwjgl/vulkan/VkInstanceCreateInfo' - - vtable length 37 (start addr: 0x000078ab430acb88) - - itable length 12 (start addr: 0x000078ab430accb0) - - ---- static fields (5 words): - - public static final 'SIZEOF' 'I' @112 - - public static final 'ALIGNOF' 'I' @116 - - public static final 'STYPE' 'I' @120 - - public static final 'PNEXT' 'I' @124 - - public static final 'FLAGS' 'I' @128 - - public static final 'PAPPLICATIONINFO' 'I' @132 - - public static final 'ENABLEDLAYERCOUNT' 'I' @136 - - public static final 'PPENABLEDLAYERNAMES' 'I' @140 - - public static final 'ENABLEDEXTENSIONCOUNT' 'I' @144 - - public static final 'PPENABLEDEXTENSIONNAMES' 'I' @148 - - ---- non-static fields (3 words): - - protected 'address' 'J' @16 - - protected 'container' 'Ljava/nio/ByteBuffer;' @12 - - non-static oop maps: 12-12 -stack at sp + 2 slots: 0x0000000000000004 is an unknown value -stack at sp + 3 slots: 0x0 is null -stack at sp + 4 slots: 0x000078ab981fe390 is pointing into the stack for thread: 0x000078abc05a8d30 -stack at sp + 5 slots: 0x000000000000000f is an unknown value -stack at sp + 6 slots: 0x000078ab98a77fe0: in /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so at 0x000078ab98a00000 -stack at sp + 7 slots: 0x000078abc0000000 points into unknown readable memory: 0x000078abc0000030 | 30 00 00 c0 ab 78 00 00 - -Lock stack of current Java thread (top to bottom): - - ---------------- P R O C E S S --------------- - -Threads class SMR info: -_java_thread_list=0x000078aaf07641e0, length=14, elements={ -0x000078abc0137930, 0x000078abc0138ea0, 0x000078abc013a6b0, 0x000078abc013bcf0, -0x000078abc013d290, 0x000078abc013edb0, 0x000078abc01404c0, 0x000078abc014d1b0, -0x000078abc014fc90, 0x000078abc05a8d30, 0x000078abc002d0f0, 0x000078aaf05acb60, -0x000078ab084b7a10, 0x000078aaf0763530 -} - -Java Threads: ( => current thread ) - 0x000078abc0137930 JavaThread "Reference Handler" daemon [_thread_blocked, id=76967, stack(0x000078aba8700000,0x000078aba8800000) (1024K)] - 0x000078abc0138ea0 JavaThread "Finalizer" daemon [_thread_blocked, id=76968, stack(0x000078aba05fd000,0x000078aba06fd000) (1024K)] - 0x000078abc013a6b0 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=76969, stack(0x000078aba04fd000,0x000078aba05fd000) (1024K)] - 0x000078abc013bcf0 JavaThread "Service Thread" daemon [_thread_blocked, id=76970, stack(0x000078aba03fd000,0x000078aba04fd000) (1024K)] - 0x000078abc013d290 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=76971, stack(0x000078aba02fd000,0x000078aba03fd000) (1024K)] - 0x000078abc013edb0 JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=76972, stack(0x000078aba01fd000,0x000078aba02fd000) (1024K)] - 0x000078abc01404c0 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=76973, stack(0x000078aba00fd000,0x000078aba01fd000) (1024K)] - 0x000078abc014d1b0 JavaThread "Notification Thread" daemon [_thread_blocked, id=76974, stack(0x000078ab98f00000,0x000078ab99000000) (1024K)] - 0x000078abc014fc90 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=76975, stack(0x000078ab98e00000,0x000078ab98f00000) (1024K)] -=>0x000078abc05a8d30 JavaThread "LwjglVulkanContext" [_thread_in_native, id=76987, stack(0x000078ab98100000,0x000078ab98200000) (1024K)] - 0x000078abc002d0f0 JavaThread "DestroyJavaVM" [_thread_blocked, id=76959, stack(0x000078abc7700000,0x000078abc7800000) (1024K)] - 0x000078aaf05acb60 JavaThread "jME3 Audio Decoder" daemon [_thread_blocked, id=76998, stack(0x000078ab98d00000,0x000078ab98e00000) (1024K)] - 0x000078ab084b7a10 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=76999, stack(0x000078ab40d00000,0x000078ab40e00000) (1024K)] - 0x000078aaf0763530 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=77000, stack(0x000078ab40300000,0x000078ab40400000) (1024K)] -Total: 14 - -Other Threads: - 0x000078abc012e310 VMThread "VM Thread" [id=76966, stack(0x000078aba06fe000,0x000078aba07fe000) (1024K)] - 0x000078abc011c630 WatcherThread "VM Periodic Task Thread" [id=76965, stack(0x000078aba07ff000,0x000078aba08ff000) (1024K)] - 0x000078abc0058660 WorkerThread "GC Thread#0" [id=76960, stack(0x000078abc6ba1000,0x000078abc6ca1000) (1024K)] - 0x000078abc006d560 ConcurrentGCThread "G1 Main Marker" [id=76961, stack(0x000078abc4b00000,0x000078abc4c00000) (1024K)] - 0x000078abc006e500 WorkerThread "G1 Conc#0" [id=76962, stack(0x000078abc49ff000,0x000078abc4aff000) (1024K)] - 0x000078abc0101ec0 ConcurrentGCThread "G1 Refine#0" [id=76963, stack(0x000078abc40f6000,0x000078abc41f6000) (1024K)] - 0x000078abc0102e80 ConcurrentGCThread "G1 Service" [id=76964, stack(0x000078aba0900000,0x000078aba0a00000) (1024K)] -Total: 7 - -Threads with active compile tasks: -C2 CompilerThread0 813 1245 4 java.util.HashMap::putVal (300 bytes) -Total: 1 - -VM state: not at safepoint (normal execution) - -VM Mutex/Monitor currently owned by a thread: None - -Heap address: 0x000000060c000000, size: 8000 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 - -CDS archive(s) mapped at: [0x000078ab42000000-0x000078ab42d91000-0x000078ab42d91000), size 14225408, SharedBaseAddress: 0x000078ab42000000, ArchiveRelocationMode: 1. -Compressed class space mapped at: 0x000078ab43000000-0x000078ab83000000, reserved size: 1073741824 -Narrow klass base: 0x000078ab42000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 - -GC Precious Log: - CardTable entry size: 512 - Card Set container configuration: InlinePtr #cards 4 size 8 Array Of Cards #cards 32 size 80 Howl #buckets 8 coarsen threshold 7372 Howl Bitmap #cards 1024 size 144 coarsen threshold 921 Card regions per heap region 1 cards per card region 8192 - CPUs: 8 total, 8 available - Memory: 31999M - Large Page Support: Disabled - NUMA Support: Disabled - Compressed Oops: Enabled (Zero based) - Heap Region Size: 4M - Heap Min Capacity: 8M - Heap Initial Capacity: 500M - Heap Max Capacity: 8000M - Pre-touch: Disabled - Parallel Workers: 8 - Concurrent Workers: 2 - Concurrent Refinement Workers: 8 - Periodic GC: Disabled - -Heap: - garbage-first heap total reserved 8192000K, committed 516096K, used 17531K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 6 young (24576K), 0 survivors (0K) - Metaspace used 8549K, committed 8768K, reserved 1114112K - class space used 754K, committed 832K, reserved 1048576K - -Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, TAMS=top-at-mark-start, PB=parsable bottom -| 0|0x000000060c000000, 0x000000060c000000, 0x000000060c400000| 0%| F| |TAMS 0x000000060c000000| PB 0x000000060c000000| Untracked | 0 -| 1|0x000000060c400000, 0x000000060c400000, 0x000000060c800000| 0%| F| |TAMS 0x000000060c400000| PB 0x000000060c400000| Untracked | 0 -| 2|0x000000060c800000, 0x000000060c800000, 0x000000060cc00000| 0%| F| |TAMS 0x000000060c800000| PB 0x000000060c800000| Untracked | 0 -| 3|0x000000060cc00000, 0x000000060cc00000, 0x000000060d000000| 0%| F| |TAMS 0x000000060cc00000| PB 0x000000060cc00000| Untracked | 0 -| 4|0x000000060d000000, 0x000000060d000000, 0x000000060d400000| 0%| F| |TAMS 0x000000060d000000| PB 0x000000060d000000| Untracked | 0 -| 5|0x000000060d400000, 0x000000060d400000, 0x000000060d800000| 0%| F| |TAMS 0x000000060d400000| PB 0x000000060d400000| Untracked | 0 -| 6|0x000000060d800000, 0x000000060d800000, 0x000000060dc00000| 0%| F| |TAMS 0x000000060d800000| PB 0x000000060d800000| Untracked | 0 -| 7|0x000000060dc00000, 0x000000060dc00000, 0x000000060e000000| 0%| F| |TAMS 0x000000060dc00000| PB 0x000000060dc00000| Untracked | 0 -| 8|0x000000060e000000, 0x000000060e000000, 0x000000060e400000| 0%| F| |TAMS 0x000000060e000000| PB 0x000000060e000000| Untracked | 0 -| 9|0x000000060e400000, 0x000000060e400000, 0x000000060e800000| 0%| F| |TAMS 0x000000060e400000| PB 0x000000060e400000| Untracked | 0 -| 10|0x000000060e800000, 0x000000060e800000, 0x000000060ec00000| 0%| F| |TAMS 0x000000060e800000| PB 0x000000060e800000| Untracked | 0 -| 11|0x000000060ec00000, 0x000000060ec00000, 0x000000060f000000| 0%| F| |TAMS 0x000000060ec00000| PB 0x000000060ec00000| Untracked | 0 -| 12|0x000000060f000000, 0x000000060f000000, 0x000000060f400000| 0%| F| |TAMS 0x000000060f000000| PB 0x000000060f000000| Untracked | 0 -| 13|0x000000060f400000, 0x000000060f400000, 0x000000060f800000| 0%| F| |TAMS 0x000000060f400000| PB 0x000000060f400000| Untracked | 0 -| 14|0x000000060f800000, 0x000000060f800000, 0x000000060fc00000| 0%| F| |TAMS 0x000000060f800000| PB 0x000000060f800000| Untracked | 0 -| 15|0x000000060fc00000, 0x000000060fc00000, 0x0000000610000000| 0%| F| |TAMS 0x000000060fc00000| PB 0x000000060fc00000| Untracked | 0 -| 16|0x0000000610000000, 0x0000000610000000, 0x0000000610400000| 0%| F| |TAMS 0x0000000610000000| PB 0x0000000610000000| Untracked | 0 -| 17|0x0000000610400000, 0x0000000610400000, 0x0000000610800000| 0%| F| |TAMS 0x0000000610400000| PB 0x0000000610400000| Untracked | 0 -| 18|0x0000000610800000, 0x0000000610800000, 0x0000000610c00000| 0%| F| |TAMS 0x0000000610800000| PB 0x0000000610800000| Untracked | 0 -| 19|0x0000000610c00000, 0x0000000610c00000, 0x0000000611000000| 0%| F| |TAMS 0x0000000610c00000| PB 0x0000000610c00000| Untracked | 0 -| 20|0x0000000611000000, 0x0000000611000000, 0x0000000611400000| 0%| F| |TAMS 0x0000000611000000| PB 0x0000000611000000| Untracked | 0 -| 21|0x0000000611400000, 0x0000000611400000, 0x0000000611800000| 0%| F| |TAMS 0x0000000611400000| PB 0x0000000611400000| Untracked | 0 -| 22|0x0000000611800000, 0x0000000611800000, 0x0000000611c00000| 0%| F| |TAMS 0x0000000611800000| PB 0x0000000611800000| Untracked | 0 -| 23|0x0000000611c00000, 0x0000000611c00000, 0x0000000612000000| 0%| F| |TAMS 0x0000000611c00000| PB 0x0000000611c00000| Untracked | 0 -| 24|0x0000000612000000, 0x0000000612000000, 0x0000000612400000| 0%| F| |TAMS 0x0000000612000000| PB 0x0000000612000000| Untracked | 0 -| 25|0x0000000612400000, 0x0000000612400000, 0x0000000612800000| 0%| F| |TAMS 0x0000000612400000| PB 0x0000000612400000| Untracked | 0 -| 26|0x0000000612800000, 0x0000000612800000, 0x0000000612c00000| 0%| F| |TAMS 0x0000000612800000| PB 0x0000000612800000| Untracked | 0 -| 27|0x0000000612c00000, 0x0000000612c00000, 0x0000000613000000| 0%| F| |TAMS 0x0000000612c00000| PB 0x0000000612c00000| Untracked | 0 -| 28|0x0000000613000000, 0x0000000613000000, 0x0000000613400000| 0%| F| |TAMS 0x0000000613000000| PB 0x0000000613000000| Untracked | 0 -| 29|0x0000000613400000, 0x0000000613400000, 0x0000000613800000| 0%| F| |TAMS 0x0000000613400000| PB 0x0000000613400000| Untracked | 0 -| 30|0x0000000613800000, 0x0000000613800000, 0x0000000613c00000| 0%| F| |TAMS 0x0000000613800000| PB 0x0000000613800000| Untracked | 0 -| 31|0x0000000613c00000, 0x0000000613c00000, 0x0000000614000000| 0%| F| |TAMS 0x0000000613c00000| PB 0x0000000613c00000| Untracked | 0 -| 32|0x0000000614000000, 0x0000000614000000, 0x0000000614400000| 0%| F| |TAMS 0x0000000614000000| PB 0x0000000614000000| Untracked | 0 -| 33|0x0000000614400000, 0x0000000614400000, 0x0000000614800000| 0%| F| |TAMS 0x0000000614400000| PB 0x0000000614400000| Untracked | 0 -| 34|0x0000000614800000, 0x0000000614800000, 0x0000000614c00000| 0%| F| |TAMS 0x0000000614800000| PB 0x0000000614800000| Untracked | 0 -| 35|0x0000000614c00000, 0x0000000614c00000, 0x0000000615000000| 0%| F| |TAMS 0x0000000614c00000| PB 0x0000000614c00000| Untracked | 0 -| 36|0x0000000615000000, 0x0000000615000000, 0x0000000615400000| 0%| F| |TAMS 0x0000000615000000| PB 0x0000000615000000| Untracked | 0 -| 37|0x0000000615400000, 0x0000000615400000, 0x0000000615800000| 0%| F| |TAMS 0x0000000615400000| PB 0x0000000615400000| Untracked | 0 -| 38|0x0000000615800000, 0x0000000615800000, 0x0000000615c00000| 0%| F| |TAMS 0x0000000615800000| PB 0x0000000615800000| Untracked | 0 -| 39|0x0000000615c00000, 0x0000000615c00000, 0x0000000616000000| 0%| F| |TAMS 0x0000000615c00000| PB 0x0000000615c00000| Untracked | 0 -| 40|0x0000000616000000, 0x0000000616000000, 0x0000000616400000| 0%| F| |TAMS 0x0000000616000000| PB 0x0000000616000000| Untracked | 0 -| 41|0x0000000616400000, 0x0000000616400000, 0x0000000616800000| 0%| F| |TAMS 0x0000000616400000| PB 0x0000000616400000| Untracked | 0 -| 42|0x0000000616800000, 0x0000000616800000, 0x0000000616c00000| 0%| F| |TAMS 0x0000000616800000| PB 0x0000000616800000| Untracked | 0 -| 43|0x0000000616c00000, 0x0000000616c00000, 0x0000000617000000| 0%| F| |TAMS 0x0000000616c00000| PB 0x0000000616c00000| Untracked | 0 -| 44|0x0000000617000000, 0x0000000617000000, 0x0000000617400000| 0%| F| |TAMS 0x0000000617000000| PB 0x0000000617000000| Untracked | 0 -| 45|0x0000000617400000, 0x0000000617400000, 0x0000000617800000| 0%| F| |TAMS 0x0000000617400000| PB 0x0000000617400000| Untracked | 0 -| 46|0x0000000617800000, 0x0000000617800000, 0x0000000617c00000| 0%| F| |TAMS 0x0000000617800000| PB 0x0000000617800000| Untracked | 0 -| 47|0x0000000617c00000, 0x0000000617c00000, 0x0000000618000000| 0%| F| |TAMS 0x0000000617c00000| PB 0x0000000617c00000| Untracked | 0 -| 48|0x0000000618000000, 0x0000000618000000, 0x0000000618400000| 0%| F| |TAMS 0x0000000618000000| PB 0x0000000618000000| Untracked | 0 -| 49|0x0000000618400000, 0x0000000618400000, 0x0000000618800000| 0%| F| |TAMS 0x0000000618400000| PB 0x0000000618400000| Untracked | 0 -| 50|0x0000000618800000, 0x0000000618800000, 0x0000000618c00000| 0%| F| |TAMS 0x0000000618800000| PB 0x0000000618800000| Untracked | 0 -| 51|0x0000000618c00000, 0x0000000618c00000, 0x0000000619000000| 0%| F| |TAMS 0x0000000618c00000| PB 0x0000000618c00000| Untracked | 0 -| 52|0x0000000619000000, 0x0000000619000000, 0x0000000619400000| 0%| F| |TAMS 0x0000000619000000| PB 0x0000000619000000| Untracked | 0 -| 53|0x0000000619400000, 0x0000000619400000, 0x0000000619800000| 0%| F| |TAMS 0x0000000619400000| PB 0x0000000619400000| Untracked | 0 -| 54|0x0000000619800000, 0x0000000619800000, 0x0000000619c00000| 0%| F| |TAMS 0x0000000619800000| PB 0x0000000619800000| Untracked | 0 -| 55|0x0000000619c00000, 0x0000000619c00000, 0x000000061a000000| 0%| F| |TAMS 0x0000000619c00000| PB 0x0000000619c00000| Untracked | 0 -| 56|0x000000061a000000, 0x000000061a000000, 0x000000061a400000| 0%| F| |TAMS 0x000000061a000000| PB 0x000000061a000000| Untracked | 0 -| 57|0x000000061a400000, 0x000000061a400000, 0x000000061a800000| 0%| F| |TAMS 0x000000061a400000| PB 0x000000061a400000| Untracked | 0 -| 58|0x000000061a800000, 0x000000061a800000, 0x000000061ac00000| 0%| F| |TAMS 0x000000061a800000| PB 0x000000061a800000| Untracked | 0 -| 59|0x000000061ac00000, 0x000000061ac00000, 0x000000061b000000| 0%| F| |TAMS 0x000000061ac00000| PB 0x000000061ac00000| Untracked | 0 -| 60|0x000000061b000000, 0x000000061b000000, 0x000000061b400000| 0%| F| |TAMS 0x000000061b000000| PB 0x000000061b000000| Untracked | 0 -| 61|0x000000061b400000, 0x000000061b400000, 0x000000061b800000| 0%| F| |TAMS 0x000000061b400000| PB 0x000000061b400000| Untracked | 0 -| 62|0x000000061b800000, 0x000000061b800000, 0x000000061bc00000| 0%| F| |TAMS 0x000000061b800000| PB 0x000000061b800000| Untracked | 0 -| 63|0x000000061bc00000, 0x000000061bc00000, 0x000000061c000000| 0%| F| |TAMS 0x000000061bc00000| PB 0x000000061bc00000| Untracked | 0 -| 64|0x000000061c000000, 0x000000061c000000, 0x000000061c400000| 0%| F| |TAMS 0x000000061c000000| PB 0x000000061c000000| Untracked | 0 -| 65|0x000000061c400000, 0x000000061c400000, 0x000000061c800000| 0%| F| |TAMS 0x000000061c400000| PB 0x000000061c400000| Untracked | 0 -| 66|0x000000061c800000, 0x000000061c800000, 0x000000061cc00000| 0%| F| |TAMS 0x000000061c800000| PB 0x000000061c800000| Untracked | 0 -| 67|0x000000061cc00000, 0x000000061cc00000, 0x000000061d000000| 0%| F| |TAMS 0x000000061cc00000| PB 0x000000061cc00000| Untracked | 0 -| 68|0x000000061d000000, 0x000000061d000000, 0x000000061d400000| 0%| F| |TAMS 0x000000061d000000| PB 0x000000061d000000| Untracked | 0 -| 69|0x000000061d400000, 0x000000061d400000, 0x000000061d800000| 0%| F| |TAMS 0x000000061d400000| PB 0x000000061d400000| Untracked | 0 -| 70|0x000000061d800000, 0x000000061d800000, 0x000000061dc00000| 0%| F| |TAMS 0x000000061d800000| PB 0x000000061d800000| Untracked | 0 -| 71|0x000000061dc00000, 0x000000061dc00000, 0x000000061e000000| 0%| F| |TAMS 0x000000061dc00000| PB 0x000000061dc00000| Untracked | 0 -| 72|0x000000061e000000, 0x000000061e000000, 0x000000061e400000| 0%| F| |TAMS 0x000000061e000000| PB 0x000000061e000000| Untracked | 0 -| 73|0x000000061e400000, 0x000000061e400000, 0x000000061e800000| 0%| F| |TAMS 0x000000061e400000| PB 0x000000061e400000| Untracked | 0 -| 74|0x000000061e800000, 0x000000061e800000, 0x000000061ec00000| 0%| F| |TAMS 0x000000061e800000| PB 0x000000061e800000| Untracked | 0 -| 75|0x000000061ec00000, 0x000000061ec00000, 0x000000061f000000| 0%| F| |TAMS 0x000000061ec00000| PB 0x000000061ec00000| Untracked | 0 -| 76|0x000000061f000000, 0x000000061f000000, 0x000000061f400000| 0%| F| |TAMS 0x000000061f000000| PB 0x000000061f000000| Untracked | 0 -| 77|0x000000061f400000, 0x000000061f400000, 0x000000061f800000| 0%| F| |TAMS 0x000000061f400000| PB 0x000000061f400000| Untracked | 0 -| 78|0x000000061f800000, 0x000000061f800000, 0x000000061fc00000| 0%| F| |TAMS 0x000000061f800000| PB 0x000000061f800000| Untracked | 0 -| 79|0x000000061fc00000, 0x000000061fc00000, 0x0000000620000000| 0%| F| |TAMS 0x000000061fc00000| PB 0x000000061fc00000| Untracked | 0 -| 80|0x0000000620000000, 0x0000000620000000, 0x0000000620400000| 0%| F| |TAMS 0x0000000620000000| PB 0x0000000620000000| Untracked | 0 -| 81|0x0000000620400000, 0x0000000620400000, 0x0000000620800000| 0%| F| |TAMS 0x0000000620400000| PB 0x0000000620400000| Untracked | 0 -| 82|0x0000000620800000, 0x0000000620800000, 0x0000000620c00000| 0%| F| |TAMS 0x0000000620800000| PB 0x0000000620800000| Untracked | 0 -| 83|0x0000000620c00000, 0x0000000620c00000, 0x0000000621000000| 0%| F| |TAMS 0x0000000620c00000| PB 0x0000000620c00000| Untracked | 0 -| 84|0x0000000621000000, 0x0000000621000000, 0x0000000621400000| 0%| F| |TAMS 0x0000000621000000| PB 0x0000000621000000| Untracked | 0 -| 85|0x0000000621400000, 0x0000000621400000, 0x0000000621800000| 0%| F| |TAMS 0x0000000621400000| PB 0x0000000621400000| Untracked | 0 -| 86|0x0000000621800000, 0x0000000621800000, 0x0000000621c00000| 0%| F| |TAMS 0x0000000621800000| PB 0x0000000621800000| Untracked | 0 -| 87|0x0000000621c00000, 0x0000000621c00000, 0x0000000622000000| 0%| F| |TAMS 0x0000000621c00000| PB 0x0000000621c00000| Untracked | 0 -| 88|0x0000000622000000, 0x0000000622000000, 0x0000000622400000| 0%| F| |TAMS 0x0000000622000000| PB 0x0000000622000000| Untracked | 0 -| 89|0x0000000622400000, 0x0000000622400000, 0x0000000622800000| 0%| F| |TAMS 0x0000000622400000| PB 0x0000000622400000| Untracked | 0 -| 90|0x0000000622800000, 0x0000000622800000, 0x0000000622c00000| 0%| F| |TAMS 0x0000000622800000| PB 0x0000000622800000| Untracked | 0 -| 91|0x0000000622c00000, 0x0000000622c00000, 0x0000000623000000| 0%| F| |TAMS 0x0000000622c00000| PB 0x0000000622c00000| Untracked | 0 -| 92|0x0000000623000000, 0x0000000623000000, 0x0000000623400000| 0%| F| |TAMS 0x0000000623000000| PB 0x0000000623000000| Untracked | 0 -| 93|0x0000000623400000, 0x0000000623400000, 0x0000000623800000| 0%| F| |TAMS 0x0000000623400000| PB 0x0000000623400000| Untracked | 0 -| 94|0x0000000623800000, 0x0000000623800000, 0x0000000623c00000| 0%| F| |TAMS 0x0000000623800000| PB 0x0000000623800000| Untracked | 0 -| 95|0x0000000623c00000, 0x0000000623c00000, 0x0000000624000000| 0%| F| |TAMS 0x0000000623c00000| PB 0x0000000623c00000| Untracked | 0 -| 96|0x0000000624000000, 0x0000000624000000, 0x0000000624400000| 0%| F| |TAMS 0x0000000624000000| PB 0x0000000624000000| Untracked | 0 -| 97|0x0000000624400000, 0x0000000624400000, 0x0000000624800000| 0%| F| |TAMS 0x0000000624400000| PB 0x0000000624400000| Untracked | 0 -| 98|0x0000000624800000, 0x0000000624800000, 0x0000000624c00000| 0%| F| |TAMS 0x0000000624800000| PB 0x0000000624800000| Untracked | 0 -| 99|0x0000000624c00000, 0x0000000624c00000, 0x0000000625000000| 0%| F| |TAMS 0x0000000624c00000| PB 0x0000000624c00000| Untracked | 0 -| 100|0x0000000625000000, 0x0000000625000000, 0x0000000625400000| 0%| F| |TAMS 0x0000000625000000| PB 0x0000000625000000| Untracked | 0 -| 101|0x0000000625400000, 0x0000000625400000, 0x0000000625800000| 0%| F| |TAMS 0x0000000625400000| PB 0x0000000625400000| Untracked | 0 -| 102|0x0000000625800000, 0x0000000625800000, 0x0000000625c00000| 0%| F| |TAMS 0x0000000625800000| PB 0x0000000625800000| Untracked | 0 -| 103|0x0000000625c00000, 0x0000000625c00000, 0x0000000626000000| 0%| F| |TAMS 0x0000000625c00000| PB 0x0000000625c00000| Untracked | 0 -| 104|0x0000000626000000, 0x0000000626000000, 0x0000000626400000| 0%| F| |TAMS 0x0000000626000000| PB 0x0000000626000000| Untracked | 0 -| 105|0x0000000626400000, 0x0000000626400000, 0x0000000626800000| 0%| F| |TAMS 0x0000000626400000| PB 0x0000000626400000| Untracked | 0 -| 106|0x0000000626800000, 0x0000000626800000, 0x0000000626c00000| 0%| F| |TAMS 0x0000000626800000| PB 0x0000000626800000| Untracked | 0 -| 107|0x0000000626c00000, 0x0000000626c00000, 0x0000000627000000| 0%| F| |TAMS 0x0000000626c00000| PB 0x0000000626c00000| Untracked | 0 -| 108|0x0000000627000000, 0x0000000627000000, 0x0000000627400000| 0%| F| |TAMS 0x0000000627000000| PB 0x0000000627000000| Untracked | 0 -| 109|0x0000000627400000, 0x0000000627400000, 0x0000000627800000| 0%| F| |TAMS 0x0000000627400000| PB 0x0000000627400000| Untracked | 0 -| 110|0x0000000627800000, 0x0000000627800000, 0x0000000627c00000| 0%| F| |TAMS 0x0000000627800000| PB 0x0000000627800000| Untracked | 0 -| 111|0x0000000627c00000, 0x0000000627c00000, 0x0000000628000000| 0%| F| |TAMS 0x0000000627c00000| PB 0x0000000627c00000| Untracked | 0 -| 112|0x0000000628000000, 0x0000000628000000, 0x0000000628400000| 0%| F| |TAMS 0x0000000628000000| PB 0x0000000628000000| Untracked | 0 -| 113|0x0000000628400000, 0x0000000628400000, 0x0000000628800000| 0%| F| |TAMS 0x0000000628400000| PB 0x0000000628400000| Untracked | 0 -| 114|0x0000000628800000, 0x0000000628800000, 0x0000000628c00000| 0%| F| |TAMS 0x0000000628800000| PB 0x0000000628800000| Untracked | 0 -| 115|0x0000000628c00000, 0x0000000628c00000, 0x0000000629000000| 0%| F| |TAMS 0x0000000628c00000| PB 0x0000000628c00000| Untracked | 0 -| 116|0x0000000629000000, 0x0000000629000000, 0x0000000629400000| 0%| F| |TAMS 0x0000000629000000| PB 0x0000000629000000| Untracked | 0 -| 117|0x0000000629400000, 0x0000000629400000, 0x0000000629800000| 0%| F| |TAMS 0x0000000629400000| PB 0x0000000629400000| Untracked | 0 -| 118|0x0000000629800000, 0x0000000629800000, 0x0000000629c00000| 0%| F| |TAMS 0x0000000629800000| PB 0x0000000629800000| Untracked | 0 -| 119|0x0000000629c00000, 0x0000000629e0f148, 0x000000062a000000| 51%| E| |TAMS 0x0000000629c00000| PB 0x0000000629c00000| Complete | 0 -| 120|0x000000062a000000, 0x000000062a400000, 0x000000062a400000|100%| E|CS|TAMS 0x000000062a000000| PB 0x000000062a000000| Complete | 0 -| 121|0x000000062a400000, 0x000000062a800000, 0x000000062a800000|100%| E| |TAMS 0x000000062a400000| PB 0x000000062a400000| Complete | 0 -| 122|0x000000062a800000, 0x000000062ac00000, 0x000000062ac00000|100%| E|CS|TAMS 0x000000062a800000| PB 0x000000062a800000| Complete | 0 -| 123|0x000000062ac00000, 0x000000062b000000, 0x000000062b000000|100%| E|CS|TAMS 0x000000062ac00000| PB 0x000000062ac00000| Complete | 0 -| 124|0x000000062b000000, 0x000000062b400000, 0x000000062b400000|100%| E|CS|TAMS 0x000000062b000000| PB 0x000000062b000000| Complete | 0 -|1999|0x00000007ffc00000, 0x00000007ffd1ec18, 0x0000000800000000| 28%| O| |TAMS 0x00000007ffc00000| PB 0x00000007ffc00000| Untracked | 0 - -Card table byte_map: [0x000078abc4c00000,0x000078abc5ba0000] _byte_map_base: 0x000078abc1ba0000 - -Marking Bits: (CMBitMap*) 0x000078abc0059190 - Bits: [0x000078aba0a00000, 0x000078aba8700000) - -Polling page: 0x000078abc9130000 - -Metaspace: - -Usage: - Non-class: 7.61 MB used. - Class: 754.40 KB used. - Both: 8.35 MB used. - -Virtual space: - Non-class space: 64.00 MB reserved, 7.75 MB ( 12%) committed, 1 nodes. - Class space: 1.00 GB reserved, 832.00 KB ( <1%) committed, 1 nodes. - Both: 1.06 GB reserved, 8.56 MB ( <1%) committed. - -Chunk freelists: - Non-Class: 7.98 MB - Class: 15.06 MB - Both: 23.05 MB - -MaxMetaspaceSize: unlimited -CompressedClassSpaceSize: 1.00 GB -Initial GC threshold: 21.00 MB -Current GC threshold: 21.00 MB -CDS: on - - commit_granule_bytes: 65536. - - commit_granule_words: 8192. - - virtual_space_node_default_size: 8388608. - - enlarge_chunks_in_place: 1. - - use_allocation_guard: 0. - - -Internal statistics: - -num_allocs_failed_limit: 0. -num_arena_births: 142. -num_arena_deaths: 0. -num_vsnodes_births: 2. -num_vsnodes_deaths: 0. -num_space_committed: 137. -num_space_uncommitted: 0. -num_chunks_returned_to_freelist: 0. -num_chunks_taken_from_freelist: 355. -num_chunk_merges: 0. -num_chunk_splits: 242. -num_chunks_enlarged: 165. -num_inconsistent_stats: 0. - -CodeHeap 'non-profiled nmethods': size=120032Kb used=387Kb max_used=387Kb free=119645Kb - bounds [0x000078abb02c8000, 0x000078abb0538000, 0x000078abb7800000] -CodeHeap 'profiled nmethods': size=120028Kb used=1638Kb max_used=1638Kb free=118389Kb - bounds [0x000078aba8800000, 0x000078aba8a70000, 0x000078abafd37000] -CodeHeap 'non-nmethods': size=5700Kb used=2151Kb max_used=2169Kb free=3548Kb - bounds [0x000078abafd37000, 0x000078abaffa7000, 0x000078abb02c8000] -CodeCache: size=245760Kb, used=4176Kb, max_used=4194Kb, free=241582Kb - total_blobs=2418, nmethods=1248, adapters=1077, full_count=0 -Compilation: enabled, stopped_count=0, restarted_count=0 - -Compilation events (20 events): -Event: 0.803 Thread 0x000078abc01404c0 1235 3 java.lang.invoke.DirectMethodHandle::preparedLambdaForm (244 bytes) -Event: 0.804 Thread 0x000078abc01404c0 nmethod 1235 0x000078aba8994508 code [0x000078aba8994780, 0x000078aba8995630] -Event: 0.807 Thread 0x000078abc01404c0 1236 3 org.lwjgl.system.Checks::check (16 bytes) -Event: 0.807 Thread 0x000078abc01404c0 nmethod 1236 0x000078aba8995708 code [0x000078aba8995840, 0x000078aba8995a28] -Event: 0.807 Thread 0x000078abc01404c0 1237 3 sun.misc.Unsafe::getByte (12 bytes) -Event: 0.807 Thread 0x000078abc01404c0 nmethod 1237 0x000078aba8995a88 code [0x000078aba8995ba0, 0x000078aba8995d18] -Event: 0.807 Thread 0x000078abc01404c0 1238 ! 3 jdk.internal.misc.ScopedMemoryAccess::copyMemory (27 bytes) -Event: 0.807 Thread 0x000078abc01404c0 nmethod 1238 0x000078aba8995d88 code [0x000078aba8995f20, 0x000078aba8996530] -Event: 0.807 Thread 0x000078abc01404c0 1239 ! 3 jdk.internal.misc.ScopedMemoryAccess::copyMemoryInternal (56 bytes) -Event: 0.808 Thread 0x000078abc01404c0 nmethod 1239 0x000078aba8996588 code [0x000078aba8996700, 0x000078aba8996c20] -Event: 0.808 Thread 0x000078abc01404c0 1240 3 java.lang.ThreadLocal$ThreadLocalMap::nextIndex (15 bytes) -Event: 0.808 Thread 0x000078abc01404c0 nmethod 1240 0x000078aba8996c88 code [0x000078aba8996da0, 0x000078aba8996ed0] -Event: 0.808 Thread 0x000078abc01404c0 1241 3 org.lwjgl.system.Struct:: (11 bytes) -Event: 0.808 Thread 0x000078abc013edb0 1245 4 java.util.HashMap::putVal (300 bytes) -Event: 0.808 Thread 0x000078abc01404c0 nmethod 1241 0x000078aba8996f88 code [0x000078aba89970c0, 0x000078aba8997400] -Event: 0.808 Thread 0x000078abc01404c0 1244 3 org.lwjgl.system.MemoryUtil::strlen64NT1 (119 bytes) -Event: 0.808 Thread 0x000078abc01404c0 nmethod 1244 0x000078aba8997488 code [0x000078aba8997640, 0x000078aba8997ec0] -Event: 0.808 Thread 0x000078abc01404c0 1247 3 java.lang.ThreadLocal$ThreadLocalMap::getEntryAfterMiss (59 bytes) -Event: 0.808 Thread 0x000078abc01404c0 nmethod 1247 0x000078aba8997f08 code [0x000078aba8998080, 0x000078aba8998668] -Event: 0.808 Thread 0x000078abc01404c0 1242 3 org.lwjgl.system.StructBuffer::get (36 bytes) - -GC Heap History (0 events): -No events - -Dll operation events (10 events): -Event: 0.001 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -Event: 0.016 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -Event: 0.016 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -Event: 0.024 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -Event: 0.027 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -Event: 0.067 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -Event: 0.117 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -Event: 0.122 Loaded shared library /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -Event: 0.387 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -Event: 0.390 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so - -Deoptimization events (20 events): -Event: 0.703 Thread 0x000078abc05a8d30 Uncommon trap: trap_request=0xffffff45 fr.pc=0x000078abb0306f5c relative=0x000000000000015c -Event: 0.703 Thread 0x000078abc05a8d30 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000078abb0306f5c method=java.util.concurrent.locks.ReentrantLock$NonfairSync.initialTryLock()Z @ 10 c2 -Event: 0.703 Thread 0x000078abc05a8d30 DEOPT PACKING pc=0x000078abb0306f5c sp=0x000078ab981fdec0 -Event: 0.703 Thread 0x000078abc05a8d30 DEOPT UNPACKING pc=0x000078abafd8abf9 sp=0x000078ab981fde68 mode 2 -Event: 0.746 Thread 0x000078abc05a8d30 Uncommon trap: trap_request=0xffffffde fr.pc=0x000078abb03051cc relative=0x00000000000014cc -Event: 0.746 Thread 0x000078abc05a8d30 Uncommon trap: reason=class_check action=maybe_recompile pc=0x000078abb03051cc method=java.io.BufferedInputStream.implRead([BII)I @ 100 c2 -Event: 0.746 Thread 0x000078abc05a8d30 DEOPT PACKING pc=0x000078abb03051cc sp=0x000078ab981fdc40 -Event: 0.746 Thread 0x000078abc05a8d30 DEOPT UNPACKING pc=0x000078abafd8abf9 sp=0x000078ab981fdb40 mode 2 -Event: 0.746 Thread 0x000078abc05a8d30 Uncommon trap: trap_request=0xffffffde fr.pc=0x000078abb03051cc relative=0x00000000000014cc -Event: 0.746 Thread 0x000078abc05a8d30 Uncommon trap: reason=class_check action=maybe_recompile pc=0x000078abb03051cc method=java.io.BufferedInputStream.implRead([BII)I @ 100 c2 -Event: 0.746 Thread 0x000078abc05a8d30 DEOPT PACKING pc=0x000078abb03051cc sp=0x000078ab981fdc40 -Event: 0.746 Thread 0x000078abc05a8d30 DEOPT UNPACKING pc=0x000078abafd8abf9 sp=0x000078ab981fdb40 mode 2 -Event: 0.746 Thread 0x000078abc05a8d30 Uncommon trap: trap_request=0xffffffde fr.pc=0x000078abb03051cc relative=0x00000000000014cc -Event: 0.746 Thread 0x000078abc05a8d30 Uncommon trap: reason=class_check action=maybe_recompile pc=0x000078abb03051cc method=java.io.BufferedInputStream.implRead([BII)I @ 100 c2 -Event: 0.746 Thread 0x000078abc05a8d30 DEOPT PACKING pc=0x000078abb03051cc sp=0x000078ab981fdc40 -Event: 0.746 Thread 0x000078abc05a8d30 DEOPT UNPACKING pc=0x000078abafd8abf9 sp=0x000078ab981fdb40 mode 2 -Event: 0.746 Thread 0x000078abc05a8d30 Uncommon trap: trap_request=0xffffffde fr.pc=0x000078abb03051cc relative=0x00000000000014cc -Event: 0.746 Thread 0x000078abc05a8d30 Uncommon trap: reason=class_check action=maybe_recompile pc=0x000078abb03051cc method=java.io.BufferedInputStream.implRead([BII)I @ 100 c2 -Event: 0.746 Thread 0x000078abc05a8d30 DEOPT PACKING pc=0x000078abb03051cc sp=0x000078ab981fdc40 -Event: 0.746 Thread 0x000078abc05a8d30 DEOPT UNPACKING pc=0x000078abafd8abf9 sp=0x000078ab981fdb40 mode 2 - -Classes loaded (20 events): -Event: 0.745 Loading class java/awt/image/WritableRenderedImage done -Event: 0.745 Loading class java/awt/Image -Event: 0.745 Loading class java/awt/Image done -Event: 0.745 Loading class java/awt/image/BufferedImage done -Event: 0.745 Loading class java/awt/ImageCapabilities -Event: 0.745 Loading class java/awt/ImageCapabilities done -Event: 0.745 Loading class java/awt/Image$1 -Event: 0.745 Loading class sun/awt/image/SurfaceManager$ImageAccessor -Event: 0.745 Loading class sun/awt/image/SurfaceManager$ImageAccessor done -Event: 0.745 Loading class java/awt/Image$1 done -Event: 0.745 Loading class sun/awt/image/SurfaceManager -Event: 0.745 Loading class sun/awt/image/SurfaceManager done -Event: 0.745 Loading class java/awt/image/BufferedImage$1 -Event: 0.745 Loading class java/awt/image/BufferedImage$1 done -Event: 0.745 Loading class sun/awt/image/IntegerComponentRaster -Event: 0.745 Loading class sun/awt/image/IntegerComponentRaster done -Event: 0.745 Loading class java/awt/image/IndexColorModel -Event: 0.745 Loading class java/awt/image/IndexColorModel done -Event: 0.745 Loading class sun/awt/image/ShortComponentRaster -Event: 0.745 Loading class sun/awt/image/ShortComponentRaster done - -Classes unloaded (0 events): -No events - -Classes redefined (0 events): -No events - -Internal exceptions (20 events): -Event: 0.108 Thread 0x000078abc002d0f0 Exception (0x000000062ae524c0) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.109 Thread 0x000078abc002d0f0 Exception (0x000000062ae5dc50) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.109 Thread 0x000078abc002d0f0 Exception (0x000000062ae61b38) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.112 Thread 0x000078abc002d0f0 Exception (0x000000062ae7bf30) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.163 Thread 0x000078abc002d0f0 Exception (0x000000062af599d0) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.163 Thread 0x000078abc002d0f0 Exception (0x000000062af5eb08) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.165 Thread 0x000078abc002d0f0 Exception (0x000000062af70568) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.166 Thread 0x000078abc002d0f0 Exception (0x000000062af76038) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.166 Thread 0x000078abc002d0f0 Exception (0x000000062af7a408) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.167 Thread 0x000078abc002d0f0 Exception (0x000000062af81660) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.227 Thread 0x000078abc002d0f0 Exception (0x000000062a929cf8) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.237 Thread 0x000078abc002d0f0 Exception (0x000000062a981740) -thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] -Event: 0.246 Thread 0x000078abc002d0f0 Exception (0x000000062a9ec330) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.248 Thread 0x000078abc002d0f0 Exception (0x000000062a9fa148) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.399 Thread 0x000078abc05a8d30 Exception (0x000000062a5b9fe8) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.399 Thread 0x000078abc05a8d30 Exception (0x000000062a5bd538) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 863] -Event: 0.672 Thread 0x000078abc05a8d30 Exception (0x000000062a763a50) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.730 Thread 0x000078abc05a8d30 Exception (0x000000062a173530) -thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] -Event: 0.731 Thread 0x000078abc05a8d30 Exception (0x000000062a179508) -thrown [open/src/hotspot/share/prims/jni.cpp, line 520] -Event: 0.735 Thread 0x000078abc05a8d30 Exception (0x000000062a1a4298) -thrown [open/src/hotspot/share/prims/jni.cpp, line 520] - -VM Operations (14 events): -Event: 0.099 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.099 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.107 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.107 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.119 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.119 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.129 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.130 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.404 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.404 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.687 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.687 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.728 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.728 Executing VM operation: HandshakeAllThreads (Deoptimize) done - -Memory protections (16 events): -Event: 0.001 Protecting memory [0x000078abc7700000,0x000078abc7704000] with protection modes 0 -Event: 0.015 Protecting memory [0x000078aba8700000,0x000078aba8704000] with protection modes 0 -Event: 0.015 Protecting memory [0x000078aba05fd000,0x000078aba0601000] with protection modes 0 -Event: 0.015 Protecting memory [0x000078aba04fd000,0x000078aba0501000] with protection modes 0 -Event: 0.015 Protecting memory [0x000078aba03fd000,0x000078aba0401000] with protection modes 0 -Event: 0.015 Protecting memory [0x000078aba02fd000,0x000078aba0301000] with protection modes 0 -Event: 0.015 Protecting memory [0x000078aba01fd000,0x000078aba0201000] with protection modes 0 -Event: 0.015 Protecting memory [0x000078aba00fd000,0x000078aba0101000] with protection modes 0 -Event: 0.021 Protecting memory [0x000078ab98f00000,0x000078ab98f04000] with protection modes 0 -Event: 0.022 Protecting memory [0x000078ab98e00000,0x000078ab98e04000] with protection modes 0 -Event: 0.163 Protecting memory [0x000078ab98d00000,0x000078ab98d04000] with protection modes 0 -Event: 0.252 Protecting memory [0x000078ab98100000,0x000078ab98104000] with protection modes 0 -Event: 0.252 Protecting memory [0x000078abc7700000,0x000078abc7704000] with protection modes 0 -Event: 0.697 Protecting memory [0x000078ab98d00000,0x000078ab98d04000] with protection modes 0 -Event: 0.705 Protecting memory [0x000078ab40d00000,0x000078ab40d04000] with protection modes 0 -Event: 0.742 Protecting memory [0x000078ab40300000,0x000078ab40304000] with protection modes 0 - -Nmethod flushes (0 events): -No events - -Events (18 events): -Event: 0.010 Thread 0x000078abc002d0f0 Thread added: 0x000078abc002d0f0 -Event: 0.014 Thread 0x000078abc002d0f0 Thread added: 0x000078abc0137930 -Event: 0.015 Thread 0x000078abc002d0f0 Thread added: 0x000078abc0138ea0 -Event: 0.015 Thread 0x000078abc002d0f0 Thread added: 0x000078abc013a6b0 -Event: 0.015 Thread 0x000078abc002d0f0 Thread added: 0x000078abc013bcf0 -Event: 0.015 Thread 0x000078abc002d0f0 Thread added: 0x000078abc013d290 -Event: 0.015 Thread 0x000078abc002d0f0 Thread added: 0x000078abc013edb0 -Event: 0.015 Thread 0x000078abc002d0f0 Thread added: 0x000078abc01404c0 -Event: 0.021 Thread 0x000078abc002d0f0 Thread added: 0x000078abc014d1b0 -Event: 0.022 Thread 0x000078abc002d0f0 Thread added: 0x000078abc014fc90 -Event: 0.163 Thread 0x000078abc01404c0 Thread added: 0x000078ab0815bc30 -Event: 0.252 Thread 0x000078abc002d0f0 Thread added: 0x000078abc05a8d30 -Event: 0.252 Thread 0x000078abc002d0f0 Thread exited: 0x000078abc002d0f0 -Event: 0.252 Thread 0x000078abc002d0f0 Thread added: 0x000078abc002d0f0 -Event: 0.672 Thread 0x000078ab0815bc30 Thread exited: 0x000078ab0815bc30 -Event: 0.697 Thread 0x000078abc05a8d30 Thread added: 0x000078aaf05acb60 -Event: 0.705 Thread 0x000078abc01404c0 Thread added: 0x000078ab084b7a10 -Event: 0.741 Thread 0x000078abc05a8d30 Thread added: 0x000078aaf0763530 - - -Dynamic libraries: -60c000000-62b400000 rw-p 00000000 00:00 0 -62b400000-7ffc00000 ---p 00000000 00:00 0 -7ffc00000-7ffd1f000 rw-p 00dc0000 103:03 10498862 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/classes.jsa -7ffd1f000-800000000 rw-p 00000000 00:00 0 -649e5204b000-649e5204c000 r-xp 00000000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java -649e5204d000-649e5204e000 r--p 00001000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java -649e5204e000-649e5204f000 rw-p 00002000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java -649e57a11000-649e57a5a000 rw-p 00000000 00:00 0 [heap] -78aab8000000-78aab8021000 rw-p 00000000 00:00 0 -78aab8021000-78aabc000000 ---p 00000000 00:00 0 -78aabc000000-78aabc021000 rw-p 00000000 00:00 0 -78aabc021000-78aac0000000 ---p 00000000 00:00 0 -78aac4000000-78aac4034000 rw-p 00000000 00:00 0 -78aac4034000-78aac8000000 ---p 00000000 00:00 0 -78aac8000000-78aac8021000 rw-p 00000000 00:00 0 -78aac8021000-78aacc000000 ---p 00000000 00:00 0 -78aad0000000-78aad00c8000 rw-p 00000000 00:00 0 -78aad00c8000-78aad4000000 ---p 00000000 00:00 0 -78aad4000000-78aad4021000 rw-p 00000000 00:00 0 -78aad4021000-78aad8000000 ---p 00000000 00:00 0 -78aadc000000-78aadc021000 rw-p 00000000 00:00 0 -78aadc021000-78aae0000000 ---p 00000000 00:00 0 -78aae1000000-78aae7712000 r-xp 00000000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 -78aae7712000-78aae7f30000 r--p 06711000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 -78aae7f30000-78aae7f76000 rw-p 06f2f000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 -78aae7f76000-78aae7ff2000 rw-p 00000000 00:00 0 -78aae8000000-78aae8021000 rw-p 00000000 00:00 0 -78aae8021000-78aaec000000 ---p 00000000 00:00 0 -78aaf0000000-78aaf0f2e000 rw-p 00000000 00:00 0 -78aaf0f2e000-78aaf4000000 ---p 00000000 00:00 0 -78aaf4000000-78aaf41d4000 rw-p 00000000 00:00 0 -78aaf41d4000-78aaf8000000 ---p 00000000 00:00 0 -78aafc000000-78aafc021000 rw-p 00000000 00:00 0 -78aafc021000-78ab00000000 ---p 00000000 00:00 0 -78ab00000000-78ab00021000 rw-p 00000000 00:00 0 -78ab00021000-78ab04000000 ---p 00000000 00:00 0 -78ab08000000-78ab084d8000 rw-p 00000000 00:00 0 -78ab084d8000-78ab0c000000 ---p 00000000 00:00 0 -78ab0c000000-78ab0c327000 rw-p 00000000 00:00 0 -78ab0c327000-78ab10000000 ---p 00000000 00:00 0 -78ab12000000-78ab12cf5000 r--p 00000000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -78ab12cf5000-78ab136d8000 r-xp 00cf5000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -78ab136d8000-78ab13ae9000 r--p 016d8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -78ab13ae9000-78ab13f6b000 r--p 01ae8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -78ab13f6b000-78ab13f73000 rw-p 01f6a000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -78ab13f73000-78ab13f7e000 rw-p 00000000 00:00 0 -78ab14000000-78ab14021000 rw-p 00000000 00:00 0 -78ab14021000-78ab18000000 ---p 00000000 00:00 0 -78ab18000000-78ab18021000 rw-p 00000000 00:00 0 -78ab18021000-78ab1c000000 ---p 00000000 00:00 0 -78ab1c400000-78ab1c401000 ---p 00000000 00:00 0 -78ab1c401000-78ab1cc01000 rw-p 00000000 00:00 0 -78ab1ce00000-78ab1ce2f000 r--p 00000000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -78ab1ce2f000-78ab1d502000 r-xp 0002f000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -78ab1d502000-78ab1d624000 r--p 00702000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -78ab1d624000-78ab1d635000 r--p 00823000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -78ab1d635000-78ab1d6b3000 rw-p 00834000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -78ab1d6b3000-78ab1d6c7000 rw-p 00000000 00:00 0 -78ab1d800000-78ab1d801000 ---p 00000000 00:00 0 -78ab1d801000-78ab1e001000 rw-p 00000000 00:00 0 -78ab1e200000-78ab1e201000 ---p 00000000 00:00 0 -78ab1e201000-78ab1ea01000 rw-p 00000000 00:00 0 -78ab1ec00000-78ab1ec01000 ---p 00000000 00:00 0 -78ab1ec01000-78ab1f401000 rw-p 00000000 00:00 0 -78ab1f600000-78ab1f601000 ---p 00000000 00:00 0 -78ab1f601000-78ab1fe01000 rw-p 00000000 00:00 0 -78ab20000000-78ab20021000 rw-p 00000000 00:00 0 -78ab20021000-78ab24000000 ---p 00000000 00:00 0 -78ab24000000-78ab24021000 rw-p 00000000 00:00 0 -78ab24021000-78ab28000000 ---p 00000000 00:00 0 -78ab28400000-78ab28422000 r-xp 00000000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -78ab28422000-78ab28621000 ---p 00022000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -78ab28621000-78ab28629000 r--p 00021000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -78ab28629000-78ab2862a000 rw-p 00029000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -78ab2862a000-78ab2862b000 rw-p 00000000 00:00 0 -78ab28a00000-78ab28a01000 ---p 00000000 00:00 0 -78ab28a01000-78ab29201000 rw-p 00000000 00:00 0 -78ab29400000-78ab29401000 ---p 00000000 00:00 0 -78ab29401000-78ab29c01000 rw-p 00000000 00:00 0 -78ab29e00000-78ab29e16000 r--p 00000000 103:03 4325447 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -78ab29e16000-78ab29f06000 r-xp 00016000 103:03 4325447 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -78ab29f06000-78ab29f79000 r--p 00106000 103:03 4325447 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -78ab29f79000-78ab29f80000 r--p 00178000 103:03 4325447 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -78ab29f80000-78ab29f87000 rw-p 0017f000 103:03 4325447 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -78ab29f87000-78ab2a002000 rw-p 00000000 00:00 0 -78ab2a200000-78ab2a201000 r--p 00000000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -78ab2a201000-78ab2a202000 r-xp 00001000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -78ab2a202000-78ab2be1c000 r--p 00002000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -78ab2be1c000-78ab2be1d000 r--p 01c1b000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -78ab2be1d000-78ab2be1e000 rw-p 01c1c000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -78ab2c000000-78ab2c021000 rw-p 00000000 00:00 0 -78ab2c021000-78ab30000000 ---p 00000000 00:00 0 -78ab30000000-78ab30021000 rw-p 00000000 00:00 0 -78ab30021000-78ab34000000 ---p 00000000 00:00 0 -78ab34400000-78ab3448d000 r--p 00000000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -78ab3448d000-78ab34bf5000 r-xp 0008d000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -78ab34bf5000-78ab35482000 r--p 007f5000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -78ab35482000-78ab354c4000 r--p 01081000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -78ab354c4000-78ab354c7000 rw-p 010c3000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -78ab354c7000-78ab354cd000 rw-p 00000000 00:00 0 -78ab35600000-78ab357c4000 r--p 00000000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -78ab357c4000-78ab374c4000 r-xp 001c4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -78ab374c4000-78ab37b39000 r--p 01ec4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -78ab37b39000-78ab37b3a000 ---p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -78ab37b3a000-78ab37d1a000 r--p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -78ab37d1a000-78ab37d93000 rw-p 02719000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -78ab37d93000-78ab37e08000 rw-p 00000000 00:00 0 -78ab38000000-78ab383b0000 rw-p 00000000 00:00 0 -78ab383b0000-78ab38400000 ---p 00000000 00:00 0 -78ab38400000-78ab38810000 rw-p 00000000 00:00 0 -78ab38810000-78ab3c000000 ---p 00000000 00:00 0 -78ab3c000000-78ab3c021000 rw-p 00000000 00:00 0 -78ab3c021000-78ab40000000 ---p 00000000 00:00 0 -78ab401bf000-78ab40300000 rw-s 00000000 103:03 13372247 /home/codex/.cache/mesa_shader_cache/index -78ab40300000-78ab40304000 ---p 00000000 00:00 0 -78ab40304000-78ab40400000 rw-p 00000000 00:00 0 -78ab40400000-78ab4045b000 r--p 00000000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -78ab4045b000-78ab407d9000 r-xp 0005b000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -78ab407d9000-78ab40bd5000 r--p 003d9000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -78ab40bd5000-78ab40c10000 r--p 007d4000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -78ab40c10000-78ab40c15000 rw-p 0080f000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -78ab40c15000-78ab40c40000 rw-p 00000000 00:00 0 -78ab40d00000-78ab40d04000 ---p 00000000 00:00 0 -78ab40d04000-78ab40e00000 rw-p 00000000 00:00 0 -78ab40e00000-78ab40e6e000 r--p 00000000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -78ab40e6e000-78ab413d5000 r-xp 0006e000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -78ab413d5000-78ab41ae8000 r--p 005d5000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -78ab41ae8000-78ab41ae9000 ---p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -78ab41ae9000-78ab41b26000 r--p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -78ab41b26000-78ab41b29000 rw-p 00d25000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -78ab41b29000-78ab41b2b000 rw-p 00000000 00:00 0 -78ab41bed000-78ab41bef000 r--p 00000000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -78ab41bef000-78ab41bf8000 r-xp 00002000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -78ab41bf8000-78ab41bfb000 r--p 0000b000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -78ab41bfb000-78ab41bfc000 ---p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -78ab41bfc000-78ab41bfd000 r--p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -78ab41bfd000-78ab41bfe000 rw-p 0000f000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -78ab41bfe000-78ab41c00000 rw-p 00000000 00:00 0 -78ab41c00000-78ab41c9a000 r--p 00000000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -78ab41c9a000-78ab41dab000 r-xp 0009a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -78ab41dab000-78ab41e1a000 r--p 001ab000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -78ab41e1a000-78ab41e1b000 ---p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -78ab41e1b000-78ab41e26000 r--p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -78ab41e26000-78ab41e29000 rw-p 00225000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -78ab41e29000-78ab41e2c000 rw-p 00000000 00:00 0 -78ab41e31000-78ab41e42000 r--p 00000000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -78ab41e42000-78ab41e84000 r-xp 00011000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -78ab41e84000-78ab41e9c000 r--p 00053000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -78ab41e9c000-78ab41eaa000 r--p 0006a000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -78ab41eaa000-78ab41eac000 rw-p 00078000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -78ab41eac000-78ab41eb0000 r--p 00000000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -78ab41eb0000-78ab41ecc000 r-xp 00004000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -78ab41ecc000-78ab41ed2000 r--p 00020000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -78ab41ed2000-78ab41ed3000 ---p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -78ab41ed3000-78ab41ed5000 r--p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -78ab41ed5000-78ab41ed6000 rw-p 00028000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -78ab41ed6000-78ab41ee2000 r--p 00000000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -78ab41ee2000-78ab41f02000 r-xp 0000c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -78ab41f02000-78ab41f0e000 r--p 0002c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -78ab41f0e000-78ab41f18000 r--p 00037000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -78ab41f18000-78ab41f19000 rw-p 00041000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -78ab41f19000-78ab41f1b000 r--p 00000000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -78ab41f1b000-78ab41f86000 r-xp 00002000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -78ab41f86000-78ab41fae000 r--p 0006d000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -78ab41fae000-78ab41faf000 r--p 00094000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -78ab41faf000-78ab41fb0000 rw-p 00095000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -78ab41fb0000-78ab41fc3000 r--p 00000000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -78ab41fc3000-78ab41fe2000 r-xp 00013000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -78ab41fe2000-78ab41fef000 r--p 00032000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -78ab41fef000-78ab41fff000 r--p 0003e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -78ab41fff000-78ab42000000 rw-p 0004e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -78ab42000000-78ab42d91000 rw-p 00001000 103:03 10498862 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/classes.jsa -78ab42d91000-78ab43000000 ---p 00000000 00:00 0 -78ab43000000-78ab43030000 rw-p 00000000 00:00 0 -78ab43030000-78ab430b0000 rw-p 00000000 00:00 0 -78ab430b0000-78ab430c0000 ---p 00000000 00:00 0 -78ab430c0000-78ab430e0000 rw-p 00000000 00:00 0 -78ab430e0000-78ab83000000 ---p 00000000 00:00 0 -78ab83002000-78ab8300c000 r--p 00000000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -78ab8300c000-78ab83016000 r-xp 0000a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -78ab83016000-78ab8301d000 r--p 00014000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -78ab8301d000-78ab83026000 r--p 0001a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -78ab83026000-78ab83027000 rw-p 00023000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -78ab83027000-78ab83036000 r--p 00000000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -78ab83036000-78ab8311c000 r-xp 0000f000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -78ab8311c000-78ab8315a000 r--p 000f5000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -78ab8315a000-78ab8315b000 ---p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -78ab8315b000-78ab8315e000 r--p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -78ab8315e000-78ab83164000 rw-p 00136000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -78ab83164000-78ab83165000 rw-p 00000000 00:00 0 -78ab83165000-78ab83178000 r--p 00000000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -78ab83178000-78ab831f7000 r-xp 00013000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -78ab831f7000-78ab83222000 r--p 00092000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -78ab83222000-78ab83223000 ---p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -78ab83223000-78ab8322a000 r--p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -78ab8322a000-78ab8322b000 rw-p 000c4000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -78ab8322b000-78ab8322c000 rw-p 00000000 00:00 0 -78ab8322c000-78ab8325f000 r--p 00000000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -78ab8325f000-78ab832c2000 r-xp 00033000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -78ab832c2000-78ab832e1000 r--p 00096000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -78ab832e1000-78ab8330c000 r--p 000b4000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -78ab8330c000-78ab8330d000 rw-p 000df000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -78ab8330d000-78ab8330e000 rw-p 00000000 00:00 0 -78ab8330e000-78ab833cf000 r-xp 00000000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -78ab833cf000-78ab833d0000 r--p 000c0000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -78ab833d0000-78ab833db000 rw-p 000c1000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -78ab833db000-78ab83400000 rw-p 00000000 00:00 0 -78ab83400000-78ab83493000 r--p 00000000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -78ab83493000-78ab838e6000 r-xp 00093000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -78ab838e6000-78ab83dfc000 r--p 004e6000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -78ab83dfc000-78ab83e34000 r--p 009fb000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -78ab83e34000-78ab83e44000 rw-p 00a33000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -78ab83e44000-78ab83e49000 rw-p 00000000 00:00 0 -78ab83e52000-78ab83e56000 r--p 00000000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -78ab83e56000-78ab83e66000 r-xp 00004000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -78ab83e66000-78ab83e69000 r--p 00014000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -78ab83e69000-78ab83e6a000 r--p 00016000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -78ab83e6a000-78ab83e6b000 rw-p 00017000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -78ab83e6b000-78ab83e76000 r--p 00000000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -78ab83e76000-78ab83ea4000 r-xp 0000b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -78ab83ea4000-78ab83eb6000 r--p 00039000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -78ab83eb6000-78ab83eb7000 ---p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -78ab83eb7000-78ab83eb8000 r--p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -78ab83eb8000-78ab83eb9000 rw-p 0004c000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -78ab83eb9000-78ab83ee8000 r--p 00000000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -78ab83ee8000-78ab83fa4000 r-xp 0002f000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -78ab83fa4000-78ab83fef000 r--p 000eb000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -78ab83fef000-78ab83ffd000 r--p 00135000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -78ab83ffd000-78ab83fff000 rw-p 00143000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -78ab83fff000-78ab84000000 rw-p 00000000 00:00 0 -78ab84000000-78ab84021000 rw-p 00000000 00:00 0 -78ab84021000-78ab88000000 ---p 00000000 00:00 0 -78ab88000000-78ab88021000 rw-p 00000000 00:00 0 -78ab88021000-78ab8c000000 ---p 00000000 00:00 0 -78ab8c023000-78ab8c089000 r--p 00000000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -78ab8c089000-78ab8c17c000 r-xp 00066000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -78ab8c17c000-78ab8c208000 r--p 00159000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -78ab8c208000-78ab8c21b000 r--p 001e4000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -78ab8c21b000-78ab8c21c000 rw-p 001f7000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -78ab8c21c000-78ab8c21e000 rw-p 00000000 00:00 0 -78ab8c21e000-78ab8c24d000 r--p 00000000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -78ab8c24d000-78ab8c3a0000 r-xp 0002f000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -78ab8c3a0000-78ab8c3f4000 r--p 00182000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -78ab8c3f4000-78ab8c3f5000 ---p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -78ab8c3f5000-78ab8c3fe000 r--p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -78ab8c3fe000-78ab8c3ff000 rw-p 001df000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -78ab8c3ff000-78ab8cd22000 rw-p 00000000 00:00 0 -78ab8cd2b000-78ab8cd34000 rw-s 00000000 00:01 903423 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) -78ab8cd34000-78ab8cd3a000 r--p 00000000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -78ab8cd3a000-78ab8cd54000 r-xp 00006000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -78ab8cd54000-78ab8cd5b000 r--p 00020000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -78ab8cd5b000-78ab8cd5c000 ---p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -78ab8cd5c000-78ab8cd5d000 r--p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -78ab8cd5d000-78ab8cd5e000 rw-p 00028000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -78ab8cd5e000-78ab8cd60000 rw-p 00000000 00:00 0 -78ab8cd60000-78ab8cd64000 r--p 00000000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -78ab8cd64000-78ab8cd7a000 r-xp 00004000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -78ab8cd7a000-78ab8cd84000 r--p 0001a000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -78ab8cd84000-78ab8cd85000 r--p 00023000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -78ab8cd85000-78ab8cd86000 rw-p 00024000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -78ab8cd86000-78ab8cdf6000 r-xp 00000000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -78ab8cdf6000-78ab8cdf7000 ---p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -78ab8cdf7000-78ab8cdfc000 r--p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -78ab8cdfc000-78ab8cdfe000 rw-p 00075000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -78ab8cdfe000-78ab8ce00000 rw-p 00000000 00:00 0 -78ab8ce00000-78ab8ce01000 ---p 00000000 00:00 0 -78ab8ce01000-78ab8d601000 rw-p 00000000 00:00 0 -78ab8d606000-78ab8d60f000 rw-s 00000000 00:01 903422 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) -78ab8d60f000-78ab8d611000 r--p 00000000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -78ab8d611000-78ab8d62a000 r-xp 00002000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -78ab8d62a000-78ab8d62c000 r--p 0001b000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -78ab8d62c000-78ab8d62d000 ---p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -78ab8d62d000-78ab8d62e000 r--p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -78ab8d62e000-78ab8d62f000 rw-p 0001e000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -78ab8d633000-78ab8d635000 r--p 00000000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -78ab8d635000-78ab8d63d000 r-xp 00002000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -78ab8d63d000-78ab8d63f000 r--p 0000a000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -78ab8d63f000-78ab8d640000 r--p 0000b000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -78ab8d640000-78ab8d641000 rw-p 0000c000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -78ab8d641000-78ab8d643000 r--p 00000000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -78ab8d643000-78ab8d64b000 r-xp 00002000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -78ab8d64b000-78ab8d64c000 r--p 0000a000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -78ab8d64c000-78ab8d64d000 ---p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -78ab8d64d000-78ab8d64e000 r--p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -78ab8d64e000-78ab8d64f000 rw-p 0000c000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -78ab8d64f000-78ab8d653000 r--p 00000000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -78ab8d653000-78ab8d668000 r-xp 00004000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -78ab8d668000-78ab8d66e000 r--p 00019000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -78ab8d66e000-78ab8d66f000 ---p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -78ab8d66f000-78ab8d671000 r--p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -78ab8d671000-78ab8d672000 rw-p 00021000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -78ab8d672000-78ab8d675000 r--p 00000000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -78ab8d675000-78ab8d696000 r-xp 00003000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -78ab8d696000-78ab8d6a2000 r--p 00024000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -78ab8d6a2000-78ab8d6a3000 ---p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -78ab8d6a3000-78ab8d6a4000 r--p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -78ab8d6a4000-78ab8d6a5000 rw-p 00031000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -78ab8d6a5000-78ab8d6b3000 r--p 00000000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -78ab8d6b3000-78ab8d6c4000 r-xp 0000e000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -78ab8d6c4000-78ab8d6d2000 r--p 0001f000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -78ab8d6d2000-78ab8d6d6000 r--p 0002c000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -78ab8d6d6000-78ab8d6d7000 rw-p 00030000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -78ab8d6d7000-78ab8d6df000 r--p 00000000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -78ab8d6df000-78ab8d6fd000 r-xp 00008000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -78ab8d6fd000-78ab8d70a000 r--p 00026000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -78ab8d70a000-78ab8d70c000 r--p 00032000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -78ab8d70c000-78ab8d70d000 rw-p 00034000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -78ab8d70d000-78ab8d711000 rw-p 00000000 00:00 0 -78ab8d711000-78ab8d714000 r--p 00000000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -78ab8d714000-78ab8d72b000 r-xp 00003000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -78ab8d72b000-78ab8d72f000 r--p 0001a000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -78ab8d72f000-78ab8d730000 r--p 0001d000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -78ab8d730000-78ab8d731000 rw-p 0001e000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -78ab8d731000-78ab8d73b000 r--p 00000000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -78ab8d73b000-78ab8d7ed000 r-xp 0000a000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -78ab8d7ed000-78ab8d7fe000 r--p 000bc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -78ab8d7fe000-78ab8d7ff000 r--p 000cc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -78ab8d7ff000-78ab8d800000 rw-p 000cd000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -78ab8d800000-78ab8da41000 r-xp 00000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -78ab8da41000-78ab8da62000 rwxp 00241000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -78ab8da62000-78ab8dc00000 r-xp 00262000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -78ab8dc00000-78ab8e800000 r-xp 00400000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -78ab8e800000-78ab8f6ab000 r-xp 01000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -78ab8f6ab000-78ab8f810000 r--p 01eaa000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -78ab8f810000-78ab8f87e000 rw-p 0200f000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -78ab8f87e000-78ab8f89c000 rw-p 00000000 00:00 0 -78ab8f89d000-78ab8f89f000 r--p 00000000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -78ab8f89f000-78ab8f8a3000 r-xp 00002000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -78ab8f8a3000-78ab8f8a5000 r--p 00006000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -78ab8f8a5000-78ab8f8a6000 r--p 00007000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -78ab8f8a6000-78ab8f8a7000 rw-p 00008000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -78ab8f8a7000-78ab8f8a9000 r--p 00000000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -78ab8f8a9000-78ab8f8b0000 r-xp 00002000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -78ab8f8b0000-78ab8f8b1000 r--p 00009000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -78ab8f8b1000-78ab8f8b2000 ---p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -78ab8f8b2000-78ab8f8b3000 r--p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -78ab8f8b3000-78ab8f8b4000 rw-p 0000b000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -78ab8f8b4000-78ab8f8b8000 r--p 00000000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -78ab8f8b8000-78ab8f8d7000 r-xp 00004000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -78ab8f8d7000-78ab8f8e1000 r--p 00023000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -78ab8f8e1000-78ab8f8e2000 ---p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -78ab8f8e2000-78ab8f8e4000 r--p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -78ab8f8e4000-78ab8f8e5000 rw-p 0002f000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -78ab8f8e5000-78ab8f8ea000 r--p 00000000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -78ab8f8ea000-78ab8f8f5000 r-xp 00005000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -78ab8f8f5000-78ab8f8f9000 r--p 00010000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -78ab8f8f9000-78ab8f8fa000 ---p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -78ab8f8fa000-78ab8f8fb000 r--p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -78ab8f8fb000-78ab8f8fc000 rw-p 00015000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -78ab8f8fc000-78ab8f90c000 r--p 00000000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -78ab8f90c000-78ab8f96a000 r-xp 00010000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -78ab8f96a000-78ab8f986000 r--p 0006e000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -78ab8f986000-78ab8f987000 ---p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -78ab8f987000-78ab8f98d000 r--p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -78ab8f98d000-78ab8f98e000 rw-p 00090000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -78ab8f98e000-78ab8f996000 rw-p 00000000 00:00 0 -78ab8f996000-78ab8f9e7000 r--p 00000000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -78ab8f9e7000-78ab8fa43000 r-xp 00051000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -78ab8fa43000-78ab8fa78000 rwxp 000ad000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -78ab8fa78000-78ab8fa79000 r-xp 000e2000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -78ab8fa79000-78ab8fa99000 r--p 000e3000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -78ab8fa99000-78ab8fab9000 r--p 00102000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -78ab8fab9000-78ab8fabe000 rw-p 00122000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -78ab8fabe000-78ab8fac0000 rw-p 00000000 00:00 0 -78ab8fac0000-78ab8fad9000 r--p 00000000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -78ab8fad9000-78ab8fb65000 r-xp 00019000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -78ab8fb65000-78ab8fbfa000 r--p 000a5000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -78ab8fbfa000-78ab8fbfb000 ---p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -78ab8fbfb000-78ab8fbfc000 r--p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -78ab8fbfc000-78ab8fc00000 rw-p 0013b000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -78ab8fc00000-78ab90021000 rw-p 00000000 00:00 0 -78ab90021000-78ab94000000 ---p 00000000 00:00 0 -78ab94000000-78ab94021000 rw-p 00000000 00:00 0 -78ab94021000-78ab98000000 ---p 00000000 00:00 0 -78ab98002000-78ab98004000 r--p 00000000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -78ab98004000-78ab98007000 r-xp 00002000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -78ab98007000-78ab98008000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -78ab98008000-78ab98009000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -78ab98009000-78ab9800a000 rw-p 00006000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -78ab9800a000-78ab9800b000 r--p 00000000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -78ab9800b000-78ab9800c000 r-xp 00001000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -78ab9800c000-78ab9800d000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -78ab9800d000-78ab9800e000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -78ab9800e000-78ab9800f000 rw-p 00003000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -78ab9800f000-78ab98010000 r--p 00000000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -78ab98010000-78ab98011000 r-xp 00001000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -78ab98011000-78ab98012000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -78ab98012000-78ab98013000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -78ab98013000-78ab98014000 rw-p 00003000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -78ab98014000-78ab98017000 r--p 00000000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -78ab98017000-78ab9801a000 r-xp 00003000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -78ab9801a000-78ab9801b000 r--p 00006000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -78ab9801b000-78ab9801c000 ---p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -78ab9801c000-78ab9801d000 r--p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -78ab9801d000-78ab9801e000 rw-p 00008000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -78ab9801e000-78ab98021000 r--p 00000000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -78ab98021000-78ab98024000 r-xp 00003000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -78ab98024000-78ab98025000 r--p 00006000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -78ab98025000-78ab98026000 ---p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -78ab98026000-78ab98027000 r--p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -78ab98027000-78ab98028000 rw-p 00008000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -78ab98028000-78ab98029000 r--p 00000000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -78ab98029000-78ab9802a000 r-xp 00001000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -78ab9802a000-78ab9802b000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -78ab9802b000-78ab9802c000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -78ab9802c000-78ab9802d000 rw-p 00003000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -78ab9802d000-78ab98032000 r--p 00000000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -78ab98032000-78ab98038000 r-xp 00005000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -78ab98038000-78ab9803b000 r--p 0000b000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -78ab9803b000-78ab9803d000 r--p 0000d000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -78ab9803d000-78ab9803e000 rw-p 0000f000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -78ab9803e000-78ab98041000 r--p 00000000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -78ab98041000-78ab98055000 r-xp 00003000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -78ab98055000-78ab98059000 r--p 00017000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -78ab98059000-78ab9805a000 ---p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -78ab9805a000-78ab9805b000 r--p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -78ab9805b000-78ab9805c000 rw-p 0001c000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -78ab9805c000-78ab9805f000 r--p 00000000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -78ab9805f000-78ab98065000 r-xp 00003000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -78ab98065000-78ab98067000 r--p 00009000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -78ab98067000-78ab98068000 r--p 0000a000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -78ab98068000-78ab98069000 rw-p 0000b000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -78ab98069000-78ab98079000 r--p 00000000 103:03 4325445 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -78ab98079000-78ab9809a000 r-xp 00010000 103:03 4325445 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -78ab9809a000-78ab980d6000 r--p 00031000 103:03 4325445 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -78ab980d6000-78ab980da000 r--p 0006c000 103:03 4325445 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -78ab980da000-78ab980dd000 rw-p 00070000 103:03 4325445 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -78ab980dd000-78ab98100000 rw-p 00000000 00:00 0 -78ab98100000-78ab98104000 ---p 00000000 00:00 0 -78ab98104000-78ab98200000 rw-p 00000000 00:00 0 -78ab98200000-78ab98a00000 rw-p 00000000 00:00 0 -78ab98a00000-78ab98a08000 r--p 00000000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -78ab98a08000-78ab98a60000 r-xp 00008000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -78ab98a60000-78ab98a71000 r--p 00060000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -78ab98a71000-78ab98a72000 ---p 00071000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -78ab98a72000-78ab98a78000 r--p 00071000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -78ab98a78000-78ab98a79000 rw-p 00077000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -78ab98a79000-78ab98c83000 rw-p 00000000 00:00 0 -78ab98c84000-78ab98c8a000 r--p 00000000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -78ab98c8a000-78ab98cd4000 r-xp 00006000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -78ab98cd4000-78ab98cfe000 r--p 00050000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -78ab98cfe000-78ab98cff000 r--p 00079000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -78ab98cff000-78ab98d00000 rw-p 0007a000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -78ab98d00000-78ab98d04000 ---p 00000000 00:00 0 -78ab98d04000-78ab98e00000 rw-p 00000000 00:00 0 -78ab98e00000-78ab98e04000 ---p 00000000 00:00 0 -78ab98e04000-78ab98f00000 rw-p 00000000 00:00 0 -78ab98f00000-78ab98f04000 ---p 00000000 00:00 0 -78ab98f04000-78ab99000000 rw-p 00000000 00:00 0 -78ab99000000-78ab99f06000 r--p 00000000 103:03 10618858 /usr/lib/locale/locale-archive -78ab99f08000-78ab99f0a000 r--p 00000000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -78ab99f0a000-78ab99f0c000 r-xp 00002000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -78ab99f0c000-78ab99f0d000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -78ab99f0d000-78ab99f0e000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -78ab99f0e000-78ab99f0f000 rw-p 00005000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -78ab99f0f000-78ab99f16000 r--p 00000000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -78ab99f16000-78ab99f1c000 r-xp 00007000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -78ab99f1c000-78ab99f1f000 r--p 0000d000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -78ab99f1f000-78ab99f20000 ---p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -78ab99f20000-78ab99f21000 r--p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -78ab99f21000-78ab99f22000 rw-p 00011000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -78ab99f22000-78ab99f2d000 r--p 00000000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -78ab99f2d000-78ab99f36000 r-xp 0000b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -78ab99f36000-78ab99f3b000 r--p 00014000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -78ab99f3b000-78ab99f3c000 ---p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -78ab99f3c000-78ab99f3e000 r--p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -78ab99f3e000-78ab99f3f000 rw-p 0001b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -78ab99f3f000-78ab99f40000 r--p 00000000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -78ab99f40000-78ab99f42000 r-xp 00001000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -78ab99f42000-78ab99f43000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -78ab99f43000-78ab99f44000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -78ab99f44000-78ab99f45000 rw-p 00004000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -78ab99f45000-78ab99f46000 r--p 00000000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -78ab99f46000-78ab99f47000 r-xp 00001000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -78ab99f47000-78ab99f48000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -78ab99f48000-78ab99f49000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -78ab99f49000-78ab99f4a000 rw-p 00003000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -78ab99f4a000-78ab99f4c000 r--p 00000000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -78ab99f4c000-78ab99f52000 r-xp 00002000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -78ab99f52000-78ab99f54000 r--p 00008000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -78ab99f54000-78ab99f55000 r--p 00009000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -78ab99f55000-78ab99f56000 rw-p 0000a000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -78ab99f56000-78ab99f58000 r--p 00000000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -78ab99f58000-78ab99f5f000 r-xp 00002000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -78ab99f5f000-78ab99f61000 r--p 00009000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -78ab99f61000-78ab99f62000 r--p 0000a000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -78ab99f62000-78ab99f63000 rw-p 0000b000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -78ab99f63000-78ab99f65000 r--p 00000000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -78ab99f65000-78ab99f6c000 r-xp 00002000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -78ab99f6c000-78ab99f6e000 r--p 00009000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -78ab99f6e000-78ab99f6f000 r--p 0000a000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -78ab99f6f000-78ab99f70000 rw-p 0000b000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -78ab99f70000-78ab99f73000 r--p 00000000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -78ab99f73000-78ab99f7f000 r-xp 00003000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -78ab99f7f000-78ab99f82000 r--p 0000f000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -78ab99f82000-78ab99f83000 r--p 00011000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -78ab99f83000-78ab99f84000 rw-p 00012000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -78ab99f84000-78ab99fb0000 r--p 00000000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -78ab99fb0000-78ab99fe4000 r-xp 0002c000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -78ab99fe4000-78ab99ffe000 r--p 00060000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -78ab99ffe000-78ab99fff000 r--p 00079000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -78ab99fff000-78ab9a000000 rw-p 0007a000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -78ab9a000000-78ab9c000000 rw-p 00000000 00:00 0 -78ab9c000000-78ab9c021000 rw-p 00000000 00:00 0 -78ab9c021000-78aba0000000 ---p 00000000 00:00 0 -78aba0003000-78aba000e000 r--p 00000000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -78aba000e000-78aba0022000 r-xp 0000b000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -78aba0022000-78aba002b000 r--p 0001f000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -78aba002b000-78aba002c000 r--p 00027000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -78aba002c000-78aba002d000 rw-p 00028000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -78aba002d000-78aba00fb000 r-xp 00000000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -78aba00fb000-78aba00fc000 r--p 000cd000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -78aba00fc000-78aba00fd000 rw-p 000ce000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -78aba00fd000-78aba0101000 ---p 00000000 00:00 0 -78aba0101000-78aba01fd000 rw-p 00000000 00:00 0 -78aba01fd000-78aba0201000 ---p 00000000 00:00 0 -78aba0201000-78aba02fd000 rw-p 00000000 00:00 0 -78aba02fd000-78aba0301000 ---p 00000000 00:00 0 -78aba0301000-78aba03fd000 rw-p 00000000 00:00 0 -78aba03fd000-78aba0401000 ---p 00000000 00:00 0 -78aba0401000-78aba04fd000 rw-p 00000000 00:00 0 -78aba04fd000-78aba0501000 ---p 00000000 00:00 0 -78aba0501000-78aba05fd000 rw-p 00000000 00:00 0 -78aba05fd000-78aba0601000 ---p 00000000 00:00 0 -78aba0601000-78aba06fd000 rw-p 00000000 00:00 0 -78aba06fd000-78aba06fe000 ---p 00000000 00:00 0 -78aba06fe000-78aba07fe000 rw-p 00000000 00:00 0 -78aba07fe000-78aba07ff000 ---p 00000000 00:00 0 -78aba07ff000-78aba08ff000 rw-p 00000000 00:00 0 -78aba08ff000-78aba0900000 ---p 00000000 00:00 0 -78aba0900000-78aba0a00000 rw-p 00000000 00:00 0 -78aba0a00000-78aba11d0000 rw-p 00000000 00:00 0 -78aba11d0000-78aba86f0000 ---p 00000000 00:00 0 -78aba86f0000-78aba8700000 rw-p 00000000 00:00 0 -78aba8700000-78aba8704000 ---p 00000000 00:00 0 -78aba8704000-78aba8800000 rw-p 00000000 00:00 0 -78aba8800000-78aba8a70000 rwxp 00000000 00:00 0 -78aba8a70000-78abafd37000 ---p 00000000 00:00 0 -78abafd37000-78abaffa7000 rwxp 00000000 00:00 0 -78abaffa7000-78abb02c8000 ---p 00000000 00:00 0 -78abb02c8000-78abb0538000 rwxp 00000000 00:00 0 -78abb0538000-78abb7800000 ---p 00000000 00:00 0 -78abb7800000-78abbffb5000 r--s 00000000 103:03 10498840 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/modules -78abbffb7000-78abbffb9000 r--p 00000000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -78abbffb9000-78abbffbc000 r-xp 00002000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -78abbffbc000-78abbffbd000 r--p 00005000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -78abbffbd000-78abbffbe000 r--p 00006000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -78abbffbe000-78abbffbf000 rw-p 00007000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -78abbffbf000-78abbfffd000 r-xp 00000000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -78abbfffd000-78abbfffe000 ---p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -78abbfffe000-78abbffff000 r--p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -78abbffff000-78abc0000000 rw-p 0003f000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -78abc0000000-78abc05ad000 rw-p 00000000 00:00 0 -78abc05ad000-78abc4000000 ---p 00000000 00:00 0 -78abc4004000-78abc4008000 r--p 00000000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -78abc4008000-78abc4013000 r-xp 00004000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -78abc4013000-78abc4017000 r--p 0000f000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -78abc4017000-78abc4018000 r--p 00012000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -78abc4018000-78abc4019000 rw-p 00013000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -78abc4019000-78abc40f5000 rw-p 00000000 00:00 0 -78abc40f5000-78abc40f6000 ---p 00000000 00:00 0 -78abc40f6000-78abc41f6000 rw-p 00000000 00:00 0 -78abc41f6000-78abc49fe000 rw-p 00000000 00:00 0 -78abc49fe000-78abc49ff000 ---p 00000000 00:00 0 -78abc49ff000-78abc4aff000 rw-p 00000000 00:00 0 -78abc4aff000-78abc4b00000 ---p 00000000 00:00 0 -78abc4b00000-78abc4c00000 rw-p 00000000 00:00 0 -78abc4c00000-78abc4cfa000 rw-p 00000000 00:00 0 -78abc4cfa000-78abc5b9e000 ---p 00000000 00:00 0 -78abc5b9e000-78abc5ba0000 rw-p 00000000 00:00 0 -78abc5ba0000-78abc5ba1000 r--s 00000000 00:06 1017 /dev/nvidiactl -78abc5ba1000-78abc5ba2000 rw-s 00000000 00:01 5128 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) -78abc5ba2000-78abc5ba3000 r--p 00000000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -78abc5ba3000-78abc5ba4000 r-xp 00001000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -78abc5ba4000-78abc5ba5000 r--p 00002000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -78abc5ba5000-78abc5ba6000 r--p 00003000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -78abc5ba6000-78abc5ba7000 rw-p 00004000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -78abc5ba7000-78abc5bab000 r--p 00000000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -78abc5bab000-78abc5bb8000 r-xp 00004000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -78abc5bb8000-78abc5bbb000 r--p 00011000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -78abc5bbb000-78abc5bbc000 ---p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -78abc5bbc000-78abc5bbd000 r--p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -78abc5bbd000-78abc5bbe000 rw-p 00015000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -78abc5bbe000-78abc5cfa000 rw-p 00000000 00:00 0 -78abc5cfa000-78abc6b9e000 ---p 00000000 00:00 0 -78abc6b9e000-78abc6ba0000 rw-p 00000000 00:00 0 -78abc6ba0000-78abc6ba1000 ---p 00000000 00:00 0 -78abc6ba1000-78abc6ca1000 rw-p 00000000 00:00 0 -78abc6ca1000-78abc752f000 rw-p 00000000 00:00 0 -78abc752f000-78abc7615000 ---p 00000000 00:00 0 -78abc7615000-78abc761a000 rw-p 00000000 00:00 0 -78abc761a000-78abc7700000 ---p 00000000 00:00 0 -78abc7700000-78abc7704000 ---p 00000000 00:00 0 -78abc7704000-78abc7800000 rw-p 00000000 00:00 0 -78abc7800000-78abc8b30000 r-xp 00000000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so -78abc8b30000-78abc8c00000 r--p 0132f000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so -78abc8c00000-78abc8c2e000 rw-p 013ff000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so -78abc8c2e000-78abc8ca4000 rw-p 00000000 00:00 0 -78abc8ca4000-78abc8ca5000 rw-s 00000000 00:01 903421 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=4096 (deleted) -78abc8ca5000-78abc8ca6000 rw-s 00000000 00:01 903420 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) -78abc8ca6000-78abc8ca7000 r--p 00000000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -78abc8ca7000-78abc8caa000 r-xp 00001000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -78abc8caa000-78abc8cab000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -78abc8cab000-78abc8cac000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -78abc8cac000-78abc8cad000 rw-p 00005000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -78abc8cad000-78abc8caf000 r--p 00000000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -78abc8caf000-78abc8cb6000 r-xp 00002000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -78abc8cb6000-78abc8cb8000 r--p 00009000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -78abc8cb8000-78abc8cb9000 r--p 0000a000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -78abc8cb9000-78abc8cba000 rw-p 0000b000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -78abc8cba000-78abc8cc1000 r--s 00000000 103:03 11147989 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache -78abc8cc1000-78abc8cc2000 r--p 00000000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -78abc8cc2000-78abc8cc5000 r-xp 00001000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -78abc8cc5000-78abc8cc6000 r--p 00004000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -78abc8cc6000-78abc8cc7000 ---p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -78abc8cc7000-78abc8cc8000 r--p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -78abc8cc8000-78abc8cc9000 rw-p 00006000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -78abc8cc9000-78abc8ccc000 r--p 00000000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -78abc8ccc000-78abc8cd0000 r-xp 00003000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -78abc8cd0000-78abc8cd2000 r--p 00007000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -78abc8cd2000-78abc8cd3000 r--p 00008000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -78abc8cd3000-78abc8cd4000 rw-p 00009000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -78abc8cd4000-78abc8cd5000 r--p 00000000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -78abc8cd5000-78abc8cd7000 r-xp 00001000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -78abc8cd7000-78abc8cd8000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -78abc8cd8000-78abc8cd9000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -78abc8cd9000-78abc8cda000 rw-p 00004000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -78abc8cda000-78abc8d19000 rw-p 00000000 00:00 0 -78abc8d19000-78abc8d27000 r--p 00000000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -78abc8d27000-78abc8da3000 r-xp 0000e000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -78abc8da3000-78abc8dfe000 r--p 0008a000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -78abc8dfe000-78abc8dff000 r--p 000e4000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -78abc8dff000-78abc8e00000 rw-p 000e5000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -78abc8e00000-78abc8e28000 r--p 00000000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -78abc8e28000-78abc8fbd000 r-xp 00028000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -78abc8fbd000-78abc9015000 r--p 001bd000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -78abc9015000-78abc9016000 ---p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -78abc9016000-78abc901a000 r--p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -78abc901a000-78abc901c000 rw-p 00219000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -78abc901c000-78abc9029000 rw-p 00000000 00:00 0 -78abc9029000-78abc902a000 rw-s 00000000 00:01 903419 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) -78abc902a000-78abc902b000 r-xp 00000000 00:00 0 -78abc902b000-78abc902d000 r--p 00000000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -78abc902d000-78abc902f000 r-xp 00002000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -78abc902f000-78abc9031000 r--p 00004000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -78abc9031000-78abc9032000 r--p 00005000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -78abc9032000-78abc9033000 rw-p 00006000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -78abc9033000-78abc9034000 r--p 00000000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -78abc9034000-78abc9036000 r-xp 00001000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -78abc9036000-78abc9037000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -78abc9037000-78abc9038000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -78abc9038000-78abc9039000 rw-p 00004000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -78abc9039000-78abc903a000 rw-p 00000000 00:00 0 -78abc903a000-78abc903b000 r-xp 0005e000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -78abc903b000-78abc903c000 rw-p 00000000 00:00 0 -78abc903c000-78abc9047000 r-xp 00000000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -78abc9047000-78abc9048000 ---p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -78abc9048000-78abc9049000 r--p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -78abc9049000-78abc904a000 rw-p 0000c000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -78abc904a000-78abc905d000 r-xp 00000000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -78abc905d000-78abc905e000 ---p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -78abc905e000-78abc905f000 r--p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -78abc905f000-78abc9060000 rw-p 00014000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -78abc9060000-78abc909f000 rw-p 00000000 00:00 0 -78abc909f000-78abc90bf000 r-xp 00000000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -78abc90bf000-78abc90c0000 r--p 0001f000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -78abc90c0000-78abc90c1000 rw-p 00020000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -78abc90c1000-78abc90c2000 rw-p 00000000 00:00 0 -78abc90c2000-78abc90e0000 r-xp 00000000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -78abc90e0000-78abc90e2000 r--p 0001d000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -78abc90e2000-78abc90e3000 rw-p 0001f000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -78abc90e3000-78abc90e4000 r--p 00000000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -78abc90e4000-78abc90e5000 r-xp 00001000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -78abc90e5000-78abc90e6000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -78abc90e6000-78abc90e7000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -78abc90e7000-78abc90e8000 rw-p 00003000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -78abc90e8000-78abc90ec000 rw-p 00000000 00:00 0 -78abc90ec000-78abc90ed000 r--p 00000000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -78abc90ed000-78abc90ee000 r-xp 00001000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -78abc90ee000-78abc90ef000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -78abc90ef000-78abc90f0000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -78abc90f0000-78abc90f1000 rw-p 00003000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -78abc90f1000-78abc90f2000 r--p 00000000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -78abc90f2000-78abc90f3000 r-xp 00001000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -78abc90f3000-78abc90f4000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -78abc90f4000-78abc90f5000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -78abc90f5000-78abc90f6000 rw-p 00003000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -78abc90f6000-78abc90f8000 r--p 00000000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -78abc90f8000-78abc9109000 r-xp 00002000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -78abc9109000-78abc910f000 r--p 00013000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -78abc910f000-78abc9110000 ---p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -78abc9110000-78abc9111000 r--p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -78abc9111000-78abc9112000 rw-p 0001a000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -78abc9112000-78abc9119000 r-xp 00000000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -78abc9119000-78abc911a000 ---p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -78abc911a000-78abc911b000 r--p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -78abc911b000-78abc911c000 rw-p 00008000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -78abc911c000-78abc9121000 rw-p 00000000 00:00 0 -78abc9121000-78abc9128000 ---p 00000000 00:00 0 -78abc9128000-78abc9130000 rw-s 00000000 103:03 4325438 /tmp/hsperfdata_codex/76953 -78abc9130000-78abc9131000 ---p 00000000 00:00 0 -78abc9131000-78abc9132000 r--p 00000000 00:00 0 -78abc9132000-78abc9141000 r-xp 00000000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so -78abc9141000-78abc9142000 r--p 0000e000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so -78abc9142000-78abc9143000 rw-p 0000f000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so -78abc9143000-78abc9145000 rw-p 00000000 00:00 0 -78abc9145000-78abc9149000 r--p 00000000 00:00 0 [vvar] -78abc9149000-78abc914b000 r-xp 00000000 00:00 0 [vdso] -78abc914b000-78abc914d000 r--p 00000000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -78abc914d000-78abc9177000 r-xp 00002000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -78abc9177000-78abc9182000 r--p 0002c000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -78abc9182000-78abc9183000 ---p 00000000 00:00 0 -78abc9183000-78abc9185000 r--p 00037000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -78abc9185000-78abc9187000 rw-p 00039000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -7fffe1030000-7fffe1053000 rw-p 00000000 00:00 0 [stack] -ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall] -Total number of mappings: 716 - - -VM Arguments: -jvm_args: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -java_command: jme3test.vulkan.VulkanHelperTest -java_class_path (initial): /home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/java/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/groovy/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/resources/main:/home/codex/java/prj/jmonkeyengine/jme3-lwjgl3/build/libs/jme3-lwjgl3-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-desktop/build/libs/jme3-desktop-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-effects/build/libs/jme3-effects-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jbullet/build/libs/jme3-jbullet-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jogg/build/libs/jme3-jogg-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-networking/build/libs/jme3-networking-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-niftygui/build/libs/jme3-niftygui-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins/build/libs/jme3-plugins-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-terrain/build/libs/jme3-terrain-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-awt-dialogs/build/libs/jme3-awt-dialogs-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-core/build/libs/jme3-core-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json-gson/build/libs/jme3-plugins-json-gson-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json/build/libs/jme3-plugins-json-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-testdata/build/libs/jme3-testdata-null-SNAPSHOT.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-examples/1.4.3/4a41c559851c0c5a77ba3a9d1ccc8e6e92207dc7/nifty-examples-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjglx/lwjgl3-awt/0.2.3/2be63e81d6b73300d8203ce7235b2660c62eb3ea/lwjgl3-awt-0.2.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/7119f7d0eeb1e5502ff0ca71d2b4d47317da015/lwjgl-glfw-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/99ef08056feb9627f90425a4d2a22cd9fae8e39b/lwjgl-glfw-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/cfa8f1e96d572ed56da5945adf5167628f5eecdb/lwjgl-glfw-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/797e0965709ad180d9b00c88a086dbda15002203/lwjgl-glfw-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/671adf04a6bc4f792af13892e37f804be30b7070/lwjgl-glfw-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/b54023af492b4c2c72451f3a7aa0f385e9969474/lwjgl-glfw-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/82c8d748a654241b5961ddd1c098e8b648e38a48/lwjgl-glfw-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/399b42b491c5dfa6595ae6fd79dcba61b93538a7/lwjgl-glfw-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jawt/3.3.6/43299e222bd7db5e99254a8e620330954b73c2a6/lwjgl-jawt-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/245910eb57f2444429c74e6bf96030e5ec0a6739/lwjgl-jemalloc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/f9da76351e14a695be172d6915c8a7b2905307f/lwjgl-jemalloc-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c86043a342a33e5d32fabf962578580633db3c6e/lwjgl-jemalloc-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/26f8b467dc2e0f3000d608de3564b572bb46f927/lwjgl-jemalloc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c484cae39a718010dbc7931fe5e12664600a13c2/lwjgl-jemalloc-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1bc2e16e70df7f418d668c2984ac8066f1f6f5b1/lwjgl-jemalloc-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/9a42df0f2e9747815490311d7db7b4a046d5f40/lwjgl-jemalloc-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1f828c1fc06792475850162725433adf5ad001c0/lwjgl-jemalloc-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ad313317ff399fd2a7f4dd74716a68cf3976c6ad/lwjgl-openal-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/9c2b9b660e085bb0b47a4453dc0e26f24a5475e4/lwjgl-openal-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/82f693541d69aa125750bf8be9c4194435c56f03/lwjgl-openal-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ef356c04ef141d4efbde07793f31784f1f1a1bae/lwjgl-openal-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/7830af894fa110e65bf5075deb9183efbdbc50f5/lwjgl-openal-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/fd2c17603c63e8d543cb57d1db77ebd4574f3b7a/lwjgl-openal-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/c39f6827f0bd97601fc4e389801d5c813f59a5f2/lwjgl-openal-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/13f692aec4ae4b2d3c468aa0008472175f0ea1e0/lwjgl-openal-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opencl/3.3.6/93fdcea16d27b1466450e38dc28c8e1b4819ec25/lwjgl-opencl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ac2532612a4df374e9a9282bcf8ce2573018ebbb/lwjgl-opengl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/18dc639ebc94aa5202c2157f7490d28997b697c5/lwjgl-opengl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b0ab1d0e315d2fcc50d6cab7e8feaf4688d5d9a0/lwjgl-opengl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b8dc6467fe232d552793c53dc56f9fa8a385299c/lwjgl-opengl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ee815fbf454b916f13c10fff62e513eb09042ef0/lwjgl-opengl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/44de180f79e0b45c9e5bee10ca7540dcb5ddd373/lwjgl-opengl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/59f708eb4bf0be0204bbc9c06807911724673db6/lwjgl-opengl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/fee4fb2ee786af6530b6f9188205a76bc4e05268/lwjgl-opengl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-vulkan/3.3.6/a403e0931b03b138854bb2ba9c48dab646cba6d8/lwjgl-vulkan-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/9d0964fe2b75f64d9dab9839c2b059b7e8f71115/lwjgl-shaderc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/ab69a0e011f057ed25857c97fa3c87f20ab8f670/lwjgl-shaderc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/ce7721d30cfaf47feaed10213e0c43eb55c49d68/lwjgl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9a29b6a22fc5184604b8cb434ee5d5ecc4bfcbee/lwjgl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/7a6f04e02429ba2f4bda9be191347bb7d3c71127/lwjgl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/dc7db8fc4f1e6563867f9155b9a42d9c73d8992f/lwjgl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/2c9d698e76c3d0fe307d94cc6f428038492f25df/lwjgl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9eeb8887b5e3aa672efd2e1b0973ffa5891a3151/lwjgl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/f14e7a5289d2355822f4f83b3fd38d158c939acd/lwjgl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/832e2964ce74e02e768814a29c06d60645115b9a/lwjgl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/jbullet/1.0.3/362f53e8aa981037c2523ac24eb4d9b190a49036/jbullet-1.0.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/javax.vecmath/vecmath/1.5.2/fd17bc3e67f909573dfc039d8e2abecf407c4e27/vecmath-1.5.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/j-ogg-vorbis/1.0.6/a69d1cf62eaf75b71af61f9c23265d278a966735/j-ogg-vorbis-1.0.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-default-controls/1.4.3/2ccafe0182a73da87657ca24b639b6e8c1accd50/nifty-default-controls-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty/1.4.3/fa9ac16e00d1b375d10f58d1c1eb576950ae8c9d/nifty-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-style-black/1.4.3/c20a02dbdeb0bd9d2be258955fceb55c13185a8/nifty-style-black-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.9.1/2cc2131b98ebfb04e2b2c7dfb84431f4045096b/gson-2.9.1.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/stack-alloc/1.0.2/13cbb10c01ec09d0f5879f988946a97998175dfc/stack-alloc-1.0.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/xpp3/xpp3/1.1.4c/9b988ea84b9e4e9f1874e390ce099b8ac12cfff5/xpp3-1.1.4c.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/2.0.2/516c03b21d50a644d538de0f0369c620989cd8f0/jsr305-2.0.2.jar -Launcher Type: SUN_STANDARD - -[Global flags] - intx CICompilerCount = 4 {product} {ergonomic} - uint ConcGCThreads = 2 {product} {ergonomic} - uint G1ConcRefinementThreads = 8 {product} {ergonomic} - size_t G1HeapRegionSize = 4194304 {product} {ergonomic} - size_t InitialHeapSize = 524288000 {product} {ergonomic} - size_t MarkStackSize = 4194304 {product} {ergonomic} - size_t MarkStackSizeMax = 536870912 {product} {ergonomic} - size_t MaxHeapSize = 8388608000 {product} {ergonomic} - size_t MaxNewSize = 5033164800 {product} {ergonomic} - size_t MinHeapDeltaBytes = 4194304 {product} {ergonomic} - size_t MinHeapSize = 8388608 {product} {ergonomic} - uintx NonNMethodCodeHeapSize = 5836800 {pd product} {ergonomic} - uintx NonProfiledCodeHeapSize = 122912768 {pd product} {ergonomic} - uintx ProfiledCodeHeapSize = 122908672 {pd product} {ergonomic} - uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} - bool SegmentedCodeCache = true {product} {ergonomic} - size_t SoftMaxHeapSize = 8388608000 {manageable} {ergonomic} - bool UseCompressedOops = true {product lp64_product} {ergonomic} - bool UseG1GC = true {product} {ergonomic} - -Logging: -Log output configuration: - #0: stdout all=warning uptime,level,tags foldmultilines=false - #1: stderr all=off uptime,level,tags foldmultilines=false - -Environment Variables: -PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin -USERNAME=codex -SHELL=/bin/bash -DISPLAY=:1 -LANG=en_US.UTF-8 - -Active Locale: -LC_ALL=en_US.UTF-8 -LC_COLLATE=en_US.UTF-8 -LC_CTYPE=en_US.UTF-8 -LC_MESSAGES=en_US.UTF-8 -LC_MONETARY=en_US.UTF-8 -LC_NUMERIC=en_US.UTF-8 -LC_TIME=en_US.UTF-8 - -Signal Handlers: - SIGSEGV: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGBUS: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGFPE: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGPIPE: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGXFSZ: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGILL: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGUSR2: SR_handler in libjvm.so, mask=00000000000000000000000000000000, flags=SA_RESTART|SA_SIGINFO, blocked - SIGHUP: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGINT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGTERM: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGQUIT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGTRAP: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - - -Periodic native trim disabled - ---------------- S Y S T E M --------------- - -OS: -DISTRIB_ID=Pop -DISTRIB_RELEASE=22.04 -DISTRIB_CODENAME=jammy -DISTRIB_DESCRIPTION="Pop!_OS 22.04 LTS" -uname: Linux 6.9.3-76060903-generic #202405300957~1726766035~22.04~4092a0e SMP PREEMPT_DYNAMIC Thu S x86_64 -OS uptime: 0 days 15:05 hours -libc: glibc 2.35 NPTL 2.35 -rlimit (soft/hard): STACK 8192k/infinity , CORE 0k/infinity , NPROC 127655/127655 , NOFILE 1048576/1048576 , AS infinity/infinity , CPU infinity/infinity , DATA infinity/infinity , FSIZE infinity/infinity , MEMLOCK 4095956k/4095956k -load average: 0.54 0.94 1.14 - -/proc/meminfo: -MemTotal: 32767656 kB -MemFree: 19737520 kB -MemAvailable: 22385836 kB -Buffers: 331016 kB -Cached: 4278336 kB -SwapCached: 0 kB -Active: 10029528 kB -Inactive: 2104856 kB -Active(anon): 7554720 kB -Inactive(anon): 0 kB -Active(file): 2474808 kB -Inactive(file): 2104856 kB -Unevictable: 15220 kB -Mlocked: 88 kB -SwapTotal: 20970996 kB -SwapFree: 20970996 kB -Zswap: 0 kB -Zswapped: 0 kB -Dirty: 7772 kB -Writeback: 0 kB -AnonPages: 7540512 kB -Mapped: 1827672 kB -Shmem: 29688 kB -KReclaimable: 176164 kB -Slab: 356116 kB -SReclaimable: 176164 kB -SUnreclaim: 179952 kB -KernelStack: 20096 kB -PageTables: 52628 kB -SecPageTables: 0 kB -NFS_Unstable: 0 kB -Bounce: 0 kB -WritebackTmp: 0 kB -CommitLimit: 37354824 kB -Committed_AS: 13773180 kB -VmallocTotal: 34359738367 kB -VmallocUsed: 249512 kB -VmallocChunk: 0 kB -Percpu: 9152 kB -HardwareCorrupted: 0 kB -AnonHugePages: 0 kB -ShmemHugePages: 6144 kB -ShmemPmdMapped: 0 kB -FileHugePages: 0 kB -FilePmdMapped: 0 kB -Unaccepted: 0 kB -HugePages_Total: 0 -HugePages_Free: 0 -HugePages_Rsvd: 0 -HugePages_Surp: 0 -Hugepagesize: 2048 kB -Hugetlb: 0 kB -DirectMap4k: 796472 kB -DirectMap2M: 12736512 kB -DirectMap1G: 19922944 kB - -/sys/kernel/mm/transparent_hugepage/enabled: always [madvise] never -/sys/kernel/mm/transparent_hugepage/hpage_pmd_size: 2097152 -/sys/kernel/mm/transparent_hugepage/shmem_enabled: always within_size advise [never] deny force -/sys/kernel/mm/transparent_hugepage/defrag (defrag/compaction efforts parameter): always defer defer+madvise [madvise] never - -Process Memory: -Virtual Size: 12184092K (peak: 12184092K) -Resident Set Size: 228396K (peak: 228396K) (anon: 112048K, file: 116348K, shmem: 0K) -Swapped out: 0K -C-Heap outstanding allocations: 58423K, retained: 7232K -glibc malloc tunables: (default) - -/proc/sys/kernel/threads-max (system-wide limit on the number of threads): 255310 -/proc/sys/vm/max_map_count (maximum number of memory map areas a process may have): 2147483642 -/proc/sys/vm/swappiness (control to define how aggressively the kernel swaps out anonymous memory): 180 -/proc/sys/kernel/pid_max (system-wide limit on number of process identifiers): 4194304 - -container (cgroup) information: -container_type: cgroupv2 -cpu_cpuset_cpus: not supported -cpu_memory_nodes: not supported -active_processor_count: 8 -cpu_quota: not supported -cpu_period: not supported -cpu_shares: not supported -memory_limit_in_bytes: unlimited -memory_and_swap_limit_in_bytes: unlimited -memory_soft_limit_in_bytes: 0 -memory_usage_in_bytes: 5899768 k -memory_max_usage_in_bytes: not supported -rss_usage_in_bytes: 4042328 k -cache_usage_in_bytes: 1784848 k -memory_swap_current_in_bytes: 0 -memory_swap_max_limit_in_bytes: unlimited -maximum number of tasks: 38296 -current number of tasks: 295 - -Steal ticks since vm start: 0 -Steal ticks percentage since vm start: 0.000 - -CPU: total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 158 stepping 9 microcode 0xf8, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, adx, fma, vzeroupper, clflush, clflushopt, rdtscp, f16c -CPU Model and flags from /proc/cpuinfo: -model name : Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities - -Online cpus: 0-7 -Offline cpus: -BIOS frequency limitation: -Frequency switch latency (ns): 0 -Available cpu frequencies: -Current governor: powersave -Core performance/turbo boost: - -Memory: 4k page, physical 32767656k(22385836k free), swap 20970996k(20970996k free) -Page Sizes: 4k - -vm_info: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58) for linux-amd64 JRE (23.0.2+7-58), built on 2024-11-29T09:34:55Z with gcc 13.2.0 - -END. diff --git a/hs_err_pid77449.log b/hs_err_pid77449.log deleted file mode 100644 index 735aab6e1c..0000000000 --- a/hs_err_pid77449.log +++ /dev/null @@ -1,1426 +0,0 @@ -# -# A fatal error has been detected by the Java Runtime Environment: -# -# SIGSEGV (0xb) at pc=0x0000744bc7a5933a, pid=77449, tid=77480 -# -# JRE version: Java(TM) SE Runtime Environment (23.0.2+7) (build 23.0.2+7-58) -# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64) -# Problematic frame: -# C [libjemalloc.so+0x5933a] -# -# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/codex/java/prj/jmonkeyengine/core.77449) -# -# If you would like to submit a bug report, please visit: -# https://bugreport.java.com/bugreport/crash.jsp -# - ---------------- S U M M A R Y ------------ - -Command Line: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant jme3test.vulkan.VulkanHelperTest - -Host: Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz, 8 cores, 31G, Pop!_OS 22.04 LTS -Time: Wed Jul 2 22:36:18 2025 EDT elapsed time: 0.812162 seconds (0d 0h 0m 0s) - ---------------- T H R E A D --------------- - -Current thread is native thread - -Stack: [0x0000744bc7100000,0x0000744bc7200000], sp=0x0000744bc71fe9d0, free space=1018k -Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) -C [libjemalloc.so+0x5933a] - -siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000000 - -Registers: -RAX=0x0000000000000000, RBX=0x0000000000000180, RCX=0x0000000000000000, RDX=0x0000744bc7a78440 -RSP=0x0000744bc71fe9d0, RBP=0x0000744bc71fedb0, RSI=0x0000000000000000, RDI=0x0000744bc7239020 -R8 =0x0000000000000000, R9 =0x0000000000000000, R10=0x0000000000000000, R11=0x0000744bc7239060 -R12=0x000000000000002f, R13=0x0000744bc71fed70, R14=0x000000000000002f, R15=0x0000744bc71feb50 -RIP=0x0000744bc7a5933a, EFLAGS=0x0000000000010246, CSGSFS=0x002b000000000033, ERR=0x0000000000000004 - TRAPNO=0x000000000000000e - - -Top of Stack: (sp=0x0000744bc71fe9d0) -0x0000744bc71fe9d0: 0000744bf801cae8 0000000000000004 -0x0000744bc71fe9e0: 0000744bc71ffb58 0000744bf80dff71 -0x0000744bc71fe9f0: 0000000000000005 0000000000000000 -0x0000744bc71fea00: 0000744bf7e0d4d0 0000744bf7ea53e0 -0x0000744bc71fea10: 0000000000000000 0000744bc71fee00 -0x0000744bc71fea20: 0000744bf801caf8 0000000000000000 -0x0000744bc71fea30: 0000744bf801cae8 0000744bf80e2dae -0x0000744bc71fea40: 0000000000000001 000000000000006f -0x0000744bc71fea50: 0000744bc7cb17d0 0000000000000000 -0x0000744bc71fea60: 0000744b1cbc2dc0 0000000000000000 -0x0000744bc71fea70: 00000000000000ca b61693604baf4427 -0x0000744bc71fea80: 0000000000000213 0000744bf8017300 -0x0000744bc71fea90: 0000000000000000 0000ffff00001fa2 -0x0000744bc71feaa0: 0000000000000010 0000000000000002 -0x0000744bc71feab0: 0000000000000000 000000770000007c -0x0000744bc71feac0: 0000006b00000070 ffffffffffffffb8 -0x0000744bc71fead0: 0000000000000070 ffffffffffffffb8 -0x0000744bc71feae0: 0000000000000002 c5db6681efe38100 -0x0000744bc71feaf0: 0000744bc71feb90 0000000000000100 -0x0000744bc71feb00: 0000744bc71feb40 0000744bf001e698 -0x0000744bc71feb10: 0000744bf001ccb0 0000000000000180 -0x0000744bc71feb20: 0000744bc71fedb0 000000000000002f -0x0000744bc71feb30: 0000744bc71fed70 0000744bc71feb50 -0x0000744bc71feb40: 0000744b1c002420 0000744bc7a592f8 -0x0000744bc71feb50: 0000000000000000 0000000000000000 -0x0000744bc71feb60: 0000000000000000 0000000000000000 -0x0000744bc71feb70: 0000000000000000 0000000000000000 -0x0000744bc71feb80: 0000000000000000 0000000000000000 -0x0000744bc71feb90: 0000000000000000 0000000000000000 -0x0000744bc71feba0: 0000000000000000 0000000000000000 -0x0000744bc71febb0: 0000000000000000 0000000000000000 -0x0000744bc71febc0: 0000000000000000 0000000000000000 - -Instructions: (pc=0x0000744bc7a5933a) -0x0000744bc7a5923a: f4 66 41 c1 ec 03 41 0f b7 d4 2b 95 40 ff ff ff -0x0000744bc7a5924a: 48 c1 e2 03 e8 bd f0 fa ff 49 8b 4d 00 41 0f b7 -0x0000744bc7a5925a: 7d 14 48 01 d9 89 fe 66 41 2b 7d 10 29 ce 66 c1 -0x0000744bc7a5926a: ef 03 49 89 4d 00 66 c1 ee 03 66 39 fe 73 0c 4c -0x0000744bc7a5927a: 8b bd 50 ff ff ff 66 41 89 4f 10 48 8d 65 d8 5b -0x0000744bc7a5928a: 41 5c 41 5d 41 5e 41 5f 5d c3 29 d8 48 89 a5 48 -0x0000744bc7a5929a: ff ff ff 4c 89 ff 44 0f b7 e0 44 0f b7 c0 66 89 -0x0000744bc7a592aa: 45 c0 45 8d 74 24 01 4e 8d 1c c5 00 00 00 00 44 -0x0000744bc7a592ba: 89 a5 40 ff ff ff 4a 8d 1c f5 0f 00 00 00 4c 29 -0x0000744bc7a592ca: da 4c 89 9d 38 ff ff ff 81 e3 f0 ff 1f 00 4c 8d -0x0000744bc7a592da: 14 16 4c 89 c2 48 8b b5 30 ff ff ff 48 29 dc 4c -0x0000744bc7a592ea: 89 55 c8 49 89 e6 4c 89 f1 e8 28 ed ff ff 48 29 -0x0000744bc7a592fa: dc 48 89 65 80 45 85 e4 0f 84 07 ff ff ff 44 8b -0x0000744bc7a5930a: 8d 2c ff ff ff c7 45 b8 00 00 00 00 4c 89 7d b0 -0x0000744bc7a5931a: 4d 89 f7 45 89 e6 4b 8d 0c 89 4c 89 4d a0 48 c1 -0x0000744bc7a5932a: e1 03 48 89 4d 88 49 8b 37 48 8d 15 06 f1 01 00 -0x0000744bc7a5933a: 44 8b 2e 41 81 e5 ff 0f 00 00 44 89 e8 4c 8b 24 -0x0000744bc7a5934a: c2 4c 89 65 a8 4c 8b 06 48 8d 3d 67 72 02 00 4c -0x0000744bc7a5935a: 8b 5d a0 49 c1 e8 26 41 83 e0 3f 46 8b 14 9f 44 -0x0000744bc7a5936a: 89 c3 44 89 45 bc 4c 8d 0c dd 00 00 00 00 49 29 -0x0000744bc7a5937a: d9 49 c1 e1 05 4d 01 ca 4d 01 e2 49 8d 7a 48 4c -0x0000744bc7a5938a: 89 55 90 48 89 7d 98 e8 6a f0 fa ff 4c 8b 4d 90 -0x0000744bc7a5939a: 85 c0 0f 85 ce 03 00 00 49 8d 49 40 48 89 4d 90 -0x0000744bc7a593aa: 49 8b 1f 48 8b 55 a0 45 8d 5e ff 45 31 e4 48 8d -0x0000744bc7a593ba: 05 a1 72 02 00 41 ba 01 00 00 00 41 83 e3 01 48 -0x0000744bc7a593ca: 8b 3b 44 8b 04 90 48 8b 45 c8 89 fe 81 e6 ff 0f -0x0000744bc7a593da: 00 00 48 8b 08 41 39 f5 0f 84 c0 02 00 00 4a 89 -0x0000744bc7a593ea: 0c e0 4b 89 1c e7 41 bc 01 00 00 00 bb 01 00 00 -0x0000744bc7a593fa: 00 41 83 fe 01 0f 86 51 02 00 00 45 85 db 74 38 -0x0000744bc7a5940a: 49 8b 57 08 48 8b 48 08 48 8b 32 89 f7 81 e7 ff -0x0000744bc7a5941a: 0f 00 00 41 39 fd 0f 84 6a 04 00 00 45 89 e3 41 -0x0000744bc7a5942a: 83 c4 01 4a 89 0c d8 4b 89 14 df 48 83 c3 01 41 - - - ---------------- P R O C E S S --------------- - -VM state: not at safepoint (normal execution) - -VM Mutex/Monitor currently owned by a thread: None - -Heap address: 0x000000060c000000, size: 8000 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 - -CDS archive(s) mapped at: [0x0000744b6e000000-0x0000744b6ed91000-0x0000744b6ed91000), size 14225408, SharedBaseAddress: 0x0000744b6e000000, ArchiveRelocationMode: 1. -Compressed class space mapped at: 0x0000744b6f000000-0x0000744baf000000, reserved size: 1073741824 -Narrow klass base: 0x0000744b6e000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 - -GC Precious Log: - - -Heap: - garbage-first heap total reserved 8192000K, committed 516096K, used 25198K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 6 young (24576K), 0 survivors (0K) - Metaspace used 8759K, committed 9024K, reserved 1114112K - class space used 779K, committed 896K, reserved 1048576K - -Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, TAMS=top-at-mark-start, PB=parsable bottom -| 0|0x000000060c000000, 0x000000060c000000, 0x000000060c400000| 0%| F| |TAMS 0x000000060c000000| PB 0x000000060c000000| Untracked | 0 -| 1|0x000000060c400000, 0x000000060c400000, 0x000000060c800000| 0%| F| |TAMS 0x000000060c400000| PB 0x000000060c400000| Untracked | 0 -| 2|0x000000060c800000, 0x000000060c800000, 0x000000060cc00000| 0%| F| |TAMS 0x000000060c800000| PB 0x000000060c800000| Untracked | 0 -| 3|0x000000060cc00000, 0x000000060cc00000, 0x000000060d000000| 0%| F| |TAMS 0x000000060cc00000| PB 0x000000060cc00000| Untracked | 0 -| 4|0x000000060d000000, 0x000000060d000000, 0x000000060d400000| 0%| F| |TAMS 0x000000060d000000| PB 0x000000060d000000| Untracked | 0 -| 5|0x000000060d400000, 0x000000060d400000, 0x000000060d800000| 0%| F| |TAMS 0x000000060d400000| PB 0x000000060d400000| Untracked | 0 -| 6|0x000000060d800000, 0x000000060d800000, 0x000000060dc00000| 0%| F| |TAMS 0x000000060d800000| PB 0x000000060d800000| Untracked | 0 -| 7|0x000000060dc00000, 0x000000060dc00000, 0x000000060e000000| 0%| F| |TAMS 0x000000060dc00000| PB 0x000000060dc00000| Untracked | 0 -| 8|0x000000060e000000, 0x000000060e000000, 0x000000060e400000| 0%| F| |TAMS 0x000000060e000000| PB 0x000000060e000000| Untracked | 0 -| 9|0x000000060e400000, 0x000000060e400000, 0x000000060e800000| 0%| F| |TAMS 0x000000060e400000| PB 0x000000060e400000| Untracked | 0 -| 10|0x000000060e800000, 0x000000060e800000, 0x000000060ec00000| 0%| F| |TAMS 0x000000060e800000| PB 0x000000060e800000| Untracked | 0 -| 11|0x000000060ec00000, 0x000000060ec00000, 0x000000060f000000| 0%| F| |TAMS 0x000000060ec00000| PB 0x000000060ec00000| Untracked | 0 -| 12|0x000000060f000000, 0x000000060f000000, 0x000000060f400000| 0%| F| |TAMS 0x000000060f000000| PB 0x000000060f000000| Untracked | 0 -| 13|0x000000060f400000, 0x000000060f400000, 0x000000060f800000| 0%| F| |TAMS 0x000000060f400000| PB 0x000000060f400000| Untracked | 0 -| 14|0x000000060f800000, 0x000000060f800000, 0x000000060fc00000| 0%| F| |TAMS 0x000000060f800000| PB 0x000000060f800000| Untracked | 0 -| 15|0x000000060fc00000, 0x000000060fc00000, 0x0000000610000000| 0%| F| |TAMS 0x000000060fc00000| PB 0x000000060fc00000| Untracked | 0 -| 16|0x0000000610000000, 0x0000000610000000, 0x0000000610400000| 0%| F| |TAMS 0x0000000610000000| PB 0x0000000610000000| Untracked | 0 -| 17|0x0000000610400000, 0x0000000610400000, 0x0000000610800000| 0%| F| |TAMS 0x0000000610400000| PB 0x0000000610400000| Untracked | 0 -| 18|0x0000000610800000, 0x0000000610800000, 0x0000000610c00000| 0%| F| |TAMS 0x0000000610800000| PB 0x0000000610800000| Untracked | 0 -| 19|0x0000000610c00000, 0x0000000610c00000, 0x0000000611000000| 0%| F| |TAMS 0x0000000610c00000| PB 0x0000000610c00000| Untracked | 0 -| 20|0x0000000611000000, 0x0000000611000000, 0x0000000611400000| 0%| F| |TAMS 0x0000000611000000| PB 0x0000000611000000| Untracked | 0 -| 21|0x0000000611400000, 0x0000000611400000, 0x0000000611800000| 0%| F| |TAMS 0x0000000611400000| PB 0x0000000611400000| Untracked | 0 -| 22|0x0000000611800000, 0x0000000611800000, 0x0000000611c00000| 0%| F| |TAMS 0x0000000611800000| PB 0x0000000611800000| Untracked | 0 -| 23|0x0000000611c00000, 0x0000000611c00000, 0x0000000612000000| 0%| F| |TAMS 0x0000000611c00000| PB 0x0000000611c00000| Untracked | 0 -| 24|0x0000000612000000, 0x0000000612000000, 0x0000000612400000| 0%| F| |TAMS 0x0000000612000000| PB 0x0000000612000000| Untracked | 0 -| 25|0x0000000612400000, 0x0000000612400000, 0x0000000612800000| 0%| F| |TAMS 0x0000000612400000| PB 0x0000000612400000| Untracked | 0 -| 26|0x0000000612800000, 0x0000000612800000, 0x0000000612c00000| 0%| F| |TAMS 0x0000000612800000| PB 0x0000000612800000| Untracked | 0 -| 27|0x0000000612c00000, 0x0000000612c00000, 0x0000000613000000| 0%| F| |TAMS 0x0000000612c00000| PB 0x0000000612c00000| Untracked | 0 -| 28|0x0000000613000000, 0x0000000613000000, 0x0000000613400000| 0%| F| |TAMS 0x0000000613000000| PB 0x0000000613000000| Untracked | 0 -| 29|0x0000000613400000, 0x0000000613400000, 0x0000000613800000| 0%| F| |TAMS 0x0000000613400000| PB 0x0000000613400000| Untracked | 0 -| 30|0x0000000613800000, 0x0000000613800000, 0x0000000613c00000| 0%| F| |TAMS 0x0000000613800000| PB 0x0000000613800000| Untracked | 0 -| 31|0x0000000613c00000, 0x0000000613c00000, 0x0000000614000000| 0%| F| |TAMS 0x0000000613c00000| PB 0x0000000613c00000| Untracked | 0 -| 32|0x0000000614000000, 0x0000000614000000, 0x0000000614400000| 0%| F| |TAMS 0x0000000614000000| PB 0x0000000614000000| Untracked | 0 -| 33|0x0000000614400000, 0x0000000614400000, 0x0000000614800000| 0%| F| |TAMS 0x0000000614400000| PB 0x0000000614400000| Untracked | 0 -| 34|0x0000000614800000, 0x0000000614800000, 0x0000000614c00000| 0%| F| |TAMS 0x0000000614800000| PB 0x0000000614800000| Untracked | 0 -| 35|0x0000000614c00000, 0x0000000614c00000, 0x0000000615000000| 0%| F| |TAMS 0x0000000614c00000| PB 0x0000000614c00000| Untracked | 0 -| 36|0x0000000615000000, 0x0000000615000000, 0x0000000615400000| 0%| F| |TAMS 0x0000000615000000| PB 0x0000000615000000| Untracked | 0 -| 37|0x0000000615400000, 0x0000000615400000, 0x0000000615800000| 0%| F| |TAMS 0x0000000615400000| PB 0x0000000615400000| Untracked | 0 -| 38|0x0000000615800000, 0x0000000615800000, 0x0000000615c00000| 0%| F| |TAMS 0x0000000615800000| PB 0x0000000615800000| Untracked | 0 -| 39|0x0000000615c00000, 0x0000000615c00000, 0x0000000616000000| 0%| F| |TAMS 0x0000000615c00000| PB 0x0000000615c00000| Untracked | 0 -| 40|0x0000000616000000, 0x0000000616000000, 0x0000000616400000| 0%| F| |TAMS 0x0000000616000000| PB 0x0000000616000000| Untracked | 0 -| 41|0x0000000616400000, 0x0000000616400000, 0x0000000616800000| 0%| F| |TAMS 0x0000000616400000| PB 0x0000000616400000| Untracked | 0 -| 42|0x0000000616800000, 0x0000000616800000, 0x0000000616c00000| 0%| F| |TAMS 0x0000000616800000| PB 0x0000000616800000| Untracked | 0 -| 43|0x0000000616c00000, 0x0000000616c00000, 0x0000000617000000| 0%| F| |TAMS 0x0000000616c00000| PB 0x0000000616c00000| Untracked | 0 -| 44|0x0000000617000000, 0x0000000617000000, 0x0000000617400000| 0%| F| |TAMS 0x0000000617000000| PB 0x0000000617000000| Untracked | 0 -| 45|0x0000000617400000, 0x0000000617400000, 0x0000000617800000| 0%| F| |TAMS 0x0000000617400000| PB 0x0000000617400000| Untracked | 0 -| 46|0x0000000617800000, 0x0000000617800000, 0x0000000617c00000| 0%| F| |TAMS 0x0000000617800000| PB 0x0000000617800000| Untracked | 0 -| 47|0x0000000617c00000, 0x0000000617c00000, 0x0000000618000000| 0%| F| |TAMS 0x0000000617c00000| PB 0x0000000617c00000| Untracked | 0 -| 48|0x0000000618000000, 0x0000000618000000, 0x0000000618400000| 0%| F| |TAMS 0x0000000618000000| PB 0x0000000618000000| Untracked | 0 -| 49|0x0000000618400000, 0x0000000618400000, 0x0000000618800000| 0%| F| |TAMS 0x0000000618400000| PB 0x0000000618400000| Untracked | 0 -| 50|0x0000000618800000, 0x0000000618800000, 0x0000000618c00000| 0%| F| |TAMS 0x0000000618800000| PB 0x0000000618800000| Untracked | 0 -| 51|0x0000000618c00000, 0x0000000618c00000, 0x0000000619000000| 0%| F| |TAMS 0x0000000618c00000| PB 0x0000000618c00000| Untracked | 0 -| 52|0x0000000619000000, 0x0000000619000000, 0x0000000619400000| 0%| F| |TAMS 0x0000000619000000| PB 0x0000000619000000| Untracked | 0 -| 53|0x0000000619400000, 0x0000000619400000, 0x0000000619800000| 0%| F| |TAMS 0x0000000619400000| PB 0x0000000619400000| Untracked | 0 -| 54|0x0000000619800000, 0x0000000619800000, 0x0000000619c00000| 0%| F| |TAMS 0x0000000619800000| PB 0x0000000619800000| Untracked | 0 -| 55|0x0000000619c00000, 0x0000000619c00000, 0x000000061a000000| 0%| F| |TAMS 0x0000000619c00000| PB 0x0000000619c00000| Untracked | 0 -| 56|0x000000061a000000, 0x000000061a000000, 0x000000061a400000| 0%| F| |TAMS 0x000000061a000000| PB 0x000000061a000000| Untracked | 0 -| 57|0x000000061a400000, 0x000000061a400000, 0x000000061a800000| 0%| F| |TAMS 0x000000061a400000| PB 0x000000061a400000| Untracked | 0 -| 58|0x000000061a800000, 0x000000061a800000, 0x000000061ac00000| 0%| F| |TAMS 0x000000061a800000| PB 0x000000061a800000| Untracked | 0 -| 59|0x000000061ac00000, 0x000000061ac00000, 0x000000061b000000| 0%| F| |TAMS 0x000000061ac00000| PB 0x000000061ac00000| Untracked | 0 -| 60|0x000000061b000000, 0x000000061b000000, 0x000000061b400000| 0%| F| |TAMS 0x000000061b000000| PB 0x000000061b000000| Untracked | 0 -| 61|0x000000061b400000, 0x000000061b400000, 0x000000061b800000| 0%| F| |TAMS 0x000000061b400000| PB 0x000000061b400000| Untracked | 0 -| 62|0x000000061b800000, 0x000000061b800000, 0x000000061bc00000| 0%| F| |TAMS 0x000000061b800000| PB 0x000000061b800000| Untracked | 0 -| 63|0x000000061bc00000, 0x000000061bc00000, 0x000000061c000000| 0%| F| |TAMS 0x000000061bc00000| PB 0x000000061bc00000| Untracked | 0 -| 64|0x000000061c000000, 0x000000061c000000, 0x000000061c400000| 0%| F| |TAMS 0x000000061c000000| PB 0x000000061c000000| Untracked | 0 -| 65|0x000000061c400000, 0x000000061c400000, 0x000000061c800000| 0%| F| |TAMS 0x000000061c400000| PB 0x000000061c400000| Untracked | 0 -| 66|0x000000061c800000, 0x000000061c800000, 0x000000061cc00000| 0%| F| |TAMS 0x000000061c800000| PB 0x000000061c800000| Untracked | 0 -| 67|0x000000061cc00000, 0x000000061cc00000, 0x000000061d000000| 0%| F| |TAMS 0x000000061cc00000| PB 0x000000061cc00000| Untracked | 0 -| 68|0x000000061d000000, 0x000000061d000000, 0x000000061d400000| 0%| F| |TAMS 0x000000061d000000| PB 0x000000061d000000| Untracked | 0 -| 69|0x000000061d400000, 0x000000061d400000, 0x000000061d800000| 0%| F| |TAMS 0x000000061d400000| PB 0x000000061d400000| Untracked | 0 -| 70|0x000000061d800000, 0x000000061d800000, 0x000000061dc00000| 0%| F| |TAMS 0x000000061d800000| PB 0x000000061d800000| Untracked | 0 -| 71|0x000000061dc00000, 0x000000061dc00000, 0x000000061e000000| 0%| F| |TAMS 0x000000061dc00000| PB 0x000000061dc00000| Untracked | 0 -| 72|0x000000061e000000, 0x000000061e000000, 0x000000061e400000| 0%| F| |TAMS 0x000000061e000000| PB 0x000000061e000000| Untracked | 0 -| 73|0x000000061e400000, 0x000000061e400000, 0x000000061e800000| 0%| F| |TAMS 0x000000061e400000| PB 0x000000061e400000| Untracked | 0 -| 74|0x000000061e800000, 0x000000061e800000, 0x000000061ec00000| 0%| F| |TAMS 0x000000061e800000| PB 0x000000061e800000| Untracked | 0 -| 75|0x000000061ec00000, 0x000000061ec00000, 0x000000061f000000| 0%| F| |TAMS 0x000000061ec00000| PB 0x000000061ec00000| Untracked | 0 -| 76|0x000000061f000000, 0x000000061f000000, 0x000000061f400000| 0%| F| |TAMS 0x000000061f000000| PB 0x000000061f000000| Untracked | 0 -| 77|0x000000061f400000, 0x000000061f400000, 0x000000061f800000| 0%| F| |TAMS 0x000000061f400000| PB 0x000000061f400000| Untracked | 0 -| 78|0x000000061f800000, 0x000000061f800000, 0x000000061fc00000| 0%| F| |TAMS 0x000000061f800000| PB 0x000000061f800000| Untracked | 0 -| 79|0x000000061fc00000, 0x000000061fc00000, 0x0000000620000000| 0%| F| |TAMS 0x000000061fc00000| PB 0x000000061fc00000| Untracked | 0 -| 80|0x0000000620000000, 0x0000000620000000, 0x0000000620400000| 0%| F| |TAMS 0x0000000620000000| PB 0x0000000620000000| Untracked | 0 -| 81|0x0000000620400000, 0x0000000620400000, 0x0000000620800000| 0%| F| |TAMS 0x0000000620400000| PB 0x0000000620400000| Untracked | 0 -| 82|0x0000000620800000, 0x0000000620800000, 0x0000000620c00000| 0%| F| |TAMS 0x0000000620800000| PB 0x0000000620800000| Untracked | 0 -| 83|0x0000000620c00000, 0x0000000620c00000, 0x0000000621000000| 0%| F| |TAMS 0x0000000620c00000| PB 0x0000000620c00000| Untracked | 0 -| 84|0x0000000621000000, 0x0000000621000000, 0x0000000621400000| 0%| F| |TAMS 0x0000000621000000| PB 0x0000000621000000| Untracked | 0 -| 85|0x0000000621400000, 0x0000000621400000, 0x0000000621800000| 0%| F| |TAMS 0x0000000621400000| PB 0x0000000621400000| Untracked | 0 -| 86|0x0000000621800000, 0x0000000621800000, 0x0000000621c00000| 0%| F| |TAMS 0x0000000621800000| PB 0x0000000621800000| Untracked | 0 -| 87|0x0000000621c00000, 0x0000000621c00000, 0x0000000622000000| 0%| F| |TAMS 0x0000000621c00000| PB 0x0000000621c00000| Untracked | 0 -| 88|0x0000000622000000, 0x0000000622000000, 0x0000000622400000| 0%| F| |TAMS 0x0000000622000000| PB 0x0000000622000000| Untracked | 0 -| 89|0x0000000622400000, 0x0000000622400000, 0x0000000622800000| 0%| F| |TAMS 0x0000000622400000| PB 0x0000000622400000| Untracked | 0 -| 90|0x0000000622800000, 0x0000000622800000, 0x0000000622c00000| 0%| F| |TAMS 0x0000000622800000| PB 0x0000000622800000| Untracked | 0 -| 91|0x0000000622c00000, 0x0000000622c00000, 0x0000000623000000| 0%| F| |TAMS 0x0000000622c00000| PB 0x0000000622c00000| Untracked | 0 -| 92|0x0000000623000000, 0x0000000623000000, 0x0000000623400000| 0%| F| |TAMS 0x0000000623000000| PB 0x0000000623000000| Untracked | 0 -| 93|0x0000000623400000, 0x0000000623400000, 0x0000000623800000| 0%| F| |TAMS 0x0000000623400000| PB 0x0000000623400000| Untracked | 0 -| 94|0x0000000623800000, 0x0000000623800000, 0x0000000623c00000| 0%| F| |TAMS 0x0000000623800000| PB 0x0000000623800000| Untracked | 0 -| 95|0x0000000623c00000, 0x0000000623c00000, 0x0000000624000000| 0%| F| |TAMS 0x0000000623c00000| PB 0x0000000623c00000| Untracked | 0 -| 96|0x0000000624000000, 0x0000000624000000, 0x0000000624400000| 0%| F| |TAMS 0x0000000624000000| PB 0x0000000624000000| Untracked | 0 -| 97|0x0000000624400000, 0x0000000624400000, 0x0000000624800000| 0%| F| |TAMS 0x0000000624400000| PB 0x0000000624400000| Untracked | 0 -| 98|0x0000000624800000, 0x0000000624800000, 0x0000000624c00000| 0%| F| |TAMS 0x0000000624800000| PB 0x0000000624800000| Untracked | 0 -| 99|0x0000000624c00000, 0x0000000624c00000, 0x0000000625000000| 0%| F| |TAMS 0x0000000624c00000| PB 0x0000000624c00000| Untracked | 0 -| 100|0x0000000625000000, 0x0000000625000000, 0x0000000625400000| 0%| F| |TAMS 0x0000000625000000| PB 0x0000000625000000| Untracked | 0 -| 101|0x0000000625400000, 0x0000000625400000, 0x0000000625800000| 0%| F| |TAMS 0x0000000625400000| PB 0x0000000625400000| Untracked | 0 -| 102|0x0000000625800000, 0x0000000625800000, 0x0000000625c00000| 0%| F| |TAMS 0x0000000625800000| PB 0x0000000625800000| Untracked | 0 -| 103|0x0000000625c00000, 0x0000000625c00000, 0x0000000626000000| 0%| F| |TAMS 0x0000000625c00000| PB 0x0000000625c00000| Untracked | 0 -| 104|0x0000000626000000, 0x0000000626000000, 0x0000000626400000| 0%| F| |TAMS 0x0000000626000000| PB 0x0000000626000000| Untracked | 0 -| 105|0x0000000626400000, 0x0000000626400000, 0x0000000626800000| 0%| F| |TAMS 0x0000000626400000| PB 0x0000000626400000| Untracked | 0 -| 106|0x0000000626800000, 0x0000000626800000, 0x0000000626c00000| 0%| F| |TAMS 0x0000000626800000| PB 0x0000000626800000| Untracked | 0 -| 107|0x0000000626c00000, 0x0000000626c00000, 0x0000000627000000| 0%| F| |TAMS 0x0000000626c00000| PB 0x0000000626c00000| Untracked | 0 -| 108|0x0000000627000000, 0x0000000627000000, 0x0000000627400000| 0%| F| |TAMS 0x0000000627000000| PB 0x0000000627000000| Untracked | 0 -| 109|0x0000000627400000, 0x0000000627400000, 0x0000000627800000| 0%| F| |TAMS 0x0000000627400000| PB 0x0000000627400000| Untracked | 0 -| 110|0x0000000627800000, 0x0000000627800000, 0x0000000627c00000| 0%| F| |TAMS 0x0000000627800000| PB 0x0000000627800000| Untracked | 0 -| 111|0x0000000627c00000, 0x0000000627c00000, 0x0000000628000000| 0%| F| |TAMS 0x0000000627c00000| PB 0x0000000627c00000| Untracked | 0 -| 112|0x0000000628000000, 0x0000000628000000, 0x0000000628400000| 0%| F| |TAMS 0x0000000628000000| PB 0x0000000628000000| Untracked | 0 -| 113|0x0000000628400000, 0x0000000628400000, 0x0000000628800000| 0%| F| |TAMS 0x0000000628400000| PB 0x0000000628400000| Untracked | 0 -| 114|0x0000000628800000, 0x0000000628800000, 0x0000000628c00000| 0%| F| |TAMS 0x0000000628800000| PB 0x0000000628800000| Untracked | 0 -| 115|0x0000000628c00000, 0x0000000628c00000, 0x0000000629000000| 0%| F| |TAMS 0x0000000628c00000| PB 0x0000000628c00000| Untracked | 0 -| 116|0x0000000629000000, 0x0000000629000000, 0x0000000629400000| 0%| F| |TAMS 0x0000000629000000| PB 0x0000000629000000| Untracked | 0 -| 117|0x0000000629400000, 0x0000000629400000, 0x0000000629800000| 0%| F| |TAMS 0x0000000629400000| PB 0x0000000629400000| Untracked | 0 -| 118|0x0000000629800000, 0x0000000629800000, 0x0000000629c00000| 0%| F| |TAMS 0x0000000629800000| PB 0x0000000629800000| Untracked | 0 -| 119|0x0000000629c00000, 0x0000000629f7cd70, 0x000000062a000000| 87%| E| |TAMS 0x0000000629c00000| PB 0x0000000629c00000| Complete | 0 -| 120|0x000000062a000000, 0x000000062a400000, 0x000000062a400000|100%| E|CS|TAMS 0x000000062a000000| PB 0x000000062a000000| Complete | 0 -| 121|0x000000062a400000, 0x000000062a800000, 0x000000062a800000|100%| E|CS|TAMS 0x000000062a400000| PB 0x000000062a400000| Complete | 0 -| 122|0x000000062a800000, 0x000000062ac00000, 0x000000062ac00000|100%| E|CS|TAMS 0x000000062a800000| PB 0x000000062a800000| Complete | 0 -| 123|0x000000062ac00000, 0x000000062b000000, 0x000000062b000000|100%| E|CS|TAMS 0x000000062ac00000| PB 0x000000062ac00000| Complete | 0 -| 124|0x000000062b000000, 0x000000062b400000, 0x000000062b400000|100%| E|CS|TAMS 0x000000062b000000| PB 0x000000062b000000| Complete | 0 -|1999|0x00000007ffc00000, 0x00000007ffd1ec18, 0x0000000800000000| 28%| O| |TAMS 0x00000007ffc00000| PB 0x00000007ffc00000| Untracked | 0 - -Card table byte_map: [0x0000744bd7800000,0x0000744bd87a0000] _byte_map_base: 0x0000744bd47a0000 - -Marking Bits: (CMBitMap*) 0x0000744bf0059190 - Bits: [0x0000744bcfa00000, 0x0000744bd7700000) - -Polling page: 0x0000744bf80b2000 - -Metaspace: - -Usage: - Non-class: 7.79 MB used. - Class: 779.01 KB used. - Both: 8.55 MB used. - -Virtual space: - Non-class space: 64.00 MB reserved, 7.94 MB ( 12%) committed, 1 nodes. - Class space: 1.00 GB reserved, 896.00 KB ( <1%) committed, 1 nodes. - Both: 1.06 GB reserved, 8.81 MB ( <1%) committed. - -Chunk freelists: - Non-Class: 7.84 MB - Class: 15.04 MB - Both: 22.89 MB - -MaxMetaspaceSize: unlimited -CompressedClassSpaceSize: 1.00 GB -Initial GC threshold: 21.00 MB -Current GC threshold: 21.00 MB -CDS: on - - commit_granule_bytes: 65536. - - commit_granule_words: 8192. - - virtual_space_node_default_size: 8388608. - - enlarge_chunks_in_place: 1. - - use_allocation_guard: 0. - - -Internal statistics: - -num_allocs_failed_limit: 0. -num_arena_births: 152. -num_arena_deaths: 0. -num_vsnodes_births: 2. -num_vsnodes_deaths: 0. -num_space_committed: 141. -num_space_uncommitted: 0. -num_chunks_returned_to_freelist: 0. -num_chunks_taken_from_freelist: 378. -num_chunk_merges: 0. -num_chunk_splits: 252. -num_chunks_enlarged: 172. -num_inconsistent_stats: 0. - -CodeHeap 'non-profiled nmethods': size=120032Kb used=404Kb max_used=404Kb free=119628Kb - bounds [0x0000744be02c8000, 0x0000744be0538000, 0x0000744be7800000] -CodeHeap 'profiled nmethods': size=120028Kb used=1701Kb max_used=1701Kb free=118326Kb - bounds [0x0000744bd8800000, 0x0000744bd8a70000, 0x0000744bdfd37000] -CodeHeap 'non-nmethods': size=5700Kb used=2156Kb max_used=2182Kb free=3543Kb - bounds [0x0000744bdfd37000, 0x0000744bdffa7000, 0x0000744be02c8000] -CodeCache: size=245760Kb, used=4261Kb, max_used=4287Kb, free=241497Kb - total_blobs=2458, nmethods=1285, adapters=1080, full_count=0 -Compilation: enabled, stopped_count=0, restarted_count=0 - -Compilation events (20 events): -Event: 0.802 Thread 0x0000744b3441f420 nmethod 1266 0x0000744be032ad88 code [0x0000744be032ae80, 0x0000744be032af50] -Event: 0.803 Thread 0x0000744b3441f420 1271 4 java.lang.StringBuilder::append (8 bytes) -Event: 0.803 Thread 0x0000744bf01485d0 1272 3 java.lang.reflect.Modifier::isPrivate (12 bytes) -Event: 0.803 Thread 0x0000744bf01485d0 nmethod 1272 0x0000744bd89a6088 code [0x0000744bd89a61a0, 0x0000744bd89a62d0] -Event: 0.804 Thread 0x0000744bf01485d0 1274 3 jdk.internal.org.objectweb.asm.Frame::setLocal (65 bytes) -Event: 0.804 Thread 0x0000744bf01485d0 nmethod 1274 0x0000744bd89a6388 code [0x0000744bd89a64e0, 0x0000744bd89a69e0] -Event: 0.804 Thread 0x0000744bf01485d0 1275 3 jdk.internal.org.objectweb.asm.Frame::pop (46 bytes) -Event: 0.805 Thread 0x0000744bf01485d0 nmethod 1275 0x0000744bd89a6a08 code [0x0000744bd89a6b20, 0x0000744bd89a6cb0] -Event: 0.805 Thread 0x0000744bf01485d0 1276 3 jdk.internal.org.objectweb.asm.ClassWriter::visitMethod (57 bytes) -Event: 0.805 Thread 0x0000744bf01485d0 nmethod 1276 0x0000744bd89a6d08 code [0x0000744bd89a6e40, 0x0000744bd89a71b8] -Event: 0.805 Thread 0x0000744bf01485d0 1277 1 jdk.internal.org.objectweb.asm.SymbolTable::getConstantPoolCount (5 bytes) -Event: 0.805 Thread 0x0000744bf01485d0 nmethod 1277 0x0000744be032bc08 code [0x0000744be032bd20, 0x0000744be032bde0] -Event: 0.808 Thread 0x0000744b3441f420 nmethod 1271 0x0000744be032bf08 code [0x0000744be032c060, 0x0000744be032c930] -Event: 0.811 Thread 0x0000744bf01485d0 1278 3 java.lang.invoke.MethodHandleNatives::refKindIsMethod (19 bytes) -Event: 0.811 Thread 0x0000744bf01485d0 nmethod 1278 0x0000744bd89a7208 code [0x0000744bd89a7320, 0x0000744bd89a7538] -Event: 0.811 Thread 0x0000744bf01485d0 1279 ! 3 java.lang.invoke.MethodHandle::setVarargs (50 bytes) -Event: 0.811 Thread 0x0000744bf01485d0 nmethod 1279 0x0000744bd89a7588 code [0x0000744bd89a77c0, 0x0000744bd89a83c0] -Event: 0.811 Thread 0x0000744bf01485d0 1281 3 jdk.internal.misc.VM::isModuleSystemInited (13 bytes) -Event: 0.812 Thread 0x0000744bf01485d0 nmethod 1281 0x0000744bd89a8488 code [0x0000744bd89a85a0, 0x0000744bd89a86e0] -Event: 0.812 Thread 0x0000744bf01485d0 1280 3 jdk.internal.org.objectweb.asm.MethodWriter::endCurrentBasicBlockWithNoSuccessor (98 bytes) - -GC Heap History (0 events): -No events - -Dll operation events (10 events): -Event: 0.001 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -Event: 0.017 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -Event: 0.017 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -Event: 0.027 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -Event: 0.029 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -Event: 0.078 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -Event: 0.125 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -Event: 0.130 Loaded shared library /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -Event: 0.381 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -Event: 0.383 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so - -Deoptimization events (20 events): -Event: 0.724 Thread 0x0000744bf05c1120 Uncommon trap: trap_request=0xffffffde fr.pc=0x0000744be03036cc relative=0x00000000000014cc -Event: 0.724 Thread 0x0000744bf05c1120 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000744be03036cc method=java.io.BufferedInputStream.implRead([BII)I @ 100 c2 -Event: 0.724 Thread 0x0000744bf05c1120 DEOPT PACKING pc=0x0000744be03036cc sp=0x0000744bc71fdc40 -Event: 0.724 Thread 0x0000744bf05c1120 DEOPT UNPACKING pc=0x0000744bdfd8abf9 sp=0x0000744bc71fdb40 mode 2 -Event: 0.725 Thread 0x0000744bf05c1120 Uncommon trap: trap_request=0xffffffde fr.pc=0x0000744be03036cc relative=0x00000000000014cc -Event: 0.725 Thread 0x0000744bf05c1120 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000744be03036cc method=java.io.BufferedInputStream.implRead([BII)I @ 100 c2 -Event: 0.725 Thread 0x0000744bf05c1120 DEOPT PACKING pc=0x0000744be03036cc sp=0x0000744bc71fdc40 -Event: 0.725 Thread 0x0000744bf05c1120 DEOPT UNPACKING pc=0x0000744bdfd8abf9 sp=0x0000744bc71fdb40 mode 2 -Event: 0.725 Thread 0x0000744bf05c1120 Uncommon trap: trap_request=0xffffffde fr.pc=0x0000744be03036cc relative=0x00000000000014cc -Event: 0.725 Thread 0x0000744bf05c1120 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000744be03036cc method=java.io.BufferedInputStream.implRead([BII)I @ 100 c2 -Event: 0.725 Thread 0x0000744bf05c1120 DEOPT PACKING pc=0x0000744be03036cc sp=0x0000744bc71fdc40 -Event: 0.725 Thread 0x0000744bf05c1120 DEOPT UNPACKING pc=0x0000744bdfd8abf9 sp=0x0000744bc71fdb40 mode 2 -Event: 0.725 Thread 0x0000744bf05c1120 Uncommon trap: trap_request=0xffffffde fr.pc=0x0000744be0301adc relative=0x0000000000000afc -Event: 0.725 Thread 0x0000744bf05c1120 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000744be0301adc method=java.io.BufferedInputStream.implRead([BII)I @ 100 c2 -Event: 0.725 Thread 0x0000744bf05c1120 DEOPT PACKING pc=0x0000744be0301adc sp=0x0000744bc71fdb20 -Event: 0.725 Thread 0x0000744bf05c1120 DEOPT UNPACKING pc=0x0000744bdfd8abf9 sp=0x0000744bc71fdad8 mode 2 -Event: 0.744 Thread 0x0000744bf05c1120 Uncommon trap: trap_request=0xffffff6e fr.pc=0x0000744be03238e8 relative=0x0000000000000148 -Event: 0.744 Thread 0x0000744bf05c1120 Uncommon trap: reason=loop_limit_check action=maybe_recompile pc=0x0000744be03238e8 method=java.util.regex.Pattern$Start.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 34 c2 -Event: 0.744 Thread 0x0000744bf05c1120 DEOPT PACKING pc=0x0000744be03238e8 sp=0x0000744bc71fe0a0 -Event: 0.744 Thread 0x0000744bf05c1120 DEOPT UNPACKING pc=0x0000744bdfd8abf9 sp=0x0000744bc71fe050 mode 2 - -Classes loaded (20 events): -Event: 0.724 Loading class sun/awt/image/SurfaceManager$ImageAccessor done -Event: 0.724 Loading class java/awt/Image$1 done -Event: 0.724 Loading class sun/awt/image/SurfaceManager -Event: 0.724 Loading class sun/awt/image/SurfaceManager done -Event: 0.724 Loading class java/awt/image/BufferedImage$1 -Event: 0.724 Loading class java/awt/image/BufferedImage$1 done -Event: 0.724 Loading class sun/awt/image/IntegerComponentRaster -Event: 0.724 Loading class sun/awt/image/IntegerComponentRaster done -Event: 0.724 Loading class java/awt/image/IndexColorModel -Event: 0.724 Loading class java/awt/image/IndexColorModel done -Event: 0.724 Loading class sun/awt/image/ShortComponentRaster -Event: 0.724 Loading class sun/awt/image/ShortComponentRaster done -Event: 0.803 Loading class java/util/function/LongFunction -Event: 0.803 Loading class java/util/function/LongFunction done -Event: 0.811 Loading class java/lang/Throwable$WrappedPrintStream -Event: 0.811 Loading class java/lang/Throwable$PrintStreamOrWriter -Event: 0.811 Loading class java/lang/Throwable$PrintStreamOrWriter done -Event: 0.811 Loading class java/lang/Throwable$WrappedPrintStream done -Event: 0.811 Loading class java/lang/StackTraceElement$HashedModules -Event: 0.811 Loading class java/lang/StackTraceElement$HashedModules done - -Classes unloaded (0 events): -No events - -Classes redefined (0 events): -No events - -Internal exceptions (20 events): -Event: 0.166 Thread 0x0000744bf002d0f0 Exception (0x000000062af599d0) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.166 Thread 0x0000744bf002d0f0 Exception (0x000000062af5eb08) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.167 Thread 0x0000744bf002d0f0 Exception (0x000000062af70568) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.168 Thread 0x0000744bf002d0f0 Exception (0x000000062af76038) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.168 Thread 0x0000744bf002d0f0 Exception (0x000000062af7a408) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.168 Thread 0x0000744bf002d0f0 Exception (0x000000062af81660) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.212 Thread 0x0000744bf002d0f0 Exception (0x000000062a929cf8) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.221 Thread 0x0000744bf002d0f0 Exception (0x000000062a981740) -thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] -Event: 0.230 Thread 0x0000744bf002d0f0 Exception (0x000000062a9ec330) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.231 Thread 0x0000744bf002d0f0 Exception (0x000000062a9fa148) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.389 Thread 0x0000744bf05c1120 Exception (0x000000062a5b9f98) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.390 Thread 0x0000744bf05c1120 Exception (0x000000062a5bd4e8) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 863] -Event: 0.649 Thread 0x0000744bf05c1120 Exception (0x000000062a76c258) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.710 Thread 0x0000744bf05c1120 Exception (0x000000062a1ebea0) -thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] -Event: 0.711 Thread 0x0000744bf05c1120 Exception (0x000000062a1f1e78) -thrown [open/src/hotspot/share/prims/jni.cpp, line 520] -Event: 0.713 Thread 0x0000744bf05c1120 Exception (0x000000062a21cd28) -thrown [open/src/hotspot/share/prims/jni.cpp, line 520] -Event: 0.800 Thread 0x0000744bf05c1120 Exception (0x0000000629e5fe30) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.800 Thread 0x0000744bf05c1120 Exception (0x0000000629e65678) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.803 Thread 0x0000744bf05c1120 Exception (0x0000000629e7d8a0) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.804 Thread 0x0000744bf05c1120 Exception (0x0000000629e8e9b0) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] - -VM Operations (12 events): -Event: 0.110 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.110 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.117 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.117 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.127 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.127 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.138 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.138 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.664 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.664 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.707 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.707 Executing VM operation: HandshakeAllThreads (Deoptimize) done - -Memory protections (16 events): -Event: 0.001 Protecting memory [0x0000744bf6700000,0x0000744bf6704000] with protection modes 0 -Event: 0.015 Protecting memory [0x0000744bd7700000,0x0000744bd7704000] with protection modes 0 -Event: 0.015 Protecting memory [0x0000744bcc500000,0x0000744bcc504000] with protection modes 0 -Event: 0.015 Protecting memory [0x0000744bcc400000,0x0000744bcc404000] with protection modes 0 -Event: 0.015 Protecting memory [0x0000744bcc300000,0x0000744bcc304000] with protection modes 0 -Event: 0.015 Protecting memory [0x0000744bcc200000,0x0000744bcc204000] with protection modes 0 -Event: 0.015 Protecting memory [0x0000744bcc100000,0x0000744bcc104000] with protection modes 0 -Event: 0.015 Protecting memory [0x0000744bcc000000,0x0000744bcc004000] with protection modes 0 -Event: 0.024 Protecting memory [0x0000744bc7f00000,0x0000744bc7f04000] with protection modes 0 -Event: 0.025 Protecting memory [0x0000744bc7e00000,0x0000744bc7e04000] with protection modes 0 -Event: 0.057 Protecting memory [0x0000744bc7d00000,0x0000744bc7d04000] with protection modes 0 -Event: 0.235 Protecting memory [0x0000744bc7100000,0x0000744bc7104000] with protection modes 0 -Event: 0.235 Protecting memory [0x0000744bf6700000,0x0000744bf6704000] with protection modes 0 -Event: 0.675 Protecting memory [0x0000744bc7d00000,0x0000744bc7d04000] with protection modes 0 -Event: 0.685 Protecting memory [0x0000744baf285000,0x0000744baf289000] with protection modes 0 -Event: 0.720 Protecting memory [0x0000744baf185000,0x0000744baf189000] with protection modes 0 - -Nmethod flushes (0 events): -No events - -Events (19 events): -Event: 0.010 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf002d0f0 -Event: 0.015 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf0137930 -Event: 0.015 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf0138ea0 -Event: 0.015 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf013a7d0 -Event: 0.015 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf013be10 -Event: 0.015 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf013d3b0 -Event: 0.015 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf013eed0 -Event: 0.015 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf01485d0 -Event: 0.024 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf01552a0 -Event: 0.025 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf0157d80 -Event: 0.057 Thread 0x0000744bf013eed0 Thread added: 0x0000744b380d8d00 -Event: 0.235 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf05c1120 -Event: 0.235 Thread 0x0000744bf002d0f0 Thread exited: 0x0000744bf002d0f0 -Event: 0.235 Thread 0x0000744bf002d0f0 Thread added: 0x0000744bf002d0f0 -Event: 0.649 Thread 0x0000744b380d8d00 Thread exited: 0x0000744b380d8d00 -Event: 0.675 Thread 0x0000744bf05c1120 Thread added: 0x0000744b1c5acd90 -Event: 0.685 Thread 0x0000744bf01485d0 Thread added: 0x0000744b3441f420 -Event: 0.720 Thread 0x0000744bf05c1120 Thread added: 0x0000744b1c763640 -Event: 0.812 Thread 0x0000744bf05c1120 Thread exited: 0x0000744bf05c1120 - - -Dynamic libraries: -60c000000-62b400000 rw-p 00000000 00:00 0 -62b400000-7ffc00000 ---p 00000000 00:00 0 -7ffc00000-7ffd1f000 rw-p 00dc0000 103:03 10498862 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/classes.jsa -7ffd1f000-800000000 rw-p 00000000 00:00 0 -574fbc634000-574fbc635000 r-xp 00000000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java -574fbc636000-574fbc637000 r--p 00001000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java -574fbc637000-574fbc638000 rw-p 00002000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java -574fdef4a000-574fdef93000 rw-p 00000000 00:00 0 [heap] -744adc000000-744adc021000 rw-p 00000000 00:00 0 -744adc021000-744ae0000000 ---p 00000000 00:00 0 -744ae4000000-744ae4021000 rw-p 00000000 00:00 0 -744ae4021000-744ae8000000 ---p 00000000 00:00 0 -744ae8000000-744ae8021000 rw-p 00000000 00:00 0 -744ae8021000-744aec000000 ---p 00000000 00:00 0 -744af0000000-744af007c000 rw-p 00000000 00:00 0 -744af007c000-744af4000000 ---p 00000000 00:00 0 -744af4000000-744af4021000 rw-p 00000000 00:00 0 -744af4021000-744af8000000 ---p 00000000 00:00 0 -744afc000000-744afc0c8000 rw-p 00000000 00:00 0 -744afc0c8000-744b00000000 ---p 00000000 00:00 0 -744b00000000-744b00021000 rw-p 00000000 00:00 0 -744b00021000-744b04000000 ---p 00000000 00:00 0 -744b08000000-744b08021000 rw-p 00000000 00:00 0 -744b08021000-744b0c000000 ---p 00000000 00:00 0 -744b0d000000-744b13712000 r-xp 00000000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 -744b13712000-744b13f30000 r--p 06711000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 -744b13f30000-744b13f76000 rw-p 06f2f000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 -744b13f76000-744b13ff2000 rw-p 00000000 00:00 0 -744b14000000-744b14021000 rw-p 00000000 00:00 0 -744b14021000-744b18000000 ---p 00000000 00:00 0 -744b1c000000-744b1cff0000 rw-p 00000000 00:00 0 -744b1cff0000-744b20000000 ---p 00000000 00:00 0 -744b20000000-744b20263000 rw-p 00000000 00:00 0 -744b20263000-744b24000000 ---p 00000000 00:00 0 -744b28000000-744b28021000 rw-p 00000000 00:00 0 -744b28021000-744b2c000000 ---p 00000000 00:00 0 -744b2c000000-744b2c021000 rw-p 00000000 00:00 0 -744b2c021000-744b30000000 ---p 00000000 00:00 0 -744b34000000-744b34447000 rw-p 00000000 00:00 0 -744b34447000-744b38000000 ---p 00000000 00:00 0 -744b38000000-744b3838a000 rw-p 00000000 00:00 0 -744b3838a000-744b3c000000 ---p 00000000 00:00 0 -744b40000000-744b40021000 rw-p 00000000 00:00 0 -744b40021000-744b44000000 ---p 00000000 00:00 0 -744b44000000-744b44021000 rw-p 00000000 00:00 0 -744b44021000-744b48000000 ---p 00000000 00:00 0 -744b49600000-744b49601000 ---p 00000000 00:00 0 -744b49601000-744b49e01000 rw-p 00000000 00:00 0 -744b4a000000-744b4acf5000 r--p 00000000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -744b4acf5000-744b4b6d8000 r-xp 00cf5000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -744b4b6d8000-744b4bae9000 r--p 016d8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -744b4bae9000-744b4bf6b000 r--p 01ae8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -744b4bf6b000-744b4bf73000 rw-p 01f6a000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -744b4bf73000-744b4bf7e000 rw-p 00000000 00:00 0 -744b4c000000-744b4c021000 rw-p 00000000 00:00 0 -744b4c021000-744b50000000 ---p 00000000 00:00 0 -744b50000000-744b50021000 rw-p 00000000 00:00 0 -744b50021000-744b54000000 ---p 00000000 00:00 0 -744b54400000-744b5442f000 r--p 00000000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -744b5442f000-744b54b02000 r-xp 0002f000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -744b54b02000-744b54c24000 r--p 00702000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -744b54c24000-744b54c35000 r--p 00823000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -744b54c35000-744b54cb3000 rw-p 00834000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -744b54cb3000-744b54cc7000 rw-p 00000000 00:00 0 -744b54e00000-744b54e01000 ---p 00000000 00:00 0 -744b54e01000-744b55601000 rw-p 00000000 00:00 0 -744b55800000-744b55801000 ---p 00000000 00:00 0 -744b55801000-744b56001000 rw-p 00000000 00:00 0 -744b56200000-744b56201000 ---p 00000000 00:00 0 -744b56201000-744b56a01000 rw-p 00000000 00:00 0 -744b56c00000-744b56c01000 ---p 00000000 00:00 0 -744b56c01000-744b57401000 rw-p 00000000 00:00 0 -744b57600000-744b57601000 ---p 00000000 00:00 0 -744b57601000-744b57e01000 rw-p 00000000 00:00 0 -744b58000000-744b58021000 rw-p 00000000 00:00 0 -744b58021000-744b5c000000 ---p 00000000 00:00 0 -744b5c000000-744b5c021000 rw-p 00000000 00:00 0 -744b5c021000-744b60000000 ---p 00000000 00:00 0 -744b60200000-744b60222000 r-xp 00000000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -744b60222000-744b60421000 ---p 00022000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -744b60421000-744b60429000 r--p 00021000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -744b60429000-744b6042a000 rw-p 00029000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -744b6042a000-744b6042b000 rw-p 00000000 00:00 0 -744b605bb000-744b60800000 rw-s 00000000 00:01 8 /memfd:/.nvidia_drv.XXXXXX (deleted) -744b60800000-744b60801000 ---p 00000000 00:00 0 -744b60801000-744b61001000 rw-p 00000000 00:00 0 -744b61200000-744b61216000 r--p 00000000 103:03 4325447 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -744b61216000-744b61306000 r-xp 00016000 103:03 4325447 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -744b61306000-744b61379000 r--p 00106000 103:03 4325447 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -744b61379000-744b61380000 r--p 00178000 103:03 4325447 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -744b61380000-744b61387000 rw-p 0017f000 103:03 4325447 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -744b61387000-744b61402000 rw-p 00000000 00:00 0 -744b61600000-744b6168d000 r--p 00000000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -744b6168d000-744b61df5000 r-xp 0008d000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -744b61df5000-744b62682000 r--p 007f5000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -744b62682000-744b626c4000 r--p 01081000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -744b626c4000-744b626c7000 rw-p 010c3000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -744b626c7000-744b626cd000 rw-p 00000000 00:00 0 -744b62800000-744b6285b000 r--p 00000000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -744b6285b000-744b62bd9000 r-xp 0005b000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -744b62bd9000-744b62fd5000 r--p 003d9000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -744b62fd5000-744b63010000 r--p 007d4000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -744b63010000-744b63015000 rw-p 0080f000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -744b63015000-744b63040000 rw-p 00000000 00:00 0 -744b63200000-744b6326e000 r--p 00000000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -744b6326e000-744b637d5000 r-xp 0006e000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -744b637d5000-744b63ee8000 r--p 005d5000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -744b63ee8000-744b63ee9000 ---p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -744b63ee9000-744b63f26000 r--p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -744b63f26000-744b63f29000 rw-p 00d25000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -744b63f29000-744b63f2b000 rw-p 00000000 00:00 0 -744b64000000-744b643c0000 rw-p 00000000 00:00 0 -744b643c0000-744b64400000 ---p 00000000 00:00 0 -744b64400000-744b64830000 rw-p 00000000 00:00 0 -744b64830000-744b68000000 ---p 00000000 00:00 0 -744b68000000-744b68021000 rw-p 00000000 00:00 0 -744b68021000-744b6c000000 ---p 00000000 00:00 0 -744b6c200000-744b6c201000 r--p 00000000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -744b6c201000-744b6c202000 r-xp 00001000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -744b6c202000-744b6de1c000 r--p 00002000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -744b6de1c000-744b6de1d000 r--p 01c1b000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -744b6de1d000-744b6de1e000 rw-p 01c1c000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -744b6df00000-744b6df04000 ---p 00000000 00:00 0 -744b6df04000-744b6e000000 rw-p 00000000 00:00 0 -744b6e000000-744b6ed91000 rw-p 00001000 103:03 10498862 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/classes.jsa -744b6ed91000-744b6f000000 ---p 00000000 00:00 0 -744b6f000000-744b6f030000 rw-p 00000000 00:00 0 -744b6f030000-744b6f0b0000 rw-p 00000000 00:00 0 -744b6f0b0000-744b6f0e0000 rw-p 00000000 00:00 0 -744b6f0e0000-744baf000000 ---p 00000000 00:00 0 -744baf018000-744baf159000 rw-s 00000000 103:03 13372247 /home/codex/.cache/mesa_shader_cache/index -744baf159000-744baf15b000 r--p 00000000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -744baf15b000-744baf164000 r-xp 00002000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -744baf164000-744baf167000 r--p 0000b000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -744baf167000-744baf168000 ---p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -744baf168000-744baf169000 r--p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -744baf169000-744baf16a000 rw-p 0000f000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -744baf16a000-744baf16c000 rw-p 00000000 00:00 0 -744baf16c000-744baf170000 r--p 00000000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -744baf170000-744baf180000 r-xp 00004000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -744baf180000-744baf183000 r--p 00014000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -744baf183000-744baf184000 r--p 00016000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -744baf184000-744baf185000 rw-p 00017000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -744baf185000-744baf189000 ---p 00000000 00:00 0 -744baf189000-744baf285000 rw-p 00000000 00:00 0 -744baf285000-744baf289000 ---p 00000000 00:00 0 -744baf289000-744baf385000 rw-p 00000000 00:00 0 -744baf385000-744baf396000 r--p 00000000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -744baf396000-744baf3d8000 r-xp 00011000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -744baf3d8000-744baf3f0000 r--p 00053000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -744baf3f0000-744baf3fe000 r--p 0006a000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -744baf3fe000-744baf400000 rw-p 00078000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -744baf400000-744baf493000 r--p 00000000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -744baf493000-744baf8e6000 r-xp 00093000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -744baf8e6000-744bafdfc000 r--p 004e6000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -744bafdfc000-744bafe34000 r--p 009fb000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -744bafe34000-744bafe44000 rw-p 00a33000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -744bafe44000-744bafe49000 rw-p 00000000 00:00 0 -744bafe55000-744bafe59000 r--p 00000000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -744bafe59000-744bafe75000 r-xp 00004000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -744bafe75000-744bafe7b000 r--p 00020000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -744bafe7b000-744bafe7c000 ---p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -744bafe7c000-744bafe7e000 r--p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -744bafe7e000-744bafe7f000 rw-p 00028000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -744bafe7f000-744bafe8b000 r--p 00000000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -744bafe8b000-744bafeab000 r-xp 0000c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -744bafeab000-744bafeb7000 r--p 0002c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -744bafeb7000-744bafec1000 r--p 00037000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -744bafec1000-744bafec2000 rw-p 00041000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -744bafec2000-744bafed1000 r--p 00000000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -744bafed1000-744baffb7000 r-xp 0000f000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -744baffb7000-744bafff5000 r--p 000f5000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -744bafff5000-744bafff6000 ---p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -744bafff6000-744bafff9000 r--p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -744bafff9000-744baffff000 rw-p 00136000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -744baffff000-744bb0000000 rw-p 00000000 00:00 0 -744bb0000000-744bb0021000 rw-p 00000000 00:00 0 -744bb0021000-744bb4000000 ---p 00000000 00:00 0 -744bb4000000-744bb4021000 rw-p 00000000 00:00 0 -744bb4021000-744bb8000000 ---p 00000000 00:00 0 -744bb8026000-744bb8028000 r--p 00000000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -744bb8028000-744bb8093000 r-xp 00002000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -744bb8093000-744bb80bb000 r--p 0006d000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -744bb80bb000-744bb80bc000 r--p 00094000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -744bb80bc000-744bb80bd000 rw-p 00095000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -744bb80bd000-744bb80c3000 r--p 00000000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -744bb80c3000-744bb80dd000 r-xp 00006000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -744bb80dd000-744bb80e4000 r--p 00020000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -744bb80e4000-744bb80e5000 ---p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -744bb80e5000-744bb80e6000 r--p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -744bb80e6000-744bb80e7000 rw-p 00028000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -744bb80e7000-744bb80e9000 rw-p 00000000 00:00 0 -744bb80e9000-744bb80fc000 r--p 00000000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -744bb80fc000-744bb811b000 r-xp 00013000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -744bb811b000-744bb8128000 r--p 00032000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -744bb8128000-744bb8138000 r--p 0003e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -744bb8138000-744bb8139000 rw-p 0004e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -744bb8139000-744bb814c000 r--p 00000000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -744bb814c000-744bb81cb000 r-xp 00013000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -744bb81cb000-744bb81f6000 r--p 00092000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -744bb81f6000-744bb81f7000 ---p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -744bb81f7000-744bb81fe000 r--p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -744bb81fe000-744bb81ff000 rw-p 000c4000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -744bb81ff000-744bb8b22000 rw-p 00000000 00:00 0 -744bb8b27000-744bb8b31000 r--p 00000000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -744bb8b31000-744bb8b3b000 r-xp 0000a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -744bb8b3b000-744bb8b42000 r--p 00014000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -744bb8b42000-744bb8b4b000 r--p 0001a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -744bb8b4b000-744bb8b4c000 rw-p 00023000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -744bb8b4c000-744bb8b57000 r--p 00000000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -744bb8b57000-744bb8b85000 r-xp 0000b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -744bb8b85000-744bb8b97000 r--p 00039000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -744bb8b97000-744bb8b98000 ---p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -744bb8b98000-744bb8b99000 r--p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -744bb8b99000-744bb8b9a000 rw-p 0004c000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -744bb8b9a000-744bb8b9e000 r--p 00000000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -744bb8b9e000-744bb8bb4000 r-xp 00004000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -744bb8bb4000-744bb8bbe000 r--p 0001a000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -744bb8bbe000-744bb8bbf000 r--p 00023000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -744bb8bbf000-744bb8bc0000 rw-p 00024000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -744bb8bc0000-744bb8bc2000 r--p 00000000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -744bb8bc2000-744bb8bdb000 r-xp 00002000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -744bb8bdb000-744bb8bdd000 r--p 0001b000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -744bb8bdd000-744bb8bde000 ---p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -744bb8bde000-744bb8bdf000 r--p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -744bb8bdf000-744bb8be0000 rw-p 0001e000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -744bb8bee000-744bb8bf7000 rw-s 00000000 00:01 904560 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) -744bb8bf7000-744bb8c00000 rw-s 00000000 00:01 904559 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) -744bb8c00000-744bb8c01000 ---p 00000000 00:00 0 -744bb8c01000-744bb9401000 rw-p 00000000 00:00 0 -744bb9405000-744bb946b000 r--p 00000000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -744bb946b000-744bb955e000 r-xp 00066000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -744bb955e000-744bb95ea000 r--p 00159000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -744bb95ea000-744bb95fd000 r--p 001e4000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -744bb95fd000-744bb95fe000 rw-p 001f7000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -744bb95fe000-744bb9600000 rw-p 00000000 00:00 0 -744bb9600000-744bb97c4000 r--p 00000000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -744bb97c4000-744bbb4c4000 r-xp 001c4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -744bbb4c4000-744bbbb39000 r--p 01ec4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -744bbbb39000-744bbbb3a000 ---p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -744bbbb3a000-744bbbd1a000 r--p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -744bbbd1a000-744bbbd93000 rw-p 02719000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -744bbbd93000-744bbbe08000 rw-p 00000000 00:00 0 -744bbbe09000-744bbbe0d000 r--p 00000000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -744bbbe0d000-744bbbe22000 r-xp 00004000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -744bbbe22000-744bbbe28000 r--p 00019000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -744bbbe28000-744bbbe29000 ---p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -744bbbe29000-744bbbe2b000 r--p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -744bbbe2b000-744bbbe2c000 rw-p 00021000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -744bbbe2c000-744bbbe5f000 r--p 00000000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -744bbbe5f000-744bbbec2000 r-xp 00033000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -744bbbec2000-744bbbee1000 r--p 00096000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -744bbbee1000-744bbbf0c000 r--p 000b4000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -744bbbf0c000-744bbbf0d000 rw-p 000df000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -744bbbf0d000-744bbbf0e000 rw-p 00000000 00:00 0 -744bbbf0e000-744bbbfcf000 r-xp 00000000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -744bbbfcf000-744bbbfd0000 r--p 000c0000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -744bbbfd0000-744bbbfdb000 rw-p 000c1000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -744bbbfdb000-744bbc000000 rw-p 00000000 00:00 0 -744bbc000000-744bbc021000 rw-p 00000000 00:00 0 -744bbc021000-744bc0000000 ---p 00000000 00:00 0 -744bc0000000-744bc0021000 rw-p 00000000 00:00 0 -744bc0021000-744bc4000000 ---p 00000000 00:00 0 -744bc4006000-744bc4008000 r--p 00000000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -744bc4008000-744bc400c000 r-xp 00002000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -744bc400c000-744bc400e000 r--p 00006000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -744bc400e000-744bc400f000 r--p 00007000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -744bc400f000-744bc4010000 rw-p 00008000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -744bc4010000-744bc4012000 r--p 00000000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -744bc4012000-744bc401a000 r-xp 00002000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -744bc401a000-744bc401c000 r--p 0000a000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -744bc401c000-744bc401d000 r--p 0000b000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -744bc401d000-744bc401e000 rw-p 0000c000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -744bc401e000-744bc404d000 r--p 00000000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -744bc404d000-744bc41a0000 r-xp 0002f000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -744bc41a0000-744bc41f4000 r--p 00182000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -744bc41f4000-744bc41f5000 ---p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -744bc41f5000-744bc41fe000 r--p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -744bc41fe000-744bc41ff000 rw-p 001df000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -744bc41ff000-744bc4200000 rw-p 00000000 00:00 0 -744bc4200000-744bc429a000 r--p 00000000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -744bc429a000-744bc43ab000 r-xp 0009a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -744bc43ab000-744bc441a000 r--p 001ab000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -744bc441a000-744bc441b000 ---p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -744bc441b000-744bc4426000 r--p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -744bc4426000-744bc4429000 rw-p 00225000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -744bc4429000-744bc442c000 rw-p 00000000 00:00 0 -744bc4431000-744bc4433000 r--p 00000000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -744bc4433000-744bc443b000 r-xp 00002000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -744bc443b000-744bc443c000 r--p 0000a000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -744bc443c000-744bc443d000 ---p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -744bc443d000-744bc443e000 r--p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -744bc443e000-744bc443f000 rw-p 0000c000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -744bc443f000-744bc44af000 r-xp 00000000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -744bc44af000-744bc44b0000 ---p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -744bc44b0000-744bc44b5000 r--p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -744bc44b5000-744bc44b7000 rw-p 00075000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -744bc44b7000-744bc44b9000 rw-p 00000000 00:00 0 -744bc44b9000-744bc44e8000 r--p 00000000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -744bc44e8000-744bc45a4000 r-xp 0002f000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -744bc45a4000-744bc45ef000 r--p 000eb000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -744bc45ef000-744bc45fd000 r--p 00135000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -744bc45fd000-744bc45ff000 rw-p 00143000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -744bc45ff000-744bc4600000 rw-p 00000000 00:00 0 -744bc4600000-744bc4841000 r-xp 00000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -744bc4841000-744bc4862000 rwxp 00241000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -744bc4862000-744bc4a00000 r-xp 00262000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -744bc4a00000-744bc5600000 r-xp 00400000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -744bc5600000-744bc64ab000 r-xp 01000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -744bc64ab000-744bc6610000 r--p 01eaa000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -744bc6610000-744bc667e000 rw-p 0200f000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -744bc667e000-744bc669c000 rw-p 00000000 00:00 0 -744bc66a2000-744bc66a4000 r--p 00000000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -744bc66a4000-744bc66a7000 r-xp 00002000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -744bc66a7000-744bc66a8000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -744bc66a8000-744bc66a9000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -744bc66a9000-744bc66aa000 rw-p 00006000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -744bc66aa000-744bc66ad000 r--p 00000000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -744bc66ad000-744bc66ce000 r-xp 00003000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -744bc66ce000-744bc66da000 r--p 00024000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -744bc66da000-744bc66db000 ---p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -744bc66db000-744bc66dc000 r--p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -744bc66dc000-744bc66dd000 rw-p 00031000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -744bc66dd000-744bc66eb000 r--p 00000000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -744bc66eb000-744bc66fc000 r-xp 0000e000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -744bc66fc000-744bc670a000 r--p 0001f000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -744bc670a000-744bc670e000 r--p 0002c000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -744bc670e000-744bc670f000 rw-p 00030000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -744bc670f000-744bc6717000 r--p 00000000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -744bc6717000-744bc6735000 r-xp 00008000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -744bc6735000-744bc6742000 r--p 00026000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -744bc6742000-744bc6744000 r--p 00032000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -744bc6744000-744bc6745000 rw-p 00034000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -744bc6745000-744bc6749000 rw-p 00000000 00:00 0 -744bc6749000-744bc674c000 r--p 00000000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -744bc674c000-744bc6763000 r-xp 00003000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -744bc6763000-744bc6767000 r--p 0001a000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -744bc6767000-744bc6768000 r--p 0001d000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -744bc6768000-744bc6769000 rw-p 0001e000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -744bc6769000-744bc676d000 r--p 00000000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -744bc676d000-744bc678c000 r-xp 00004000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -744bc678c000-744bc6796000 r--p 00023000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -744bc6796000-744bc6797000 ---p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -744bc6797000-744bc6799000 r--p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -744bc6799000-744bc679a000 rw-p 0002f000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -744bc679a000-744bc679f000 r--p 00000000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -744bc679f000-744bc67aa000 r-xp 00005000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -744bc67aa000-744bc67ae000 r--p 00010000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -744bc67ae000-744bc67af000 ---p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -744bc67af000-744bc67b0000 r--p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -744bc67b0000-744bc67b1000 rw-p 00015000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -744bc67b1000-744bc67bb000 r--p 00000000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -744bc67bb000-744bc686d000 r-xp 0000a000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -744bc686d000-744bc687e000 r--p 000bc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -744bc687e000-744bc687f000 r--p 000cc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -744bc687f000-744bc6880000 rw-p 000cd000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -744bc6880000-744bc6890000 r--p 00000000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -744bc6890000-744bc68ee000 r-xp 00010000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -744bc68ee000-744bc690a000 r--p 0006e000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -744bc690a000-744bc690b000 ---p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -744bc690b000-744bc6911000 r--p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -744bc6911000-744bc6912000 rw-p 00090000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -744bc6912000-744bc691a000 rw-p 00000000 00:00 0 -744bc691a000-744bc696b000 r--p 00000000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -744bc696b000-744bc69c7000 r-xp 00051000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -744bc69c7000-744bc69fc000 rwxp 000ad000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -744bc69fc000-744bc69fd000 r-xp 000e2000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -744bc69fd000-744bc6a1d000 r--p 000e3000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -744bc6a1d000-744bc6a3d000 r--p 00102000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -744bc6a3d000-744bc6a42000 rw-p 00122000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -744bc6a42000-744bc6a44000 rw-p 00000000 00:00 0 -744bc6a44000-744bc6a4a000 r--p 00000000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -744bc6a4a000-744bc6a94000 r-xp 00006000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -744bc6a94000-744bc6abe000 r--p 00050000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -744bc6abe000-744bc6abf000 r--p 00079000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -744bc6abf000-744bc6ac0000 rw-p 0007a000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -744bc6ac0000-744bc6ad9000 r--p 00000000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -744bc6ad9000-744bc6b65000 r-xp 00019000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -744bc6b65000-744bc6bfa000 r--p 000a5000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -744bc6bfa000-744bc6bfb000 ---p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -744bc6bfb000-744bc6bfc000 r--p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -744bc6bfc000-744bc6c00000 rw-p 0013b000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -744bc6c00000-744bc7000000 rw-p 00000000 00:00 0 -744bc7002000-744bc7004000 r--p 00000000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -744bc7004000-744bc700b000 r-xp 00002000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -744bc700b000-744bc700c000 r--p 00009000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -744bc700c000-744bc700d000 ---p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -744bc700d000-744bc700e000 r--p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -744bc700e000-744bc700f000 rw-p 0000b000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -744bc700f000-744bc7010000 r--p 00000000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -744bc7010000-744bc7011000 r-xp 00001000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -744bc7011000-744bc7012000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -744bc7012000-744bc7013000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -744bc7013000-744bc7014000 rw-p 00003000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -744bc7014000-744bc7015000 r--p 00000000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -744bc7015000-744bc7016000 r-xp 00001000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -744bc7016000-744bc7017000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -744bc7017000-744bc7018000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -744bc7018000-744bc7019000 rw-p 00003000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -744bc7019000-744bc701c000 r--p 00000000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -744bc701c000-744bc701f000 r-xp 00003000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -744bc701f000-744bc7020000 r--p 00006000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -744bc7020000-744bc7021000 ---p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -744bc7021000-744bc7022000 r--p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -744bc7022000-744bc7023000 rw-p 00008000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -744bc7023000-744bc7026000 r--p 00000000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -744bc7026000-744bc7029000 r-xp 00003000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -744bc7029000-744bc702a000 r--p 00006000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -744bc702a000-744bc702b000 ---p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -744bc702b000-744bc702c000 r--p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -744bc702c000-744bc702d000 rw-p 00008000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -744bc702d000-744bc7032000 r--p 00000000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -744bc7032000-744bc7038000 r-xp 00005000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -744bc7038000-744bc703b000 r--p 0000b000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -744bc703b000-744bc703d000 r--p 0000d000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -744bc703d000-744bc703e000 rw-p 0000f000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -744bc703e000-744bc7041000 r--p 00000000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -744bc7041000-744bc7055000 r-xp 00003000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -744bc7055000-744bc7059000 r--p 00017000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -744bc7059000-744bc705a000 ---p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -744bc705a000-744bc705b000 r--p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -744bc705b000-744bc705c000 rw-p 0001c000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -744bc705c000-744bc705f000 r--p 00000000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -744bc705f000-744bc7065000 r-xp 00003000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -744bc7065000-744bc7067000 r--p 00009000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -744bc7067000-744bc7068000 r--p 0000a000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -744bc7068000-744bc7069000 rw-p 0000b000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -744bc7069000-744bc7079000 r--p 00000000 103:03 4325445 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -744bc7079000-744bc709a000 r-xp 00010000 103:03 4325445 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -744bc709a000-744bc70d6000 r--p 00031000 103:03 4325445 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -744bc70d6000-744bc70da000 r--p 0006c000 103:03 4325445 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -744bc70da000-744bc70dd000 rw-p 00070000 103:03 4325445 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -744bc70dd000-744bc7100000 rw-p 00000000 00:00 0 -744bc7100000-744bc7104000 ---p 00000000 00:00 0 -744bc7104000-744bc7200000 rw-p 00000000 00:00 0 -744bc7200000-744bc7a00000 rw-p 00000000 00:00 0 -744bc7a00000-744bc7a08000 r--p 00000000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -744bc7a08000-744bc7a60000 r-xp 00008000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -744bc7a60000-744bc7a71000 r--p 00060000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -744bc7a71000-744bc7a72000 ---p 00071000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -744bc7a72000-744bc7a78000 r--p 00071000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -744bc7a78000-744bc7a79000 rw-p 00077000 103:03 4325444 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -744bc7a79000-744bc7c83000 rw-p 00000000 00:00 0 -744bc7c84000-744bc7cb0000 r--p 00000000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -744bc7cb0000-744bc7ce4000 r-xp 0002c000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -744bc7ce4000-744bc7cfe000 r--p 00060000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -744bc7cfe000-744bc7cff000 r--p 00079000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -744bc7cff000-744bc7d00000 rw-p 0007a000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -744bc7d00000-744bc7d04000 ---p 00000000 00:00 0 -744bc7d04000-744bc7e00000 rw-p 00000000 00:00 0 -744bc7e00000-744bc7e04000 ---p 00000000 00:00 0 -744bc7e04000-744bc7f00000 rw-p 00000000 00:00 0 -744bc7f00000-744bc7f04000 ---p 00000000 00:00 0 -744bc7f04000-744bc8000000 rw-p 00000000 00:00 0 -744bc8000000-744bc8021000 rw-p 00000000 00:00 0 -744bc8021000-744bcc000000 ---p 00000000 00:00 0 -744bcc000000-744bcc004000 ---p 00000000 00:00 0 -744bcc004000-744bcc100000 rw-p 00000000 00:00 0 -744bcc100000-744bcc104000 ---p 00000000 00:00 0 -744bcc104000-744bcc200000 rw-p 00000000 00:00 0 -744bcc200000-744bcc204000 ---p 00000000 00:00 0 -744bcc204000-744bcc300000 rw-p 00000000 00:00 0 -744bcc300000-744bcc304000 ---p 00000000 00:00 0 -744bcc304000-744bcc400000 rw-p 00000000 00:00 0 -744bcc400000-744bcc404000 ---p 00000000 00:00 0 -744bcc404000-744bcc500000 rw-p 00000000 00:00 0 -744bcc500000-744bcc504000 ---p 00000000 00:00 0 -744bcc504000-744bcc600000 rw-p 00000000 00:00 0 -744bcc600000-744bcd506000 r--p 00000000 103:03 10618858 /usr/lib/locale/locale-archive -744bcd50a000-744bcd50b000 r--p 00000000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -744bcd50b000-744bcd50c000 r-xp 00001000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -744bcd50c000-744bcd50d000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -744bcd50d000-744bcd50e000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -744bcd50e000-744bcd50f000 rw-p 00003000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -744bcd50f000-744bcd51a000 r--p 00000000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -744bcd51a000-744bcd523000 r-xp 0000b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -744bcd523000-744bcd528000 r--p 00014000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -744bcd528000-744bcd529000 ---p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -744bcd529000-744bcd52b000 r--p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -744bcd52b000-744bcd52c000 rw-p 0001b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -744bcd52c000-744bcd5fa000 r-xp 00000000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -744bcd5fa000-744bcd5fb000 r--p 000cd000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -744bcd5fb000-744bcd5fc000 rw-p 000ce000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -744bcd5fc000-744bcd5fd000 ---p 00000000 00:00 0 -744bcd5fd000-744bcd6fd000 rw-p 00000000 00:00 0 -744bcd6fd000-744bcd6fe000 ---p 00000000 00:00 0 -744bcd6fe000-744bcd7fe000 rw-p 00000000 00:00 0 -744bcd7fe000-744bcd7ff000 ---p 00000000 00:00 0 -744bcd7ff000-744bcd8ff000 rw-p 00000000 00:00 0 -744bcd8ff000-744bcd900000 ---p 00000000 00:00 0 -744bcd900000-744bcda00000 rw-p 00000000 00:00 0 -744bcda00000-744bd01d0000 rw-p 00000000 00:00 0 -744bd01d0000-744bd76f0000 ---p 00000000 00:00 0 -744bd76f0000-744bd7700000 rw-p 00000000 00:00 0 -744bd7700000-744bd7704000 ---p 00000000 00:00 0 -744bd7704000-744bd7800000 rw-p 00000000 00:00 0 -744bd7800000-744bd78fa000 rw-p 00000000 00:00 0 -744bd78fa000-744bd879e000 ---p 00000000 00:00 0 -744bd879e000-744bd87a0000 rw-p 00000000 00:00 0 -744bd87a0000-744bd87a1000 r--s 00000000 00:06 1017 /dev/nvidiactl -744bd87a1000-744bd87a3000 r--p 00000000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -744bd87a3000-744bd87a5000 r-xp 00002000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -744bd87a5000-744bd87a6000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -744bd87a6000-744bd87a7000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -744bd87a7000-744bd87a8000 rw-p 00005000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -744bd87a8000-744bd87af000 r--p 00000000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -744bd87af000-744bd87b5000 r-xp 00007000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -744bd87b5000-744bd87b8000 r--p 0000d000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -744bd87b8000-744bd87b9000 ---p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -744bd87b9000-744bd87ba000 r--p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -744bd87ba000-744bd87bb000 rw-p 00011000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -744bd87bb000-744bd87bc000 r--p 00000000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -744bd87bc000-744bd87be000 r-xp 00001000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -744bd87be000-744bd87bf000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -744bd87bf000-744bd87c0000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -744bd87c0000-744bd87c1000 rw-p 00004000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -744bd87c1000-744bd87c2000 r--p 00000000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -744bd87c2000-744bd87c3000 r-xp 00001000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -744bd87c3000-744bd87c4000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -744bd87c4000-744bd87c5000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -744bd87c5000-744bd87c6000 rw-p 00003000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -744bd87c6000-744bd87c8000 r--p 00000000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -744bd87c8000-744bd87ce000 r-xp 00002000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -744bd87ce000-744bd87d0000 r--p 00008000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -744bd87d0000-744bd87d1000 r--p 00009000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -744bd87d1000-744bd87d2000 rw-p 0000a000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -744bd87d2000-744bd87d4000 r--p 00000000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -744bd87d4000-744bd87db000 r-xp 00002000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -744bd87db000-744bd87dd000 r--p 00009000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -744bd87dd000-744bd87de000 r--p 0000a000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -744bd87de000-744bd87df000 rw-p 0000b000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -744bd87df000-744bd87e1000 r--p 00000000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -744bd87e1000-744bd87e8000 r-xp 00002000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -744bd87e8000-744bd87ea000 r--p 00009000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -744bd87ea000-744bd87eb000 r--p 0000a000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -744bd87eb000-744bd87ec000 rw-p 0000b000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -744bd87ec000-744bd87ef000 r--p 00000000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -744bd87ef000-744bd87fb000 r-xp 00003000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -744bd87fb000-744bd87fe000 r--p 0000f000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -744bd87fe000-744bd87ff000 r--p 00011000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -744bd87ff000-744bd8800000 rw-p 00012000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -744bd8800000-744bd8a70000 rwxp 00000000 00:00 0 -744bd8a70000-744bdfd37000 ---p 00000000 00:00 0 -744bdfd37000-744bdffa7000 rwxp 00000000 00:00 0 -744bdffa7000-744be02c8000 ---p 00000000 00:00 0 -744be02c8000-744be0538000 rwxp 00000000 00:00 0 -744be0538000-744be7800000 ---p 00000000 00:00 0 -744be7800000-744beffb5000 r--s 00000000 103:03 10498840 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/modules -744beffb5000-744beffb6000 rw-s 00000000 00:01 5128 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) -744beffb6000-744beffb7000 rw-s 00000000 00:01 905529 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=4096 (deleted) -744beffb7000-744beffb9000 r--p 00000000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -744beffb9000-744beffbc000 r-xp 00002000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -744beffbc000-744beffbd000 r--p 00005000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -744beffbd000-744beffbe000 r--p 00006000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -744beffbe000-744beffbf000 rw-p 00007000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -744beffbf000-744beffc3000 r--p 00000000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -744beffc3000-744beffce000 r-xp 00004000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -744beffce000-744beffd2000 r--p 0000f000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -744beffd2000-744beffd3000 r--p 00012000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -744beffd3000-744beffd4000 rw-p 00013000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -744beffd4000-744beffd5000 r--p 00000000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -744beffd5000-744beffd8000 r-xp 00001000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -744beffd8000-744beffd9000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -744beffd9000-744beffda000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -744beffda000-744beffdb000 rw-p 00005000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -744beffdb000-744beffdd000 r--p 00000000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -744beffdd000-744beffe4000 r-xp 00002000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -744beffe4000-744beffe6000 r--p 00009000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -744beffe6000-744beffe7000 r--p 0000a000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -744beffe7000-744beffe8000 rw-p 0000b000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -744beffe8000-744beffec000 r--p 00000000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -744beffec000-744befff9000 r-xp 00004000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -744befff9000-744befffc000 r--p 00011000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -744befffc000-744befffd000 ---p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -744befffd000-744befffe000 r--p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -744befffe000-744beffff000 rw-p 00015000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -744beffff000-744bf0000000 rw-p 00000000 00:00 0 -744bf0000000-744bf05c5000 rw-p 00000000 00:00 0 -744bf05c5000-744bf4000000 ---p 00000000 00:00 0 -744bf4000000-744bf4001000 rw-s 00000000 00:01 905528 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) -744bf4001000-744bf4003000 r--p 00000000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -744bf4003000-744bf4005000 r-xp 00002000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -744bf4005000-744bf4007000 r--p 00004000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -744bf4007000-744bf4008000 r--p 00005000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -744bf4008000-744bf4009000 rw-p 00006000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -744bf4009000-744bf4014000 r--p 00000000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -744bf4014000-744bf4028000 r-xp 0000b000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -744bf4028000-744bf4031000 r--p 0001f000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -744bf4031000-744bf4032000 r--p 00027000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -744bf4032000-744bf4033000 rw-p 00028000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -744bf4033000-744bf4071000 r-xp 00000000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -744bf4071000-744bf4072000 ---p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -744bf4072000-744bf4073000 r--p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -744bf4073000-744bf4074000 rw-p 0003f000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -744bf4074000-744bf48fd000 rw-p 00000000 00:00 0 -744bf48fd000-744bf48fe000 ---p 00000000 00:00 0 -744bf48fe000-744bf49fe000 rw-p 00000000 00:00 0 -744bf49fe000-744bf49ff000 ---p 00000000 00:00 0 -744bf49ff000-744bf4aff000 rw-p 00000000 00:00 0 -744bf4aff000-744bf4b00000 ---p 00000000 00:00 0 -744bf4b00000-744bf4c00000 rw-p 00000000 00:00 0 -744bf4c00000-744bf4cfa000 rw-p 00000000 00:00 0 -744bf4cfa000-744bf5b9e000 ---p 00000000 00:00 0 -744bf5b9e000-744bf5ba0000 rw-p 00000000 00:00 0 -744bf5ba0000-744bf5ba1000 r--p 00000000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -744bf5ba1000-744bf5ba3000 r-xp 00001000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -744bf5ba3000-744bf5ba4000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -744bf5ba4000-744bf5ba5000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -744bf5ba5000-744bf5ba6000 rw-p 00004000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -744bf5ba6000-744bf5bad000 r--s 00000000 103:03 11147989 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache -744bf5bad000-744bf5bae000 r--p 00000000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -744bf5bae000-744bf5bb1000 r-xp 00001000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -744bf5bb1000-744bf5bb2000 r--p 00004000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -744bf5bb2000-744bf5bb3000 ---p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -744bf5bb3000-744bf5bb4000 r--p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -744bf5bb4000-744bf5bb5000 rw-p 00006000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -744bf5bb5000-744bf5bb8000 r--p 00000000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -744bf5bb8000-744bf5bbc000 r-xp 00003000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -744bf5bbc000-744bf5bbe000 r--p 00007000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -744bf5bbe000-744bf5bbf000 r--p 00008000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -744bf5bbf000-744bf5bc0000 rw-p 00009000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -744bf5bc0000-744bf5bc1000 r--p 00000000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -744bf5bc1000-744bf5bc3000 r-xp 00001000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -744bf5bc3000-744bf5bc4000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -744bf5bc4000-744bf5bc5000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -744bf5bc5000-744bf5bc6000 rw-p 00004000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -744bf5bc6000-744bf652f000 rw-p 00000000 00:00 0 -744bf652f000-744bf6615000 ---p 00000000 00:00 0 -744bf6615000-744bf661a000 rw-p 00000000 00:00 0 -744bf661a000-744bf6700000 ---p 00000000 00:00 0 -744bf6700000-744bf6704000 ---p 00000000 00:00 0 -744bf6704000-744bf6800000 rw-p 00000000 00:00 0 -744bf6800000-744bf7b30000 r-xp 00000000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so -744bf7b30000-744bf7c00000 r--p 0132f000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so -744bf7c00000-744bf7c2e000 rw-p 013ff000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so -744bf7c2e000-744bf7ca4000 rw-p 00000000 00:00 0 -744bf7ca4000-744bf7ca5000 r--p 00000000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -744bf7ca5000-744bf7ca6000 r-xp 00001000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -744bf7ca6000-744bf7ca7000 r--p 00002000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -744bf7ca7000-744bf7ca8000 r--p 00003000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -744bf7ca8000-744bf7ca9000 rw-p 00004000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -744bf7ca9000-744bf7cb4000 r-xp 00000000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -744bf7cb4000-744bf7cb5000 ---p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -744bf7cb5000-744bf7cb6000 r--p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -744bf7cb6000-744bf7cb7000 rw-p 0000c000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -744bf7cb7000-744bf7cf6000 rw-p 00000000 00:00 0 -744bf7cf6000-744bf7d16000 r-xp 00000000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -744bf7d16000-744bf7d17000 r--p 0001f000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -744bf7d17000-744bf7d18000 rw-p 00020000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -744bf7d18000-744bf7d19000 rw-p 00000000 00:00 0 -744bf7d19000-744bf7d27000 r--p 00000000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -744bf7d27000-744bf7da3000 r-xp 0000e000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -744bf7da3000-744bf7dfe000 r--p 0008a000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -744bf7dfe000-744bf7dff000 r--p 000e4000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -744bf7dff000-744bf7e00000 rw-p 000e5000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -744bf7e00000-744bf7e28000 r--p 00000000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -744bf7e28000-744bf7fbd000 r-xp 00028000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -744bf7fbd000-744bf8015000 r--p 001bd000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -744bf8015000-744bf8016000 ---p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -744bf8016000-744bf801a000 r--p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -744bf801a000-744bf801c000 rw-p 00219000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -744bf801c000-744bf8029000 rw-p 00000000 00:00 0 -744bf8029000-744bf802a000 rw-s 00000000 00:01 902416 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) -744bf802a000-744bf802b000 r-xp 00000000 00:00 0 -744bf802b000-744bf802c000 rw-p 00000000 00:00 0 -744bf802c000-744bf802d000 r-xp 0005e000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -744bf802d000-744bf802e000 rw-p 00000000 00:00 0 -744bf802e000-744bf8041000 r-xp 00000000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -744bf8041000-744bf8042000 ---p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -744bf8042000-744bf8043000 r--p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -744bf8043000-744bf8044000 rw-p 00014000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -744bf8044000-744bf8062000 r-xp 00000000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -744bf8062000-744bf8064000 r--p 0001d000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -744bf8064000-744bf8065000 rw-p 0001f000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -744bf8065000-744bf8066000 r--p 00000000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -744bf8066000-744bf8067000 r-xp 00001000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -744bf8067000-744bf8068000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -744bf8068000-744bf8069000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -744bf8069000-744bf806a000 rw-p 00003000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -744bf806a000-744bf806e000 rw-p 00000000 00:00 0 -744bf806e000-744bf806f000 r--p 00000000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -744bf806f000-744bf8070000 r-xp 00001000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -744bf8070000-744bf8071000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -744bf8071000-744bf8072000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -744bf8072000-744bf8073000 rw-p 00003000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -744bf8073000-744bf8074000 r--p 00000000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -744bf8074000-744bf8075000 r-xp 00001000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -744bf8075000-744bf8076000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -744bf8076000-744bf8077000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -744bf8077000-744bf8078000 rw-p 00003000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -744bf8078000-744bf807a000 r--p 00000000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -744bf807a000-744bf808b000 r-xp 00002000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -744bf808b000-744bf8091000 r--p 00013000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -744bf8091000-744bf8092000 ---p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -744bf8092000-744bf8093000 r--p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -744bf8093000-744bf8094000 rw-p 0001a000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -744bf8094000-744bf809b000 r-xp 00000000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -744bf809b000-744bf809c000 ---p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -744bf809c000-744bf809d000 r--p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -744bf809d000-744bf809e000 rw-p 00008000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -744bf809e000-744bf80a3000 rw-p 00000000 00:00 0 -744bf80a3000-744bf80aa000 ---p 00000000 00:00 0 -744bf80aa000-744bf80b2000 rw-s 00000000 103:03 4325438 /tmp/hsperfdata_codex/77449 -744bf80b2000-744bf80b3000 ---p 00000000 00:00 0 -744bf80b3000-744bf80b4000 r--p 00000000 00:00 0 -744bf80b4000-744bf80c3000 r-xp 00000000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so -744bf80c3000-744bf80c4000 r--p 0000e000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so -744bf80c4000-744bf80c5000 rw-p 0000f000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so -744bf80c5000-744bf80c7000 rw-p 00000000 00:00 0 -744bf80c7000-744bf80cb000 r--p 00000000 00:00 0 [vvar] -744bf80cb000-744bf80cd000 r-xp 00000000 00:00 0 [vdso] -744bf80cd000-744bf80cf000 r--p 00000000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -744bf80cf000-744bf80f9000 r-xp 00002000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -744bf80f9000-744bf8104000 r--p 0002c000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -744bf8104000-744bf8105000 ---p 00000000 00:00 0 -744bf8105000-744bf8107000 r--p 00037000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -744bf8107000-744bf8109000 rw-p 00039000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -7ffd7475d000-7ffd74780000 rw-p 00000000 00:00 0 [stack] -ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall] -Total number of mappings: 719 - - -VM Arguments: -jvm_args: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -java_command: jme3test.vulkan.VulkanHelperTest -java_class_path (initial): /home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/java/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/groovy/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/resources/main:/home/codex/java/prj/jmonkeyengine/jme3-lwjgl3/build/libs/jme3-lwjgl3-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-desktop/build/libs/jme3-desktop-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-effects/build/libs/jme3-effects-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jbullet/build/libs/jme3-jbullet-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jogg/build/libs/jme3-jogg-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-networking/build/libs/jme3-networking-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-niftygui/build/libs/jme3-niftygui-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins/build/libs/jme3-plugins-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-terrain/build/libs/jme3-terrain-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-awt-dialogs/build/libs/jme3-awt-dialogs-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-core/build/libs/jme3-core-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json-gson/build/libs/jme3-plugins-json-gson-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json/build/libs/jme3-plugins-json-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-testdata/build/libs/jme3-testdata-null-SNAPSHOT.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-examples/1.4.3/4a41c559851c0c5a77ba3a9d1ccc8e6e92207dc7/nifty-examples-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjglx/lwjgl3-awt/0.2.3/2be63e81d6b73300d8203ce7235b2660c62eb3ea/lwjgl3-awt-0.2.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/7119f7d0eeb1e5502ff0ca71d2b4d47317da015/lwjgl-glfw-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/99ef08056feb9627f90425a4d2a22cd9fae8e39b/lwjgl-glfw-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/cfa8f1e96d572ed56da5945adf5167628f5eecdb/lwjgl-glfw-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/797e0965709ad180d9b00c88a086dbda15002203/lwjgl-glfw-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/671adf04a6bc4f792af13892e37f804be30b7070/lwjgl-glfw-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/b54023af492b4c2c72451f3a7aa0f385e9969474/lwjgl-glfw-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/82c8d748a654241b5961ddd1c098e8b648e38a48/lwjgl-glfw-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/399b42b491c5dfa6595ae6fd79dcba61b93538a7/lwjgl-glfw-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jawt/3.3.6/43299e222bd7db5e99254a8e620330954b73c2a6/lwjgl-jawt-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/245910eb57f2444429c74e6bf96030e5ec0a6739/lwjgl-jemalloc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/f9da76351e14a695be172d6915c8a7b2905307f/lwjgl-jemalloc-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c86043a342a33e5d32fabf962578580633db3c6e/lwjgl-jemalloc-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/26f8b467dc2e0f3000d608de3564b572bb46f927/lwjgl-jemalloc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c484cae39a718010dbc7931fe5e12664600a13c2/lwjgl-jemalloc-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1bc2e16e70df7f418d668c2984ac8066f1f6f5b1/lwjgl-jemalloc-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/9a42df0f2e9747815490311d7db7b4a046d5f40/lwjgl-jemalloc-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1f828c1fc06792475850162725433adf5ad001c0/lwjgl-jemalloc-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ad313317ff399fd2a7f4dd74716a68cf3976c6ad/lwjgl-openal-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/9c2b9b660e085bb0b47a4453dc0e26f24a5475e4/lwjgl-openal-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/82f693541d69aa125750bf8be9c4194435c56f03/lwjgl-openal-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ef356c04ef141d4efbde07793f31784f1f1a1bae/lwjgl-openal-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/7830af894fa110e65bf5075deb9183efbdbc50f5/lwjgl-openal-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/fd2c17603c63e8d543cb57d1db77ebd4574f3b7a/lwjgl-openal-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/c39f6827f0bd97601fc4e389801d5c813f59a5f2/lwjgl-openal-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/13f692aec4ae4b2d3c468aa0008472175f0ea1e0/lwjgl-openal-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opencl/3.3.6/93fdcea16d27b1466450e38dc28c8e1b4819ec25/lwjgl-opencl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ac2532612a4df374e9a9282bcf8ce2573018ebbb/lwjgl-opengl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/18dc639ebc94aa5202c2157f7490d28997b697c5/lwjgl-opengl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b0ab1d0e315d2fcc50d6cab7e8feaf4688d5d9a0/lwjgl-opengl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b8dc6467fe232d552793c53dc56f9fa8a385299c/lwjgl-opengl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ee815fbf454b916f13c10fff62e513eb09042ef0/lwjgl-opengl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/44de180f79e0b45c9e5bee10ca7540dcb5ddd373/lwjgl-opengl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/59f708eb4bf0be0204bbc9c06807911724673db6/lwjgl-opengl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/fee4fb2ee786af6530b6f9188205a76bc4e05268/lwjgl-opengl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-vulkan/3.3.6/a403e0931b03b138854bb2ba9c48dab646cba6d8/lwjgl-vulkan-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/9d0964fe2b75f64d9dab9839c2b059b7e8f71115/lwjgl-shaderc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/ab69a0e011f057ed25857c97fa3c87f20ab8f670/lwjgl-shaderc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/ce7721d30cfaf47feaed10213e0c43eb55c49d68/lwjgl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9a29b6a22fc5184604b8cb434ee5d5ecc4bfcbee/lwjgl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/7a6f04e02429ba2f4bda9be191347bb7d3c71127/lwjgl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/dc7db8fc4f1e6563867f9155b9a42d9c73d8992f/lwjgl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/2c9d698e76c3d0fe307d94cc6f428038492f25df/lwjgl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9eeb8887b5e3aa672efd2e1b0973ffa5891a3151/lwjgl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/f14e7a5289d2355822f4f83b3fd38d158c939acd/lwjgl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/832e2964ce74e02e768814a29c06d60645115b9a/lwjgl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/jbullet/1.0.3/362f53e8aa981037c2523ac24eb4d9b190a49036/jbullet-1.0.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/javax.vecmath/vecmath/1.5.2/fd17bc3e67f909573dfc039d8e2abecf407c4e27/vecmath-1.5.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/j-ogg-vorbis/1.0.6/a69d1cf62eaf75b71af61f9c23265d278a966735/j-ogg-vorbis-1.0.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-default-controls/1.4.3/2ccafe0182a73da87657ca24b639b6e8c1accd50/nifty-default-controls-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty/1.4.3/fa9ac16e00d1b375d10f58d1c1eb576950ae8c9d/nifty-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-style-black/1.4.3/c20a02dbdeb0bd9d2be258955fceb55c13185a8/nifty-style-black-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.9.1/2cc2131b98ebfb04e2b2c7dfb84431f4045096b/gson-2.9.1.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/stack-alloc/1.0.2/13cbb10c01ec09d0f5879f988946a97998175dfc/stack-alloc-1.0.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/xpp3/xpp3/1.1.4c/9b988ea84b9e4e9f1874e390ce099b8ac12cfff5/xpp3-1.1.4c.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/2.0.2/516c03b21d50a644d538de0f0369c620989cd8f0/jsr305-2.0.2.jar -Launcher Type: SUN_STANDARD - -[Global flags] - intx CICompilerCount = 4 {product} {ergonomic} - uint ConcGCThreads = 2 {product} {ergonomic} - uint G1ConcRefinementThreads = 8 {product} {ergonomic} - size_t G1HeapRegionSize = 4194304 {product} {ergonomic} - size_t InitialHeapSize = 524288000 {product} {ergonomic} - size_t MarkStackSize = 4194304 {product} {ergonomic} - size_t MarkStackSizeMax = 536870912 {product} {ergonomic} - size_t MaxHeapSize = 8388608000 {product} {ergonomic} - size_t MaxNewSize = 5033164800 {product} {ergonomic} - size_t MinHeapDeltaBytes = 4194304 {product} {ergonomic} - size_t MinHeapSize = 8388608 {product} {ergonomic} - uintx NonNMethodCodeHeapSize = 5836800 {pd product} {ergonomic} - uintx NonProfiledCodeHeapSize = 122912768 {pd product} {ergonomic} - uintx ProfiledCodeHeapSize = 122908672 {pd product} {ergonomic} - uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} - bool SegmentedCodeCache = true {product} {ergonomic} - size_t SoftMaxHeapSize = 8388608000 {manageable} {ergonomic} - bool UseCompressedOops = true {product lp64_product} {ergonomic} - bool UseG1GC = true {product} {ergonomic} - -Logging: -Log output configuration: - #0: stdout all=warning uptime,level,tags foldmultilines=false - #1: stderr all=off uptime,level,tags foldmultilines=false - -Environment Variables: -PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin -USERNAME=codex -SHELL=/bin/bash -DISPLAY=:1 -LANG=en_US.UTF-8 - -Active Locale: -LC_ALL=en_US.UTF-8 -LC_COLLATE=en_US.UTF-8 -LC_CTYPE=en_US.UTF-8 -LC_MESSAGES=en_US.UTF-8 -LC_MONETARY=en_US.UTF-8 -LC_NUMERIC=en_US.UTF-8 -LC_TIME=en_US.UTF-8 - -Signal Handlers: - SIGSEGV: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGBUS: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGFPE: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGPIPE: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGXFSZ: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGILL: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGUSR2: SR_handler in libjvm.so, mask=00000000000000000000000000000000, flags=SA_RESTART|SA_SIGINFO, blocked - SIGHUP: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGINT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGTERM: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGQUIT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGTRAP: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - - -Periodic native trim disabled - ---------------- S Y S T E M --------------- - -OS: -DISTRIB_ID=Pop -DISTRIB_RELEASE=22.04 -DISTRIB_CODENAME=jammy -DISTRIB_DESCRIPTION="Pop!_OS 22.04 LTS" -uname: Linux 6.9.3-76060903-generic #202405300957~1726766035~22.04~4092a0e SMP PREEMPT_DYNAMIC Thu S x86_64 -OS uptime: 0 days 15:09 hours -libc: glibc 2.35 NPTL 2.35 -rlimit (soft/hard): STACK 8192k/infinity , CORE 0k/infinity , NPROC 127655/127655 , NOFILE 1048576/1048576 , AS infinity/infinity , CPU infinity/infinity , DATA infinity/infinity , FSIZE infinity/infinity , MEMLOCK 4095956k/4095956k -load average: 1.73 1.04 1.12 - -/proc/meminfo: -MemTotal: 32767656 kB -MemFree: 19696668 kB -MemAvailable: 22349024 kB -Buffers: 331384 kB -Cached: 4282304 kB -SwapCached: 0 kB -Active: 10072868 kB -Inactive: 2105852 kB -Active(anon): 7594960 kB -Inactive(anon): 0 kB -Active(file): 2477908 kB -Inactive(file): 2105852 kB -Unevictable: 15148 kB -Mlocked: 16 kB -SwapTotal: 20970996 kB -SwapFree: 20970996 kB -Zswap: 0 kB -Zswapped: 0 kB -Dirty: 15100 kB -Writeback: 0 kB -AnonPages: 7580348 kB -Mapped: 1830520 kB -Shmem: 29636 kB -KReclaimable: 176052 kB -Slab: 355840 kB -SReclaimable: 176052 kB -SUnreclaim: 179788 kB -KernelStack: 20232 kB -PageTables: 51972 kB -SecPageTables: 0 kB -NFS_Unstable: 0 kB -Bounce: 0 kB -WritebackTmp: 0 kB -CommitLimit: 37354824 kB -Committed_AS: 13813280 kB -VmallocTotal: 34359738367 kB -VmallocUsed: 249800 kB -VmallocChunk: 0 kB -Percpu: 9152 kB -HardwareCorrupted: 0 kB -AnonHugePages: 0 kB -ShmemHugePages: 6144 kB -ShmemPmdMapped: 0 kB -FileHugePages: 0 kB -FilePmdMapped: 0 kB -Unaccepted: 0 kB -HugePages_Total: 0 -HugePages_Free: 0 -HugePages_Rsvd: 0 -HugePages_Surp: 0 -Hugepagesize: 2048 kB -Hugetlb: 0 kB -DirectMap4k: 796472 kB -DirectMap2M: 12736512 kB -DirectMap1G: 19922944 kB - -/sys/kernel/mm/transparent_hugepage/enabled: always [madvise] never -/sys/kernel/mm/transparent_hugepage/hpage_pmd_size: 2097152 -/sys/kernel/mm/transparent_hugepage/shmem_enabled: always within_size advise [never] deny force -/sys/kernel/mm/transparent_hugepage/defrag (defrag/compaction efforts parameter): always defer defer+madvise [madvise] never - -Process Memory: -Virtual Size: 12252976K (peak: 12315664K) -Resident Set Size: 232084K (peak: 232084K) (anon: 114836K, file: 117248K, shmem: 0K) -Swapped out: 0K -C-Heap outstanding allocations: 58799K, retained: 8528K -glibc malloc tunables: (default) - -/proc/sys/kernel/threads-max (system-wide limit on the number of threads): 255310 -/proc/sys/vm/max_map_count (maximum number of memory map areas a process may have): 2147483642 -/proc/sys/vm/swappiness (control to define how aggressively the kernel swaps out anonymous memory): 180 -/proc/sys/kernel/pid_max (system-wide limit on number of process identifiers): 4194304 - -container (cgroup) information: -container_type: cgroupv2 -cpu_cpuset_cpus: not supported -cpu_memory_nodes: not supported -active_processor_count: 8 -cpu_quota: not supported -cpu_period: not supported -cpu_shares: not supported -memory_limit_in_bytes: unlimited -memory_and_swap_limit_in_bytes: unlimited -memory_soft_limit_in_bytes: 0 -memory_usage_in_bytes: 5940604 k -memory_max_usage_in_bytes: not supported -rss_usage_in_bytes: 4078804 k -cache_usage_in_bytes: 1788376 k -memory_swap_current_in_bytes: 0 -memory_swap_max_limit_in_bytes: unlimited -maximum number of tasks: 38296 -current number of tasks: 302 - -Steal ticks since vm start: 0 -Steal ticks percentage since vm start: 0.000 - -CPU: total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 158 stepping 9 microcode 0xf8, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, adx, fma, vzeroupper, clflush, clflushopt, rdtscp, f16c -CPU Model and flags from /proc/cpuinfo: -model name : Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities - -Online cpus: 0-7 -Offline cpus: -BIOS frequency limitation: -Frequency switch latency (ns): 0 -Available cpu frequencies: -Current governor: powersave -Core performance/turbo boost: - -Memory: 4k page, physical 32767656k(22349024k free), swap 20970996k(20970996k free) -Page Sizes: 4k - -vm_info: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58) for linux-amd64 JRE (23.0.2+7-58), built on 2024-11-29T09:34:55Z with gcc 13.2.0 - -END. diff --git a/hs_err_pid84545.log b/hs_err_pid84545.log deleted file mode 100644 index de478df0ec..0000000000 --- a/hs_err_pid84545.log +++ /dev/null @@ -1,1595 +0,0 @@ -# -# A fatal error has been detected by the Java Runtime Environment: -# -# SIGSEGV (0xb) at pc=0x0000732d79c5933a, pid=84545, tid=84592 -# -# JRE version: Java(TM) SE Runtime Environment (23.0.2+7) (build 23.0.2+7-58) -# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64) -# Problematic frame: -# C [libjemalloc.so+0x5933a] -# -# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/codex/java/prj/jmonkeyengine/core.84545) -# -# If you would like to submit a bug report, please visit: -# https://bugreport.java.com/bugreport/crash.jsp -# - ---------------- S U M M A R Y ------------ - -Command Line: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant jme3test.vulkan.VulkanTest - -Host: Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz, 8 cores, 31G, Pop!_OS 22.04 LTS -Time: Thu Jun 26 22:31:30 2025 EDT elapsed time: 7.166298 seconds (0d 0h 0m 7s) - ---------------- T H R E A D --------------- - -Current thread is native thread - -Stack: [0x0000732d78bb2000,0x0000732d78cb2000], sp=0x0000732d78cb08d0, free space=1018k -Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) -C [libjemalloc.so+0x5933a] - -siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000000 - -Registers: -RAX=0x0000000000000000, RBX=0x0000000000000200, RCX=0x0000000000000000, RDX=0x0000732d79c78440 -RSP=0x0000732d78cb08d0, RBP=0x0000732d78cb0db0, RSI=0x0000000000000000, RDI=0x0000732d795c65b0 -R8 =0x0000000000000000, R9 =0x0000000000000000, R10=0x0000000000000000, R11=0x0000732d795c65f0 -R12=0x000000000000003e, R13=0x0000732d78cb0d70, R14=0x000000000000003e, R15=0x0000732d78cb0ad0 -RIP=0x0000732d79c5933a, EFLAGS=0x0000000000010246, CSGSFS=0x002b000000000033, ERR=0x0000000000000004 - TRAPNO=0x000000000000000e - - -Top of Stack: (sp=0x0000732d78cb08d0) -0x0000732d78cb08d0: 0000732da44c43d0 0000732d78cb0960 -0x0000732d78cb08e0: 0000732d78cb0970 0000732daa5c6211 -0x0000732d78cb08f0: 0000000000000005 0000732da44c4588 -0x0000732d78cb0900: 0000000000000005 0000000000000000 -0x0000732d78cb0910: 0000000000000001 0000732da44c4060 -0x0000732d78cb0920: 0000732da44c4588 0000732da44c4060 -0x0000732d78cb0930: 0000000193d3f020 0000732da44c43d0 -0x0000732d78cb0940: 0000000000000000 6432333700000000 -0x0000732d78cb0950: 3035636300000000 d6dd233100000004 -0x0000732d78cb0960: 00000000ffffffff 0000000000000000 -0x0000732d78cb0970: 0000732daa20d4d0 0000732daa5b37c0 -0x0000732d78cb0980: 0000732d78cb09b0 0000732da9c78613 -0x0000732d78cb0990: 0000732d78cb0b88 0000732daa28849a -0x0000732d78cb09a0: 0000000000000000 0000732d78cb0aa0 -0x0000732d78cb09b0: 00000000fbad8001 0000000000000002 -0x0000732d78cb09c0: 0000732da44c4060 0000732d8a77e028 -0x0000732d78cb09d0: 0000732daa41cae8 0000000000000004 -0x0000732d78cb09e0: 0000732d78cb1b58 0000732daa5ccf71 -0x0000732d78cb09f0: 0000000000000005 0000000000000000 -0x0000732d78cb0a00: 0000732daa20d4d0 0000732daa2a53e0 -0x0000732d78cb0a10: 0000000000000000 0000732d78cb0e00 -0x0000732d78cb0a20: 0000732daa41caf8 0000000000000000 -0x0000732d78cb0a30: 0000732daa41cae8 0000732daa5cfdae -0x0000732d78cb0a40: 0000000000000001 000000000000006f -0x0000732d78cb0a50: 0000732d8a7307d0 0000000000000000 -0x0000732d78cb0a60: 0000732c80b80500 0000000000000000 -0x0000732d78cb0a70: 00000000000000ca 3a92cd60ea629989 -0x0000732d78cb0a80: 0000000000000213 0000732daa417300 -0x0000732d78cb0a90: 0000000000000000 0000000000000200 -0x0000732d78cb0aa0: 0000732d78cb0db0 000000000000003e -0x0000732d78cb0ab0: 0000732d78cb0d70 0000732d78cb0ad0 -0x0000732d78cb0ac0: 0000732c800024d0 0000732d79c592f8 - -Instructions: (pc=0x0000732d79c5933a) -0x0000732d79c5923a: f4 66 41 c1 ec 03 41 0f b7 d4 2b 95 40 ff ff ff -0x0000732d79c5924a: 48 c1 e2 03 e8 bd f0 fa ff 49 8b 4d 00 41 0f b7 -0x0000732d79c5925a: 7d 14 48 01 d9 89 fe 66 41 2b 7d 10 29 ce 66 c1 -0x0000732d79c5926a: ef 03 49 89 4d 00 66 c1 ee 03 66 39 fe 73 0c 4c -0x0000732d79c5927a: 8b bd 50 ff ff ff 66 41 89 4f 10 48 8d 65 d8 5b -0x0000732d79c5928a: 41 5c 41 5d 41 5e 41 5f 5d c3 29 d8 48 89 a5 48 -0x0000732d79c5929a: ff ff ff 4c 89 ff 44 0f b7 e0 44 0f b7 c0 66 89 -0x0000732d79c592aa: 45 c0 45 8d 74 24 01 4e 8d 1c c5 00 00 00 00 44 -0x0000732d79c592ba: 89 a5 40 ff ff ff 4a 8d 1c f5 0f 00 00 00 4c 29 -0x0000732d79c592ca: da 4c 89 9d 38 ff ff ff 81 e3 f0 ff 1f 00 4c 8d -0x0000732d79c592da: 14 16 4c 89 c2 48 8b b5 30 ff ff ff 48 29 dc 4c -0x0000732d79c592ea: 89 55 c8 49 89 e6 4c 89 f1 e8 28 ed ff ff 48 29 -0x0000732d79c592fa: dc 48 89 65 80 45 85 e4 0f 84 07 ff ff ff 44 8b -0x0000732d79c5930a: 8d 2c ff ff ff c7 45 b8 00 00 00 00 4c 89 7d b0 -0x0000732d79c5931a: 4d 89 f7 45 89 e6 4b 8d 0c 89 4c 89 4d a0 48 c1 -0x0000732d79c5932a: e1 03 48 89 4d 88 49 8b 37 48 8d 15 06 f1 01 00 -0x0000732d79c5933a: 44 8b 2e 41 81 e5 ff 0f 00 00 44 89 e8 4c 8b 24 -0x0000732d79c5934a: c2 4c 89 65 a8 4c 8b 06 48 8d 3d 67 72 02 00 4c -0x0000732d79c5935a: 8b 5d a0 49 c1 e8 26 41 83 e0 3f 46 8b 14 9f 44 -0x0000732d79c5936a: 89 c3 44 89 45 bc 4c 8d 0c dd 00 00 00 00 49 29 -0x0000732d79c5937a: d9 49 c1 e1 05 4d 01 ca 4d 01 e2 49 8d 7a 48 4c -0x0000732d79c5938a: 89 55 90 48 89 7d 98 e8 6a f0 fa ff 4c 8b 4d 90 -0x0000732d79c5939a: 85 c0 0f 85 ce 03 00 00 49 8d 49 40 48 89 4d 90 -0x0000732d79c593aa: 49 8b 1f 48 8b 55 a0 45 8d 5e ff 45 31 e4 48 8d -0x0000732d79c593ba: 05 a1 72 02 00 41 ba 01 00 00 00 41 83 e3 01 48 -0x0000732d79c593ca: 8b 3b 44 8b 04 90 48 8b 45 c8 89 fe 81 e6 ff 0f -0x0000732d79c593da: 00 00 48 8b 08 41 39 f5 0f 84 c0 02 00 00 4a 89 -0x0000732d79c593ea: 0c e0 4b 89 1c e7 41 bc 01 00 00 00 bb 01 00 00 -0x0000732d79c593fa: 00 41 83 fe 01 0f 86 51 02 00 00 45 85 db 74 38 -0x0000732d79c5940a: 49 8b 57 08 48 8b 48 08 48 8b 32 89 f7 81 e7 ff -0x0000732d79c5941a: 0f 00 00 41 39 fd 0f 84 6a 04 00 00 45 89 e3 41 -0x0000732d79c5942a: 83 c4 01 4a 89 0c d8 4b 89 14 df 48 83 c3 01 41 - - - ---------------- P R O C E S S --------------- - -VM state: not at safepoint (normal execution) - -VM Mutex/Monitor currently owned by a thread: None - -Heap address: 0x000000060c000000, size: 8000 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 - -CDS archive(s) mapped at: [0x0000732d22000000-0x0000732d22d91000-0x0000732d22d91000), size 14225408, SharedBaseAddress: 0x0000732d22000000, ArchiveRelocationMode: 1. -Compressed class space mapped at: 0x0000732d23000000-0x0000732d63000000, reserved size: 1073741824 -Narrow klass base: 0x0000732d22000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 - -GC Precious Log: - - -Heap: - garbage-first heap total reserved 8192000K, committed 28672K, used 13653K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 3 young (12288K), 1 survivors (4096K) - Metaspace used 22010K, committed 22336K, reserved 1114112K - class space used 2288K, committed 2432K, reserved 1048576K - -Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, TAMS=top-at-mark-start, PB=parsable bottom -| 0|0x000000060c000000, 0x000000060c367620, 0x000000060c400000| 85%| O| |TAMS 0x000000060c000000| PB 0x000000060c000000| Untracked | 0 -| 1|0x000000060c400000, 0x000000060c6be0b8, 0x000000060c800000| 68%| O| |TAMS 0x000000060c400000| PB 0x000000060c400000| Untracked | 0 -| 2|0x000000060c800000, 0x000000060c800000, 0x000000060cc00000| 0%| F| |TAMS 0x000000060c800000| PB 0x000000060c800000| Untracked | 0 -| 3|0x000000060cc00000, 0x000000060cc00000, 0x000000060d000000| 0%| F| |TAMS 0x000000060cc00000| PB 0x000000060cc00000| Untracked | 0 -| 4|0x000000060d000000, 0x000000060d1d0e28, 0x000000060d400000| 45%| E| |TAMS 0x000000060d000000| PB 0x000000060d000000| Complete | 0 -| 5|0x000000060d400000, 0x000000060d55ef70, 0x000000060d800000| 34%| S|CS|TAMS 0x000000060d400000| PB 0x000000060d400000| Complete | 0 -| 6|0x000000060d800000, 0x000000060dc00000, 0x000000060dc00000|100%| E|CS|TAMS 0x000000060d800000| PB 0x000000060d800000| Complete | 0 - -Card table byte_map: [0x0000732d8a800000,0x0000732d8b7a0000] _byte_map_base: 0x0000732d877a0000 - -Marking Bits: (CMBitMap*) 0x0000732da4059190 - Bits: [0x0000732d82a00000, 0x0000732d8a700000) - -Polling page: 0x0000732daa59f000 - -Metaspace: - -Usage: - Non-class: 19.26 MB used. - Class: 2.24 MB used. - Both: 21.49 MB used. - -Virtual space: - Non-class space: 64.00 MB reserved, 19.44 MB ( 30%) committed, 1 nodes. - Class space: 1.00 GB reserved, 2.38 MB ( <1%) committed, 1 nodes. - Both: 1.06 GB reserved, 21.81 MB ( 2%) committed. - -Chunk freelists: - Non-Class: 11.98 MB - Class: 13.45 MB - Both: 25.44 MB - -MaxMetaspaceSize: unlimited -CompressedClassSpaceSize: 1.00 GB -Initial GC threshold: 21.00 MB -Current GC threshold: 27.12 MB -CDS: on - - commit_granule_bytes: 65536. - - commit_granule_words: 8192. - - virtual_space_node_default_size: 8388608. - - enlarge_chunks_in_place: 1. - - use_allocation_guard: 0. - - -Internal statistics: - -num_allocs_failed_limit: 0. -num_arena_births: 334. -num_arena_deaths: 0. -num_vsnodes_births: 2. -num_vsnodes_deaths: 0. -num_space_committed: 349. -num_space_uncommitted: 0. -num_chunks_returned_to_freelist: 0. -num_chunks_taken_from_freelist: 687. -num_chunk_merges: 0. -num_chunk_splits: 435. -num_chunks_enlarged: 279. -num_inconsistent_stats: 0. - -CodeHeap 'non-profiled nmethods': size=120032Kb used=679Kb max_used=679Kb free=119352Kb - bounds [0x0000732d942c8000, 0x0000732d94538000, 0x0000732d9b800000] -CodeHeap 'profiled nmethods': size=120028Kb used=2651Kb max_used=2651Kb free=117376Kb - bounds [0x0000732d8c800000, 0x0000732d8caa0000, 0x0000732d93d37000] -CodeHeap 'non-nmethods': size=5700Kb used=2459Kb max_used=2482Kb free=3240Kb - bounds [0x0000732d93d37000, 0x0000732d93fb7000, 0x0000732d942c8000] -CodeCache: size=245760Kb, used=5789Kb, max_used=5812Kb, free=239968Kb - total_blobs=3566, nmethods=2132, adapters=1341, full_count=0 -Compilation: enabled, stopped_count=0, restarted_count=0 - -Compilation events (20 events): -Event: 7.160 Thread 0x0000732da41405c0 2273 3 java.util.regex.Pattern::newCharProperty (39 bytes) -Event: 7.160 Thread 0x0000732da41405c0 nmethod 2273 0x0000732d8ca93e88 code [0x0000732d8ca94020, 0x0000732d8ca948c0] -Event: 7.160 Thread 0x0000732da41405c0 2268 3 java.util.regex.Pattern::nextEscaped (19 bytes) -Event: 7.160 Thread 0x0000732da41405c0 nmethod 2268 0x0000732d8ca94908 code [0x0000732d8ca94a20, 0x0000732d8ca94b58] -Event: 7.160 Thread 0x0000732da41405c0 2269 3 java.util.ArrayList$SubList::toArray (79 bytes) -Event: 7.160 Thread 0x0000732da41405c0 nmethod 2269 0x0000732d8ca94c08 code [0x0000732d8ca94d80, 0x0000732d8ca953f0] -Event: 7.160 Thread 0x0000732da41405c0 2270 3 java.lang.invoke.Invokers$Holder::linkToTargetMethod (10 bytes) -Event: 7.161 Thread 0x0000732da41405c0 nmethod 2270 0x0000732d8ca95488 code [0x0000732d8ca955c0, 0x0000732d8ca959d0] -Event: 7.161 Thread 0x0000732da41405c0 2271 3 java.util.regex.Pattern::qtype (39 bytes) -Event: 7.161 Thread 0x0000732da41405c0 nmethod 2271 0x0000732d8ca95a08 code [0x0000732d8ca95b60, 0x0000732d8ca95dc8] -Event: 7.161 Thread 0x0000732da41405c0 2266 3 javax.imageio.ImageReader::processImageUpdate (73 bytes) -Event: 7.161 Thread 0x0000732da41405c0 nmethod 2266 0x0000732d8ca95e08 code [0x0000732d8ca95f80, 0x0000732d8ca964f0] -Event: 7.161 Thread 0x0000732da41405c0 2276 3 java.lang.invoke.DirectMethodHandle::makeAllocator (132 bytes) -Event: 7.161 Thread 0x0000732da41405c0 nmethod 2276 0x0000732d8ca96508 code [0x0000732d8ca966a0, 0x0000732d8ca96b08] -Event: 7.163 Thread 0x0000732ce839beb0 nmethod 2256% 0x0000732d9436f808 code [0x0000732d9436f940, 0x0000732d943702c8] -Event: 7.163 Thread 0x0000732ce839beb0 2257 4 com.sun.imageio.plugins.png.PNGImageReader::paethPredictor (57 bytes) -Event: 7.164 Thread 0x0000732ce839beb0 nmethod 2257 0x0000732d94370308 code [0x0000732d94370400, 0x0000732d943704f8] -Event: 7.164 Thread 0x0000732ce839beb0 2275 4 java.lang.String::subSequence (7 bytes) -Event: 7.165 Thread 0x0000732da41405c0 2277 3 java.io.BufferedWriter::min (9 bytes) -Event: 7.166 Thread 0x0000732da41405c0 nmethod 2277 0x0000732d8ca96b88 code [0x0000732d8ca96ca0, 0x0000732d8ca96e00] - -GC Heap History (8 events): -Event: 6.261 GC heap before -{Heap before GC invocations=0 (full 0): - garbage-first heap total reserved 8192000K, committed 516096K, used 21627K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 6 young (24576K), 0 survivors (0K) - Metaspace used 16388K, committed 16640K, reserved 1114112K - class space used 1822K, committed 1920K, reserved 1048576K -} -Event: 6.272 GC heap after -{Heap after GC invocations=1 (full 1): - garbage-first heap total reserved 8192000K, committed 98304K, used 6293K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 0 young (0K), 0 survivors (0K) - Metaspace used 16388K, committed 16640K, reserved 1114112K - class space used 1822K, committed 1920K, reserved 1048576K -} -Event: 6.272 GC heap before -{Heap before GC invocations=1 (full 1): - garbage-first heap total reserved 8192000K, committed 98304K, used 6293K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 0 young (0K), 0 survivors (0K) - Metaspace used 16388K, committed 16640K, reserved 1114112K - class space used 1822K, committed 1920K, reserved 1048576K -} -Event: 6.284 GC heap after -{Heap after GC invocations=2 (full 2): - garbage-first heap total reserved 8192000K, committed 28672K, used 6293K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 0 young (0K), 0 survivors (0K) - Metaspace used 16388K, committed 16640K, reserved 1114112K - class space used 1822K, committed 1920K, reserved 1048576K -} -Event: 6.789 GC heap before -{Heap before GC invocations=2 (full 2): - garbage-first heap total reserved 8192000K, committed 28672K, used 14485K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 2 young (8192K), 0 survivors (0K) - Metaspace used 18736K, committed 19008K, reserved 1114112K - class space used 2041K, committed 2176K, reserved 1048576K -} -Event: 6.790 GC heap after -{Heap after GC invocations=3 (full 2): - garbage-first heap total reserved 8192000K, committed 28672K, used 7454K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 1 young (4096K), 1 survivors (4096K) - Metaspace used 18736K, committed 19008K, reserved 1114112K - class space used 2041K, committed 2176K, reserved 1048576K -} -Event: 6.861 GC heap before -{Heap before GC invocations=3 (full 2): - garbage-first heap total reserved 8192000K, committed 28672K, used 7454K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 2 young (8192K), 1 survivors (4096K) - Metaspace used 20171K, committed 20480K, reserved 1114112K - class space used 2173K, committed 2304K, reserved 1048576K -} -Event: 6.862 GC heap after -{Heap after GC invocations=4 (full 2): - garbage-first heap total reserved 8192000K, committed 28672K, used 7697K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 1 young (4096K), 1 survivors (4096K) - Metaspace used 20171K, committed 20480K, reserved 1114112K - class space used 2173K, committed 2304K, reserved 1048576K -} - -Dll operation events (12 events): -Event: 0.001 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -Event: 0.017 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -Event: 0.017 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -Event: 0.028 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -Event: 0.030 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -Event: 0.077 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -Event: 0.128 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -Event: 0.134 Loaded shared library /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -Event: 0.231 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -Event: 0.233 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -Event: 0.259 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so -Event: 0.327 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so - -Deoptimization events (20 events): -Event: 6.494 Thread 0x0000732da452cc50 Uncommon trap: trap_request=0xffffffde fr.pc=0x0000732d94355db0 relative=0x0000000000000110 -Event: 6.494 Thread 0x0000732da452cc50 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000732d94355db0 method=jdk.internal.misc.Unsafe.allocateUninitializedArray(Ljava/lang/Class;I)Ljava/lang/Object; @ 51 c2 -Event: 6.494 Thread 0x0000732da452cc50 DEOPT PACKING pc=0x0000732d94355db0 sp=0x0000732d78caf430 -Event: 6.494 Thread 0x0000732da452cc50 DEOPT UNPACKING pc=0x0000732d93d8abf9 sp=0x0000732d78caf3c8 mode 2 -Event: 6.507 Thread 0x0000732da452cc50 Uncommon trap: trap_request=0xffffff45 fr.pc=0x0000732d9434d8e4 relative=0x0000000000000ee4 -Event: 6.507 Thread 0x0000732da452cc50 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000732d9434d8e4 method=java.util.concurrent.ConcurrentHashMap.putVal(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object; @ 401 c2 -Event: 6.507 Thread 0x0000732da452cc50 DEOPT PACKING pc=0x0000732d9434d8e4 sp=0x0000732d78cb0300 -Event: 6.507 Thread 0x0000732da452cc50 DEOPT UNPACKING pc=0x0000732d93d8abf9 sp=0x0000732d78cb0280 mode 2 -Event: 6.765 Thread 0x0000732da452cc50 Uncommon trap: trap_request=0xffffff76 fr.pc=0x0000732d9434e568 relative=0x00000000000001a8 -Event: 6.765 Thread 0x0000732da452cc50 Uncommon trap: reason=predicate action=maybe_recompile pc=0x0000732d9434e568 method=java.util.regex.Pattern$BmpCharPropertyGreedy.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 12 c2 -Event: 6.765 Thread 0x0000732da452cc50 DEOPT PACKING pc=0x0000732d9434e568 sp=0x0000732d78cb00e0 -Event: 6.765 Thread 0x0000732da452cc50 DEOPT UNPACKING pc=0x0000732d93d8abf9 sp=0x0000732d78cb00b8 mode 2 -Event: 6.839 Thread 0x0000732da452cc50 Uncommon trap: trap_request=0xffffff6e fr.pc=0x0000732d94362168 relative=0x0000000000000148 -Event: 6.839 Thread 0x0000732da452cc50 Uncommon trap: reason=loop_limit_check action=maybe_recompile pc=0x0000732d94362168 method=java.util.regex.Pattern$Start.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 34 c2 -Event: 6.839 Thread 0x0000732da452cc50 DEOPT PACKING pc=0x0000732d94362168 sp=0x0000732d78cb00a0 -Event: 6.839 Thread 0x0000732da452cc50 DEOPT UNPACKING pc=0x0000732d93d8abf9 sp=0x0000732d78cb0050 mode 2 -Event: 7.028 Thread 0x0000732da452cc50 DEOPT PACKING pc=0x0000732d8ca29a9f sp=0x0000732d78caf7c0 -Event: 7.028 Thread 0x0000732da452cc50 DEOPT UNPACKING pc=0x0000732d93d8b30f sp=0x0000732d78caec00 mode 0 -Event: 7.030 Thread 0x0000732da452cc50 DEOPT PACKING pc=0x0000732d8c8b4bd4 sp=0x0000732d78caf790 -Event: 7.030 Thread 0x0000732da452cc50 DEOPT UNPACKING pc=0x0000732d93d8b30f sp=0x0000732d78caec48 mode 0 - -Classes loaded (20 events): -Event: 6.819 Loading class java/awt/image/PixelInterleavedSampleModel -Event: 6.819 Loading class java/awt/image/ComponentSampleModel -Event: 6.819 Loading class java/awt/image/ComponentSampleModel done -Event: 6.819 Loading class java/awt/image/PixelInterleavedSampleModel done -Event: 6.819 Loading class javax/imageio/ImageTypeSpecifier$Packed -Event: 6.819 Loading class javax/imageio/ImageTypeSpecifier$Packed done -Event: 6.820 Loading class java/awt/image/DataBufferByte -Event: 6.820 Loading class java/awt/image/DataBufferByte done -Event: 6.820 Loading class sun/awt/image/ByteInterleavedRaster -Event: 6.820 Loading class sun/awt/image/ByteComponentRaster -Event: 6.820 Loading class sun/awt/image/ByteComponentRaster done -Event: 6.820 Loading class sun/awt/image/ByteInterleavedRaster done -Event: 6.820 Loading class sun/awt/image/ShortComponentRaster -Event: 6.820 Loading class sun/awt/image/ShortComponentRaster done -Event: 6.904 Loading class java/util/function/LongFunction -Event: 6.904 Loading class java/util/function/LongFunction done -Event: 7.165 Loading class java/lang/Throwable$WrappedPrintStream -Event: 7.166 Loading class java/lang/Throwable$PrintStreamOrWriter -Event: 7.166 Loading class java/lang/Throwable$PrintStreamOrWriter done -Event: 7.166 Loading class java/lang/Throwable$WrappedPrintStream done - -Classes unloaded (0 events): -No events - -Classes redefined (0 events): -No events - -Internal exceptions (20 events): -Event: 0.618 Thread 0x0000732da46242b0 Exception (0x000000062a0b8978) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 6.229 Thread 0x0000732da46242b0 Exception (0x000000062a35ef78) -thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] -Event: 6.256 Thread 0x0000732da46242b0 Exception (0x0000000629cc8990) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 6.300 Thread 0x0000732da402d0f0 Exception (0x000000060d99d498) -thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] -Event: 6.311 Thread 0x0000732da402d0f0 Exception (0x000000060d9fc958) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 6.312 Thread 0x0000732da402d0f0 Exception (0x000000060da0aa68) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 6.494 Thread 0x0000732da452cc50 Exception (0x000000060d51fda0) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 863] -Event: 6.765 Thread 0x0000732da452cc50 Exception (0x000000060d702e88) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 6.855 Thread 0x0000732da452cc50 Exception (0x000000060db93d20) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 6.860 Thread 0x0000732da452cc50 Exception (0x000000060dbbc810) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 6.901 Thread 0x0000732da452cc50 Exception (0x000000060d8c45d8) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 6.901 Thread 0x0000732da452cc50 Exception (0x000000060d8c9f48) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 6.918 Thread 0x0000732da452cc50 Exception (0x000000060d981f48) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 6.919 Thread 0x0000732da452cc50 Exception (0x000000060d9947c0) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 6.919 Thread 0x0000732da452cc50 Exception (0x000000060d9989b8) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 6.919 Thread 0x0000732da452cc50 Exception (0x000000060d99c078) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 6.926 Thread 0x0000732da452cc50 Exception (0x000000060da002d8) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 6.960 Thread 0x0000732da452cc50 Exception (0x000000060da50dd8) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 6.966 Thread 0x0000732da452cc50 Exception (0x000000060da6b6a8) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 6.984 Thread 0x0000732da452cc50 Exception (0x000000060daab778) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] - -VM Operations (20 events): -Event: 0.130 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.130 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.244 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.244 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.261 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.261 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.269 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.269 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.648 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.648 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 6.261 Executing VM operation: G1CollectFull (System.gc()) -Event: 6.272 Executing VM operation: G1CollectFull (System.gc()) done -Event: 6.272 Executing VM operation: G1CollectFull (System.gc()) -Event: 6.284 Executing VM operation: G1CollectFull (System.gc()) done -Event: 6.308 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 6.308 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 6.789 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) -Event: 6.790 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done -Event: 6.861 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) -Event: 6.862 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done - -Memory protections (20 events): -Event: 0.016 Protecting memory [0x0000732d7a600000,0x0000732d7a604000] with protection modes 0 -Event: 0.016 Protecting memory [0x0000732d7a500000,0x0000732d7a504000] with protection modes 0 -Event: 0.016 Protecting memory [0x0000732d7a400000,0x0000732d7a404000] with protection modes 0 -Event: 0.016 Protecting memory [0x0000732d7a300000,0x0000732d7a304000] with protection modes 0 -Event: 0.024 Protecting memory [0x0000732d7a200000,0x0000732d7a204000] with protection modes 0 -Event: 0.025 Protecting memory [0x0000732d7a100000,0x0000732d7a104000] with protection modes 0 -Event: 0.056 Protecting memory [0x0000732d7a000000,0x0000732d7a004000] with protection modes 0 -Event: 0.282 Protecting memory [0x0000732d790b2000,0x0000732d790b6000] with protection modes 0 -Event: 0.283 Protecting memory [0x0000732d78fb2000,0x0000732d78fb6000] with protection modes 0 -Event: 0.286 Protecting memory [0x0000732d78eb2000,0x0000732d78eb6000] with protection modes 0 -Event: 0.286 Protecting memory [0x0000732d78db2000,0x0000732d78db6000] with protection modes 0 -Event: 0.328 Protecting memory [0x0000732d78cb2000,0x0000732d78cb6000] with protection modes 0 -Event: 0.554 Protecting memory [0x0000732d7a000000,0x0000732d7a004000] with protection modes 0 -Event: 0.646 Protecting memory [0x0000732d78bb2000,0x0000732d78bb6000] with protection modes 0 -Event: 0.675 Protecting memory [0x0000732d789b2000,0x0000732d789b6000] with protection modes 0 -Event: 6.235 Protecting memory [0x0000732d7a000000,0x0000732d7a004000] with protection modes 0 -Event: 6.316 Protecting memory [0x0000732d78bb2000,0x0000732d78bb6000] with protection modes 0 -Event: 6.316 Protecting memory [0x0000732daa100000,0x0000732daa104000] with protection modes 0 -Event: 6.782 Protecting memory [0x0000732d7a000000,0x0000732d7a004000] with protection modes 0 -Event: 7.155 Protecting memory [0x0000732d0bf00000,0x0000732d0bf04000] with protection modes 0 - -Nmethod flushes (20 events): -Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c882b88 -Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c88e488 -Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c88e988 -Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c88ff88 -Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c890588 -Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c8de808 -Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c8ded88 -Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c8e0688 -Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c8f1008 -Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c916b08 -Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c91cf88 -Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c939288 -Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c946288 -Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c946588 -Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c949088 -Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c984c08 -Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c984f88 -Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c9acf08 -Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c9ad208 -Event: 6.276 Thread 0x0000732da412e2f0 flushing nmethod 0x0000732d8c9bd208 - -Events (20 events): -Event: 0.056 Thread 0x0000732da41405c0 Thread added: 0x0000732ce80a2a30 -Event: 0.282 Thread 0x0000732da402d0f0 Thread added: 0x0000732da461f430 -Event: 0.283 Thread 0x0000732da402d0f0 Thread added: 0x0000732da4620e10 -Event: 0.286 Thread 0x0000732da402d0f0 Thread added: 0x0000732da46231a0 -Event: 0.286 Thread 0x0000732da402d0f0 Thread added: 0x0000732da46242b0 -Event: 0.328 Thread 0x0000732da46242b0 Thread added: 0x0000732cbc043cf0 -Event: 0.548 Thread 0x0000732ce80a2a30 Thread exited: 0x0000732ce80a2a30 -Event: 0.554 Thread 0x0000732da46242b0 Thread added: 0x0000732cbc061540 -Event: 0.646 Thread 0x0000732da41405c0 Thread added: 0x0000732ce8301fc0 -Event: 0.675 Thread 0x0000732da46242b0 Thread added: 0x0000732cbc0bd030 -Event: 1.089 Thread 0x0000732ce8301fc0 Thread exited: 0x0000732ce8301fc0 -Event: 5.583 Thread 0x0000732cbc061540 Thread exited: 0x0000732cbc061540 -Event: 6.235 Thread 0x0000732da41405c0 Thread added: 0x0000732ce80862d0 -Event: 6.316 Thread 0x0000732da402d0f0 Thread added: 0x0000732da452cc50 -Event: 6.316 Thread 0x0000732da402d0f0 Thread exited: 0x0000732da402d0f0 -Event: 6.316 Thread 0x0000732da402d0f0 Thread added: 0x0000732da402d0f0 -Event: 6.457 Thread 0x0000732ce80862d0 Thread exited: 0x0000732ce80862d0 -Event: 6.782 Thread 0x0000732da452cc50 Thread added: 0x0000732c8057f230 -Event: 7.155 Thread 0x0000732da41405c0 Thread added: 0x0000732ce839beb0 -Event: 7.166 Thread 0x0000732da452cc50 Thread exited: 0x0000732da452cc50 - - -Dynamic libraries: -60c000000-60dc00000 rw-p 00000000 00:00 0 -60dc00000-800000000 ---p 00000000 00:00 0 -60f647cf9000-60f647cfa000 r-xp 00000000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java -60f647cfb000-60f647cfc000 r--p 00001000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java -60f647cfc000-60f647cfd000 rw-p 00002000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java -60f655b23000-60f655b6c000 rw-p 00000000 00:00 0 [heap] -732c34000000-732c34075000 rw-p 00000000 00:00 0 -732c34075000-732c38000000 ---p 00000000 00:00 0 -732c38000000-732c38021000 rw-p 00000000 00:00 0 -732c38021000-732c3c000000 ---p 00000000 00:00 0 -732c40000000-732c40021000 rw-p 00000000 00:00 0 -732c40021000-732c44000000 ---p 00000000 00:00 0 -732c44000000-732c44021000 rw-p 00000000 00:00 0 -732c44021000-732c48000000 ---p 00000000 00:00 0 -732c4c000000-732c4c021000 rw-p 00000000 00:00 0 -732c4c021000-732c50000000 ---p 00000000 00:00 0 -732c50000000-732c50021000 rw-p 00000000 00:00 0 -732c50021000-732c54000000 ---p 00000000 00:00 0 -732c58000000-732c58021000 rw-p 00000000 00:00 0 -732c58021000-732c5c000000 ---p 00000000 00:00 0 -732c5c000000-732c5c021000 rw-p 00000000 00:00 0 -732c5c021000-732c60000000 ---p 00000000 00:00 0 -732c64000000-732c64021000 rw-p 00000000 00:00 0 -732c64021000-732c68000000 ---p 00000000 00:00 0 -732c68000000-732c680c8000 rw-p 00000000 00:00 0 -732c680c8000-732c6c000000 ---p 00000000 00:00 0 -732c70000000-732c70021000 rw-p 00000000 00:00 0 -732c70021000-732c74000000 ---p 00000000 00:00 0 -732c75000000-732c7b712000 r-xp 00000000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 -732c7b712000-732c7bf30000 r--p 06711000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 -732c7bf30000-732c7bf76000 rw-p 06f2f000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 -732c7bf76000-732c7bff2000 rw-p 00000000 00:00 0 -732c7c000000-732c7c021000 rw-p 00000000 00:00 0 -732c7c021000-732c80000000 ---p 00000000 00:00 0 -732c80000000-732c83148000 rw-p 00000000 00:00 0 -732c83148000-732c84000000 ---p 00000000 00:00 0 -732c88000000-732c88021000 rw-p 00000000 00:00 0 -732c88021000-732c8c000000 ---p 00000000 00:00 0 -732c8c000000-732c8c021000 rw-p 00000000 00:00 0 -732c8c021000-732c90000000 ---p 00000000 00:00 0 -732c94000000-732c94021000 rw-p 00000000 00:00 0 -732c94021000-732c98000000 ---p 00000000 00:00 0 -732c98000000-732c98021000 rw-p 00000000 00:00 0 -732c98021000-732c9c000000 ---p 00000000 00:00 0 -732ca0000000-732ca0021000 rw-p 00000000 00:00 0 -732ca0021000-732ca4000000 ---p 00000000 00:00 0 -732ca4000000-732ca4021000 rw-p 00000000 00:00 0 -732ca4021000-732ca8000000 ---p 00000000 00:00 0 -732cac000000-732cac021000 rw-p 00000000 00:00 0 -732cac021000-732cb0000000 ---p 00000000 00:00 0 -732cb0000000-732cb00c1000 rw-p 00000000 00:00 0 -732cb00c1000-732cb4000000 ---p 00000000 00:00 0 -732cb8000000-732cb8021000 rw-p 00000000 00:00 0 -732cb8021000-732cbc000000 ---p 00000000 00:00 0 -732cbc000000-732cbc171000 rw-p 00000000 00:00 0 -732cbc171000-732cc0000000 ---p 00000000 00:00 0 -732cc4000000-732cc4021000 rw-p 00000000 00:00 0 -732cc4021000-732cc8000000 ---p 00000000 00:00 0 -732cc8000000-732cc8021000 rw-p 00000000 00:00 0 -732cc8021000-732ccc000000 ---p 00000000 00:00 0 -732cd0000000-732cd0021000 rw-p 00000000 00:00 0 -732cd0021000-732cd4000000 ---p 00000000 00:00 0 -732cd4000000-732cd437e000 rw-p 00000000 00:00 0 -732cd437e000-732cd8000000 ---p 00000000 00:00 0 -732cdc000000-732cdc021000 rw-p 00000000 00:00 0 -732cdc021000-732ce0000000 ---p 00000000 00:00 0 -732ce0000000-732ce0021000 rw-p 00000000 00:00 0 -732ce0021000-732ce4000000 ---p 00000000 00:00 0 -732ce6400000-732ce6525000 r--p 00000000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -732ce6525000-732ce69e5000 r-xp 00125000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -732ce69e5000-732ce6b19000 r--p 005e5000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -732ce6b19000-732ce6b1a000 ---p 00719000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -732ce6b1a000-732ce6b7d000 r--p 00719000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -732ce6b7d000-732ce6b87000 rw-p 0077c000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -732ce6b87000-732ce6b98000 rw-p 00000000 00:00 0 -732ce6c00000-732ce6c01000 ---p 00000000 00:00 0 -732ce6c01000-732ce7401000 rw-p 00000000 00:00 0 -732ce7600000-732ce7601000 ---p 00000000 00:00 0 -732ce7601000-732ce7e01000 rw-p 00000000 00:00 0 -732ce8000000-732ce83a5000 rw-p 00000000 00:00 0 -732ce83a5000-732cec000000 ---p 00000000 00:00 0 -732cec000000-732cec686000 rw-p 00000000 00:00 0 -732cec686000-732cf0000000 ---p 00000000 00:00 0 -732cf0200000-732cf0201000 ---p 00000000 00:00 0 -732cf0201000-732cf0a01000 rw-p 00000000 00:00 0 -732cf0c00000-732cf0c01000 ---p 00000000 00:00 0 -732cf0c01000-732cf1401000 rw-p 00000000 00:00 0 -732cf1600000-732cf1601000 ---p 00000000 00:00 0 -732cf1601000-732cf1e01000 rw-p 00000000 00:00 0 -732cf2000000-732cf2cf5000 r--p 00000000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -732cf2cf5000-732cf36d8000 r-xp 00cf5000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -732cf36d8000-732cf3ae9000 r--p 016d8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -732cf3ae9000-732cf3f6b000 r--p 01ae8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -732cf3f6b000-732cf3f73000 rw-p 01f6a000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -732cf3f73000-732cf3f7e000 rw-p 00000000 00:00 0 -732cf4000000-732cf4021000 rw-p 00000000 00:00 0 -732cf4021000-732cf8000000 ---p 00000000 00:00 0 -732cf8000000-732cf8021000 rw-p 00000000 00:00 0 -732cf8021000-732cfc000000 ---p 00000000 00:00 0 -732cfc400000-732cfc401000 ---p 00000000 00:00 0 -732cfc401000-732cfcc01000 rw-p 00000000 00:00 0 -732cfce00000-732cfce2f000 r--p 00000000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -732cfce2f000-732cfd502000 r-xp 0002f000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -732cfd502000-732cfd624000 r--p 00702000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -732cfd624000-732cfd635000 r--p 00823000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -732cfd635000-732cfd6b3000 rw-p 00834000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -732cfd6b3000-732cfd6c7000 rw-p 00000000 00:00 0 -732cfd800000-732cfd801000 ---p 00000000 00:00 0 -732cfd801000-732cfe001000 rw-p 00000000 00:00 0 -732cfe200000-732cfe201000 ---p 00000000 00:00 0 -732cfe201000-732cfea01000 rw-p 00000000 00:00 0 -732cfec00000-732cfec01000 ---p 00000000 00:00 0 -732cfec01000-732cff401000 rw-p 00000000 00:00 0 -732cff600000-732cff601000 ---p 00000000 00:00 0 -732cff601000-732cffe01000 rw-p 00000000 00:00 0 -732d00000000-732d00021000 rw-p 00000000 00:00 0 -732d00021000-732d04000000 ---p 00000000 00:00 0 -732d04000000-732d04021000 rw-p 00000000 00:00 0 -732d04021000-732d08000000 ---p 00000000 00:00 0 -732d08400000-732d08422000 r-xp 00000000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -732d08422000-732d08621000 ---p 00022000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -732d08621000-732d08629000 r--p 00021000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -732d08629000-732d0862a000 rw-p 00029000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -732d0862a000-732d0862b000 rw-p 00000000 00:00 0 -732d08800000-732d08a00000 rw-s 00000000 00:06 1022 /dev/nvidia0 -732d08a00000-732d08a01000 ---p 00000000 00:00 0 -732d08a01000-732d09201000 rw-p 00000000 00:00 0 -732d09400000-732d09401000 ---p 00000000 00:00 0 -732d09401000-732d09c01000 rw-p 00000000 00:00 0 -732d09e00000-732d09e16000 r--p 00000000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -732d09e16000-732d09f06000 r-xp 00016000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -732d09f06000-732d09f79000 r--p 00106000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -732d09f79000-732d09f80000 r--p 00178000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -732d09f80000-732d09f87000 rw-p 0017f000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -732d09f87000-732d0a002000 rw-p 00000000 00:00 0 -732d0a200000-732d0a201000 r--p 00000000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -732d0a201000-732d0a202000 r-xp 00001000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -732d0a202000-732d0be1c000 r--p 00002000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -732d0be1c000-732d0be1d000 r--p 01c1b000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -732d0be1d000-732d0be1e000 rw-p 01c1c000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -732d0bf00000-732d0bf04000 ---p 00000000 00:00 0 -732d0bf04000-732d0c000000 rw-p 00000000 00:00 0 -732d0c000000-732d0c021000 rw-p 00000000 00:00 0 -732d0c021000-732d10000000 ---p 00000000 00:00 0 -732d10000000-732d10637000 rw-p 00000000 00:00 0 -732d10637000-732d14000000 ---p 00000000 00:00 0 -732d14040000-732d140c0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d140c0000-732d141c0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d141c0000-732d14200000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d14200000-732d14400000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d14400000-732d1448d000 r--p 00000000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -732d1448d000-732d14bf5000 r-xp 0008d000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -732d14bf5000-732d15482000 r--p 007f5000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -732d15482000-732d154c4000 r--p 01081000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -732d154c4000-732d154c7000 rw-p 010c3000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -732d154c7000-732d154cd000 rw-p 00000000 00:00 0 -732d154e0000-732d15500000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d15500000-732d15600000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d15600000-732d157c4000 r--p 00000000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -732d157c4000-732d174c4000 r-xp 001c4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -732d174c4000-732d17b39000 r--p 01ec4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -732d17b39000-732d17b3a000 ---p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -732d17b3a000-732d17d1a000 r--p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -732d17d1a000-732d17d93000 rw-p 02719000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -732d17d93000-732d17e08000 rw-p 00000000 00:00 0 -732d17e1f000-732d17e20000 rw-s 00000000 00:06 1022 /dev/nvidia0 -732d17e20000-732d17e60000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d17e60000-732d17e80000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d17e80000-732d17f00000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d17f00000-732d18000000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d18000000-732d183f0000 rw-p 00000000 00:00 0 -732d183f0000-732d185b0000 rw-p 00000000 00:00 0 -732d185b0000-732d186f0000 rw-p 00000000 00:00 0 -732d186f0000-732d18710000 rw-p 00000000 00:00 0 -732d18710000-732d18730000 rw-p 00000000 00:00 0 -732d18730000-732d18770000 rw-p 00000000 00:00 0 -732d18770000-732d189f0000 rw-p 00000000 00:00 0 -732d189f0000-732d18a10000 rw-p 00000000 00:00 0 -732d18a10000-732d18a30000 rw-p 00000000 00:00 0 -732d18a30000-732d18a70000 rw-p 00000000 00:00 0 -732d18a70000-732d18af0000 rw-p 00000000 00:00 0 -732d18af0000-732d18cf0000 rw-p 00000000 00:00 0 -732d18cf0000-732d18d10000 rw-p 00000000 00:00 0 -732d18d10000-732d18d30000 rw-p 00000000 00:00 0 -732d18d30000-732d18d70000 rw-p 00000000 00:00 0 -732d18d70000-732d18ef0000 rw-p 00000000 00:00 0 -732d18ef0000-732d18ff0000 rw-p 00000000 00:00 0 -732d18ff0000-732d190f0000 rw-p 00000000 00:00 0 -732d190f0000-732d19160000 rw-p 00000000 00:00 0 -732d19160000-732d19200000 ---p 00000000 00:00 0 -732d19200000-732d19410000 rw-p 00000000 00:00 0 -732d19410000-732d1c000000 ---p 00000000 00:00 0 -732d1c000000-732d1c021000 rw-p 00000000 00:00 0 -732d1c021000-732d20000000 ---p 00000000 00:00 0 -732d20000000-732d20004000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d20004000-732d20017000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d20017000-732d20018000 rw-s 00000000 00:06 1022 /dev/nvidia0 -732d20018000-732d2001a000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d2001a000-732d2001b000 rw-s 00000000 00:06 1022 /dev/nvidia0 -732d2001b000-732d2005b000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d2005b000-732d2007b000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d2007b000-732d200bb000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d200bb000-732d201bb000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d201bb000-732d20400000 rw-s 00000000 00:01 7173 /memfd:/.nvidia_drv.XXXXXX (deleted) -732d20400000-732d2045b000 r--p 00000000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -732d2045b000-732d207d9000 r-xp 0005b000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -732d207d9000-732d20bd5000 r--p 003d9000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -732d20bd5000-732d20c10000 r--p 007d4000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -732d20c10000-732d20c15000 rw-p 0080f000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -732d20c15000-732d20c40000 rw-p 00000000 00:00 0 -732d20c40000-732d20c60000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d20c60000-732d20ca0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d20ca0000-732d20cc0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d20cc0000-732d20d00000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d20d00000-732d20e00000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d20e00000-732d20e6e000 r--p 00000000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -732d20e6e000-732d213d5000 r-xp 0006e000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -732d213d5000-732d21ae8000 r--p 005d5000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -732d21ae8000-732d21ae9000 ---p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -732d21ae9000-732d21b26000 r--p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -732d21b26000-732d21b29000 rw-p 00d25000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -732d21b29000-732d21b2b000 rw-p 00000000 00:00 0 -732d21b2b000-732d21b2c000 rw-s 00000000 00:06 1022 /dev/nvidia0 -732d21b2c000-732d21b2d000 rw-s 00000000 00:06 1022 /dev/nvidia0 -732d21b2d000-732d21b40000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d21b40000-732d21b60000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d21b60000-732d21ba0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d21ba0000-732d21bc0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d21bc0000-732d21c00000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d21c00000-732d21c9a000 r--p 00000000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -732d21c9a000-732d21dab000 r-xp 0009a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -732d21dab000-732d21e1a000 r--p 001ab000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -732d21e1a000-732d21e1b000 ---p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -732d21e1b000-732d21e26000 r--p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -732d21e26000-732d21e29000 rw-p 00225000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -732d21e29000-732d21e2c000 rw-p 00000000 00:00 0 -732d21e2c000-732d21e2d000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d21e2d000-732d21e40000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d21e40000-732d21e60000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d21e60000-732d21ee0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d21ee0000-732d21f60000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d21f60000-732d21fa0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d21fa0000-732d21fc0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d21fc0000-732d22000000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d22000000-732d22d91000 rw-p 00001000 103:03 10498862 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/classes.jsa -732d22d91000-732d23000000 ---p 00000000 00:00 0 -732d23000000-732d23030000 rw-p 00000000 00:00 0 -732d23030000-732d23090000 rw-p 00000000 00:00 0 -732d23090000-732d230b0000 rw-p 00000000 00:00 0 -732d230b0000-732d23130000 rw-p 00000000 00:00 0 -732d23130000-732d23150000 rw-p 00000000 00:00 0 -732d23150000-732d231b0000 rw-p 00000000 00:00 0 -732d231b0000-732d231d0000 rw-p 00000000 00:00 0 -732d231d0000-732d23230000 rw-p 00000000 00:00 0 -732d23230000-732d23250000 rw-p 00000000 00:00 0 -732d23250000-732d23280000 ---p 00000000 00:00 0 -732d23280000-732d23290000 rw-p 00000000 00:00 0 -732d23290000-732d63000000 ---p 00000000 00:00 0 -732d63000000-732d63001000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d63001000-732d63014000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d63014000-732d63034000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d63034000-732d63074000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d63074000-732d631b5000 rw-s 00000000 103:03 13372247 /home/codex/.cache/mesa_shader_cache/index -732d631b5000-732d631c6000 r--p 00000000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -732d631c6000-732d63208000 r-xp 00011000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -732d63208000-732d63220000 r--p 00053000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -732d63220000-732d6322e000 r--p 0006a000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -732d6322e000-732d63230000 rw-p 00078000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -732d63230000-732d63234000 r--p 00000000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -732d63234000-732d63250000 r-xp 00004000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -732d63250000-732d63256000 r--p 00020000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -732d63256000-732d63257000 ---p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -732d63257000-732d63259000 r--p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -732d63259000-732d6325a000 rw-p 00028000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -732d6325a000-732d63264000 r--p 00000000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -732d63264000-732d6326e000 r-xp 0000a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -732d6326e000-732d63275000 r--p 00014000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -732d63275000-732d6327e000 r--p 0001a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -732d6327e000-732d6327f000 rw-p 00023000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -732d6327f000-732d6328b000 r--p 00000000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -732d6328b000-732d632ab000 r-xp 0000c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -732d632ab000-732d632b7000 r--p 0002c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -732d632b7000-732d632c1000 r--p 00037000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -732d632c1000-732d632c2000 rw-p 00041000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -732d632c2000-732d632d1000 r--p 00000000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -732d632d1000-732d633b7000 r-xp 0000f000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -732d633b7000-732d633f5000 r--p 000f5000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -732d633f5000-732d633f6000 ---p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -732d633f6000-732d633f9000 r--p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -732d633f9000-732d633ff000 rw-p 00136000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -732d633ff000-732d63400000 rw-p 00000000 00:00 0 -732d63400000-732d63493000 r--p 00000000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -732d63493000-732d638e6000 r-xp 00093000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -732d638e6000-732d63dfc000 r--p 004e6000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -732d63dfc000-732d63e34000 r--p 009fb000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -732d63e34000-732d63e44000 rw-p 00a33000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -732d63e44000-732d63e49000 rw-p 00000000 00:00 0 -732d63e49000-732d63e4a000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d63e4a000-732d63e4b000 rw-s 00044000 00:01 7173 /memfd:/.nvidia_drv.XXXXXX (deleted) -732d63e4b000-732d63e4c000 rw-s 00000000 00:06 1022 /dev/nvidia0 -732d63e4c000-732d63e50000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d63e50000-732d63e51000 rw-s 00000000 00:06 1022 /dev/nvidia0 -732d63e51000-732d63e53000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d63e53000-732d63e54000 rw-s 00000000 00:06 1022 /dev/nvidia0 -732d63e54000-732d63e55000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d63e55000-732d63e59000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d63e59000-732d63e5b000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d63e5b000-732d63e5d000 r--p 00000000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -732d63e5d000-732d63ec8000 r-xp 00002000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -732d63ec8000-732d63ef0000 r--p 0006d000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -732d63ef0000-732d63ef1000 r--p 00094000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -732d63ef1000-732d63ef2000 rw-p 00095000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -732d63ef2000-732d63ef8000 r--p 00000000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -732d63ef8000-732d63f12000 r-xp 00006000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -732d63f12000-732d63f19000 r--p 00020000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -732d63f19000-732d63f1a000 ---p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -732d63f1a000-732d63f1b000 r--p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -732d63f1b000-732d63f1c000 rw-p 00028000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -732d63f1c000-732d63f1e000 rw-p 00000000 00:00 0 -732d63f1e000-732d63f51000 r--p 00000000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -732d63f51000-732d63fb4000 r-xp 00033000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -732d63fb4000-732d63fd3000 r--p 00096000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -732d63fd3000-732d63ffe000 r--p 000b4000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -732d63ffe000-732d63fff000 rw-p 000df000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -732d63fff000-732d64000000 rw-p 00000000 00:00 0 -732d64000000-732d64021000 rw-p 00000000 00:00 0 -732d64021000-732d68000000 ---p 00000000 00:00 0 -732d68000000-732d68021000 rw-p 00000000 00:00 0 -732d68021000-732d6c000000 ---p 00000000 00:00 0 -732d6c000000-732d6c020000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d6c020000-732d6c033000 r--p 00000000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -732d6c033000-732d6c052000 r-xp 00013000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -732d6c052000-732d6c05f000 r--p 00032000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -732d6c05f000-732d6c06f000 r--p 0003e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -732d6c06f000-732d6c070000 rw-p 0004e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -732d6c070000-732d6c07b000 r--p 00000000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -732d6c07b000-732d6c0a9000 r-xp 0000b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -732d6c0a9000-732d6c0bb000 r--p 00039000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -732d6c0bb000-732d6c0bc000 ---p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -732d6c0bc000-732d6c0bd000 r--p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -732d6c0bd000-732d6c0be000 rw-p 0004c000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -732d6c0be000-732d6c0ed000 r--p 00000000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -732d6c0ed000-732d6c1a9000 r-xp 0002f000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -732d6c1a9000-732d6c1f4000 r--p 000eb000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -732d6c1f4000-732d6c202000 r--p 00135000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -732d6c202000-732d6c204000 rw-p 00143000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -732d6c204000-732d6c205000 rw-p 00000000 00:00 0 -732d6c205000-732d6c26b000 r--p 00000000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -732d6c26b000-732d6c35e000 r-xp 00066000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -732d6c35e000-732d6c3ea000 r--p 00159000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -732d6c3ea000-732d6c3fd000 r--p 001e4000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -732d6c3fd000-732d6c3fe000 rw-p 001f7000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -732d6c3fe000-732d6cd22000 rw-p 00000000 00:00 0 -732d6cd22000-732d6cd26000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d6cd26000-732d6cd39000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d6cd39000-732d6cd4c000 r--p 00000000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -732d6cd4c000-732d6cdcb000 r-xp 00013000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -732d6cdcb000-732d6cdf6000 r--p 00092000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -732d6cdf6000-732d6cdf7000 ---p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -732d6cdf7000-732d6cdfe000 r--p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -732d6cdfe000-732d6cdff000 rw-p 000c4000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -732d6cdff000-732d6ce00000 rw-p 00000000 00:00 0 -732d6ce00000-732d6d041000 r-xp 00000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -732d6d041000-732d6d062000 rwxp 00241000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -732d6d062000-732d6d200000 r-xp 00262000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -732d6d200000-732d6de00000 r-xp 00400000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -732d6de00000-732d6ecab000 r-xp 01000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -732d6ecab000-732d6ee10000 r--p 01eaa000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -732d6ee10000-732d6ee7e000 rw-p 0200f000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -732d6ee7e000-732d6ee9c000 rw-p 00000000 00:00 0 -732d6ee9c000-732d6eea0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d6eea0000-732d6eea4000 r--p 00000000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -732d6eea4000-732d6eeb4000 r-xp 00004000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -732d6eeb4000-732d6eeb7000 r--p 00014000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -732d6eeb7000-732d6eeb8000 r--p 00016000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -732d6eeb8000-732d6eeb9000 rw-p 00017000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -732d6eeb9000-732d6eebd000 r--p 00000000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -732d6eebd000-732d6eed3000 r-xp 00004000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -732d6eed3000-732d6eedd000 r--p 0001a000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -732d6eedd000-732d6eede000 r--p 00023000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -732d6eede000-732d6eedf000 rw-p 00024000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -732d6eedf000-732d6eee1000 r--p 00000000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -732d6eee1000-732d6eefa000 r-xp 00002000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -732d6eefa000-732d6eefc000 r--p 0001b000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -732d6eefc000-732d6eefd000 ---p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -732d6eefd000-732d6eefe000 r--p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -732d6eefe000-732d6eeff000 rw-p 0001e000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -732d6eeff000-732d6ef00000 ---p 00000000 00:00 0 -732d6ef00000-732d6f000000 rw-p 00000000 00:00 0 -732d6f000000-732d6f001000 rw-s 00000000 00:06 1022 /dev/nvidia0 -732d6f001000-732d6f002000 rw-s 00000000 00:06 1022 /dev/nvidia0 -732d6f002000-732d6f004000 r--p 00000000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -732d6f004000-732d6f00d000 r-xp 00002000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -732d6f00d000-732d6f010000 r--p 0000b000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -732d6f010000-732d6f011000 ---p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -732d6f011000-732d6f012000 r--p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -732d6f012000-732d6f013000 rw-p 0000f000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -732d6f013000-732d6f015000 rw-p 00000000 00:00 0 -732d6f015000-732d6f01e000 rw-s 00000000 00:01 670431 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) -732d6f01e000-732d6f04d000 r--p 00000000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -732d6f04d000-732d6f1a0000 r-xp 0002f000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -732d6f1a0000-732d6f1f4000 r--p 00182000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -732d6f1f4000-732d6f1f5000 ---p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -732d6f1f5000-732d6f1fe000 r--p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -732d6f1fe000-732d6f1ff000 rw-p 001df000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -732d6f1ff000-732d6f200000 rw-p 00000000 00:00 0 -732d6f200000-732d6f201000 ---p 00000000 00:00 0 -732d6f201000-732d6fa01000 rw-p 00000000 00:00 0 -732d6fa01000-732d6fa02000 rw-s 00000000 00:06 1022 /dev/nvidia0 -732d6fa02000-732d6fa0b000 rw-s 00000000 00:01 670430 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) -732d6fa0b000-732d6fa0d000 r--p 00000000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -732d6fa0d000-732d6fa11000 r-xp 00002000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -732d6fa11000-732d6fa13000 r--p 00006000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -732d6fa13000-732d6fa14000 r--p 00007000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -732d6fa14000-732d6fa15000 rw-p 00008000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -732d6fa15000-732d6fa17000 r--p 00000000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -732d6fa17000-732d6fa1f000 r-xp 00002000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -732d6fa1f000-732d6fa21000 r--p 0000a000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -732d6fa21000-732d6fa22000 r--p 0000b000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -732d6fa22000-732d6fa23000 rw-p 0000c000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -732d6fa23000-732d6fa25000 r--p 00000000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -732d6fa25000-732d6fa2d000 r-xp 00002000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -732d6fa2d000-732d6fa2e000 r--p 0000a000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -732d6fa2e000-732d6fa2f000 ---p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -732d6fa2f000-732d6fa30000 r--p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -732d6fa30000-732d6fa31000 rw-p 0000c000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -732d6fa31000-732d6fa35000 r--p 00000000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -732d6fa35000-732d6fa4a000 r-xp 00004000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -732d6fa4a000-732d6fa50000 r--p 00019000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -732d6fa50000-732d6fa51000 ---p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -732d6fa51000-732d6fa53000 r--p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -732d6fa53000-732d6fa54000 rw-p 00021000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -732d6fa54000-732d6fa57000 r--p 00000000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -732d6fa57000-732d6fa78000 r-xp 00003000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -732d6fa78000-732d6fa84000 r--p 00024000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -732d6fa84000-732d6fa85000 ---p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -732d6fa85000-732d6fa86000 r--p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -732d6fa86000-732d6fa87000 rw-p 00031000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -732d6fa87000-732d6fa95000 r--p 00000000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -732d6fa95000-732d6faa6000 r-xp 0000e000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -732d6faa6000-732d6fab4000 r--p 0001f000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -732d6fab4000-732d6fab8000 r--p 0002c000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -732d6fab8000-732d6fab9000 rw-p 00030000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -732d6fab9000-732d6fac1000 r--p 00000000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -732d6fac1000-732d6fadf000 r-xp 00008000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -732d6fadf000-732d6faec000 r--p 00026000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -732d6faec000-732d6faee000 r--p 00032000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -732d6faee000-732d6faef000 rw-p 00034000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -732d6faef000-732d6faf3000 rw-p 00000000 00:00 0 -732d6faf3000-732d6faf5000 r--p 00000000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -732d6faf5000-732d6fafc000 r-xp 00002000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -732d6fafc000-732d6fafd000 r--p 00009000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -732d6fafd000-732d6fafe000 ---p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -732d6fafe000-732d6faff000 r--p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -732d6faff000-732d6fb00000 rw-p 0000b000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -732d6fb00000-732d6fb04000 r--p 00000000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -732d6fb04000-732d6fb23000 r-xp 00004000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -732d6fb23000-732d6fb2d000 r--p 00023000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -732d6fb2d000-732d6fb2e000 ---p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -732d6fb2e000-732d6fb30000 r--p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -732d6fb30000-732d6fb31000 rw-p 0002f000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -732d6fb31000-732d6fb3b000 r--p 00000000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -732d6fb3b000-732d6fbed000 r-xp 0000a000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -732d6fbed000-732d6fbfe000 r--p 000bc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -732d6fbfe000-732d6fbff000 r--p 000cc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -732d6fbff000-732d6fc00000 rw-p 000cd000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -732d6fc00000-732d70021000 rw-p 00000000 00:00 0 -732d70021000-732d74000000 ---p 00000000 00:00 0 -732d74000000-732d74021000 rw-p 00000000 00:00 0 -732d74021000-732d78000000 ---p 00000000 00:00 0 -732d78000000-732d78001000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d78001000-732d78003000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d78003000-732d78007000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d78007000-732d7800a000 r--p 00000000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -732d7800a000-732d78021000 r-xp 00003000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -732d78021000-732d78025000 r--p 0001a000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -732d78025000-732d78026000 r--p 0001d000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -732d78026000-732d78027000 rw-p 0001e000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -732d78027000-732d7802c000 r--p 00000000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -732d7802c000-732d78037000 r-xp 00005000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -732d78037000-732d7803b000 r--p 00010000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -732d7803b000-732d7803c000 ---p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -732d7803c000-732d7803d000 r--p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -732d7803d000-732d7803e000 rw-p 00015000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -732d7803e000-732d7803f000 r--p 00000000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -732d7803f000-732d78040000 r-xp 00001000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -732d78040000-732d78041000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -732d78041000-732d78042000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -732d78042000-732d78043000 rw-p 00003000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -732d78043000-732d78044000 r--p 00000000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -732d78044000-732d78045000 r-xp 00001000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -732d78045000-732d78046000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -732d78046000-732d78047000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -732d78047000-732d78048000 rw-p 00003000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -732d78048000-732d7804b000 r--p 00000000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -732d7804b000-732d7804e000 r-xp 00003000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -732d7804e000-732d7804f000 r--p 00006000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -732d7804f000-732d78050000 ---p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -732d78050000-732d78051000 r--p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -732d78051000-732d78052000 rw-p 00008000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -732d78052000-732d78055000 r--p 00000000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -732d78055000-732d78058000 r-xp 00003000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -732d78058000-732d78059000 r--p 00006000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -732d78059000-732d7805a000 ---p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -732d7805a000-732d7805b000 r--p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -732d7805b000-732d7805c000 rw-p 00008000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -732d7805c000-732d78061000 r--p 00000000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -732d78061000-732d78067000 r-xp 00005000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -732d78067000-732d7806a000 r--p 0000b000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -732d7806a000-732d7806c000 r--p 0000d000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -732d7806c000-732d7806d000 rw-p 0000f000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -732d7806d000-732d78070000 r--p 00000000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -732d78070000-732d78084000 r-xp 00003000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -732d78084000-732d78088000 r--p 00017000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -732d78088000-732d78089000 ---p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -732d78089000-732d7808a000 r--p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -732d7808a000-732d7808b000 rw-p 0001c000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -732d7808b000-732d7808e000 r--p 00000000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -732d7808e000-732d78094000 r-xp 00003000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -732d78094000-732d78096000 r--p 00009000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -732d78096000-732d78097000 r--p 0000a000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -732d78097000-732d78098000 rw-p 0000b000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -732d78098000-732d780a3000 r--p 00000000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -732d780a3000-732d780ac000 r-xp 0000b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -732d780ac000-732d780b1000 r--p 00014000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -732d780b1000-732d780b2000 ---p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -732d780b2000-732d780b4000 r--p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -732d780b4000-732d780b5000 rw-p 0001b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -732d780b5000-732d780c5000 r--p 00000000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -732d780c5000-732d78123000 r-xp 00010000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -732d78123000-732d7813f000 r--p 0006e000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -732d7813f000-732d78140000 ---p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -732d78140000-732d78146000 r--p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -732d78146000-732d78147000 rw-p 00090000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -732d78147000-732d7814f000 rw-p 00000000 00:00 0 -732d7814f000-732d781a0000 r--p 00000000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -732d781a0000-732d781fc000 r-xp 00051000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -732d781fc000-732d78231000 rwxp 000ad000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -732d78231000-732d78232000 r-xp 000e2000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -732d78232000-732d78252000 r--p 000e3000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -732d78252000-732d78272000 r--p 00102000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -732d78272000-732d78277000 rw-p 00122000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -732d78277000-732d78279000 rw-p 00000000 00:00 0 -732d78279000-732d7827f000 r--p 00000000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -732d7827f000-732d782c9000 r-xp 00006000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -732d782c9000-732d782f3000 r--p 00050000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -732d782f3000-732d782f4000 r--p 00079000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -732d782f4000-732d782f5000 rw-p 0007a000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -732d782f5000-732d782fc000 r--s 00000000 103:03 11147989 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache -732d782fc000-732d782fd000 r--p 00000000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -732d782fd000-732d78300000 r-xp 00001000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -732d78300000-732d78301000 r--p 00004000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -732d78301000-732d78302000 ---p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -732d78302000-732d78303000 r--p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -732d78303000-732d78304000 rw-p 00006000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -732d78304000-732d78307000 r--p 00000000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -732d78307000-732d7830b000 r-xp 00003000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -732d7830b000-732d7830d000 r--p 00007000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -732d7830d000-732d7830e000 r--p 00008000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -732d7830e000-732d7830f000 rw-p 00009000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -732d7830f000-732d78310000 r--p 00000000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -732d78310000-732d78312000 r-xp 00001000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -732d78312000-732d78313000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -732d78313000-732d78314000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -732d78314000-732d78315000 rw-p 00004000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -732d78315000-732d78325000 r--p 00000000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -732d78325000-732d78346000 r-xp 00010000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -732d78346000-732d78382000 r--p 00031000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -732d78382000-732d78386000 r--p 0006c000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -732d78386000-732d78389000 rw-p 00070000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -732d78389000-732d783ac000 rw-p 00000000 00:00 0 -732d783ac000-732d783ad000 ---p 00000000 00:00 0 -732d783ad000-732d784ad000 rw-p 00000000 00:00 0 -732d784ad000-732d784ae000 ---p 00000000 00:00 0 -732d784ae000-732d785ae000 rw-p 00000000 00:00 0 -732d785ae000-732d785af000 ---p 00000000 00:00 0 -732d785af000-732d786af000 rw-p 00000000 00:00 0 -732d786af000-732d786b0000 ---p 00000000 00:00 0 -732d786b0000-732d787b0000 rw-p 00000000 00:00 0 -732d787b0000-732d787b1000 ---p 00000000 00:00 0 -732d787b1000-732d788b1000 rw-p 00000000 00:00 0 -732d788b1000-732d788b2000 ---p 00000000 00:00 0 -732d788b2000-732d789b2000 rw-p 00000000 00:00 0 -732d789b2000-732d789b6000 ---p 00000000 00:00 0 -732d789b6000-732d78ab2000 rw-p 00000000 00:00 0 -732d78ab2000-732d78bb2000 rw-s 00000000 00:01 983077 /SYSV00000000 (deleted) -732d78bb2000-732d78bb6000 ---p 00000000 00:00 0 -732d78bb6000-732d78cb2000 rw-p 00000000 00:00 0 -732d78cb2000-732d78cb6000 ---p 00000000 00:00 0 -732d78cb6000-732d78db2000 rw-p 00000000 00:00 0 -732d78db2000-732d78db6000 ---p 00000000 00:00 0 -732d78db6000-732d78eb2000 rw-p 00000000 00:00 0 -732d78eb2000-732d78eb6000 ---p 00000000 00:00 0 -732d78eb6000-732d78fb2000 rw-p 00000000 00:00 0 -732d78fb2000-732d78fb6000 ---p 00000000 00:00 0 -732d78fb6000-732d790b2000 rw-p 00000000 00:00 0 -732d790b2000-732d790b6000 ---p 00000000 00:00 0 -732d790b6000-732d791b2000 rw-p 00000000 00:00 0 -732d791b2000-732d791bf000 r--p 00000000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -732d791bf000-732d79248000 r-xp 0000d000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -732d79248000-732d79271000 r--p 00096000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -732d79271000-732d79272000 ---p 000bf000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -732d79272000-732d79279000 r--p 000bf000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -732d79279000-732d7927a000 rw-p 000c6000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -732d7927a000-732d793fb000 r-xp 00000000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so -732d793fb000-732d793fc000 ---p 00181000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so -732d793fc000-732d793fe000 r--p 00181000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so -732d793fe000-732d793ff000 rw-p 00183000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so -732d793ff000-732d79400000 rw-p 00000000 00:00 0 -732d79400000-732d79c00000 rw-p 00000000 00:00 0 -732d79c00000-732d79c08000 r--p 00000000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -732d79c08000-732d79c60000 r-xp 00008000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -732d79c60000-732d79c71000 r--p 00060000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -732d79c71000-732d79c72000 ---p 00071000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -732d79c72000-732d79c78000 r--p 00071000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -732d79c78000-732d79c79000 rw-p 00077000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -732d79c79000-732d79e83000 rw-p 00000000 00:00 0 -732d79e83000-732d79e85000 r--p 00000000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -732d79e85000-732d79e87000 r-xp 00002000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -732d79e87000-732d79e88000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -732d79e88000-732d79e89000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -732d79e89000-732d79e8a000 rw-p 00005000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -732d79e8a000-732d79e91000 r--p 00000000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -732d79e91000-732d79e97000 r-xp 00007000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -732d79e97000-732d79e9a000 r--p 0000d000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -732d79e9a000-732d79e9b000 ---p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -732d79e9b000-732d79e9c000 r--p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -732d79e9c000-732d79e9d000 rw-p 00011000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -732d79e9d000-732d79e9e000 r--p 00000000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 -732d79e9e000-732d79e9f000 r-xp 00001000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 -732d79e9f000-732d79ebe000 r--p 00002000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 -732d79ebe000-732d79ebf000 r--p 00020000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 -732d79ebf000-732d79ec0000 rw-p 00021000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 -732d79ec0000-732d79ed9000 r--p 00000000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -732d79ed9000-732d79f65000 r-xp 00019000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -732d79f65000-732d79ffa000 r--p 000a5000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -732d79ffa000-732d79ffb000 ---p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -732d79ffb000-732d79ffc000 r--p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -732d79ffc000-732d7a000000 rw-p 0013b000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -732d7a000000-732d7a004000 ---p 00000000 00:00 0 -732d7a004000-732d7a100000 rw-p 00000000 00:00 0 -732d7a100000-732d7a104000 ---p 00000000 00:00 0 -732d7a104000-732d7a200000 rw-p 00000000 00:00 0 -732d7a200000-732d7a204000 ---p 00000000 00:00 0 -732d7a204000-732d7a300000 rw-p 00000000 00:00 0 -732d7a300000-732d7a304000 ---p 00000000 00:00 0 -732d7a304000-732d7a400000 rw-p 00000000 00:00 0 -732d7a400000-732d7a404000 ---p 00000000 00:00 0 -732d7a404000-732d7a500000 rw-p 00000000 00:00 0 -732d7a500000-732d7a504000 ---p 00000000 00:00 0 -732d7a504000-732d7a600000 rw-p 00000000 00:00 0 -732d7a600000-732d7a604000 ---p 00000000 00:00 0 -732d7a604000-732d7a700000 rw-p 00000000 00:00 0 -732d7a700000-732d7a704000 ---p 00000000 00:00 0 -732d7a704000-732d7a800000 rw-p 00000000 00:00 0 -732d7a800000-732d7a804000 ---p 00000000 00:00 0 -732d7a804000-732d7a900000 rw-p 00000000 00:00 0 -732d7a900000-732d7a904000 ---p 00000000 00:00 0 -732d7a904000-732d7aa00000 rw-p 00000000 00:00 0 -732d7aa00000-732d7b906000 r--p 00000000 103:03 10618858 /usr/lib/locale/locale-archive -732d7b906000-732d7b908000 r--p 00000000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -732d7b908000-732d7b90e000 r-xp 00002000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -732d7b90e000-732d7b910000 r--p 00008000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -732d7b910000-732d7b911000 r--p 00009000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -732d7b911000-732d7b912000 rw-p 0000a000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -732d7b912000-732d7b913000 r--p 00000000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 -732d7b913000-732d7b91b000 r-xp 00001000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 -732d7b91b000-732d7b91e000 r--p 00009000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 -732d7b91e000-732d7b91f000 r--p 0000b000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 -732d7b91f000-732d7b920000 rw-p 0000c000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 -732d7b920000-732d7b925000 r--p 00000000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 -732d7b925000-732d7b94e000 r-xp 00005000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 -732d7b94e000-732d7b959000 r--p 0002e000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 -732d7b959000-732d7b95a000 r--p 00038000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 -732d7b95a000-732d7b95b000 rw-p 00039000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 -732d7b95b000-732d7b95d000 r--p 00000000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -732d7b95d000-732d7b964000 r-xp 00002000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -732d7b964000-732d7b966000 r--p 00009000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -732d7b966000-732d7b967000 r--p 0000a000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -732d7b967000-732d7b968000 rw-p 0000b000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -732d7b968000-732d7b96c000 r--p 00000000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -732d7b96c000-732d7b979000 r-xp 00004000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -732d7b979000-732d7b97c000 r--p 00011000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -732d7b97c000-732d7b97d000 ---p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -732d7b97d000-732d7b97e000 r--p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -732d7b97e000-732d7b97f000 rw-p 00015000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -732d7b97f000-732d7b980000 rw-p 00000000 00:00 0 -732d7b980000-732d7b9f0000 r-xp 00000000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -732d7b9f0000-732d7b9f1000 ---p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -732d7b9f1000-732d7b9f6000 r--p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -732d7b9f6000-732d7b9f8000 rw-p 00075000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -732d7b9f8000-732d7b9fa000 rw-p 00000000 00:00 0 -732d7b9fa000-732d7b9fb000 ---p 00000000 00:00 0 -732d7b9fb000-732d7bafb000 rw-p 00000000 00:00 0 -732d7bafb000-732d7bafc000 ---p 00000000 00:00 0 -732d7bafc000-732d7bbfc000 rw-p 00000000 00:00 0 -732d7bbfc000-732d7bbfd000 ---p 00000000 00:00 0 -732d7bbfd000-732d7bcfd000 rw-p 00000000 00:00 0 -732d7bcfd000-732d7bcfe000 ---p 00000000 00:00 0 -732d7bcfe000-732d7bdfe000 rw-p 00000000 00:00 0 -732d7bdfe000-732d7c000000 rw-p 00000000 00:00 0 -732d7c000000-732d7c021000 rw-p 00000000 00:00 0 -732d7c021000-732d80000000 ---p 00000000 00:00 0 -732d80000000-732d80001000 rw-s 00000000 00:06 1022 /dev/nvidia0 -732d80001000-732d80002000 rw-s 00000000 00:06 1022 /dev/nvidia0 -732d80002000-732d80003000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d80003000-732d80004000 r--p 00000000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -732d80004000-732d80006000 r-xp 00001000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -732d80006000-732d80007000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -732d80007000-732d80008000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -732d80008000-732d80009000 rw-p 00004000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -732d80009000-732d800ca000 r-xp 00000000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -732d800ca000-732d800cb000 r--p 000c0000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -732d800cb000-732d800d6000 rw-p 000c1000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -732d800d6000-732d82600000 rw-p 00000000 00:00 0 -732d82600000-732d82601000 rw-s 00000000 00:06 1022 /dev/nvidia0 -732d82601000-732d82603000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d82603000-732d8260e000 r--p 00000000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -732d8260e000-732d82622000 r-xp 0000b000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -732d82622000-732d8262b000 r--p 0001f000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -732d8262b000-732d8262c000 r--p 00027000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -732d8262c000-732d8262d000 rw-p 00028000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -732d8262d000-732d826fb000 r-xp 00000000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -732d826fb000-732d826fc000 r--p 000cd000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -732d826fc000-732d826fd000 rw-p 000ce000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -732d826fd000-732d827fe000 rw-p 00000000 00:00 0 -732d827fe000-732d827ff000 ---p 00000000 00:00 0 -732d827ff000-732d828ff000 rw-p 00000000 00:00 0 -732d828ff000-732d82900000 ---p 00000000 00:00 0 -732d82900000-732d82a00000 rw-p 00000000 00:00 0 -732d82a00000-732d82a70000 rw-p 00000000 00:00 0 -732d82a70000-732d8a700000 ---p 00000000 00:00 0 -732d8a700000-732d8a701000 rw-s 00000000 00:06 1022 /dev/nvidia0 -732d8a701000-732d8a702000 rw-s 00000000 00:06 1022 /dev/nvidia0 -732d8a702000-732d8a703000 rw-s 00000000 00:06 1022 /dev/nvidia0 -732d8a703000-732d8a72f000 r--p 00000000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -732d8a72f000-732d8a763000 r-xp 0002c000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -732d8a763000-732d8a77d000 r--p 00060000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -732d8a77d000-732d8a77e000 r--p 00079000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -732d8a77e000-732d8a77f000 rw-p 0007a000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -732d8a77f000-732d8a80e000 rw-p 00000000 00:00 0 -732d8a80e000-732d8b7a0000 ---p 00000000 00:00 0 -732d8b7a0000-732d8b7a1000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d8b7a1000-732d8b7a2000 rw-s 00000000 00:06 1017 /dev/nvidiactl -732d8b7a2000-732d8b7a3000 r--s 00000000 00:06 1017 /dev/nvidiactl -732d8b7a3000-732d8b7a5000 r--p 00000000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -732d8b7a5000-732d8b7a8000 r-xp 00002000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -732d8b7a8000-732d8b7a9000 r--p 00005000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -732d8b7a9000-732d8b7aa000 r--p 00006000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -732d8b7aa000-732d8b7ab000 rw-p 00007000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -732d8b7ab000-732d8b7ae000 r--p 00000000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -732d8b7ae000-732d8b7ba000 r-xp 00003000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -732d8b7ba000-732d8b7bd000 r--p 0000f000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -732d8b7bd000-732d8b7be000 r--p 00011000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -732d8b7be000-732d8b7bf000 rw-p 00012000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -732d8b7bf000-732d8b7fd000 r-xp 00000000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -732d8b7fd000-732d8b7fe000 ---p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -732d8b7fe000-732d8b7ff000 r--p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -732d8b7ff000-732d8b800000 rw-p 0003f000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -732d8b800000-732d8b80e000 rw-p 00000000 00:00 0 -732d8b80e000-732d8c7a0000 ---p 00000000 00:00 0 -732d8c7a0000-732d8c7a1000 r--p 00000000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -732d8c7a1000-732d8c7a2000 r-xp 00001000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -732d8c7a2000-732d8c7a3000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -732d8c7a3000-732d8c7a4000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -732d8c7a4000-732d8c7a5000 rw-p 00003000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -732d8c7a5000-732d8c800000 rw-p 00000000 00:00 0 -732d8c800000-732d8caa0000 rwxp 00000000 00:00 0 -732d8caa0000-732d93d37000 ---p 00000000 00:00 0 -732d93d37000-732d93fb7000 rwxp 00000000 00:00 0 -732d93fb7000-732d942c8000 ---p 00000000 00:00 0 -732d942c8000-732d94538000 rwxp 00000000 00:00 0 -732d94538000-732d9b800000 ---p 00000000 00:00 0 -732d9b800000-732da3fb5000 r--s 00000000 103:03 10498840 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/modules -732da3fb5000-732da3fb6000 rw-s 00000000 00:01 1028 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) -732da3fb6000-732da3fb7000 rw-s 00000000 00:01 670429 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=4096 (deleted) -732da3fb7000-732da3fb9000 r--p 00000000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -732da3fb9000-732da3fbb000 r-xp 00002000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -732da3fbb000-732da3fbd000 r--p 00004000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -732da3fbd000-732da3fbe000 r--p 00005000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -732da3fbe000-732da3fbf000 rw-p 00006000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -732da3fbf000-732da4000000 rw-p 00000000 00:00 0 -732da4000000-732da4628000 rw-p 00000000 00:00 0 -732da4628000-732da8000000 ---p 00000000 00:00 0 -732da8000000-732da8002000 r--p 00000000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -732da8002000-732da8009000 r-xp 00002000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -732da8009000-732da800b000 r--p 00009000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -732da800b000-732da800c000 r--p 0000a000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -732da800c000-732da800d000 rw-p 0000b000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -732da800d000-732da8011000 r--p 00000000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -732da8011000-732da801c000 r-xp 00004000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -732da801c000-732da8020000 r--p 0000f000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -732da8020000-732da8021000 r--p 00012000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -732da8021000-732da8022000 rw-p 00013000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -732da8022000-732da8023000 ---p 00000000 00:00 0 -732da8023000-732da8123000 rw-p 00000000 00:00 0 -732da8123000-732da8a2f000 rw-p 00000000 00:00 0 -732da8a2f000-732da8b15000 ---p 00000000 00:00 0 -732da8b15000-732da8b1b000 rw-p 00000000 00:00 0 -732da8b1b000-732da8c00000 ---p 00000000 00:00 0 -732da8c00000-732da9f30000 r-xp 00000000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so -732da9f30000-732daa000000 r--p 0132f000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so -732daa000000-732daa02e000 rw-p 013ff000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so -732daa02e000-732daa0a4000 rw-p 00000000 00:00 0 -732daa0a4000-732daa0a5000 r--p 00000000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -732daa0a5000-732daa0a6000 r-xp 00001000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -732daa0a6000-732daa0a7000 r--p 00002000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -732daa0a7000-732daa0a8000 r--p 00003000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -732daa0a8000-732daa0a9000 rw-p 00004000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -732daa0a9000-732daa0aa000 r--p 00000000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -732daa0aa000-732daa0ac000 r-xp 00001000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -732daa0ac000-732daa0ad000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -732daa0ad000-732daa0ae000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -732daa0ae000-732daa0af000 rw-p 00004000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -732daa0af000-732daa0b0000 rw-s 00000000 00:01 670428 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) -732daa0b0000-732daa0b1000 rw-s 00000000 00:01 669127 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) -732daa0b1000-732daa0b2000 r-xp 00000000 00:00 0 -732daa0b2000-732daa0b3000 r--p 00000000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -732daa0b3000-732daa0b4000 r-xp 00001000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -732daa0b4000-732daa0b5000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -732daa0b5000-732daa0b6000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -732daa0b6000-732daa0b7000 rw-p 00003000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -732daa0b7000-732daa0b8000 r--p 00000000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -732daa0b8000-732daa0bb000 r-xp 00001000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -732daa0bb000-732daa0bc000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -732daa0bc000-732daa0bd000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -732daa0bd000-732daa0be000 rw-p 00005000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -732daa0be000-732daa0c0000 r--p 00000000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -732daa0c0000-732daa0c7000 r-xp 00002000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -732daa0c7000-732daa0c9000 r--p 00009000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -732daa0c9000-732daa0ca000 r--p 0000a000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -732daa0ca000-732daa0cb000 rw-p 0000b000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -732daa0cb000-732daa0cc000 r-xp 00000000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so -732daa0cc000-732daa0cd000 ---p 00001000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so -732daa0cd000-732daa0ce000 r--p 00001000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so -732daa0ce000-732daa0cf000 rw-p 00002000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so -732daa0cf000-732daa0da000 r-xp 00000000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -732daa0da000-732daa0db000 ---p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -732daa0db000-732daa0dc000 r--p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -732daa0dc000-732daa0dd000 rw-p 0000c000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -732daa0dd000-732daa0fd000 r-xp 00000000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -732daa0fd000-732daa0fe000 r--p 0001f000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -732daa0fe000-732daa0ff000 rw-p 00020000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -732daa0ff000-732daa100000 rw-p 00000000 00:00 0 -732daa100000-732daa104000 ---p 00000000 00:00 0 -732daa104000-732daa200000 rw-p 00000000 00:00 0 -732daa200000-732daa228000 r--p 00000000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -732daa228000-732daa3bd000 r-xp 00028000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -732daa3bd000-732daa415000 r--p 001bd000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -732daa415000-732daa416000 ---p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -732daa416000-732daa41a000 r--p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -732daa41a000-732daa41c000 rw-p 00219000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -732daa41c000-732daa429000 rw-p 00000000 00:00 0 -732daa429000-732daa42b000 r--p 00000000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -732daa42b000-732daa42e000 r-xp 00002000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -732daa42e000-732daa42f000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -732daa42f000-732daa430000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -732daa430000-732daa431000 rw-p 00006000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -732daa431000-732daa432000 rw-p 00000000 00:00 0 -732daa432000-732daa433000 r-xp 0005e000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -732daa433000-732daa434000 rw-p 00000000 00:00 0 -732daa434000-732daa447000 r-xp 00000000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -732daa447000-732daa448000 ---p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -732daa448000-732daa449000 r--p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -732daa449000-732daa44a000 rw-p 00014000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -732daa44a000-732daa468000 r-xp 00000000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -732daa468000-732daa46a000 r--p 0001d000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -732daa46a000-732daa46b000 rw-p 0001f000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -732daa46b000-732daa479000 r--p 00000000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -732daa479000-732daa4f5000 r-xp 0000e000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -732daa4f5000-732daa550000 r--p 0008a000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -732daa550000-732daa551000 r--p 000e4000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -732daa551000-732daa552000 rw-p 000e5000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -732daa552000-732daa553000 r--p 00000000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -732daa553000-732daa554000 r-xp 00001000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -732daa554000-732daa555000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -732daa555000-732daa556000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -732daa556000-732daa557000 rw-p 00003000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -732daa557000-732daa55b000 rw-p 00000000 00:00 0 -732daa55b000-732daa55c000 r--p 00000000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -732daa55c000-732daa55d000 r-xp 00001000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -732daa55d000-732daa55e000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -732daa55e000-732daa55f000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -732daa55f000-732daa560000 rw-p 00003000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -732daa560000-732daa561000 r--p 00000000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -732daa561000-732daa562000 r-xp 00001000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -732daa562000-732daa563000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -732daa563000-732daa564000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -732daa564000-732daa565000 rw-p 00003000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -732daa565000-732daa567000 r--p 00000000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -732daa567000-732daa578000 r-xp 00002000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -732daa578000-732daa57e000 r--p 00013000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -732daa57e000-732daa57f000 ---p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -732daa57f000-732daa580000 r--p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -732daa580000-732daa581000 rw-p 0001a000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -732daa581000-732daa588000 r-xp 00000000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -732daa588000-732daa589000 ---p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -732daa589000-732daa58a000 r--p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -732daa58a000-732daa58b000 rw-p 00008000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -732daa58b000-732daa590000 rw-p 00000000 00:00 0 -732daa590000-732daa597000 ---p 00000000 00:00 0 -732daa597000-732daa59f000 rw-s 00000000 103:03 4325444 /tmp/hsperfdata_codex/84545 -732daa59f000-732daa5a0000 ---p 00000000 00:00 0 -732daa5a0000-732daa5a1000 r--p 00000000 00:00 0 -732daa5a1000-732daa5b0000 r-xp 00000000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so -732daa5b0000-732daa5b1000 r--p 0000e000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so -732daa5b1000-732daa5b2000 rw-p 0000f000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so -732daa5b2000-732daa5b4000 rw-p 00000000 00:00 0 -732daa5b4000-732daa5b8000 r--p 00000000 00:00 0 [vvar] -732daa5b8000-732daa5ba000 r-xp 00000000 00:00 0 [vdso] -732daa5ba000-732daa5bc000 r--p 00000000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -732daa5bc000-732daa5e6000 r-xp 00002000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -732daa5e6000-732daa5f1000 r--p 0002c000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -732daa5f1000-732daa5f2000 ---p 00000000 00:00 0 -732daa5f2000-732daa5f4000 r--p 00037000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -732daa5f4000-732daa5f6000 rw-p 00039000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -7ffda949e000-7ffda94c1000 rw-p 00000000 00:00 0 [stack] -ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall] -Total number of mappings: 918 - - -VM Arguments: -jvm_args: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -java_command: jme3test.vulkan.VulkanTest -java_class_path (initial): /home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/java/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/groovy/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/resources/main:/home/codex/java/prj/jmonkeyengine/jme3-lwjgl3/build/libs/jme3-lwjgl3-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-desktop/build/libs/jme3-desktop-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-effects/build/libs/jme3-effects-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jbullet/build/libs/jme3-jbullet-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jogg/build/libs/jme3-jogg-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-networking/build/libs/jme3-networking-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-niftygui/build/libs/jme3-niftygui-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins/build/libs/jme3-plugins-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-terrain/build/libs/jme3-terrain-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-awt-dialogs/build/libs/jme3-awt-dialogs-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-core/build/libs/jme3-core-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json-gson/build/libs/jme3-plugins-json-gson-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json/build/libs/jme3-plugins-json-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-testdata/build/libs/jme3-testdata-null-SNAPSHOT.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-examples/1.4.3/4a41c559851c0c5a77ba3a9d1ccc8e6e92207dc7/nifty-examples-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjglx/lwjgl3-awt/0.2.3/2be63e81d6b73300d8203ce7235b2660c62eb3ea/lwjgl3-awt-0.2.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/7119f7d0eeb1e5502ff0ca71d2b4d47317da015/lwjgl-glfw-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/99ef08056feb9627f90425a4d2a22cd9fae8e39b/lwjgl-glfw-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/cfa8f1e96d572ed56da5945adf5167628f5eecdb/lwjgl-glfw-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/797e0965709ad180d9b00c88a086dbda15002203/lwjgl-glfw-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/671adf04a6bc4f792af13892e37f804be30b7070/lwjgl-glfw-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/b54023af492b4c2c72451f3a7aa0f385e9969474/lwjgl-glfw-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/82c8d748a654241b5961ddd1c098e8b648e38a48/lwjgl-glfw-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/399b42b491c5dfa6595ae6fd79dcba61b93538a7/lwjgl-glfw-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jawt/3.3.6/43299e222bd7db5e99254a8e620330954b73c2a6/lwjgl-jawt-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/245910eb57f2444429c74e6bf96030e5ec0a6739/lwjgl-jemalloc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/f9da76351e14a695be172d6915c8a7b2905307f/lwjgl-jemalloc-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c86043a342a33e5d32fabf962578580633db3c6e/lwjgl-jemalloc-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/26f8b467dc2e0f3000d608de3564b572bb46f927/lwjgl-jemalloc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c484cae39a718010dbc7931fe5e12664600a13c2/lwjgl-jemalloc-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1bc2e16e70df7f418d668c2984ac8066f1f6f5b1/lwjgl-jemalloc-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/9a42df0f2e9747815490311d7db7b4a046d5f40/lwjgl-jemalloc-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1f828c1fc06792475850162725433adf5ad001c0/lwjgl-jemalloc-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ad313317ff399fd2a7f4dd74716a68cf3976c6ad/lwjgl-openal-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/9c2b9b660e085bb0b47a4453dc0e26f24a5475e4/lwjgl-openal-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/82f693541d69aa125750bf8be9c4194435c56f03/lwjgl-openal-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ef356c04ef141d4efbde07793f31784f1f1a1bae/lwjgl-openal-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/7830af894fa110e65bf5075deb9183efbdbc50f5/lwjgl-openal-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/fd2c17603c63e8d543cb57d1db77ebd4574f3b7a/lwjgl-openal-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/c39f6827f0bd97601fc4e389801d5c813f59a5f2/lwjgl-openal-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/13f692aec4ae4b2d3c468aa0008472175f0ea1e0/lwjgl-openal-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opencl/3.3.6/93fdcea16d27b1466450e38dc28c8e1b4819ec25/lwjgl-opencl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ac2532612a4df374e9a9282bcf8ce2573018ebbb/lwjgl-opengl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/18dc639ebc94aa5202c2157f7490d28997b697c5/lwjgl-opengl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b0ab1d0e315d2fcc50d6cab7e8feaf4688d5d9a0/lwjgl-opengl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b8dc6467fe232d552793c53dc56f9fa8a385299c/lwjgl-opengl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ee815fbf454b916f13c10fff62e513eb09042ef0/lwjgl-opengl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/44de180f79e0b45c9e5bee10ca7540dcb5ddd373/lwjgl-opengl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/59f708eb4bf0be0204bbc9c06807911724673db6/lwjgl-opengl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/fee4fb2ee786af6530b6f9188205a76bc4e05268/lwjgl-opengl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-vulkan/3.3.6/a403e0931b03b138854bb2ba9c48dab646cba6d8/lwjgl-vulkan-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/9d0964fe2b75f64d9dab9839c2b059b7e8f71115/lwjgl-shaderc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/ab69a0e011f057ed25857c97fa3c87f20ab8f670/lwjgl-shaderc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/ce7721d30cfaf47feaed10213e0c43eb55c49d68/lwjgl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9a29b6a22fc5184604b8cb434ee5d5ecc4bfcbee/lwjgl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/7a6f04e02429ba2f4bda9be191347bb7d3c71127/lwjgl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/dc7db8fc4f1e6563867f9155b9a42d9c73d8992f/lwjgl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/2c9d698e76c3d0fe307d94cc6f428038492f25df/lwjgl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9eeb8887b5e3aa672efd2e1b0973ffa5891a3151/lwjgl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/f14e7a5289d2355822f4f83b3fd38d158c939acd/lwjgl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/832e2964ce74e02e768814a29c06d60645115b9a/lwjgl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/jbullet/1.0.3/362f53e8aa981037c2523ac24eb4d9b190a49036/jbullet-1.0.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/javax.vecmath/vecmath/1.5.2/fd17bc3e67f909573dfc039d8e2abecf407c4e27/vecmath-1.5.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/j-ogg-vorbis/1.0.6/a69d1cf62eaf75b71af61f9c23265d278a966735/j-ogg-vorbis-1.0.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-default-controls/1.4.3/2ccafe0182a73da87657ca24b639b6e8c1accd50/nifty-default-controls-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty/1.4.3/fa9ac16e00d1b375d10f58d1c1eb576950ae8c9d/nifty-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-style-black/1.4.3/c20a02dbdeb0bd9d2be258955fceb55c13185a8/nifty-style-black-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.9.1/2cc2131b98ebfb04e2b2c7dfb84431f4045096b/gson-2.9.1.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/stack-alloc/1.0.2/13cbb10c01ec09d0f5879f988946a97998175dfc/stack-alloc-1.0.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/xpp3/xpp3/1.1.4c/9b988ea84b9e4e9f1874e390ce099b8ac12cfff5/xpp3-1.1.4c.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/2.0.2/516c03b21d50a644d538de0f0369c620989cd8f0/jsr305-2.0.2.jar -Launcher Type: SUN_STANDARD - -[Global flags] - intx CICompilerCount = 4 {product} {ergonomic} - uint ConcGCThreads = 2 {product} {ergonomic} - uint G1ConcRefinementThreads = 8 {product} {ergonomic} - size_t G1HeapRegionSize = 4194304 {product} {ergonomic} - size_t InitialHeapSize = 524288000 {product} {ergonomic} - size_t MarkStackSize = 4194304 {product} {ergonomic} - size_t MarkStackSizeMax = 536870912 {product} {ergonomic} - size_t MaxHeapSize = 8388608000 {product} {ergonomic} - size_t MaxNewSize = 5033164800 {product} {ergonomic} - size_t MinHeapDeltaBytes = 4194304 {product} {ergonomic} - size_t MinHeapSize = 8388608 {product} {ergonomic} - uintx NonNMethodCodeHeapSize = 5836800 {pd product} {ergonomic} - uintx NonProfiledCodeHeapSize = 122912768 {pd product} {ergonomic} - uintx ProfiledCodeHeapSize = 122908672 {pd product} {ergonomic} - uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} - bool SegmentedCodeCache = true {product} {ergonomic} - size_t SoftMaxHeapSize = 8388608000 {manageable} {ergonomic} - bool UseCompressedOops = true {product lp64_product} {ergonomic} - bool UseG1GC = true {product} {ergonomic} - -Logging: -Log output configuration: - #0: stdout all=warning uptime,level,tags foldmultilines=false - #1: stderr all=off uptime,level,tags foldmultilines=false - -Environment Variables: -PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin -USERNAME=codex -SHELL=/bin/bash -DISPLAY=:1 -LANG=en_US.UTF-8 - -Active Locale: -LC_ALL=en_US.UTF-8 -LC_COLLATE=en_US.UTF-8 -LC_CTYPE=en_US.UTF-8 -LC_MESSAGES=en_US.UTF-8 -LC_MONETARY=en_US.UTF-8 -LC_NUMERIC=en_US.UTF-8 -LC_TIME=en_US.UTF-8 - -Signal Handlers: - SIGSEGV: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGBUS: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGFPE: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGPIPE: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGXFSZ: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGILL: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGUSR2: SR_handler in libjvm.so, mask=00000000000000000000000000000000, flags=SA_RESTART|SA_SIGINFO, blocked - SIGHUP: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGINT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGTERM: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGQUIT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGTRAP: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - - -Periodic native trim disabled - ---------------- S Y S T E M --------------- - -OS: -DISTRIB_ID=Pop -DISTRIB_RELEASE=22.04 -DISTRIB_CODENAME=jammy -DISTRIB_DESCRIPTION="Pop!_OS 22.04 LTS" -uname: Linux 6.9.3-76060903-generic #202405300957~1726766035~22.04~4092a0e SMP PREEMPT_DYNAMIC Thu S x86_64 -OS uptime: 0 days 15:13 hours -libc: glibc 2.35 NPTL 2.35 -rlimit (soft/hard): STACK 8192k/infinity , CORE 0k/infinity , NPROC 127655/127655 , NOFILE 1048576/1048576 , AS infinity/infinity , CPU infinity/infinity , DATA infinity/infinity , FSIZE infinity/infinity , MEMLOCK 4095956k/4095956k -load average: 0.91 0.86 0.83 - -/proc/meminfo: -MemTotal: 32767652 kB -MemFree: 20158592 kB -MemAvailable: 23559316 kB -Buffers: 346904 kB -Cached: 5008344 kB -SwapCached: 0 kB -Active: 8805936 kB -Inactive: 2811836 kB -Active(anon): 6296256 kB -Inactive(anon): 0 kB -Active(file): 2509680 kB -Inactive(file): 2811836 kB -Unevictable: 15204 kB -Mlocked: 72 kB -SwapTotal: 20970996 kB -SwapFree: 20970996 kB -Zswap: 0 kB -Zswapped: 0 kB -Dirty: 572 kB -Writeback: 0 kB -AnonPages: 6278416 kB -Mapped: 1825616 kB -Shmem: 33440 kB -KReclaimable: 197280 kB -Slab: 385420 kB -SReclaimable: 197280 kB -SUnreclaim: 188140 kB -KernelStack: 22604 kB -PageTables: 54152 kB -SecPageTables: 0 kB -NFS_Unstable: 0 kB -Bounce: 0 kB -WritebackTmp: 0 kB -CommitLimit: 37354820 kB -Committed_AS: 12297512 kB -VmallocTotal: 34359738367 kB -VmallocUsed: 252096 kB -VmallocChunk: 0 kB -Percpu: 9472 kB -HardwareCorrupted: 0 kB -AnonHugePages: 0 kB -ShmemHugePages: 6144 kB -ShmemPmdMapped: 0 kB -FileHugePages: 0 kB -FilePmdMapped: 0 kB -Unaccepted: 0 kB -HugePages_Total: 0 -HugePages_Free: 0 -HugePages_Rsvd: 0 -HugePages_Surp: 0 -Hugepagesize: 2048 kB -Hugetlb: 0 kB -DirectMap4k: 851768 kB -DirectMap2M: 15826944 kB -DirectMap1G: 16777216 kB - -/sys/kernel/mm/transparent_hugepage/enabled: always [madvise] never -/sys/kernel/mm/transparent_hugepage/hpage_pmd_size: 2097152 -/sys/kernel/mm/transparent_hugepage/shmem_enabled: always within_size advise [never] deny force -/sys/kernel/mm/transparent_hugepage/defrag (defrag/compaction efforts parameter): always defer defer+madvise [madvise] never - -Process Memory: -Virtual Size: 13378692K (peak: 13378692K) -Resident Set Size: 308840K (peak: 308840K) (anon: 165076K, file: 142740K, shmem: 1024K) -Swapped out: 0K -C-Heap outstanding allocations: 84201K, retained: 22642K -glibc malloc tunables: (default) - -/proc/sys/kernel/threads-max (system-wide limit on the number of threads): 255310 -/proc/sys/vm/max_map_count (maximum number of memory map areas a process may have): 2147483642 -/proc/sys/vm/swappiness (control to define how aggressively the kernel swaps out anonymous memory): 180 -/proc/sys/kernel/pid_max (system-wide limit on number of process identifiers): 4194304 - -container (cgroup) information: -container_type: cgroupv2 -cpu_cpuset_cpus: not supported -cpu_memory_nodes: not supported -active_processor_count: 8 -cpu_quota: not supported -cpu_period: not supported -cpu_shares: not supported -memory_limit_in_bytes: unlimited -memory_and_swap_limit_in_bytes: unlimited -memory_soft_limit_in_bytes: 0 -memory_usage_in_bytes: 5916456 k -memory_max_usage_in_bytes: not supported -rss_usage_in_bytes: 3510504 k -cache_usage_in_bytes: 2323036 k -memory_swap_current_in_bytes: 0 -memory_swap_max_limit_in_bytes: unlimited -maximum number of tasks: 38296 -current number of tasks: 318 - -Steal ticks since vm start: 0 -Steal ticks percentage since vm start: 0.000 - -CPU: total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 158 stepping 9 microcode 0xf8, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, adx, fma, vzeroupper, clflush, clflushopt, rdtscp, f16c -CPU Model and flags from /proc/cpuinfo: -model name : Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities - -Online cpus: 0-7 -Offline cpus: -BIOS frequency limitation: -Frequency switch latency (ns): 0 -Available cpu frequencies: -Current governor: powersave -Core performance/turbo boost: - -Memory: 4k page, physical 32767652k(23559316k free), swap 20970996k(20970996k free) -Page Sizes: 4k - -vm_info: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58) for linux-amd64 JRE (23.0.2+7-58), built on 2024-11-29T09:34:55Z with gcc 13.2.0 - -END. diff --git a/hs_err_pid84939.log b/hs_err_pid84939.log deleted file mode 100644 index 987a5c0e9f..0000000000 --- a/hs_err_pid84939.log +++ /dev/null @@ -1,1600 +0,0 @@ -# -# A fatal error has been detected by the Java Runtime Environment: -# -# SIGSEGV (0xb) at pc=0x000071ffebc5933a, pid=84939, tid=84983 -# -# JRE version: Java(TM) SE Runtime Environment (23.0.2+7) (build 23.0.2+7-58) -# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64) -# Problematic frame: -# C [libjemalloc.so+0x5933a] -# -# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/codex/java/prj/jmonkeyengine/core.84939) -# -# If you would like to submit a bug report, please visit: -# https://bugreport.java.com/bugreport/crash.jsp -# - ---------------- S U M M A R Y ------------ - -Command Line: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant jme3test.vulkan.VulkanTest - -Host: Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz, 8 cores, 31G, Pop!_OS 22.04 LTS -Time: Thu Jun 26 22:33:32 2025 EDT elapsed time: 3.277063 seconds (0d 0h 0m 3s) - ---------------- T H R E A D --------------- - -Current thread is native thread - -Stack: [0x000071ffe9f72000,0x000071ffea072000], sp=0x000071ffea0708d0, free space=1018k -Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) -C [libjemalloc.so+0x5933a] - -siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000000 - -Registers: -RAX=0x0000000000000000, RBX=0x0000000000000200, RCX=0x0000000000000000, RDX=0x000071ffebc78440 -RSP=0x000071ffea0708d0, RBP=0x000071ffea070db0, RSI=0x0000000000000000, RDI=0x000071ffeb5503b0 -R8 =0x0000000000000000, R9 =0x0000000000000000, R10=0x0000000000000000, R11=0x000071ffeb5503f0 -R12=0x000000000000003e, R13=0x000071ffea070d70, R14=0x000000000000003e, R15=0x000071ffea070ad0 -RIP=0x000071ffebc5933a, EFLAGS=0x0000000000010246, CSGSFS=0x002b000000000033, ERR=0x0000000000000004 - TRAPNO=0x000000000000000e - - -Top of Stack: (sp=0x000071ffea0708d0) -0x000071ffea0708d0: 00007200144d8790 000071ffea070960 -0x000071ffea0708e0: 000071ffea070970 000072001c369211 -0x000071ffea0708f0: 0000000000000005 00007200144d8988 -0x000071ffea070900: 0000000000000005 0000000000000000 -0x000071ffea070910: 0000000000000001 00007200144d8420 -0x000071ffea070920: 00007200144d8988 00007200144d8420 -0x000071ffea070930: 0000000103d3f020 00007200144d8790 -0x000071ffea070940: 0000000000000000 3030323700000000 -0x000071ffea070950: 3033633500000000 87651f3e00000004 -0x000071ffea070960: 00000000ffffffff 0000000000000000 -0x000071ffea070970: 000072001c00d4d0 000072001c3567c0 -0x000071ffea070980: 000071ffea0709b0 000072001ba78613 -0x000071ffea070990: 000071ffea070b88 000072001c08849a -0x000071ffea0709a0: 0000000000000000 000071ffea070aa0 -0x000071ffea0709b0: 00000000fbad8001 0000000000000002 -0x000071ffea0709c0: 00007200144d8420 000071ffebfff028 -0x000071ffea0709d0: 000072001c21cae8 0000000000000004 -0x000071ffea0709e0: 000071ffea071b58 000072001c36ff71 -0x000071ffea0709f0: 0000000000000005 0000000000000000 -0x000071ffea070a00: 000072001c00d4d0 000072001c0a53e0 -0x000071ffea070a10: 0000000000000000 000071ffea070e00 -0x000071ffea070a20: 000072001c21caf8 0000000000000000 -0x000071ffea070a30: 000072001c21cae8 000072001c372dae -0x000071ffea070a40: 0000000000000001 000000000000006f -0x000071ffea070a50: 000071ffebfb17d0 0000000000000000 -0x000071ffea070a60: 000071fee4b8ab30 0000000000000000 -0x000071ffea070a70: 00000000000000ca 28fd47b5e1463e18 -0x000071ffea070a80: 0000000000000213 000072001c217300 -0x000071ffea070a90: 0000000000000000 0000000000000200 -0x000071ffea070aa0: 000071ffea070db0 000000000000003e -0x000071ffea070ab0: 000071ffea070d70 000071ffea070ad0 -0x000071ffea070ac0: 000071fee40024d0 000071ffebc592f8 - -Instructions: (pc=0x000071ffebc5933a) -0x000071ffebc5923a: f4 66 41 c1 ec 03 41 0f b7 d4 2b 95 40 ff ff ff -0x000071ffebc5924a: 48 c1 e2 03 e8 bd f0 fa ff 49 8b 4d 00 41 0f b7 -0x000071ffebc5925a: 7d 14 48 01 d9 89 fe 66 41 2b 7d 10 29 ce 66 c1 -0x000071ffebc5926a: ef 03 49 89 4d 00 66 c1 ee 03 66 39 fe 73 0c 4c -0x000071ffebc5927a: 8b bd 50 ff ff ff 66 41 89 4f 10 48 8d 65 d8 5b -0x000071ffebc5928a: 41 5c 41 5d 41 5e 41 5f 5d c3 29 d8 48 89 a5 48 -0x000071ffebc5929a: ff ff ff 4c 89 ff 44 0f b7 e0 44 0f b7 c0 66 89 -0x000071ffebc592aa: 45 c0 45 8d 74 24 01 4e 8d 1c c5 00 00 00 00 44 -0x000071ffebc592ba: 89 a5 40 ff ff ff 4a 8d 1c f5 0f 00 00 00 4c 29 -0x000071ffebc592ca: da 4c 89 9d 38 ff ff ff 81 e3 f0 ff 1f 00 4c 8d -0x000071ffebc592da: 14 16 4c 89 c2 48 8b b5 30 ff ff ff 48 29 dc 4c -0x000071ffebc592ea: 89 55 c8 49 89 e6 4c 89 f1 e8 28 ed ff ff 48 29 -0x000071ffebc592fa: dc 48 89 65 80 45 85 e4 0f 84 07 ff ff ff 44 8b -0x000071ffebc5930a: 8d 2c ff ff ff c7 45 b8 00 00 00 00 4c 89 7d b0 -0x000071ffebc5931a: 4d 89 f7 45 89 e6 4b 8d 0c 89 4c 89 4d a0 48 c1 -0x000071ffebc5932a: e1 03 48 89 4d 88 49 8b 37 48 8d 15 06 f1 01 00 -0x000071ffebc5933a: 44 8b 2e 41 81 e5 ff 0f 00 00 44 89 e8 4c 8b 24 -0x000071ffebc5934a: c2 4c 89 65 a8 4c 8b 06 48 8d 3d 67 72 02 00 4c -0x000071ffebc5935a: 8b 5d a0 49 c1 e8 26 41 83 e0 3f 46 8b 14 9f 44 -0x000071ffebc5936a: 89 c3 44 89 45 bc 4c 8d 0c dd 00 00 00 00 49 29 -0x000071ffebc5937a: d9 49 c1 e1 05 4d 01 ca 4d 01 e2 49 8d 7a 48 4c -0x000071ffebc5938a: 89 55 90 48 89 7d 98 e8 6a f0 fa ff 4c 8b 4d 90 -0x000071ffebc5939a: 85 c0 0f 85 ce 03 00 00 49 8d 49 40 48 89 4d 90 -0x000071ffebc593aa: 49 8b 1f 48 8b 55 a0 45 8d 5e ff 45 31 e4 48 8d -0x000071ffebc593ba: 05 a1 72 02 00 41 ba 01 00 00 00 41 83 e3 01 48 -0x000071ffebc593ca: 8b 3b 44 8b 04 90 48 8b 45 c8 89 fe 81 e6 ff 0f -0x000071ffebc593da: 00 00 48 8b 08 41 39 f5 0f 84 c0 02 00 00 4a 89 -0x000071ffebc593ea: 0c e0 4b 89 1c e7 41 bc 01 00 00 00 bb 01 00 00 -0x000071ffebc593fa: 00 41 83 fe 01 0f 86 51 02 00 00 45 85 db 74 38 -0x000071ffebc5940a: 49 8b 57 08 48 8b 48 08 48 8b 32 89 f7 81 e7 ff -0x000071ffebc5941a: 0f 00 00 41 39 fd 0f 84 6a 04 00 00 45 89 e3 41 -0x000071ffebc5942a: 83 c4 01 4a 89 0c d8 4b 89 14 df 48 83 c3 01 41 - - - ---------------- P R O C E S S --------------- - -VM state: not at safepoint (normal execution) - -VM Mutex/Monitor currently owned by a thread: None - -Heap address: 0x000000060c000000, size: 8000 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 - -CDS archive(s) mapped at: [0x000071ff92000000-0x000071ff92d91000-0x000071ff92d91000), size 14225408, SharedBaseAddress: 0x000071ff92000000, ArchiveRelocationMode: 1. -Compressed class space mapped at: 0x000071ff93000000-0x000071ffd3000000, reserved size: 1073741824 -Narrow klass base: 0x000071ff92000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 - -GC Precious Log: - - -Heap: - garbage-first heap total reserved 8192000K, committed 28672K, used 14249K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 3 young (12288K), 1 survivors (4096K) - Metaspace used 21955K, committed 22272K, reserved 1114112K - class space used 2290K, committed 2432K, reserved 1048576K - -Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, TAMS=top-at-mark-start, PB=parsable bottom -| 0|0x000000060c000000, 0x000000060c3675b0, 0x000000060c400000| 85%| O| |TAMS 0x000000060c000000| PB 0x000000060c000000| Untracked | 0 -| 1|0x000000060c400000, 0x000000060c6bd990, 0x000000060c800000| 68%| O| |TAMS 0x000000060c400000| PB 0x000000060c400000| Untracked | 0 -| 2|0x000000060c800000, 0x000000060c800000, 0x000000060cc00000| 0%| F| |TAMS 0x000000060c800000| PB 0x000000060c800000| Untracked | 0 -| 3|0x000000060cc00000, 0x000000060cc00000, 0x000000060d000000| 0%| F| |TAMS 0x000000060cc00000| PB 0x000000060cc00000| Untracked | 0 -| 4|0x000000060d000000, 0x000000060d255cf8, 0x000000060d400000| 58%| E| |TAMS 0x000000060d000000| PB 0x000000060d000000| Complete | 0 -| 5|0x000000060d400000, 0x000000060d56faa8, 0x000000060d800000| 35%| S|CS|TAMS 0x000000060d400000| PB 0x000000060d400000| Complete | 0 -| 6|0x000000060d800000, 0x000000060dc00000, 0x000000060dc00000|100%| E|CS|TAMS 0x000000060d800000| PB 0x000000060d800000| Complete | 0 - -Card table byte_map: [0x000071fffb800000,0x000071fffc7a0000] _byte_map_base: 0x000071fff87a0000 - -Marking Bits: (CMBitMap*) 0x0000720014059190 - Bits: [0x000071fff3a00000, 0x000071fffb700000) - -Polling page: 0x000072001c342000 - -Metaspace: - -Usage: - Non-class: 19.20 MB used. - Class: 2.24 MB used. - Both: 21.44 MB used. - -Virtual space: - Non-class space: 64.00 MB reserved, 19.38 MB ( 30%) committed, 1 nodes. - Class space: 1.00 GB reserved, 2.38 MB ( <1%) committed, 1 nodes. - Both: 1.06 GB reserved, 21.75 MB ( 2%) committed. - -Chunk freelists: - Non-Class: 11.98 MB - Class: 13.45 MB - Both: 25.44 MB - -MaxMetaspaceSize: unlimited -CompressedClassSpaceSize: 1.00 GB -Initial GC threshold: 21.00 MB -Current GC threshold: 27.00 MB -CDS: on - - commit_granule_bytes: 65536. - - commit_granule_words: 8192. - - virtual_space_node_default_size: 8388608. - - enlarge_chunks_in_place: 1. - - use_allocation_guard: 0. - - -Internal statistics: - -num_allocs_failed_limit: 0. -num_arena_births: 334. -num_arena_deaths: 0. -num_vsnodes_births: 2. -num_vsnodes_deaths: 0. -num_space_committed: 348. -num_space_uncommitted: 0. -num_chunks_returned_to_freelist: 0. -num_chunks_taken_from_freelist: 684. -num_chunk_merges: 0. -num_chunk_splits: 434. -num_chunks_enlarged: 278. -num_inconsistent_stats: 0. - -CodeHeap 'non-profiled nmethods': size=120032Kb used=678Kb max_used=678Kb free=119353Kb - bounds [0x00007200042c8000, 0x0000720004538000, 0x000072000b800000] -CodeHeap 'profiled nmethods': size=120028Kb used=2602Kb max_used=2602Kb free=117425Kb - bounds [0x000071fffc800000, 0x000071fffca90000, 0x0000720003d37000] -CodeHeap 'non-nmethods': size=5700Kb used=2461Kb max_used=2477Kb free=3239Kb - bounds [0x0000720003d37000, 0x0000720003fb7000, 0x00007200042c8000] -CodeCache: size=245760Kb, used=5741Kb, max_used=5757Kb, free=240017Kb - total_blobs=3531, nmethods=2097, adapters=1341, full_count=0 -Compilation: enabled, stopped_count=0, restarted_count=0 - -Compilation events (20 events): -Event: 3.270 Thread 0x00007200141485b0 2245 ! 3 java.util.regex.Pattern::closure (276 bytes) -Event: 3.271 Thread 0x00007200141485b0 nmethod 2245 0x000071fffca84388 code [0x000071fffca84720, 0x000071fffca86048] -Event: 3.271 Thread 0x00007200141485b0 2243 3 java.util.regex.Pattern::expr (142 bytes) -Event: 3.272 Thread 0x00007200141485b0 nmethod 2243 0x000071fffca86108 code [0x000071fffca862e0, 0x000071fffca86d88] -Event: 3.272 Thread 0x00007200141485b0 2246 3 java.lang.String::split (148 bytes) -Event: 3.272 Thread 0x000072001413eeb0 nmethod 2220 0x0000720004370288 code [0x00007200043703c0, 0x0000720004370b00] -Event: 3.272 Thread 0x000072001413eeb0 2235 4 java.io.BufferedInputStream::implRead (112 bytes) -Event: 3.273 Thread 0x00007200141485b0 nmethod 2246 0x000071fffca86e08 code [0x000071fffca870e0, 0x000071fffca88668] -Event: 3.273 Thread 0x00007200141485b0 2247 3 java.lang.String::split (8 bytes) -Event: 3.273 Thread 0x00007200141485b0 nmethod 2247 0x000071fffca88708 code [0x000071fffca88820, 0x000071fffca88968] -Event: 3.273 Thread 0x00007200141485b0 2241 3 java.util.ArrayList::subList (20 bytes) -Event: 3.273 Thread 0x00007200141485b0 nmethod 2241 0x000071fffca88a08 code [0x000071fffca88b60, 0x000071fffca88f20] -Event: 3.273 Thread 0x00007200141485b0 2242 ! 3 java.util.regex.Pattern:: (144 bytes) -Event: 3.273 Thread 0x00007200141485b0 nmethod 2242 0x000071fffca88f88 code [0x000071fffca89200, 0x000071fffca8a2a0] -Event: 3.273 Thread 0x00007200141485b0 2236 3 javax.imageio.ImageReader::processImageUpdate (73 bytes) -Event: 3.274 Thread 0x00007200141485b0 nmethod 2236 0x000071fffca8a388 code [0x000071fffca8a500, 0x000071fffca8aa70] -Event: 3.276 Thread 0x000071ff585b1560 nmethod 2227% 0x0000720004370b88 code [0x0000720004370cc0, 0x0000720004371648] -Event: 3.276 Thread 0x000071ff585b1560 2228 4 com.sun.imageio.plugins.png.PNGImageReader::paethPredictor (57 bytes) -Event: 3.276 Thread 0x000071ff585b1560 nmethod 2228 0x0000720004371688 code [0x0000720004371780, 0x0000720004371878] -Event: 3.276 Thread 0x000071ff585b1560 2248 4 java.lang.String::subSequence (7 bytes) - -GC Heap History (8 events): -Event: 2.407 GC heap before -{Heap before GC invocations=0 (full 0): - garbage-first heap total reserved 8192000K, committed 516096K, used 21627K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 6 young (24576K), 0 survivors (0K) - Metaspace used 16354K, committed 16576K, reserved 1114112K - class space used 1823K, committed 1920K, reserved 1048576K -} -Event: 2.418 GC heap after -{Heap after GC invocations=1 (full 1): - garbage-first heap total reserved 8192000K, committed 98304K, used 6293K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 0 young (0K), 0 survivors (0K) - Metaspace used 16354K, committed 16576K, reserved 1114112K - class space used 1823K, committed 1920K, reserved 1048576K -} -Event: 2.418 GC heap before -{Heap before GC invocations=1 (full 1): - garbage-first heap total reserved 8192000K, committed 98304K, used 6293K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 0 young (0K), 0 survivors (0K) - Metaspace used 16354K, committed 16576K, reserved 1114112K - class space used 1823K, committed 1920K, reserved 1048576K -} -Event: 2.429 GC heap after -{Heap after GC invocations=2 (full 2): - garbage-first heap total reserved 8192000K, committed 28672K, used 6291K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 0 young (0K), 0 survivors (0K) - Metaspace used 16354K, committed 16576K, reserved 1114112K - class space used 1823K, committed 1920K, reserved 1048576K -} -Event: 2.891 GC heap before -{Heap before GC invocations=2 (full 2): - garbage-first heap total reserved 8192000K, committed 28672K, used 10387K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 2 young (8192K), 0 survivors (0K) - Metaspace used 18559K, committed 18880K, reserved 1114112K - class space used 2036K, committed 2176K, reserved 1048576K -} -Event: 2.892 GC heap after -{Heap after GC invocations=3 (full 2): - garbage-first heap total reserved 8192000K, committed 28672K, used 7362K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 1 young (4096K), 1 survivors (4096K) - Metaspace used 18559K, committed 18880K, reserved 1114112K - class space used 2036K, committed 2176K, reserved 1048576K -} -Event: 2.963 GC heap before -{Heap before GC invocations=3 (full 2): - garbage-first heap total reserved 8192000K, committed 28672K, used 11458K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 2 young (8192K), 1 survivors (4096K) - Metaspace used 19953K, committed 20288K, reserved 1114112K - class space used 2161K, committed 2304K, reserved 1048576K -} -Event: 2.964 GC heap after -{Heap after GC invocations=4 (full 2): - garbage-first heap total reserved 8192000K, committed 28672K, used 7762K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 1 young (4096K), 1 survivors (4096K) - Metaspace used 19953K, committed 20288K, reserved 1114112K - class space used 2161K, committed 2304K, reserved 1048576K -} - -Dll operation events (12 events): -Event: 0.002 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -Event: 0.019 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -Event: 0.019 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -Event: 0.030 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -Event: 0.032 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -Event: 0.079 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -Event: 0.140 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -Event: 0.146 Loaded shared library /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -Event: 0.247 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -Event: 0.250 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -Event: 0.277 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so -Event: 0.364 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so - -Deoptimization events (20 events): -Event: 2.879 Thread 0x00007200146d5c30 Uncommon trap: trap_request=0xffffff76 fr.pc=0x000072000434d868 relative=0x00000000000001a8 -Event: 2.879 Thread 0x00007200146d5c30 Uncommon trap: reason=predicate action=maybe_recompile pc=0x000072000434d868 method=java.util.regex.Pattern$BmpCharPropertyGreedy.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 12 c2 -Event: 2.879 Thread 0x00007200146d5c30 DEOPT PACKING pc=0x000072000434d868 sp=0x000071ffea0700e0 -Event: 2.879 Thread 0x00007200146d5c30 DEOPT UNPACKING pc=0x0000720003d8abf9 sp=0x000071ffea0700b8 mode 2 -Event: 2.889 Thread 0x00007200146d5c30 Uncommon trap: trap_request=0xffffff45 fr.pc=0x0000720004339774 relative=0x0000000000000074 -Event: 2.889 Thread 0x00007200146d5c30 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000720004339774 method=java.util.logging.Logger.isLoggable(Ljava/util/logging/Level;)Z @ 13 c2 -Event: 2.889 Thread 0x00007200146d5c30 DEOPT PACKING pc=0x0000720004339774 sp=0x000071ffea070580 -Event: 2.889 Thread 0x00007200146d5c30 DEOPT UNPACKING pc=0x0000720003d8abf9 sp=0x000071ffea0704e0 mode 2 -Event: 2.953 Thread 0x00007200146d5c30 Uncommon trap: trap_request=0xffffff6e fr.pc=0x0000720004363fe8 relative=0x0000000000000148 -Event: 2.953 Thread 0x00007200146d5c30 Uncommon trap: reason=loop_limit_check action=maybe_recompile pc=0x0000720004363fe8 method=java.util.regex.Pattern$Start.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 34 c2 -Event: 2.953 Thread 0x00007200146d5c30 DEOPT PACKING pc=0x0000720004363fe8 sp=0x000071ffea0700a0 -Event: 2.953 Thread 0x00007200146d5c30 DEOPT UNPACKING pc=0x0000720003d8abf9 sp=0x000071ffea070050 mode 2 -Event: 3.104 Thread 0x00007200146d5c30 Uncommon trap: trap_request=0xffffff6e fr.pc=0x0000720004366dc8 relative=0x0000000000000a68 -Event: 3.104 Thread 0x00007200146d5c30 Uncommon trap: reason=loop_limit_check action=maybe_recompile pc=0x0000720004366dc8 method=java.util.regex.Pattern$Start.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 34 c2 -Event: 3.104 Thread 0x00007200146d5c30 DEOPT PACKING pc=0x0000720004366dc8 sp=0x000071ffea06fa50 -Event: 3.104 Thread 0x00007200146d5c30 DEOPT UNPACKING pc=0x0000720003d8abf9 sp=0x000071ffea06f9d0 mode 2 -Event: 3.142 Thread 0x00007200146d5c30 DEOPT PACKING pc=0x000071fffca20d9f sp=0x000071ffea06f7c0 -Event: 3.142 Thread 0x00007200146d5c30 DEOPT UNPACKING pc=0x0000720003d8b30f sp=0x000071ffea06ec00 mode 0 -Event: 3.144 Thread 0x00007200146d5c30 DEOPT PACKING pc=0x000071fffc8b3354 sp=0x000071ffea06f790 -Event: 3.144 Thread 0x00007200146d5c30 DEOPT UNPACKING pc=0x0000720003d8b30f sp=0x000071ffea06ec48 mode 0 - -Classes loaded (20 events): -Event: 2.936 Loading class java/awt/image/PixelInterleavedSampleModel -Event: 2.936 Loading class java/awt/image/ComponentSampleModel -Event: 2.936 Loading class java/awt/image/ComponentSampleModel done -Event: 2.936 Loading class java/awt/image/PixelInterleavedSampleModel done -Event: 2.936 Loading class javax/imageio/ImageTypeSpecifier$Packed -Event: 2.936 Loading class javax/imageio/ImageTypeSpecifier$Packed done -Event: 2.936 Loading class java/awt/image/DataBufferByte -Event: 2.936 Loading class java/awt/image/DataBufferByte done -Event: 2.936 Loading class sun/awt/image/ByteInterleavedRaster -Event: 2.937 Loading class sun/awt/image/ByteComponentRaster -Event: 2.937 Loading class sun/awt/image/ByteComponentRaster done -Event: 2.937 Loading class sun/awt/image/ByteInterleavedRaster done -Event: 2.937 Loading class sun/awt/image/ShortComponentRaster -Event: 2.937 Loading class sun/awt/image/ShortComponentRaster done -Event: 3.006 Loading class java/util/function/LongFunction -Event: 3.007 Loading class java/util/function/LongFunction done -Event: 3.276 Loading class java/lang/Throwable$WrappedPrintStream -Event: 3.276 Loading class java/lang/Throwable$PrintStreamOrWriter -Event: 3.276 Loading class java/lang/Throwable$PrintStreamOrWriter done -Event: 3.276 Loading class java/lang/Throwable$WrappedPrintStream done - -Classes unloaded (0 events): -No events - -Classes redefined (0 events): -No events - -Internal exceptions (20 events): -Event: 0.653 Thread 0x00007200146bc010 Exception (0x000000062a0b8990) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.361 Thread 0x00007200146bc010 Exception (0x000000062a354398) -thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] -Event: 2.402 Thread 0x00007200146bc010 Exception (0x0000000629cbdfc0) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.445 Thread 0x000072001402d0f0 Exception (0x000000060d9db038) -thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] -Event: 2.455 Thread 0x000072001402d0f0 Exception (0x000000060da3a090) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.456 Thread 0x000072001402d0f0 Exception (0x000000060da481a0) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.603 Thread 0x00007200146d5c30 Exception (0x000000060d561810) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 863] -Event: 2.878 Thread 0x00007200146d5c30 Exception (0x000000060d782020) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.965 Thread 0x00007200146d5c30 Exception (0x000000060d828358) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.969 Thread 0x00007200146d5c30 Exception (0x000000060d850bb8) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.004 Thread 0x00007200146d5c30 Exception (0x000000060d949c48) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.004 Thread 0x00007200146d5c30 Exception (0x000000060d94f310) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.019 Thread 0x00007200146d5c30 Exception (0x000000060da07a10) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.020 Thread 0x00007200146d5c30 Exception (0x000000060da1a280) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.021 Thread 0x00007200146d5c30 Exception (0x000000060da1e220) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.021 Thread 0x00007200146d5c30 Exception (0x000000060da218e0) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.027 Thread 0x00007200146d5c30 Exception (0x000000060da85e10) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.064 Thread 0x00007200146d5c30 Exception (0x000000060dad6840) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.070 Thread 0x00007200146d5c30 Exception (0x000000060daf1198) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.101 Thread 0x00007200146d5c30 Exception (0x000000060db30f38) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] - -VM Operations (20 events): -Event: 0.154 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.154 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.261 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.261 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.279 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.279 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.288 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.288 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.684 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.684 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 2.407 Executing VM operation: G1CollectFull (System.gc()) -Event: 2.418 Executing VM operation: G1CollectFull (System.gc()) done -Event: 2.418 Executing VM operation: G1CollectFull (System.gc()) -Event: 2.429 Executing VM operation: G1CollectFull (System.gc()) done -Event: 2.453 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 2.453 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 2.891 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) -Event: 2.892 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done -Event: 2.963 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) -Event: 2.964 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done - -Memory protections (20 events): -Event: 0.017 Protecting memory [0x000071fff0500000,0x000071fff0504000] with protection modes 0 -Event: 0.018 Protecting memory [0x000071fff0400000,0x000071fff0404000] with protection modes 0 -Event: 0.018 Protecting memory [0x000071fff0300000,0x000071fff0304000] with protection modes 0 -Event: 0.026 Protecting memory [0x000071fff0200000,0x000071fff0204000] with protection modes 0 -Event: 0.027 Protecting memory [0x000071fff0100000,0x000071fff0104000] with protection modes 0 -Event: 0.059 Protecting memory [0x000071fff0000000,0x000071fff0004000] with protection modes 0 -Event: 0.302 Protecting memory [0x000071ffeae78000,0x000071ffeae7c000] with protection modes 0 -Event: 0.304 Protecting memory [0x000071ffead78000,0x000071ffead7c000] with protection modes 0 -Event: 0.306 Protecting memory [0x000071ffeac78000,0x000071ffeac7c000] with protection modes 0 -Event: 0.306 Protecting memory [0x000071ffeab78000,0x000071ffeab7c000] with protection modes 0 -Event: 0.364 Protecting memory [0x000071ffeaa78000,0x000071ffeaa7c000] with protection modes 0 -Event: 0.590 Protecting memory [0x000071fff0000000,0x000071fff0004000] with protection modes 0 -Event: 0.681 Protecting memory [0x000071ffea978000,0x000071ffea97c000] with protection modes 0 -Event: 0.710 Protecting memory [0x000071ffea778000,0x000071ffea77c000] with protection modes 0 -Event: 2.375 Protecting memory [0x000071ffea978000,0x000071ffea97c000] with protection modes 0 -Event: 2.432 Protecting memory [0x000071ffea072000,0x000071ffea076000] with protection modes 0 -Event: 2.460 Protecting memory [0x000071ffe9f72000,0x000071ffe9f76000] with protection modes 0 -Event: 2.460 Protecting memory [0x000072001a900000,0x000072001a904000] with protection modes 0 -Event: 2.896 Protecting memory [0x000071ffea978000,0x000071ffea97c000] with protection modes 0 -Event: 3.267 Protecting memory [0x000071ffea072000,0x000071ffea076000] with protection modes 0 - -Nmethod flushes (20 events): -Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc88e088 -Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc88e488 -Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc88ff08 -Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc890a08 -Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc8da088 -Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc8da708 -Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc8dac88 -Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc8dcb08 -Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc918d08 -Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc929b08 -Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc92c788 -Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc940708 -Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc940a08 -Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc942988 -Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc943c08 -Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc949708 -Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc971088 -Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc972c88 -Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc9f5a08 -Event: 2.422 Thread 0x000072001412e2f0 flushing nmethod 0x000071fffc9f7808 - -Events (20 events): -Event: 0.302 Thread 0x000072001402d0f0 Thread added: 0x00007200146b6f00 -Event: 0.304 Thread 0x000072001402d0f0 Thread added: 0x00007200146b8b70 -Event: 0.306 Thread 0x000072001402d0f0 Thread added: 0x00007200146baf00 -Event: 0.306 Thread 0x000072001402d0f0 Thread added: 0x00007200146bc010 -Event: 0.364 Thread 0x00007200146bc010 Thread added: 0x000071ff2c043cc0 -Event: 0.585 Thread 0x000071ff5c0e0c80 Thread exited: 0x000071ff5c0e0c80 -Event: 0.590 Thread 0x00007200146bc010 Thread added: 0x000071ff2c061470 -Event: 0.681 Thread 0x00007200141485b0 Thread added: 0x000071ff58542f60 -Event: 0.710 Thread 0x00007200146bc010 Thread added: 0x000071ff2c0bc7a0 -Event: 1.148 Thread 0x000071ff58542f60 Thread exited: 0x000071ff58542f60 -Event: 2.375 Thread 0x00007200141485b0 Thread added: 0x000071ff5856e360 -Event: 2.432 Thread 0x000072001413eeb0 Thread added: 0x000071ff5c2d16e0 -Event: 2.460 Thread 0x000072001402d0f0 Thread added: 0x00007200146d5c30 -Event: 2.460 Thread 0x000072001402d0f0 Thread exited: 0x000072001402d0f0 -Event: 2.460 Thread 0x000072001402d0f0 Thread added: 0x000072001402d0f0 -Event: 2.570 Thread 0x000071ff5c2d16e0 Thread exited: 0x000071ff5c2d16e0 -Event: 2.878 Thread 0x000071ff5856e360 Thread exited: 0x000071ff5856e360 -Event: 2.896 Thread 0x00007200146d5c30 Thread added: 0x000071fee4582550 -Event: 3.267 Thread 0x00007200141485b0 Thread added: 0x000071ff585b1560 -Event: 3.277 Thread 0x00007200146d5c30 Thread exited: 0x00007200146d5c30 - - -Dynamic libraries: -60c000000-60dc00000 rw-p 00000000 00:00 0 -60dc00000-800000000 ---p 00000000 00:00 0 -5f35736ce000-5f35736cf000 r-xp 00000000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java -5f35736d0000-5f35736d1000 r--p 00001000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java -5f35736d1000-5f35736d2000 rw-p 00002000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java -5f35785ae000-5f35785f7000 rw-p 00000000 00:00 0 [heap] -71fe9c000000-71fe9c075000 rw-p 00000000 00:00 0 -71fe9c075000-71fea0000000 ---p 00000000 00:00 0 -71fea4000000-71fea4021000 rw-p 00000000 00:00 0 -71fea4021000-71fea8000000 ---p 00000000 00:00 0 -71fea8000000-71fea8021000 rw-p 00000000 00:00 0 -71fea8021000-71feac000000 ---p 00000000 00:00 0 -71feb0000000-71feb0021000 rw-p 00000000 00:00 0 -71feb0021000-71feb4000000 ---p 00000000 00:00 0 -71feb4000000-71feb4021000 rw-p 00000000 00:00 0 -71feb4021000-71feb8000000 ---p 00000000 00:00 0 -71febc000000-71febc021000 rw-p 00000000 00:00 0 -71febc021000-71fec0000000 ---p 00000000 00:00 0 -71fec0000000-71fec0021000 rw-p 00000000 00:00 0 -71fec0021000-71fec4000000 ---p 00000000 00:00 0 -71fec8000000-71fec8021000 rw-p 00000000 00:00 0 -71fec8021000-71fecc000000 ---p 00000000 00:00 0 -71fecc000000-71fecc0c8000 rw-p 00000000 00:00 0 -71fecc0c8000-71fed0000000 ---p 00000000 00:00 0 -71fed4000000-71fed4021000 rw-p 00000000 00:00 0 -71fed4021000-71fed8000000 ---p 00000000 00:00 0 -71fed9000000-71fedf712000 r-xp 00000000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 -71fedf712000-71fedff30000 r--p 06711000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 -71fedff30000-71fedff76000 rw-p 06f2f000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 -71fedff76000-71fedfff2000 rw-p 00000000 00:00 0 -71fee0000000-71fee0021000 rw-p 00000000 00:00 0 -71fee0021000-71fee4000000 ---p 00000000 00:00 0 -71fee4000000-71fee7148000 rw-p 00000000 00:00 0 -71fee7148000-71fee8000000 ---p 00000000 00:00 0 -71feec000000-71feec050000 rw-p 00000000 00:00 0 -71feec050000-71fef0000000 ---p 00000000 00:00 0 -71fef0000000-71fef0021000 rw-p 00000000 00:00 0 -71fef0021000-71fef4000000 ---p 00000000 00:00 0 -71fef8000000-71fef8021000 rw-p 00000000 00:00 0 -71fef8021000-71fefc000000 ---p 00000000 00:00 0 -71fefc000000-71fefc021000 rw-p 00000000 00:00 0 -71fefc021000-71ff00000000 ---p 00000000 00:00 0 -71ff04000000-71ff04021000 rw-p 00000000 00:00 0 -71ff04021000-71ff08000000 ---p 00000000 00:00 0 -71ff08000000-71ff08021000 rw-p 00000000 00:00 0 -71ff08021000-71ff0c000000 ---p 00000000 00:00 0 -71ff10000000-71ff10021000 rw-p 00000000 00:00 0 -71ff10021000-71ff14000000 ---p 00000000 00:00 0 -71ff14000000-71ff14021000 rw-p 00000000 00:00 0 -71ff14021000-71ff18000000 ---p 00000000 00:00 0 -71ff1c000000-71ff1c021000 rw-p 00000000 00:00 0 -71ff1c021000-71ff20000000 ---p 00000000 00:00 0 -71ff20000000-71ff201bc000 rw-p 00000000 00:00 0 -71ff201bc000-71ff24000000 ---p 00000000 00:00 0 -71ff28000000-71ff28021000 rw-p 00000000 00:00 0 -71ff28021000-71ff2c000000 ---p 00000000 00:00 0 -71ff2c000000-71ff2c102000 rw-p 00000000 00:00 0 -71ff2c102000-71ff30000000 ---p 00000000 00:00 0 -71ff34000000-71ff34021000 rw-p 00000000 00:00 0 -71ff34021000-71ff38000000 ---p 00000000 00:00 0 -71ff38000000-71ff38021000 rw-p 00000000 00:00 0 -71ff38021000-71ff3c000000 ---p 00000000 00:00 0 -71ff40000000-71ff40021000 rw-p 00000000 00:00 0 -71ff40021000-71ff44000000 ---p 00000000 00:00 0 -71ff44000000-71ff44184000 rw-p 00000000 00:00 0 -71ff44184000-71ff48000000 ---p 00000000 00:00 0 -71ff4c000000-71ff4c021000 rw-p 00000000 00:00 0 -71ff4c021000-71ff50000000 ---p 00000000 00:00 0 -71ff50000000-71ff50021000 rw-p 00000000 00:00 0 -71ff50021000-71ff54000000 ---p 00000000 00:00 0 -71ff58000000-71ff585b8000 rw-p 00000000 00:00 0 -71ff585b8000-71ff5c000000 ---p 00000000 00:00 0 -71ff5c000000-71ff5c52c000 rw-p 00000000 00:00 0 -71ff5c52c000-71ff60000000 ---p 00000000 00:00 0 -71ff60600000-71ff60725000 r--p 00000000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -71ff60725000-71ff60be5000 r-xp 00125000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -71ff60be5000-71ff60d19000 r--p 005e5000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -71ff60d19000-71ff60d1a000 ---p 00719000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -71ff60d1a000-71ff60d7d000 r--p 00719000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -71ff60d7d000-71ff60d87000 rw-p 0077c000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -71ff60d87000-71ff60d98000 rw-p 00000000 00:00 0 -71ff60e00000-71ff60e01000 ---p 00000000 00:00 0 -71ff60e01000-71ff61601000 rw-p 00000000 00:00 0 -71ff61800000-71ff61801000 ---p 00000000 00:00 0 -71ff61801000-71ff62001000 rw-p 00000000 00:00 0 -71ff62200000-71ff62201000 ---p 00000000 00:00 0 -71ff62201000-71ff62a01000 rw-p 00000000 00:00 0 -71ff62c00000-71ff62c01000 ---p 00000000 00:00 0 -71ff62c01000-71ff63401000 rw-p 00000000 00:00 0 -71ff63600000-71ff63601000 ---p 00000000 00:00 0 -71ff63601000-71ff63e01000 rw-p 00000000 00:00 0 -71ff64000000-71ff64021000 rw-p 00000000 00:00 0 -71ff64021000-71ff68000000 ---p 00000000 00:00 0 -71ff68000000-71ff68021000 rw-p 00000000 00:00 0 -71ff68021000-71ff6c000000 ---p 00000000 00:00 0 -71ff6c200000-71ff6c201000 ---p 00000000 00:00 0 -71ff6c201000-71ff6ca01000 rw-p 00000000 00:00 0 -71ff6cc00000-71ff6cc2f000 r--p 00000000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -71ff6cc2f000-71ff6d302000 r-xp 0002f000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -71ff6d302000-71ff6d424000 r--p 00702000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -71ff6d424000-71ff6d435000 r--p 00823000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -71ff6d435000-71ff6d4b3000 rw-p 00834000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -71ff6d4b3000-71ff6d4c7000 rw-p 00000000 00:00 0 -71ff6d600000-71ff6e2f5000 r--p 00000000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -71ff6e2f5000-71ff6ecd8000 r-xp 00cf5000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -71ff6ecd8000-71ff6f0e9000 r--p 016d8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -71ff6f0e9000-71ff6f56b000 r--p 01ae8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -71ff6f56b000-71ff6f573000 rw-p 01f6a000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -71ff6f573000-71ff6f57e000 rw-p 00000000 00:00 0 -71ff6f600000-71ff6f601000 ---p 00000000 00:00 0 -71ff6f601000-71ff6fe01000 rw-p 00000000 00:00 0 -71ff70000000-71ff70021000 rw-p 00000000 00:00 0 -71ff70021000-71ff74000000 ---p 00000000 00:00 0 -71ff74000000-71ff74021000 rw-p 00000000 00:00 0 -71ff74021000-71ff78000000 ---p 00000000 00:00 0 -71ff78600000-71ff78601000 ---p 00000000 00:00 0 -71ff78601000-71ff78e01000 rw-p 00000000 00:00 0 -71ff79000000-71ff79001000 ---p 00000000 00:00 0 -71ff79001000-71ff79801000 rw-p 00000000 00:00 0 -71ff79a00000-71ff79a01000 ---p 00000000 00:00 0 -71ff79a01000-71ff7a201000 rw-p 00000000 00:00 0 -71ff7a400000-71ff7a401000 ---p 00000000 00:00 0 -71ff7a401000-71ff7ac01000 rw-p 00000000 00:00 0 -71ff7ae00000-71ff7ae8d000 r--p 00000000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -71ff7ae8d000-71ff7b5f5000 r-xp 0008d000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -71ff7b5f5000-71ff7be82000 r--p 007f5000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -71ff7be82000-71ff7bec4000 r--p 01081000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -71ff7bec4000-71ff7bec7000 rw-p 010c3000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -71ff7bec7000-71ff7becd000 rw-p 00000000 00:00 0 -71ff7c000000-71ff7c021000 rw-p 00000000 00:00 0 -71ff7c021000-71ff80000000 ---p 00000000 00:00 0 -71ff80000000-71ff80637000 rw-p 00000000 00:00 0 -71ff80637000-71ff84000000 ---p 00000000 00:00 0 -71ff84000000-71ff84200000 rw-s 00000000 00:06 1022 /dev/nvidia0 -71ff84200000-71ff84201000 ---p 00000000 00:00 0 -71ff84201000-71ff84a01000 rw-p 00000000 00:00 0 -71ff84c00000-71ff84c5b000 r--p 00000000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -71ff84c5b000-71ff84fd9000 r-xp 0005b000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -71ff84fd9000-71ff853d5000 r--p 003d9000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -71ff853d5000-71ff85410000 r--p 007d4000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -71ff85410000-71ff85415000 rw-p 0080f000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -71ff85415000-71ff85440000 rw-p 00000000 00:00 0 -71ff85480000-71ff85500000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ff85500000-71ff85600000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ff85600000-71ff857c4000 r--p 00000000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -71ff857c4000-71ff874c4000 r-xp 001c4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -71ff874c4000-71ff87b39000 r--p 01ec4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -71ff87b39000-71ff87b3a000 ---p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -71ff87b3a000-71ff87d1a000 r--p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -71ff87d1a000-71ff87d93000 rw-p 02719000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -71ff87d93000-71ff87e08000 rw-p 00000000 00:00 0 -71ff87e2d000-71ff87e40000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ff87e40000-71ff87e80000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ff87e80000-71ff87ea0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ff87ea0000-71ff87ee0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ff87ee0000-71ff87f00000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ff87f00000-71ff88000000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ff88000000-71ff883f0000 rw-p 00000000 00:00 0 -71ff883f0000-71ff885b0000 rw-p 00000000 00:00 0 -71ff885b0000-71ff886f0000 rw-p 00000000 00:00 0 -71ff886f0000-71ff88710000 rw-p 00000000 00:00 0 -71ff88710000-71ff88730000 rw-p 00000000 00:00 0 -71ff88730000-71ff88770000 rw-p 00000000 00:00 0 -71ff88770000-71ff889f0000 rw-p 00000000 00:00 0 -71ff889f0000-71ff88a10000 rw-p 00000000 00:00 0 -71ff88a10000-71ff88a30000 rw-p 00000000 00:00 0 -71ff88a30000-71ff88a70000 rw-p 00000000 00:00 0 -71ff88a70000-71ff88af0000 rw-p 00000000 00:00 0 -71ff88af0000-71ff88cf0000 rw-p 00000000 00:00 0 -71ff88cf0000-71ff88d10000 rw-p 00000000 00:00 0 -71ff88d10000-71ff88d30000 rw-p 00000000 00:00 0 -71ff88d30000-71ff88d70000 rw-p 00000000 00:00 0 -71ff88d70000-71ff88ef0000 rw-p 00000000 00:00 0 -71ff88ef0000-71ff88ff0000 rw-p 00000000 00:00 0 -71ff88ff0000-71ff890f0000 rw-p 00000000 00:00 0 -71ff890f0000-71ff89150000 rw-p 00000000 00:00 0 -71ff89150000-71ff89200000 ---p 00000000 00:00 0 -71ff89200000-71ff89410000 rw-p 00000000 00:00 0 -71ff89410000-71ff8c000000 ---p 00000000 00:00 0 -71ff8c000000-71ff8c021000 rw-p 00000000 00:00 0 -71ff8c021000-71ff90000000 ---p 00000000 00:00 0 -71ff90000000-71ff90200000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ff90200000-71ff90201000 r--p 00000000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -71ff90201000-71ff90202000 r-xp 00001000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -71ff90202000-71ff91e1c000 r--p 00002000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -71ff91e1c000-71ff91e1d000 r--p 01c1b000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -71ff91e1d000-71ff91e1e000 rw-p 01c1c000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -71ff91e20000-71ff91e60000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ff91e60000-71ff91e80000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ff91e80000-71ff91f00000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ff91f00000-71ff92000000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ff92000000-71ff92d91000 rw-p 00001000 103:03 10498862 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/classes.jsa -71ff92d91000-71ff93000000 ---p 00000000 00:00 0 -71ff93000000-71ff93030000 rw-p 00000000 00:00 0 -71ff93030000-71ff93090000 rw-p 00000000 00:00 0 -71ff93090000-71ff930b0000 rw-p 00000000 00:00 0 -71ff930b0000-71ff93130000 rw-p 00000000 00:00 0 -71ff93130000-71ff93150000 rw-p 00000000 00:00 0 -71ff93150000-71ff931b0000 rw-p 00000000 00:00 0 -71ff931b0000-71ff931d0000 rw-p 00000000 00:00 0 -71ff931d0000-71ff93230000 rw-p 00000000 00:00 0 -71ff93230000-71ff93250000 rw-p 00000000 00:00 0 -71ff93250000-71ff93280000 ---p 00000000 00:00 0 -71ff93280000-71ff93290000 rw-p 00000000 00:00 0 -71ff93290000-71ffd3000000 ---p 00000000 00:00 0 -71ffd300d000-71ffd304d000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffd304d000-71ffd306d000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffd306d000-71ffd3080000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffd3080000-71ffd30c0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffd30c0000-71ffd3100000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffd3100000-71ffd3200000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffd3200000-71ffd326e000 r--p 00000000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -71ffd326e000-71ffd37d5000 r-xp 0006e000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -71ffd37d5000-71ffd3ee8000 r--p 005d5000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -71ffd3ee8000-71ffd3ee9000 ---p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -71ffd3ee9000-71ffd3f26000 r--p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -71ffd3f26000-71ffd3f29000 rw-p 00d25000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -71ffd3f29000-71ffd3f2b000 rw-p 00000000 00:00 0 -71ffd3f2d000-71ffd3f4d000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffd3f4d000-71ffd3f60000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffd3f60000-71ffd3f80000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffd3f80000-71ffd3fc0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffd3fc0000-71ffd4000000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffd4000000-71ffd4021000 rw-p 00000000 00:00 0 -71ffd4021000-71ffd8000000 ---p 00000000 00:00 0 -71ffd8000000-71ffd8021000 rw-p 00000000 00:00 0 -71ffd8021000-71ffdc000000 ---p 00000000 00:00 0 -71ffdc000000-71ffdc080000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffdc080000-71ffdc180000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffdc180000-71ffdc200000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffdc200000-71ffdc222000 r-xp 00000000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -71ffdc222000-71ffdc421000 ---p 00022000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -71ffdc421000-71ffdc429000 r--p 00021000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -71ffdc429000-71ffdc42a000 rw-p 00029000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -71ffdc42a000-71ffdc42b000 rw-p 00000000 00:00 0 -71ffdc43a000-71ffdc45a000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffdc45a000-71ffdc47a000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffdc47a000-71ffdc6bf000 rw-s 00000000 00:01 7173 /memfd:/.nvidia_drv.XXXXXX (deleted) -71ffdc6bf000-71ffdc800000 rw-s 00000000 103:03 13372247 /home/codex/.cache/mesa_shader_cache/index -71ffdc800000-71ffdc893000 r--p 00000000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -71ffdc893000-71ffdcce6000 r-xp 00093000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -71ffdcce6000-71ffdd1fc000 r--p 004e6000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -71ffdd1fc000-71ffdd234000 r--p 009fb000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -71ffdd234000-71ffdd244000 rw-p 00a33000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -71ffdd244000-71ffdd249000 rw-p 00000000 00:00 0 -71ffdd24c000-71ffdd25f000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffdd25f000-71ffdd272000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffdd272000-71ffdd2b2000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffdd2b2000-71ffdd2d2000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffdd2d2000-71ffdd312000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffdd312000-71ffdd332000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffdd332000-71ffdd372000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffdd372000-71ffdd374000 r--p 00000000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -71ffdd374000-71ffdd37d000 r-xp 00002000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -71ffdd37d000-71ffdd380000 r--p 0000b000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -71ffdd380000-71ffdd381000 ---p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -71ffdd381000-71ffdd382000 r--p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -71ffdd382000-71ffdd383000 rw-p 0000f000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -71ffdd383000-71ffdd385000 rw-p 00000000 00:00 0 -71ffdd385000-71ffdd396000 r--p 00000000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -71ffdd396000-71ffdd3d8000 r-xp 00011000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -71ffdd3d8000-71ffdd3f0000 r--p 00053000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -71ffdd3f0000-71ffdd3fe000 r--p 0006a000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -71ffdd3fe000-71ffdd400000 rw-p 00078000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -71ffdd400000-71ffddd22000 rw-p 00000000 00:00 0 -71ffddd26000-71ffddd2a000 r--p 00000000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -71ffddd2a000-71ffddd3a000 r-xp 00004000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -71ffddd3a000-71ffddd3d000 r--p 00014000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -71ffddd3d000-71ffddd3e000 r--p 00016000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -71ffddd3e000-71ffddd3f000 rw-p 00017000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -71ffddd3f000-71ffddd43000 r--p 00000000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -71ffddd43000-71ffddd5f000 r-xp 00004000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -71ffddd5f000-71ffddd65000 r--p 00020000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -71ffddd65000-71ffddd66000 ---p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -71ffddd66000-71ffddd68000 r--p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -71ffddd68000-71ffddd69000 rw-p 00028000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -71ffddd69000-71ffddd6b000 r--p 00000000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -71ffddd6b000-71ffdddd6000 r-xp 00002000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -71ffdddd6000-71ffdddfe000 r--p 0006d000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -71ffdddfe000-71ffdddff000 r--p 00094000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -71ffdddff000-71ffdde00000 rw-p 00095000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -71ffdde00000-71ffde041000 r-xp 00000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -71ffde041000-71ffde062000 rwxp 00241000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -71ffde062000-71ffde200000 r-xp 00262000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -71ffde200000-71ffdee00000 r-xp 00400000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -71ffdee00000-71ffdfcab000 r-xp 01000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -71ffdfcab000-71ffdfe10000 r--p 01eaa000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -71ffdfe10000-71ffdfe7e000 rw-p 0200f000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -71ffdfe7e000-71ffdfe9c000 rw-p 00000000 00:00 0 -71ffdfe9e000-71ffdfea2000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffdfea2000-71ffdfec2000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffdfec2000-71ffdfed1000 r--p 00000000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -71ffdfed1000-71ffdffb7000 r-xp 0000f000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -71ffdffb7000-71ffdfff5000 r--p 000f5000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -71ffdfff5000-71ffdfff6000 ---p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -71ffdfff6000-71ffdfff9000 r--p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -71ffdfff9000-71ffdffff000 rw-p 00136000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -71ffdffff000-71ffe0000000 rw-p 00000000 00:00 0 -71ffe0000000-71ffe0021000 rw-p 00000000 00:00 0 -71ffe0021000-71ffe4000000 ---p 00000000 00:00 0 -71ffe4000000-71ffe4021000 rw-p 00000000 00:00 0 -71ffe4021000-71ffe8000000 ---p 00000000 00:00 0 -71ffe8001000-71ffe8002000 rw-s 00000000 00:06 1022 /dev/nvidia0 -71ffe8002000-71ffe8003000 rw-s 00000000 00:06 1022 /dev/nvidia0 -71ffe8003000-71ffe8005000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffe8005000-71ffe8006000 rw-s 00000000 00:06 1022 /dev/nvidia0 -71ffe8006000-71ffe8007000 rw-s 00000000 00:06 1022 /dev/nvidia0 -71ffe8007000-71ffe8011000 r--p 00000000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -71ffe8011000-71ffe801b000 r-xp 0000a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -71ffe801b000-71ffe8022000 r--p 00014000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -71ffe8022000-71ffe802b000 r--p 0001a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -71ffe802b000-71ffe802c000 rw-p 00023000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -71ffe802c000-71ffe8038000 r--p 00000000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -71ffe8038000-71ffe8058000 r-xp 0000c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -71ffe8058000-71ffe8064000 r--p 0002c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -71ffe8064000-71ffe806e000 r--p 00037000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -71ffe806e000-71ffe806f000 rw-p 00041000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -71ffe806f000-71ffe8075000 r--p 00000000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -71ffe8075000-71ffe808f000 r-xp 00006000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -71ffe808f000-71ffe8096000 r--p 00020000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -71ffe8096000-71ffe8097000 ---p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -71ffe8097000-71ffe8098000 r--p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -71ffe8098000-71ffe8099000 rw-p 00028000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -71ffe8099000-71ffe809b000 rw-p 00000000 00:00 0 -71ffe809b000-71ffe80ae000 r--p 00000000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -71ffe80ae000-71ffe80cd000 r-xp 00013000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -71ffe80cd000-71ffe80da000 r--p 00032000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -71ffe80da000-71ffe80ea000 r--p 0003e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -71ffe80ea000-71ffe80eb000 rw-p 0004e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -71ffe80eb000-71ffe80f6000 r--p 00000000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -71ffe80f6000-71ffe8124000 r-xp 0000b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -71ffe8124000-71ffe8136000 r--p 00039000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -71ffe8136000-71ffe8137000 ---p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -71ffe8137000-71ffe8138000 r--p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -71ffe8138000-71ffe8139000 rw-p 0004c000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -71ffe8139000-71ffe814c000 r--p 00000000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -71ffe814c000-71ffe81cb000 r-xp 00013000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -71ffe81cb000-71ffe81f6000 r--p 00092000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -71ffe81f6000-71ffe81f7000 ---p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -71ffe81f7000-71ffe81fe000 r--p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -71ffe81fe000-71ffe81ff000 rw-p 000c4000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -71ffe81ff000-71ffe8200000 rw-p 00000000 00:00 0 -71ffe8200000-71ffe8216000 r--p 00000000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -71ffe8216000-71ffe8306000 r-xp 00016000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -71ffe8306000-71ffe8379000 r--p 00106000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -71ffe8379000-71ffe8380000 r--p 00178000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -71ffe8380000-71ffe8387000 rw-p 0017f000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -71ffe8387000-71ffe8402000 rw-p 00000000 00:00 0 -71ffe8402000-71ffe8403000 rw-s 00000000 00:06 1022 /dev/nvidia0 -71ffe8403000-71ffe8404000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffe8404000-71ffe8405000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffe8405000-71ffe8406000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffe8406000-71ffe8407000 rw-s 00044000 00:01 7173 /memfd:/.nvidia_drv.XXXXXX (deleted) -71ffe8407000-71ffe8408000 rw-s 00000000 00:06 1022 /dev/nvidia0 -71ffe8408000-71ffe840c000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffe840c000-71ffe840d000 rw-s 00000000 00:06 1022 /dev/nvidia0 -71ffe840d000-71ffe840f000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffe840f000-71ffe8410000 rw-s 00000000 00:06 1022 /dev/nvidia0 -71ffe8410000-71ffe8414000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffe8414000-71ffe841d000 rw-s 00000000 00:01 668318 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) -71ffe841d000-71ffe8450000 r--p 00000000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -71ffe8450000-71ffe84b3000 r-xp 00033000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -71ffe84b3000-71ffe84d2000 r--p 00096000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -71ffe84d2000-71ffe84fd000 r--p 000b4000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -71ffe84fd000-71ffe84fe000 rw-p 000df000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -71ffe84fe000-71ffe84ff000 rw-p 00000000 00:00 0 -71ffe84ff000-71ffe8500000 ---p 00000000 00:00 0 -71ffe8500000-71ffe8600000 rw-p 00000000 00:00 0 -71ffe8600000-71ffe8601000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffe8601000-71ffe8602000 rw-s 00000000 00:06 1022 /dev/nvidia0 -71ffe8602000-71ffe8604000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffe8604000-71ffe8605000 rw-s 00000000 00:06 1022 /dev/nvidia0 -71ffe8605000-71ffe8606000 rw-s 00000000 00:06 1022 /dev/nvidia0 -71ffe8606000-71ffe8608000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffe8608000-71ffe8611000 rw-s 00000000 00:01 668317 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) -71ffe8611000-71ffe8615000 r--p 00000000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -71ffe8615000-71ffe862b000 r-xp 00004000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -71ffe862b000-71ffe8635000 r--p 0001a000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -71ffe8635000-71ffe8636000 r--p 00023000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -71ffe8636000-71ffe8637000 rw-p 00024000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -71ffe8637000-71ffe8639000 r--p 00000000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -71ffe8639000-71ffe8652000 r-xp 00002000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -71ffe8652000-71ffe8654000 r--p 0001b000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -71ffe8654000-71ffe8655000 ---p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -71ffe8655000-71ffe8656000 r--p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -71ffe8656000-71ffe8657000 rw-p 0001e000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -71ffe8657000-71ffe865b000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffe865b000-71ffe865f000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffe865f000-71ffe8661000 r--p 00000000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -71ffe8661000-71ffe8665000 r-xp 00002000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -71ffe8665000-71ffe8667000 r--p 00006000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -71ffe8667000-71ffe8668000 r--p 00007000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -71ffe8668000-71ffe8669000 rw-p 00008000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -71ffe8669000-71ffe866b000 r--p 00000000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -71ffe866b000-71ffe8673000 r-xp 00002000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -71ffe8673000-71ffe8675000 r--p 0000a000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -71ffe8675000-71ffe8676000 r--p 0000b000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -71ffe8676000-71ffe8677000 rw-p 0000c000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -71ffe8677000-71ffe86a6000 r--p 00000000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -71ffe86a6000-71ffe8762000 r-xp 0002f000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -71ffe8762000-71ffe87ad000 r--p 000eb000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -71ffe87ad000-71ffe87bb000 r--p 00135000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -71ffe87bb000-71ffe87bd000 rw-p 00143000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -71ffe87bd000-71ffe87be000 rw-p 00000000 00:00 0 -71ffe87be000-71ffe87c1000 r--p 00000000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -71ffe87c1000-71ffe87e2000 r-xp 00003000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -71ffe87e2000-71ffe87ee000 r--p 00024000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -71ffe87ee000-71ffe87ef000 ---p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -71ffe87ef000-71ffe87f0000 r--p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -71ffe87f0000-71ffe87f1000 rw-p 00031000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -71ffe87f1000-71ffe8857000 r--p 00000000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -71ffe8857000-71ffe894a000 r-xp 00066000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -71ffe894a000-71ffe89d6000 r--p 00159000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -71ffe89d6000-71ffe89e9000 r--p 001e4000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -71ffe89e9000-71ffe89ea000 rw-p 001f7000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -71ffe89ea000-71ffe89ec000 rw-p 00000000 00:00 0 -71ffe89ec000-71ffe8a1b000 r--p 00000000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -71ffe8a1b000-71ffe8b6e000 r-xp 0002f000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -71ffe8b6e000-71ffe8bc2000 r--p 00182000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -71ffe8bc2000-71ffe8bc3000 ---p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -71ffe8bc3000-71ffe8bcc000 r--p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -71ffe8bcc000-71ffe8bcd000 rw-p 001df000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -71ffe8bcd000-71ffe8bce000 rw-p 00000000 00:00 0 -71ffe8bce000-71ffe8bdc000 r--p 00000000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -71ffe8bdc000-71ffe8bed000 r-xp 0000e000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -71ffe8bed000-71ffe8bfb000 r--p 0001f000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -71ffe8bfb000-71ffe8bff000 r--p 0002c000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -71ffe8bff000-71ffe8c00000 rw-p 00030000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -71ffe8c00000-71ffe8c9a000 r--p 00000000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -71ffe8c9a000-71ffe8dab000 r-xp 0009a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -71ffe8dab000-71ffe8e1a000 r--p 001ab000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -71ffe8e1a000-71ffe8e1b000 ---p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -71ffe8e1b000-71ffe8e26000 r--p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -71ffe8e26000-71ffe8e29000 rw-p 00225000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -71ffe8e29000-71ffe8e2c000 rw-p 00000000 00:00 0 -71ffe8e2c000-71ffe8e2e000 r--p 00000000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -71ffe8e2e000-71ffe8e36000 r-xp 00002000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -71ffe8e36000-71ffe8e37000 r--p 0000a000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -71ffe8e37000-71ffe8e38000 ---p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -71ffe8e38000-71ffe8e39000 r--p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -71ffe8e39000-71ffe8e3a000 rw-p 0000c000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -71ffe8e3a000-71ffe8e3e000 r--p 00000000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -71ffe8e3e000-71ffe8e53000 r-xp 00004000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -71ffe8e53000-71ffe8e59000 r--p 00019000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -71ffe8e59000-71ffe8e5a000 ---p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -71ffe8e5a000-71ffe8e5c000 r--p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -71ffe8e5c000-71ffe8e5d000 rw-p 00021000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -71ffe8e5d000-71ffe8e65000 r--p 00000000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -71ffe8e65000-71ffe8e83000 r-xp 00008000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -71ffe8e83000-71ffe8e90000 r--p 00026000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -71ffe8e90000-71ffe8e92000 r--p 00032000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -71ffe8e92000-71ffe8e93000 rw-p 00034000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -71ffe8e93000-71ffe8e97000 rw-p 00000000 00:00 0 -71ffe8e97000-71ffe8e99000 r--p 00000000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -71ffe8e99000-71ffe8ea0000 r-xp 00002000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -71ffe8ea0000-71ffe8ea1000 r--p 00009000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -71ffe8ea1000-71ffe8ea2000 ---p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -71ffe8ea2000-71ffe8ea3000 r--p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -71ffe8ea3000-71ffe8ea4000 rw-p 0000b000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -71ffe8ea4000-71ffe8ea7000 r--p 00000000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -71ffe8ea7000-71ffe8ebe000 r-xp 00003000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -71ffe8ebe000-71ffe8ec2000 r--p 0001a000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -71ffe8ec2000-71ffe8ec3000 r--p 0001d000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -71ffe8ec3000-71ffe8ec4000 rw-p 0001e000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -71ffe8ec4000-71ffe8ec8000 r--p 00000000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -71ffe8ec8000-71ffe8ee7000 r-xp 00004000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -71ffe8ee7000-71ffe8ef1000 r--p 00023000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -71ffe8ef1000-71ffe8ef2000 ---p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -71ffe8ef2000-71ffe8ef4000 r--p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -71ffe8ef4000-71ffe8ef5000 rw-p 0002f000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -71ffe8ef5000-71ffe8efa000 r--p 00000000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -71ffe8efa000-71ffe8f05000 r-xp 00005000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -71ffe8f05000-71ffe8f09000 r--p 00010000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -71ffe8f09000-71ffe8f0a000 ---p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -71ffe8f0a000-71ffe8f0b000 r--p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -71ffe8f0b000-71ffe8f0c000 rw-p 00015000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -71ffe8f0c000-71ffe8f0d000 r--p 00000000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -71ffe8f0d000-71ffe8f0e000 r-xp 00001000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -71ffe8f0e000-71ffe8f0f000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -71ffe8f0f000-71ffe8f10000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -71ffe8f10000-71ffe8f11000 rw-p 00003000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -71ffe8f11000-71ffe8f12000 r--p 00000000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -71ffe8f12000-71ffe8f13000 r-xp 00001000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -71ffe8f13000-71ffe8f14000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -71ffe8f14000-71ffe8f15000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -71ffe8f15000-71ffe8f16000 rw-p 00003000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -71ffe8f16000-71ffe8f19000 r--p 00000000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -71ffe8f19000-71ffe8f1c000 r-xp 00003000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -71ffe8f1c000-71ffe8f1d000 r--p 00006000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -71ffe8f1d000-71ffe8f1e000 ---p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -71ffe8f1e000-71ffe8f1f000 r--p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -71ffe8f1f000-71ffe8f20000 rw-p 00008000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -71ffe8f20000-71ffe8f2a000 r--p 00000000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -71ffe8f2a000-71ffe8fdc000 r-xp 0000a000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -71ffe8fdc000-71ffe8fed000 r--p 000bc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -71ffe8fed000-71ffe8fee000 r--p 000cc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -71ffe8fee000-71ffe8fef000 rw-p 000cd000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -71ffe8fef000-71ffe8ff4000 r--p 00000000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -71ffe8ff4000-71ffe8ffa000 r-xp 00005000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -71ffe8ffa000-71ffe8ffd000 r--p 0000b000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -71ffe8ffd000-71ffe8fff000 r--p 0000d000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -71ffe8fff000-71ffe9000000 rw-p 0000f000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -71ffe9000000-71ffe9001000 ---p 00000000 00:00 0 -71ffe9001000-71ffe9801000 rw-p 00000000 00:00 0 -71ffe9801000-71ffe9802000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffe9802000-71ffe9805000 r--p 00000000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -71ffe9805000-71ffe9808000 r-xp 00003000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -71ffe9808000-71ffe9809000 r--p 00006000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -71ffe9809000-71ffe980a000 ---p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -71ffe980a000-71ffe980b000 r--p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -71ffe980b000-71ffe980c000 rw-p 00008000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -71ffe980c000-71ffe980d000 r--p 00000000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -71ffe980d000-71ffe980e000 r-xp 00001000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -71ffe980e000-71ffe980f000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -71ffe980f000-71ffe9810000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -71ffe9810000-71ffe9811000 rw-p 00003000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -71ffe9811000-71ffe9814000 r--p 00000000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -71ffe9814000-71ffe9828000 r-xp 00003000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -71ffe9828000-71ffe982c000 r--p 00017000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -71ffe982c000-71ffe982d000 ---p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -71ffe982d000-71ffe982e000 r--p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -71ffe982e000-71ffe982f000 rw-p 0001c000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -71ffe982f000-71ffe9832000 r--p 00000000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -71ffe9832000-71ffe9838000 r-xp 00003000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -71ffe9838000-71ffe983a000 r--p 00009000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -71ffe983a000-71ffe983b000 r--p 0000a000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -71ffe983b000-71ffe983c000 rw-p 0000b000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -71ffe983c000-71ffe984c000 r--p 00000000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -71ffe984c000-71ffe98aa000 r-xp 00010000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -71ffe98aa000-71ffe98c6000 r--p 0006e000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -71ffe98c6000-71ffe98c7000 ---p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -71ffe98c7000-71ffe98cd000 r--p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -71ffe98cd000-71ffe98ce000 rw-p 00090000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -71ffe98ce000-71ffe98d6000 rw-p 00000000 00:00 0 -71ffe98d6000-71ffe9927000 r--p 00000000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -71ffe9927000-71ffe9983000 r-xp 00051000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -71ffe9983000-71ffe99b8000 rwxp 000ad000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -71ffe99b8000-71ffe99b9000 r-xp 000e2000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -71ffe99b9000-71ffe99d9000 r--p 000e3000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -71ffe99d9000-71ffe99f9000 r--p 00102000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -71ffe99f9000-71ffe99fe000 rw-p 00122000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -71ffe99fe000-71ffe9a00000 rw-p 00000000 00:00 0 -71ffe9a00000-71ffe9e00000 rw-p 00000000 00:00 0 -71ffe9e00000-71ffe9e01000 rw-s 00000000 00:06 1022 /dev/nvidia0 -71ffe9e01000-71ffe9e02000 rw-s 00000000 00:06 1022 /dev/nvidia0 -71ffe9e02000-71ffe9e04000 r--p 00000000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -71ffe9e04000-71ffe9e06000 r-xp 00002000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -71ffe9e06000-71ffe9e07000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -71ffe9e07000-71ffe9e08000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -71ffe9e08000-71ffe9e09000 rw-p 00005000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -71ffe9e09000-71ffe9e10000 r--p 00000000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -71ffe9e10000-71ffe9e16000 r-xp 00007000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -71ffe9e16000-71ffe9e19000 r--p 0000d000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -71ffe9e19000-71ffe9e1a000 ---p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -71ffe9e1a000-71ffe9e1b000 r--p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -71ffe9e1b000-71ffe9e1c000 rw-p 00011000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -71ffe9e1c000-71ffe9e27000 r--p 00000000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -71ffe9e27000-71ffe9e30000 r-xp 0000b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -71ffe9e30000-71ffe9e35000 r--p 00014000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -71ffe9e35000-71ffe9e36000 ---p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -71ffe9e36000-71ffe9e38000 r--p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -71ffe9e38000-71ffe9e39000 rw-p 0001b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -71ffe9e39000-71ffe9e3a000 r--p 00000000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -71ffe9e3a000-71ffe9e3c000 r-xp 00001000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -71ffe9e3c000-71ffe9e3d000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -71ffe9e3d000-71ffe9e3e000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -71ffe9e3e000-71ffe9e3f000 rw-p 00004000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -71ffe9e3f000-71ffe9e45000 r--p 00000000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -71ffe9e45000-71ffe9e8f000 r-xp 00006000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -71ffe9e8f000-71ffe9eb9000 r--p 00050000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -71ffe9eb9000-71ffe9eba000 r--p 00079000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -71ffe9eba000-71ffe9ebb000 rw-p 0007a000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -71ffe9ebb000-71ffe9ec2000 r--s 00000000 103:03 11147989 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache -71ffe9ec2000-71ffe9ec3000 r--p 00000000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -71ffe9ec3000-71ffe9ec6000 r-xp 00001000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -71ffe9ec6000-71ffe9ec7000 r--p 00004000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -71ffe9ec7000-71ffe9ec8000 ---p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -71ffe9ec8000-71ffe9ec9000 r--p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -71ffe9ec9000-71ffe9eca000 rw-p 00006000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -71ffe9eca000-71ffe9ecd000 r--p 00000000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -71ffe9ecd000-71ffe9ed1000 r-xp 00003000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -71ffe9ed1000-71ffe9ed3000 r--p 00007000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -71ffe9ed3000-71ffe9ed4000 r--p 00008000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -71ffe9ed4000-71ffe9ed5000 rw-p 00009000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -71ffe9ed5000-71ffe9ed6000 r--p 00000000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -71ffe9ed6000-71ffe9ed8000 r-xp 00001000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -71ffe9ed8000-71ffe9ed9000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -71ffe9ed9000-71ffe9eda000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -71ffe9eda000-71ffe9edb000 rw-p 00004000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -71ffe9edb000-71ffe9eeb000 r--p 00000000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -71ffe9eeb000-71ffe9f0c000 r-xp 00010000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -71ffe9f0c000-71ffe9f48000 r--p 00031000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -71ffe9f48000-71ffe9f4c000 r--p 0006c000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -71ffe9f4c000-71ffe9f4f000 rw-p 00070000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -71ffe9f4f000-71ffe9f72000 rw-p 00000000 00:00 0 -71ffe9f72000-71ffe9f76000 ---p 00000000 00:00 0 -71ffe9f76000-71ffea072000 rw-p 00000000 00:00 0 -71ffea072000-71ffea076000 ---p 00000000 00:00 0 -71ffea076000-71ffea172000 rw-p 00000000 00:00 0 -71ffea172000-71ffea173000 ---p 00000000 00:00 0 -71ffea173000-71ffea273000 rw-p 00000000 00:00 0 -71ffea273000-71ffea274000 ---p 00000000 00:00 0 -71ffea274000-71ffea374000 rw-p 00000000 00:00 0 -71ffea374000-71ffea375000 ---p 00000000 00:00 0 -71ffea375000-71ffea475000 rw-p 00000000 00:00 0 -71ffea475000-71ffea476000 ---p 00000000 00:00 0 -71ffea476000-71ffea576000 rw-p 00000000 00:00 0 -71ffea576000-71ffea577000 ---p 00000000 00:00 0 -71ffea577000-71ffea677000 rw-p 00000000 00:00 0 -71ffea677000-71ffea678000 ---p 00000000 00:00 0 -71ffea678000-71ffea778000 rw-p 00000000 00:00 0 -71ffea778000-71ffea77c000 ---p 00000000 00:00 0 -71ffea77c000-71ffea878000 rw-p 00000000 00:00 0 -71ffea878000-71ffea978000 rw-s 00000000 00:01 983093 /SYSV00000000 (deleted) -71ffea978000-71ffea97c000 ---p 00000000 00:00 0 -71ffea97c000-71ffeaa78000 rw-p 00000000 00:00 0 -71ffeaa78000-71ffeaa7c000 ---p 00000000 00:00 0 -71ffeaa7c000-71ffeab78000 rw-p 00000000 00:00 0 -71ffeab78000-71ffeab7c000 ---p 00000000 00:00 0 -71ffeab7c000-71ffeac78000 rw-p 00000000 00:00 0 -71ffeac78000-71ffeac7c000 ---p 00000000 00:00 0 -71ffeac7c000-71ffead78000 rw-p 00000000 00:00 0 -71ffead78000-71ffead7c000 ---p 00000000 00:00 0 -71ffead7c000-71ffeae78000 rw-p 00000000 00:00 0 -71ffeae78000-71ffeae7c000 ---p 00000000 00:00 0 -71ffeae7c000-71ffeaf78000 rw-p 00000000 00:00 0 -71ffeaf78000-71ffeaf7a000 r--p 00000000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -71ffeaf7a000-71ffeaf7d000 r-xp 00002000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -71ffeaf7d000-71ffeaf7e000 r--p 00005000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -71ffeaf7e000-71ffeaf7f000 r--p 00006000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -71ffeaf7f000-71ffeaf80000 rw-p 00007000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -71ffeaf80000-71ffeaf82000 r--p 00000000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -71ffeaf82000-71ffeaf88000 r-xp 00002000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -71ffeaf88000-71ffeaf8a000 r--p 00008000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -71ffeaf8a000-71ffeaf8b000 r--p 00009000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -71ffeaf8b000-71ffeaf8c000 rw-p 0000a000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -71ffeaf8c000-71ffeaf8d000 r--p 00000000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 -71ffeaf8d000-71ffeaf8e000 r-xp 00001000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 -71ffeaf8e000-71ffeafad000 r--p 00002000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 -71ffeafad000-71ffeafae000 r--p 00020000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 -71ffeafae000-71ffeafaf000 rw-p 00021000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 -71ffeafaf000-71ffeafb0000 r--p 00000000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 -71ffeafb0000-71ffeafb8000 r-xp 00001000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 -71ffeafb8000-71ffeafbb000 r--p 00009000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 -71ffeafbb000-71ffeafbc000 r--p 0000b000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 -71ffeafbc000-71ffeafbd000 rw-p 0000c000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 -71ffeafbd000-71ffeafc2000 r--p 00000000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 -71ffeafc2000-71ffeafeb000 r-xp 00005000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 -71ffeafeb000-71ffeaff6000 r--p 0002e000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 -71ffeaff6000-71ffeaff7000 r--p 00038000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 -71ffeaff7000-71ffeaff8000 rw-p 00039000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 -71ffeaff8000-71ffeb005000 r--p 00000000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -71ffeb005000-71ffeb08e000 r-xp 0000d000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -71ffeb08e000-71ffeb0b7000 r--p 00096000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -71ffeb0b7000-71ffeb0b8000 ---p 000bf000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -71ffeb0b8000-71ffeb0bf000 r--p 000bf000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -71ffeb0bf000-71ffeb0c0000 rw-p 000c6000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -71ffeb0c0000-71ffeb241000 r-xp 00000000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so -71ffeb241000-71ffeb242000 ---p 00181000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so -71ffeb242000-71ffeb244000 r--p 00181000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so -71ffeb244000-71ffeb245000 rw-p 00183000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so -71ffeb245000-71ffeb246000 rw-p 00000000 00:00 0 -71ffeb246000-71ffeb25f000 r--p 00000000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -71ffeb25f000-71ffeb2eb000 r-xp 00019000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -71ffeb2eb000-71ffeb380000 r--p 000a5000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -71ffeb380000-71ffeb381000 ---p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -71ffeb381000-71ffeb382000 r--p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -71ffeb382000-71ffeb386000 rw-p 0013b000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -71ffeb386000-71ffeb3f6000 r-xp 00000000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -71ffeb3f6000-71ffeb3f7000 ---p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -71ffeb3f7000-71ffeb3fc000 r--p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -71ffeb3fc000-71ffeb3fe000 rw-p 00075000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -71ffeb3fe000-71ffeb400000 rw-p 00000000 00:00 0 -71ffeb400000-71ffebc00000 rw-p 00000000 00:00 0 -71ffebc00000-71ffebc08000 r--p 00000000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -71ffebc08000-71ffebc60000 r-xp 00008000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -71ffebc60000-71ffebc71000 r--p 00060000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -71ffebc71000-71ffebc72000 ---p 00071000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -71ffebc72000-71ffebc78000 r--p 00071000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -71ffebc78000-71ffebc79000 rw-p 00077000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -71ffebc79000-71ffebe83000 rw-p 00000000 00:00 0 -71ffebe83000-71ffebe84000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71ffebe84000-71ffebe85000 rw-s 00000000 00:06 1022 /dev/nvidia0 -71ffebe85000-71ffebe87000 r--p 00000000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -71ffebe87000-71ffebe8e000 r-xp 00002000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -71ffebe8e000-71ffebe90000 r--p 00009000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -71ffebe90000-71ffebe91000 r--p 0000a000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -71ffebe91000-71ffebe92000 rw-p 0000b000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -71ffebe92000-71ffebf53000 r-xp 00000000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -71ffebf53000-71ffebf54000 r--p 000c0000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -71ffebf54000-71ffebf5f000 rw-p 000c1000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -71ffebf5f000-71ffebf84000 rw-p 00000000 00:00 0 -71ffebf84000-71ffebfb0000 r--p 00000000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -71ffebfb0000-71ffebfe4000 r-xp 0002c000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -71ffebfe4000-71ffebffe000 r--p 00060000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -71ffebffe000-71ffebfff000 r--p 00079000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -71ffebfff000-71ffec000000 rw-p 0007a000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -71ffec000000-71ffec021000 rw-p 00000000 00:00 0 -71ffec021000-71fff0000000 ---p 00000000 00:00 0 -71fff0000000-71fff0004000 ---p 00000000 00:00 0 -71fff0004000-71fff0100000 rw-p 00000000 00:00 0 -71fff0100000-71fff0104000 ---p 00000000 00:00 0 -71fff0104000-71fff0200000 rw-p 00000000 00:00 0 -71fff0200000-71fff0204000 ---p 00000000 00:00 0 -71fff0204000-71fff0300000 rw-p 00000000 00:00 0 -71fff0300000-71fff0304000 ---p 00000000 00:00 0 -71fff0304000-71fff0400000 rw-p 00000000 00:00 0 -71fff0400000-71fff0404000 ---p 00000000 00:00 0 -71fff0404000-71fff0500000 rw-p 00000000 00:00 0 -71fff0500000-71fff0504000 ---p 00000000 00:00 0 -71fff0504000-71fff0600000 rw-p 00000000 00:00 0 -71fff0600000-71fff0604000 ---p 00000000 00:00 0 -71fff0604000-71fff0700000 rw-p 00000000 00:00 0 -71fff0700000-71fff0704000 ---p 00000000 00:00 0 -71fff0704000-71fff0800000 rw-p 00000000 00:00 0 -71fff0800000-71fff1706000 r--p 00000000 103:03 10618858 /usr/lib/locale/locale-archive -71fff1706000-71fff170a000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71fff170a000-71fff170b000 r--p 00000000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -71fff170b000-71fff170c000 r-xp 00001000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -71fff170c000-71fff170d000 r--p 00002000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -71fff170d000-71fff170e000 r--p 00003000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -71fff170e000-71fff170f000 rw-p 00004000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -71fff170f000-71fff1713000 r--p 00000000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -71fff1713000-71fff1720000 r-xp 00004000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -71fff1720000-71fff1723000 r--p 00011000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -71fff1723000-71fff1724000 ---p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -71fff1724000-71fff1725000 r--p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -71fff1725000-71fff1726000 rw-p 00015000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -71fff1726000-71fff1727000 rw-p 00000000 00:00 0 -71fff1727000-71fff1729000 r--p 00000000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -71fff1729000-71fff172b000 r-xp 00002000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -71fff172b000-71fff172d000 r--p 00004000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -71fff172d000-71fff172e000 r--p 00005000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -71fff172e000-71fff172f000 rw-p 00006000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -71fff172f000-71fff17fd000 r-xp 00000000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -71fff17fd000-71fff17fe000 r--p 000cd000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -71fff17fe000-71fff17ff000 rw-p 000ce000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -71fff17ff000-71fff1803000 ---p 00000000 00:00 0 -71fff1803000-71fff18ff000 rw-p 00000000 00:00 0 -71fff18ff000-71fff1900000 ---p 00000000 00:00 0 -71fff1900000-71fff1a00000 rw-p 00000000 00:00 0 -71fff1a00000-71fff3a70000 rw-p 00000000 00:00 0 -71fff3a70000-71fffb700000 ---p 00000000 00:00 0 -71fffb700000-71fffb704000 ---p 00000000 00:00 0 -71fffb704000-71fffb800000 rw-p 00000000 00:00 0 -71fffb800000-71fffb80e000 rw-p 00000000 00:00 0 -71fffb80e000-71fffc7a0000 ---p 00000000 00:00 0 -71fffc7a0000-71fffc7a2000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71fffc7a2000-71fffc7ad000 r--p 00000000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -71fffc7ad000-71fffc7c1000 r-xp 0000b000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -71fffc7c1000-71fffc7ca000 r--p 0001f000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -71fffc7ca000-71fffc7cb000 r--p 00027000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -71fffc7cb000-71fffc7cc000 rw-p 00028000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -71fffc7cc000-71fffc7cf000 r--p 00000000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -71fffc7cf000-71fffc7db000 r-xp 00003000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -71fffc7db000-71fffc7de000 r--p 0000f000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -71fffc7de000-71fffc7df000 r--p 00011000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -71fffc7df000-71fffc7e0000 rw-p 00012000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -71fffc7e0000-71fffc7e1000 rw-s 00000000 00:06 1022 /dev/nvidia0 -71fffc7e1000-71fffc7e2000 rw-s 00000000 00:06 1022 /dev/nvidia0 -71fffc7e2000-71fffc7e3000 rw-s 00000000 00:06 1022 /dev/nvidia0 -71fffc7e3000-71fffc7e4000 r--p 00000000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -71fffc7e4000-71fffc7e5000 r-xp 00001000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -71fffc7e5000-71fffc7e6000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -71fffc7e6000-71fffc7e7000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -71fffc7e7000-71fffc7e8000 rw-p 00003000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -71fffc7e8000-71fffc7e9000 r--p 00000000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -71fffc7e9000-71fffc7ec000 r-xp 00001000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -71fffc7ec000-71fffc7ed000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -71fffc7ed000-71fffc7ee000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -71fffc7ee000-71fffc7ef000 rw-p 00005000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -71fffc7ef000-71fffc7f1000 r--p 00000000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -71fffc7f1000-71fffc7f8000 r-xp 00002000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -71fffc7f8000-71fffc7fa000 r--p 00009000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -71fffc7fa000-71fffc7fb000 r--p 0000a000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -71fffc7fb000-71fffc7fc000 rw-p 0000b000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -71fffc7fc000-71fffc7fd000 r-xp 00000000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so -71fffc7fd000-71fffc7fe000 ---p 00001000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so -71fffc7fe000-71fffc7ff000 r--p 00001000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so -71fffc7ff000-71fffc800000 rw-p 00002000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so -71fffc800000-71fffca90000 rwxp 00000000 00:00 0 -71fffca90000-720003d37000 ---p 00000000 00:00 0 -720003d37000-720003fb7000 rwxp 00000000 00:00 0 -720003fb7000-7200042c8000 ---p 00000000 00:00 0 -7200042c8000-720004538000 rwxp 00000000 00:00 0 -720004538000-72000b800000 ---p 00000000 00:00 0 -72000b800000-720013fb5000 r--s 00000000 103:03 10498840 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/modules -720013fb5000-720013fb6000 rw-s 00000000 00:06 1017 /dev/nvidiactl -720013fb6000-720013fb7000 rw-s 00000000 00:06 1017 /dev/nvidiactl -720013fb7000-720013fb9000 r--p 00000000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -720013fb9000-720013fbc000 r-xp 00002000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -720013fbc000-720013fbd000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -720013fbd000-720013fbe000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -720013fbe000-720013fbf000 rw-p 00006000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -720013fbf000-720013ffd000 r-xp 00000000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -720013ffd000-720013ffe000 ---p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -720013ffe000-720013fff000 r--p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -720013fff000-720014000000 rw-p 0003f000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -720014000000-7200146d9000 rw-p 00000000 00:00 0 -7200146d9000-720018000000 ---p 00000000 00:00 0 -720018000000-720018001000 r--s 00000000 00:06 1017 /dev/nvidiactl -720018001000-720018002000 rw-s 00000000 00:01 1028 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) -720018002000-720018006000 r--p 00000000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -720018006000-720018011000 r-xp 00004000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -720018011000-720018015000 r--p 0000f000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -720018015000-720018016000 r--p 00012000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -720018016000-720018017000 rw-p 00013000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -720018017000-720018018000 ---p 00000000 00:00 0 -720018018000-720018118000 rw-p 00000000 00:00 0 -720018118000-7200181f4000 rw-p 00000000 00:00 0 -7200181f4000-7200181f5000 ---p 00000000 00:00 0 -7200181f5000-7200182f5000 rw-p 00000000 00:00 0 -7200182f5000-7200182f6000 ---p 00000000 00:00 0 -7200182f6000-7200183f6000 rw-p 00000000 00:00 0 -7200183f6000-720018bfe000 rw-p 00000000 00:00 0 -720018bfe000-720018bff000 ---p 00000000 00:00 0 -720018bff000-720018cff000 rw-p 00000000 00:00 0 -720018cff000-720018d00000 ---p 00000000 00:00 0 -720018d00000-720018e00000 rw-p 00000000 00:00 0 -720018e00000-720018e0e000 rw-p 00000000 00:00 0 -720018e0e000-720019da0000 ---p 00000000 00:00 0 -720019da0000-720019da1000 ---p 00000000 00:00 0 -720019da1000-720019ea1000 rw-p 00000000 00:00 0 -720019ea1000-72001a72f000 rw-p 00000000 00:00 0 -72001a72f000-72001a815000 ---p 00000000 00:00 0 -72001a815000-72001a81b000 rw-p 00000000 00:00 0 -72001a81b000-72001a900000 ---p 00000000 00:00 0 -72001a900000-72001a904000 ---p 00000000 00:00 0 -72001a904000-72001aa00000 rw-p 00000000 00:00 0 -72001aa00000-72001bd30000 r-xp 00000000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so -72001bd30000-72001be00000 r--p 0132f000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so -72001be00000-72001be2e000 rw-p 013ff000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so -72001be2e000-72001bea4000 rw-p 00000000 00:00 0 -72001bea4000-72001bea5000 rw-s 00000000 00:01 668316 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=4096 (deleted) -72001bea5000-72001bea6000 rw-s 00000000 00:01 668315 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) -72001bea6000-72001bea7000 rw-s 00000000 00:01 668314 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) -72001bea7000-72001bea9000 r--p 00000000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -72001bea9000-72001beb0000 r-xp 00002000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -72001beb0000-72001beb2000 r--p 00009000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -72001beb2000-72001beb3000 r--p 0000a000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -72001beb3000-72001beb4000 rw-p 0000b000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -72001beb4000-72001bebf000 r-xp 00000000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -72001bebf000-72001bec0000 ---p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -72001bec0000-72001bec1000 r--p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -72001bec1000-72001bec2000 rw-p 0000c000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -72001bec2000-72001bed5000 r-xp 00000000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -72001bed5000-72001bed6000 ---p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -72001bed6000-72001bed7000 r--p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -72001bed7000-72001bed8000 rw-p 00014000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -72001bed8000-72001bf19000 rw-p 00000000 00:00 0 -72001bf19000-72001bf27000 r--p 00000000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -72001bf27000-72001bfa3000 r-xp 0000e000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -72001bfa3000-72001bffe000 r--p 0008a000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -72001bffe000-72001bfff000 r--p 000e4000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -72001bfff000-72001c000000 rw-p 000e5000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -72001c000000-72001c028000 r--p 00000000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -72001c028000-72001c1bd000 r-xp 00028000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -72001c1bd000-72001c215000 r--p 001bd000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -72001c215000-72001c216000 ---p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -72001c216000-72001c21a000 r--p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -72001c21a000-72001c21c000 rw-p 00219000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -72001c21c000-72001c229000 rw-p 00000000 00:00 0 -72001c229000-72001c22a000 r-xp 00000000 00:00 0 -72001c22a000-72001c22b000 r--p 00000000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -72001c22b000-72001c22d000 r-xp 00001000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -72001c22d000-72001c22e000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -72001c22e000-72001c22f000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -72001c22f000-72001c230000 rw-p 00004000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -72001c230000-72001c231000 rw-p 00000000 00:00 0 -72001c231000-72001c232000 r-xp 0005e000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -72001c232000-72001c2b1000 rw-p 00000000 00:00 0 -72001c2b1000-72001c2d1000 r-xp 00000000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -72001c2d1000-72001c2d2000 r--p 0001f000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -72001c2d2000-72001c2d3000 rw-p 00020000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -72001c2d3000-72001c2d4000 rw-p 00000000 00:00 0 -72001c2d4000-72001c2f2000 r-xp 00000000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -72001c2f2000-72001c2f4000 r--p 0001d000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -72001c2f4000-72001c2f5000 rw-p 0001f000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -72001c2f5000-72001c2f6000 r--p 00000000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -72001c2f6000-72001c2f7000 r-xp 00001000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -72001c2f7000-72001c2f8000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -72001c2f8000-72001c2f9000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -72001c2f9000-72001c2fa000 rw-p 00003000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -72001c2fa000-72001c2fe000 rw-p 00000000 00:00 0 -72001c2fe000-72001c2ff000 r--p 00000000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -72001c2ff000-72001c300000 r-xp 00001000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -72001c300000-72001c301000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -72001c301000-72001c302000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -72001c302000-72001c303000 rw-p 00003000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -72001c303000-72001c304000 r--p 00000000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -72001c304000-72001c305000 r-xp 00001000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -72001c305000-72001c306000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -72001c306000-72001c307000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -72001c307000-72001c308000 rw-p 00003000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -72001c308000-72001c30a000 r--p 00000000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -72001c30a000-72001c31b000 r-xp 00002000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -72001c31b000-72001c321000 r--p 00013000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -72001c321000-72001c322000 ---p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -72001c322000-72001c323000 r--p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -72001c323000-72001c324000 rw-p 0001a000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -72001c324000-72001c32b000 r-xp 00000000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -72001c32b000-72001c32c000 ---p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -72001c32c000-72001c32d000 r--p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -72001c32d000-72001c32e000 rw-p 00008000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -72001c32e000-72001c333000 rw-p 00000000 00:00 0 -72001c333000-72001c33a000 ---p 00000000 00:00 0 -72001c33a000-72001c342000 rw-s 00000000 103:03 4325444 /tmp/hsperfdata_codex/84939 -72001c342000-72001c343000 ---p 00000000 00:00 0 -72001c343000-72001c344000 r--p 00000000 00:00 0 -72001c344000-72001c353000 r-xp 00000000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so -72001c353000-72001c354000 r--p 0000e000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so -72001c354000-72001c355000 rw-p 0000f000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so -72001c355000-72001c357000 rw-p 00000000 00:00 0 -72001c357000-72001c35b000 r--p 00000000 00:00 0 [vvar] -72001c35b000-72001c35d000 r-xp 00000000 00:00 0 [vdso] -72001c35d000-72001c35f000 r--p 00000000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -72001c35f000-72001c389000 r-xp 00002000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -72001c389000-72001c394000 r--p 0002c000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -72001c394000-72001c395000 ---p 00000000 00:00 0 -72001c395000-72001c397000 r--p 00037000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -72001c397000-72001c399000 rw-p 00039000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -7ffc09f44000-7ffc09f67000 rw-p 00000000 00:00 0 [stack] -ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall] -Total number of mappings: 923 - - -VM Arguments: -jvm_args: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -java_command: jme3test.vulkan.VulkanTest -java_class_path (initial): /home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/java/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/groovy/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/resources/main:/home/codex/java/prj/jmonkeyengine/jme3-lwjgl3/build/libs/jme3-lwjgl3-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-desktop/build/libs/jme3-desktop-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-effects/build/libs/jme3-effects-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jbullet/build/libs/jme3-jbullet-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jogg/build/libs/jme3-jogg-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-networking/build/libs/jme3-networking-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-niftygui/build/libs/jme3-niftygui-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins/build/libs/jme3-plugins-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-terrain/build/libs/jme3-terrain-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-awt-dialogs/build/libs/jme3-awt-dialogs-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-core/build/libs/jme3-core-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json-gson/build/libs/jme3-plugins-json-gson-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json/build/libs/jme3-plugins-json-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-testdata/build/libs/jme3-testdata-null-SNAPSHOT.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-examples/1.4.3/4a41c559851c0c5a77ba3a9d1ccc8e6e92207dc7/nifty-examples-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjglx/lwjgl3-awt/0.2.3/2be63e81d6b73300d8203ce7235b2660c62eb3ea/lwjgl3-awt-0.2.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/7119f7d0eeb1e5502ff0ca71d2b4d47317da015/lwjgl-glfw-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/99ef08056feb9627f90425a4d2a22cd9fae8e39b/lwjgl-glfw-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/cfa8f1e96d572ed56da5945adf5167628f5eecdb/lwjgl-glfw-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/797e0965709ad180d9b00c88a086dbda15002203/lwjgl-glfw-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/671adf04a6bc4f792af13892e37f804be30b7070/lwjgl-glfw-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/b54023af492b4c2c72451f3a7aa0f385e9969474/lwjgl-glfw-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/82c8d748a654241b5961ddd1c098e8b648e38a48/lwjgl-glfw-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/399b42b491c5dfa6595ae6fd79dcba61b93538a7/lwjgl-glfw-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jawt/3.3.6/43299e222bd7db5e99254a8e620330954b73c2a6/lwjgl-jawt-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/245910eb57f2444429c74e6bf96030e5ec0a6739/lwjgl-jemalloc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/f9da76351e14a695be172d6915c8a7b2905307f/lwjgl-jemalloc-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c86043a342a33e5d32fabf962578580633db3c6e/lwjgl-jemalloc-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/26f8b467dc2e0f3000d608de3564b572bb46f927/lwjgl-jemalloc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c484cae39a718010dbc7931fe5e12664600a13c2/lwjgl-jemalloc-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1bc2e16e70df7f418d668c2984ac8066f1f6f5b1/lwjgl-jemalloc-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/9a42df0f2e9747815490311d7db7b4a046d5f40/lwjgl-jemalloc-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1f828c1fc06792475850162725433adf5ad001c0/lwjgl-jemalloc-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ad313317ff399fd2a7f4dd74716a68cf3976c6ad/lwjgl-openal-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/9c2b9b660e085bb0b47a4453dc0e26f24a5475e4/lwjgl-openal-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/82f693541d69aa125750bf8be9c4194435c56f03/lwjgl-openal-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ef356c04ef141d4efbde07793f31784f1f1a1bae/lwjgl-openal-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/7830af894fa110e65bf5075deb9183efbdbc50f5/lwjgl-openal-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/fd2c17603c63e8d543cb57d1db77ebd4574f3b7a/lwjgl-openal-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/c39f6827f0bd97601fc4e389801d5c813f59a5f2/lwjgl-openal-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/13f692aec4ae4b2d3c468aa0008472175f0ea1e0/lwjgl-openal-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opencl/3.3.6/93fdcea16d27b1466450e38dc28c8e1b4819ec25/lwjgl-opencl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ac2532612a4df374e9a9282bcf8ce2573018ebbb/lwjgl-opengl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/18dc639ebc94aa5202c2157f7490d28997b697c5/lwjgl-opengl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b0ab1d0e315d2fcc50d6cab7e8feaf4688d5d9a0/lwjgl-opengl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b8dc6467fe232d552793c53dc56f9fa8a385299c/lwjgl-opengl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ee815fbf454b916f13c10fff62e513eb09042ef0/lwjgl-opengl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/44de180f79e0b45c9e5bee10ca7540dcb5ddd373/lwjgl-opengl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/59f708eb4bf0be0204bbc9c06807911724673db6/lwjgl-opengl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/fee4fb2ee786af6530b6f9188205a76bc4e05268/lwjgl-opengl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-vulkan/3.3.6/a403e0931b03b138854bb2ba9c48dab646cba6d8/lwjgl-vulkan-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/9d0964fe2b75f64d9dab9839c2b059b7e8f71115/lwjgl-shaderc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/ab69a0e011f057ed25857c97fa3c87f20ab8f670/lwjgl-shaderc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/ce7721d30cfaf47feaed10213e0c43eb55c49d68/lwjgl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9a29b6a22fc5184604b8cb434ee5d5ecc4bfcbee/lwjgl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/7a6f04e02429ba2f4bda9be191347bb7d3c71127/lwjgl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/dc7db8fc4f1e6563867f9155b9a42d9c73d8992f/lwjgl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/2c9d698e76c3d0fe307d94cc6f428038492f25df/lwjgl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9eeb8887b5e3aa672efd2e1b0973ffa5891a3151/lwjgl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/f14e7a5289d2355822f4f83b3fd38d158c939acd/lwjgl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/832e2964ce74e02e768814a29c06d60645115b9a/lwjgl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/jbullet/1.0.3/362f53e8aa981037c2523ac24eb4d9b190a49036/jbullet-1.0.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/javax.vecmath/vecmath/1.5.2/fd17bc3e67f909573dfc039d8e2abecf407c4e27/vecmath-1.5.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/j-ogg-vorbis/1.0.6/a69d1cf62eaf75b71af61f9c23265d278a966735/j-ogg-vorbis-1.0.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-default-controls/1.4.3/2ccafe0182a73da87657ca24b639b6e8c1accd50/nifty-default-controls-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty/1.4.3/fa9ac16e00d1b375d10f58d1c1eb576950ae8c9d/nifty-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-style-black/1.4.3/c20a02dbdeb0bd9d2be258955fceb55c13185a8/nifty-style-black-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.9.1/2cc2131b98ebfb04e2b2c7dfb84431f4045096b/gson-2.9.1.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/stack-alloc/1.0.2/13cbb10c01ec09d0f5879f988946a97998175dfc/stack-alloc-1.0.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/xpp3/xpp3/1.1.4c/9b988ea84b9e4e9f1874e390ce099b8ac12cfff5/xpp3-1.1.4c.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/2.0.2/516c03b21d50a644d538de0f0369c620989cd8f0/jsr305-2.0.2.jar -Launcher Type: SUN_STANDARD - -[Global flags] - intx CICompilerCount = 4 {product} {ergonomic} - uint ConcGCThreads = 2 {product} {ergonomic} - uint G1ConcRefinementThreads = 8 {product} {ergonomic} - size_t G1HeapRegionSize = 4194304 {product} {ergonomic} - size_t InitialHeapSize = 524288000 {product} {ergonomic} - size_t MarkStackSize = 4194304 {product} {ergonomic} - size_t MarkStackSizeMax = 536870912 {product} {ergonomic} - size_t MaxHeapSize = 8388608000 {product} {ergonomic} - size_t MaxNewSize = 5033164800 {product} {ergonomic} - size_t MinHeapDeltaBytes = 4194304 {product} {ergonomic} - size_t MinHeapSize = 8388608 {product} {ergonomic} - uintx NonNMethodCodeHeapSize = 5836800 {pd product} {ergonomic} - uintx NonProfiledCodeHeapSize = 122912768 {pd product} {ergonomic} - uintx ProfiledCodeHeapSize = 122908672 {pd product} {ergonomic} - uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} - bool SegmentedCodeCache = true {product} {ergonomic} - size_t SoftMaxHeapSize = 8388608000 {manageable} {ergonomic} - bool UseCompressedOops = true {product lp64_product} {ergonomic} - bool UseG1GC = true {product} {ergonomic} - -Logging: -Log output configuration: - #0: stdout all=warning uptime,level,tags foldmultilines=false - #1: stderr all=off uptime,level,tags foldmultilines=false - -Environment Variables: -PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin -USERNAME=codex -SHELL=/bin/bash -DISPLAY=:1 -LANG=en_US.UTF-8 - -Active Locale: -LC_ALL=en_US.UTF-8 -LC_COLLATE=en_US.UTF-8 -LC_CTYPE=en_US.UTF-8 -LC_MESSAGES=en_US.UTF-8 -LC_MONETARY=en_US.UTF-8 -LC_NUMERIC=en_US.UTF-8 -LC_TIME=en_US.UTF-8 - -Signal Handlers: - SIGSEGV: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGBUS: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGFPE: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGPIPE: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGXFSZ: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGILL: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGUSR2: SR_handler in libjvm.so, mask=00000000000000000000000000000000, flags=SA_RESTART|SA_SIGINFO, blocked - SIGHUP: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGINT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGTERM: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGQUIT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGTRAP: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - - -Periodic native trim disabled - ---------------- S Y S T E M --------------- - -OS: -DISTRIB_ID=Pop -DISTRIB_RELEASE=22.04 -DISTRIB_CODENAME=jammy -DISTRIB_DESCRIPTION="Pop!_OS 22.04 LTS" -uname: Linux 6.9.3-76060903-generic #202405300957~1726766035~22.04~4092a0e SMP PREEMPT_DYNAMIC Thu S x86_64 -OS uptime: 0 days 15:15 hours -libc: glibc 2.35 NPTL 2.35 -rlimit (soft/hard): STACK 8192k/infinity , CORE 0k/infinity , NPROC 127655/127655 , NOFILE 1048576/1048576 , AS infinity/infinity , CPU infinity/infinity , DATA infinity/infinity , FSIZE infinity/infinity , MEMLOCK 4095956k/4095956k -load average: 1.24 0.88 0.84 - -/proc/meminfo: -MemTotal: 32767652 kB -MemFree: 20132288 kB -MemAvailable: 23534048 kB -Buffers: 347160 kB -Cached: 5008804 kB -SwapCached: 0 kB -Active: 8769136 kB -Inactive: 2812368 kB -Active(anon): 6258988 kB -Inactive(anon): 0 kB -Active(file): 2510148 kB -Inactive(file): 2812368 kB -Unevictable: 15204 kB -Mlocked: 72 kB -SwapTotal: 20970996 kB -SwapFree: 20970996 kB -Zswap: 0 kB -Zswapped: 0 kB -Dirty: 832 kB -Writeback: 0 kB -AnonPages: 6241144 kB -Mapped: 1824364 kB -Shmem: 33440 kB -KReclaimable: 197352 kB -Slab: 385632 kB -SReclaimable: 197352 kB -SUnreclaim: 188280 kB -KernelStack: 22608 kB -PageTables: 54196 kB -SecPageTables: 0 kB -NFS_Unstable: 0 kB -Bounce: 0 kB -WritebackTmp: 0 kB -CommitLimit: 37354820 kB -Committed_AS: 12287808 kB -VmallocTotal: 34359738367 kB -VmallocUsed: 252112 kB -VmallocChunk: 0 kB -Percpu: 9472 kB -HardwareCorrupted: 0 kB -AnonHugePages: 0 kB -ShmemHugePages: 6144 kB -ShmemPmdMapped: 0 kB -FileHugePages: 0 kB -FilePmdMapped: 0 kB -Unaccepted: 0 kB -HugePages_Total: 0 -HugePages_Free: 0 -HugePages_Rsvd: 0 -HugePages_Surp: 0 -Hugepagesize: 2048 kB -Hugetlb: 0 kB -DirectMap4k: 851768 kB -DirectMap2M: 15826944 kB -DirectMap1G: 16777216 kB - -/sys/kernel/mm/transparent_hugepage/enabled: always [madvise] never -/sys/kernel/mm/transparent_hugepage/hpage_pmd_size: 2097152 -/sys/kernel/mm/transparent_hugepage/shmem_enabled: always within_size advise [never] deny force -/sys/kernel/mm/transparent_hugepage/defrag (defrag/compaction efforts parameter): always defer defer+madvise [madvise] never - -Process Memory: -Virtual Size: 13445252K (peak: 13510788K) -Resident Set Size: 309200K (peak: 309200K) (anon: 165796K, file: 142380K, shmem: 1024K) -Swapped out: 0K -C-Heap outstanding allocations: 84790K, retained: 22997K -glibc malloc tunables: (default) - -/proc/sys/kernel/threads-max (system-wide limit on the number of threads): 255310 -/proc/sys/vm/max_map_count (maximum number of memory map areas a process may have): 2147483642 -/proc/sys/vm/swappiness (control to define how aggressively the kernel swaps out anonymous memory): 180 -/proc/sys/kernel/pid_max (system-wide limit on number of process identifiers): 4194304 - -container (cgroup) information: -container_type: cgroupv2 -cpu_cpuset_cpus: not supported -cpu_memory_nodes: not supported -active_processor_count: 8 -cpu_quota: not supported -cpu_period: not supported -cpu_shares: not supported -memory_limit_in_bytes: unlimited -memory_and_swap_limit_in_bytes: unlimited -memory_soft_limit_in_bytes: 0 -memory_usage_in_bytes: 5924904 k -memory_max_usage_in_bytes: not supported -rss_usage_in_bytes: 3518740 k -cache_usage_in_bytes: 2323460 k -memory_swap_current_in_bytes: 0 -memory_swap_max_limit_in_bytes: unlimited -maximum number of tasks: 38296 -current number of tasks: 317 - -Steal ticks since vm start: 0 -Steal ticks percentage since vm start: 0.000 - -CPU: total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 158 stepping 9 microcode 0xf8, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, adx, fma, vzeroupper, clflush, clflushopt, rdtscp, f16c -CPU Model and flags from /proc/cpuinfo: -model name : Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities - -Online cpus: 0-7 -Offline cpus: -BIOS frequency limitation: -Frequency switch latency (ns): 0 -Available cpu frequencies: -Current governor: powersave -Core performance/turbo boost: - -Memory: 4k page, physical 32767652k(23534048k free), swap 20970996k(20970996k free) -Page Sizes: 4k - -vm_info: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58) for linux-amd64 JRE (23.0.2+7-58), built on 2024-11-29T09:34:55Z with gcc 13.2.0 - -END. diff --git a/hs_err_pid85302.log b/hs_err_pid85302.log deleted file mode 100644 index 3c641b6200..0000000000 --- a/hs_err_pid85302.log +++ /dev/null @@ -1,1596 +0,0 @@ -# -# A fatal error has been detected by the Java Runtime Environment: -# -# SIGSEGV (0xb) at pc=0x00007177b465933a, pid=85302, tid=85350 -# -# JRE version: Java(TM) SE Runtime Environment (23.0.2+7) (build 23.0.2+7-58) -# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64) -# Problematic frame: -# C [libjemalloc.so+0x5933a] -# -# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/codex/java/prj/jmonkeyengine/core.85302) -# -# If you would like to submit a bug report, please visit: -# https://bugreport.java.com/bugreport/crash.jsp -# - ---------------- S U M M A R Y ------------ - -Command Line: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant jme3test.vulkan.VulkanTest - -Host: Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz, 8 cores, 31G, Pop!_OS 22.04 LTS -Time: Thu Jun 26 22:34:55 2025 EDT elapsed time: 6.953641 seconds (0d 0h 0m 6s) - ---------------- T H R E A D --------------- - -Current thread is native thread - -Stack: [0x00007177aa9ac000,0x00007177aaaac000], sp=0x00007177aaaaa8d0, free space=1018k -Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) -C [libjemalloc.so+0x5933a] - -siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000000 - -Registers: -RAX=0x0000000000000000, RBX=0x0000000000000200, RCX=0x0000000000000000, RDX=0x00007177b4678440 -RSP=0x00007177aaaaa8d0, RBP=0x00007177aaaaadb0, RSI=0x0000000000000000, RDI=0x00007177abd55580 -R8 =0x0000000000000000, R9 =0x0000000000000000, R10=0x0000000000000000, R11=0x00007177abd555c0 -R12=0x000000000000003f, R13=0x00007177aaaaad70, R14=0x000000000000003f, R15=0x00007177aaaaaad0 -RIP=0x00007177b465933a, EFLAGS=0x0000000000010246, CSGSFS=0x002b000000000033, ERR=0x0000000000000004 - TRAPNO=0x000000000000000e - - -Top of Stack: (sp=0x00007177aaaaa8d0) -0x00007177aaaaa8d0: 00007177dc4d8680 00007177aaaaa960 -0x00007177aaaaa8e0: 00007177aaaaa970 00007177e4f05211 -0x00007177aaaaa8f0: 0000000000000005 00007177dc4d8878 -0x00007177aaaaa900: 0000000000000005 0000000000000000 -0x00007177aaaaa910: 0000000000000001 00007177dc4d8310 -0x00007177aaaaa920: 00007177dc4d8878 00007177dc4d8310 -0x00007177aaaaa930: 00000001cbd3f020 00007177dc4d8680 -0x00007177aaaaa940: 0000000000000000 3737313700000000 -0x00007177aaaaa950: 3062636400000000 aa8a397500000004 -0x00007177aaaaa960: 00000000ffffffff 0000000000000000 -0x00007177aaaaa970: 00007177e4c0d4d0 00007177e4ef27c0 -0x00007177aaaaa980: 00007177aaaaa9b0 00007177e4678613 -0x00007177aaaaa990: 00007177aaaaab88 00007177e4c8849a -0x00007177aaaaa9a0: 0000000000000000 00007177aaaaaaa0 -0x00007177aaaaa9b0: 00000000fbad8001 0000000000000002 -0x00007177aaaaa9c0: 00007177dc4d8310 00007177b5fff028 -0x00007177aaaaa9d0: 00007177e4e1cae8 0000000000000004 -0x00007177aaaaa9e0: 00007177aaaabb58 00007177e4f0bf71 -0x00007177aaaaa9f0: 0000000000000005 0000000000000000 -0x00007177aaaaaa00: 00007177e4c0d4d0 00007177e4ca53e0 -0x00007177aaaaaa10: 0000000000000000 00007177aaaaae00 -0x00007177aaaaaa20: 00007177e4e1caf8 0000000000000000 -0x00007177aaaaaa30: 00007177e4e1cae8 00007177e4f0edae -0x00007177aaaaaa40: 0000000000000001 000000000000006f -0x00007177aaaaaa50: 00007177b5fb17d0 0000000000000000 -0x00007177aaaaaa60: 00007176b0b8aaa0 0000000000000000 -0x00007177aaaaaa70: 00000000000000ca 68751852672165a1 -0x00007177aaaaaa80: 0000000000000213 00007177e4e17300 -0x00007177aaaaaa90: 0000000000000000 0000000000000200 -0x00007177aaaaaaa0: 00007177aaaaadb0 000000000000003f -0x00007177aaaaaab0: 00007177aaaaad70 00007177aaaaaad0 -0x00007177aaaaaac0: 00007176b00024d0 00007177b46592f8 - -Instructions: (pc=0x00007177b465933a) -0x00007177b465923a: f4 66 41 c1 ec 03 41 0f b7 d4 2b 95 40 ff ff ff -0x00007177b465924a: 48 c1 e2 03 e8 bd f0 fa ff 49 8b 4d 00 41 0f b7 -0x00007177b465925a: 7d 14 48 01 d9 89 fe 66 41 2b 7d 10 29 ce 66 c1 -0x00007177b465926a: ef 03 49 89 4d 00 66 c1 ee 03 66 39 fe 73 0c 4c -0x00007177b465927a: 8b bd 50 ff ff ff 66 41 89 4f 10 48 8d 65 d8 5b -0x00007177b465928a: 41 5c 41 5d 41 5e 41 5f 5d c3 29 d8 48 89 a5 48 -0x00007177b465929a: ff ff ff 4c 89 ff 44 0f b7 e0 44 0f b7 c0 66 89 -0x00007177b46592aa: 45 c0 45 8d 74 24 01 4e 8d 1c c5 00 00 00 00 44 -0x00007177b46592ba: 89 a5 40 ff ff ff 4a 8d 1c f5 0f 00 00 00 4c 29 -0x00007177b46592ca: da 4c 89 9d 38 ff ff ff 81 e3 f0 ff 1f 00 4c 8d -0x00007177b46592da: 14 16 4c 89 c2 48 8b b5 30 ff ff ff 48 29 dc 4c -0x00007177b46592ea: 89 55 c8 49 89 e6 4c 89 f1 e8 28 ed ff ff 48 29 -0x00007177b46592fa: dc 48 89 65 80 45 85 e4 0f 84 07 ff ff ff 44 8b -0x00007177b465930a: 8d 2c ff ff ff c7 45 b8 00 00 00 00 4c 89 7d b0 -0x00007177b465931a: 4d 89 f7 45 89 e6 4b 8d 0c 89 4c 89 4d a0 48 c1 -0x00007177b465932a: e1 03 48 89 4d 88 49 8b 37 48 8d 15 06 f1 01 00 -0x00007177b465933a: 44 8b 2e 41 81 e5 ff 0f 00 00 44 89 e8 4c 8b 24 -0x00007177b465934a: c2 4c 89 65 a8 4c 8b 06 48 8d 3d 67 72 02 00 4c -0x00007177b465935a: 8b 5d a0 49 c1 e8 26 41 83 e0 3f 46 8b 14 9f 44 -0x00007177b465936a: 89 c3 44 89 45 bc 4c 8d 0c dd 00 00 00 00 49 29 -0x00007177b465937a: d9 49 c1 e1 05 4d 01 ca 4d 01 e2 49 8d 7a 48 4c -0x00007177b465938a: 89 55 90 48 89 7d 98 e8 6a f0 fa ff 4c 8b 4d 90 -0x00007177b465939a: 85 c0 0f 85 ce 03 00 00 49 8d 49 40 48 89 4d 90 -0x00007177b46593aa: 49 8b 1f 48 8b 55 a0 45 8d 5e ff 45 31 e4 48 8d -0x00007177b46593ba: 05 a1 72 02 00 41 ba 01 00 00 00 41 83 e3 01 48 -0x00007177b46593ca: 8b 3b 44 8b 04 90 48 8b 45 c8 89 fe 81 e6 ff 0f -0x00007177b46593da: 00 00 48 8b 08 41 39 f5 0f 84 c0 02 00 00 4a 89 -0x00007177b46593ea: 0c e0 4b 89 1c e7 41 bc 01 00 00 00 bb 01 00 00 -0x00007177b46593fa: 00 41 83 fe 01 0f 86 51 02 00 00 45 85 db 74 38 -0x00007177b465940a: 49 8b 57 08 48 8b 48 08 48 8b 32 89 f7 81 e7 ff -0x00007177b465941a: 0f 00 00 41 39 fd 0f 84 6a 04 00 00 45 89 e3 41 -0x00007177b465942a: 83 c4 01 4a 89 0c d8 4b 89 14 df 48 83 c3 01 41 - - - ---------------- P R O C E S S --------------- - -VM state: not at safepoint (normal execution) - -VM Mutex/Monitor currently owned by a thread: None - -Heap address: 0x000000060c000000, size: 8000 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 - -CDS archive(s) mapped at: [0x000071775e000000-0x000071775ed91000-0x000071775ed91000), size 14225408, SharedBaseAddress: 0x000071775e000000, ArchiveRelocationMode: 1. -Compressed class space mapped at: 0x000071775f000000-0x000071779f000000, reserved size: 1073741824 -Narrow klass base: 0x000071775e000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 - -GC Precious Log: - - -Heap: - garbage-first heap total reserved 8192000K, committed 28672K, used 14737K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 3 young (12288K), 1 survivors (4096K) - Metaspace used 22132K, committed 22464K, reserved 1114112K - class space used 2300K, committed 2432K, reserved 1048576K - -Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, TAMS=top-at-mark-start, PB=parsable bottom -| 0|0x000000060c000000, 0x000000060c367560, 0x000000060c400000| 85%| O| |TAMS 0x000000060c000000| PB 0x000000060c000000| Untracked | 0 -| 1|0x000000060c400000, 0x000000060c6cd070, 0x000000060c800000| 70%| O| |TAMS 0x000000060c400000| PB 0x000000060c400000| Untracked | 0 -| 2|0x000000060c800000, 0x000000060c800000, 0x000000060cc00000| 0%| F| |TAMS 0x000000060c800000| PB 0x000000060c800000| Untracked | 0 -| 3|0x000000060cc00000, 0x000000060cc00000, 0x000000060d000000| 0%| F| |TAMS 0x000000060cc00000| PB 0x000000060cc00000| Untracked | 0 -| 4|0x000000060d000000, 0x000000060d2f1650, 0x000000060d400000| 73%| E| |TAMS 0x000000060d000000| PB 0x000000060d000000| Complete | 0 -| 5|0x000000060d400000, 0x000000060d53e8d0, 0x000000060d800000| 31%| S|CS|TAMS 0x000000060d400000| PB 0x000000060d400000| Complete | 0 -| 6|0x000000060d800000, 0x000000060dc00000, 0x000000060dc00000|100%| E|CS|TAMS 0x000000060d800000| PB 0x000000060d800000| Complete | 0 - -Card table byte_map: [0x00007177e0a00000,0x00007177e19a0000] _byte_map_base: 0x00007177dd9a0000 - -Marking Bits: (CMBitMap*) 0x00007177dc059190 - Bits: [0x00007177bca00000, 0x00007177c4700000) - -Polling page: 0x00007177e4ede000 - -Metaspace: - -Usage: - Non-class: 19.37 MB used. - Class: 2.25 MB used. - Both: 21.61 MB used. - -Virtual space: - Non-class space: 64.00 MB reserved, 19.56 MB ( 31%) committed, 1 nodes. - Class space: 1.00 GB reserved, 2.38 MB ( <1%) committed, 1 nodes. - Both: 1.06 GB reserved, 21.94 MB ( 2%) committed. - -Chunk freelists: - Non-Class: 11.89 MB - Class: 13.44 MB - Both: 25.33 MB - -MaxMetaspaceSize: unlimited -CompressedClassSpaceSize: 1.00 GB -Initial GC threshold: 21.00 MB -Current GC threshold: 27.12 MB -CDS: on - - commit_granule_bytes: 65536. - - commit_granule_words: 8192. - - virtual_space_node_default_size: 8388608. - - enlarge_chunks_in_place: 1. - - use_allocation_guard: 0. - - -Internal statistics: - -num_allocs_failed_limit: 0. -num_arena_births: 334. -num_arena_deaths: 0. -num_vsnodes_births: 2. -num_vsnodes_deaths: 0. -num_space_committed: 351. -num_space_uncommitted: 0. -num_chunks_returned_to_freelist: 0. -num_chunks_taken_from_freelist: 689. -num_chunk_merges: 0. -num_chunk_splits: 437. -num_chunks_enlarged: 282. -num_inconsistent_stats: 0. - -CodeHeap 'non-profiled nmethods': size=120032Kb used=733Kb max_used=733Kb free=119298Kb - bounds [0x00007177cc2c8000, 0x00007177cc538000, 0x00007177d3800000] -CodeHeap 'profiled nmethods': size=120028Kb used=2878Kb max_used=2878Kb free=117149Kb - bounds [0x00007177c4800000, 0x00007177c4ad0000, 0x00007177cbd37000] -CodeHeap 'non-nmethods': size=5700Kb used=2461Kb max_used=2497Kb free=3238Kb - bounds [0x00007177cbd37000, 0x00007177cbfb7000, 0x00007177cc2c8000] -CodeCache: size=245760Kb, used=6072Kb, max_used=6108Kb, free=239685Kb - total_blobs=3783, nmethods=2349, adapters=1341, full_count=0 -Compilation: enabled, stopped_count=0, restarted_count=0 - -Compilation events (20 events): -Event: 6.566 Thread 0x00007177dc13eed0 2473 4 org.lwjgl.vulkan.VkSubmitInfo::sizeof (4 bytes) -Event: 6.567 Thread 0x00007177dc13eed0 nmethod 2473 0x00007177cc37f188 code [0x00007177cc37f280, 0x00007177cc37f300] -Event: 6.783 Thread 0x00007177dc13eed0 2474 4 org.lwjgl.system.MemoryStack::nmalloc (61 bytes) -Event: 6.783 Thread 0x00007177dc13eed0 nmethod 2474 0x00007177cc37f488 code [0x00007177cc37f580, 0x00007177cc37f638] -Event: 6.817 Thread 0x00007177dc1405e0 2475 3 org.lwjgl.PointerBuffer:: (15 bytes) -Event: 6.817 Thread 0x00007177dc1405e0 nmethod 2475 0x00007177c4aca708 code [0x00007177c4aca860, 0x00007177c4acac40] -Event: 6.833 Thread 0x00007177dc1405e0 2476 3 org.lwjgl.PointerBuffer::sizeof (4 bytes) -Event: 6.833 Thread 0x00007177dc1405e0 nmethod 2476 0x00007177c4acac88 code [0x00007177c4acada0, 0x00007177c4acaea8] -Event: 6.833 Thread 0x00007177dc1405e0 2477 3 java.lang.ThreadLocal$ThreadLocalMap::set (133 bytes) -Event: 6.834 Thread 0x00007177dc1405e0 nmethod 2477 0x00007177c4acaf88 code [0x00007177c4acb1a0, 0x00007177c4acbe48] -Event: 6.834 Thread 0x00007177dc1405e0 2480 3 jdk.internal.misc.Blocker::begin (38 bytes) -Event: 6.834 Thread 0x00007177dc1405e0 nmethod 2480 0x00007177c4acbf08 code [0x00007177c4acc080, 0x00007177c4acc768] -Event: 6.834 Thread 0x00007177dc1405e0 2478 3 java.io.BufferedOutputStream::implWrite (71 bytes) -Event: 6.835 Thread 0x00007177dc1405e0 nmethod 2478 0x00007177c4acc808 code [0x00007177c4acc9a0, 0x00007177c4acd038] -Event: 6.835 Thread 0x00007177dc1405e0 2479 ! 3 java.lang.System$Out::write (31 bytes) -Event: 6.835 Thread 0x00007177dc1405e0 nmethod 2479 0x00007177c4acd088 code [0x00007177c4acd240, 0x00007177c4acd998] -Event: 6.866 Thread 0x00007177dc1405e0 2481 3 org.lwjgl.PointerBuffer::create (14 bytes) -Event: 6.867 Thread 0x00007177dc1405e0 nmethod 2481 0x00007177c4acda08 code [0x00007177c4acdb20, 0x00007177c4acdcd0] -Event: 6.950 Thread 0x00007177dc1405e0 2482 3 org.lwjgl.PointerBuffer::put (14 bytes) -Event: 6.950 Thread 0x00007177dc1405e0 nmethod 2482 0x00007177c4acdd08 code [0x00007177c4acde40, 0x00007177c4ace070] - -GC Heap History (8 events): -Event: 2.386 GC heap before -{Heap before GC invocations=0 (full 0): - garbage-first heap total reserved 8192000K, committed 516096K, used 21627K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 6 young (24576K), 0 survivors (0K) - Metaspace used 16364K, committed 16640K, reserved 1114112K - class space used 1823K, committed 1920K, reserved 1048576K -} -Event: 2.396 GC heap after -{Heap after GC invocations=1 (full 1): - garbage-first heap total reserved 8192000K, committed 98304K, used 6353K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 0 young (0K), 0 survivors (0K) - Metaspace used 16364K, committed 16640K, reserved 1114112K - class space used 1823K, committed 1920K, reserved 1048576K -} -Event: 2.396 GC heap before -{Heap before GC invocations=1 (full 1): - garbage-first heap total reserved 8192000K, committed 98304K, used 6353K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 0 young (0K), 0 survivors (0K) - Metaspace used 16364K, committed 16640K, reserved 1114112K - class space used 1823K, committed 1920K, reserved 1048576K -} -Event: 2.407 GC heap after -{Heap after GC invocations=2 (full 2): - garbage-first heap total reserved 8192000K, committed 28672K, used 6353K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 0 young (0K), 0 survivors (0K) - Metaspace used 16364K, committed 16640K, reserved 1114112K - class space used 1823K, committed 1920K, reserved 1048576K -} -Event: 2.855 GC heap before -{Heap before GC invocations=2 (full 2): - garbage-first heap total reserved 8192000K, committed 28672K, used 10449K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 2 young (8192K), 0 survivors (0K) - Metaspace used 18557K, committed 18880K, reserved 1114112K - class space used 2036K, committed 2176K, reserved 1048576K -} -Event: 2.856 GC heap after -{Heap after GC invocations=3 (full 2): - garbage-first heap total reserved 8192000K, committed 28672K, used 7475K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 1 young (4096K), 1 survivors (4096K) - Metaspace used 18557K, committed 18880K, reserved 1114112K - class space used 2036K, committed 2176K, reserved 1048576K -} -Event: 2.923 GC heap before -{Heap before GC invocations=3 (full 2): - garbage-first heap total reserved 8192000K, committed 28672K, used 11571K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 2 young (8192K), 1 survivors (4096K) - Metaspace used 19967K, committed 20288K, reserved 1114112K - class space used 2161K, committed 2304K, reserved 1048576K -} -Event: 2.924 GC heap after -{Heap after GC invocations=4 (full 2): - garbage-first heap total reserved 8192000K, committed 28672K, used 7627K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 1 young (4096K), 1 survivors (4096K) - Metaspace used 19967K, committed 20288K, reserved 1114112K - class space used 2161K, committed 2304K, reserved 1048576K -} - -Dll operation events (12 events): -Event: 0.001 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -Event: 0.017 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -Event: 0.017 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -Event: 0.025 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -Event: 0.027 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -Event: 0.068 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -Event: 0.112 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -Event: 0.117 Loaded shared library /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -Event: 0.197 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -Event: 0.199 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -Event: 0.225 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so -Event: 0.351 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so - -Deoptimization events (20 events): -Event: 2.606 Thread 0x00007177dc69dcb0 Uncommon trap: trap_request=0xffffffde fr.pc=0x00007177cc354130 relative=0x0000000000000110 -Event: 2.606 Thread 0x00007177dc69dcb0 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00007177cc354130 method=jdk.internal.misc.Unsafe.allocateUninitializedArray(Ljava/lang/Class;I)Ljava/lang/Object; @ 51 c2 -Event: 2.606 Thread 0x00007177dc69dcb0 DEOPT PACKING pc=0x00007177cc354130 sp=0x00007177aaaa97a0 -Event: 2.606 Thread 0x00007177dc69dcb0 DEOPT UNPACKING pc=0x00007177cbd8abf9 sp=0x00007177aaaa9738 mode 2 -Event: 2.611 Thread 0x00007177dc69dcb0 Uncommon trap: trap_request=0xffffff45 fr.pc=0x00007177cc34c464 relative=0x0000000000000ee4 -Event: 2.611 Thread 0x00007177dc69dcb0 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00007177cc34c464 method=java.util.concurrent.ConcurrentHashMap.putVal(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object; @ 401 c2 -Event: 2.611 Thread 0x00007177dc69dcb0 DEOPT PACKING pc=0x00007177cc34c464 sp=0x00007177aaaaa300 -Event: 2.611 Thread 0x00007177dc69dcb0 DEOPT UNPACKING pc=0x00007177cbd8abf9 sp=0x00007177aaaaa280 mode 2 -Event: 2.847 Thread 0x00007177dc69dcb0 Uncommon trap: trap_request=0xffffff76 fr.pc=0x00007177cc34b168 relative=0x00000000000001a8 -Event: 2.847 Thread 0x00007177dc69dcb0 Uncommon trap: reason=predicate action=maybe_recompile pc=0x00007177cc34b168 method=java.util.regex.Pattern$BmpCharPropertyGreedy.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 12 c2 -Event: 2.847 Thread 0x00007177dc69dcb0 DEOPT PACKING pc=0x00007177cc34b168 sp=0x00007177aaaaa0e0 -Event: 2.847 Thread 0x00007177dc69dcb0 DEOPT UNPACKING pc=0x00007177cbd8abf9 sp=0x00007177aaaaa0b8 mode 2 -Event: 2.911 Thread 0x00007177dc69dcb0 Uncommon trap: trap_request=0xffffff6e fr.pc=0x00007177cc35e6e8 relative=0x0000000000000148 -Event: 2.911 Thread 0x00007177dc69dcb0 Uncommon trap: reason=loop_limit_check action=maybe_recompile pc=0x00007177cc35e6e8 method=java.util.regex.Pattern$Start.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 34 c2 -Event: 2.911 Thread 0x00007177dc69dcb0 DEOPT PACKING pc=0x00007177cc35e6e8 sp=0x00007177aaaaa0a0 -Event: 2.912 Thread 0x00007177dc69dcb0 DEOPT UNPACKING pc=0x00007177cbd8abf9 sp=0x00007177aaaaa050 mode 2 -Event: 3.091 Thread 0x00007177dc69dcb0 DEOPT PACKING pc=0x00007177c4a2451f sp=0x00007177aaaa97c0 -Event: 3.091 Thread 0x00007177dc69dcb0 DEOPT UNPACKING pc=0x00007177cbd8b30f sp=0x00007177aaaa8c00 mode 0 -Event: 3.093 Thread 0x00007177dc69dcb0 DEOPT PACKING pc=0x00007177c48acc54 sp=0x00007177aaaa9790 -Event: 3.093 Thread 0x00007177dc69dcb0 DEOPT UNPACKING pc=0x00007177cbd8b30f sp=0x00007177aaaa8c48 mode 0 - -Classes loaded (20 events): -Event: 2.893 Loading class javax/imageio/ImageTypeSpecifier$Packed -Event: 2.893 Loading class javax/imageio/ImageTypeSpecifier$Packed done -Event: 2.893 Loading class java/awt/image/DataBufferByte -Event: 2.893 Loading class java/awt/image/DataBufferByte done -Event: 2.893 Loading class sun/awt/image/ByteInterleavedRaster -Event: 2.893 Loading class sun/awt/image/ByteComponentRaster -Event: 2.893 Loading class sun/awt/image/ByteComponentRaster done -Event: 2.893 Loading class sun/awt/image/ByteInterleavedRaster done -Event: 2.894 Loading class sun/awt/image/ShortComponentRaster -Event: 2.894 Loading class sun/awt/image/ShortComponentRaster done -Event: 2.972 Loading class java/util/function/LongFunction -Event: 2.972 Loading class java/util/function/LongFunction done -Event: 3.408 Loading class sun/awt/AppContext$PostShutdownEventRunnable -Event: 3.408 Loading class sun/awt/AppContext$PostShutdownEventRunnable done -Event: 3.408 Loading class sun/awt/AWTAutoShutdown$1 -Event: 3.408 Loading class sun/awt/AWTAutoShutdown$1 done -Event: 6.952 Loading class java/lang/Throwable$WrappedPrintStream -Event: 6.952 Loading class java/lang/Throwable$PrintStreamOrWriter -Event: 6.952 Loading class java/lang/Throwable$PrintStreamOrWriter done -Event: 6.952 Loading class java/lang/Throwable$WrappedPrintStream done - -Classes unloaded (0 events): -No events - -Classes redefined (0 events): -No events - -Internal exceptions (20 events): -Event: 0.653 Thread 0x00007177dc683fa0 Exception (0x000000062a0b8978) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.326 Thread 0x00007177dc683fa0 Exception (0x000000062a353ed8) -thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] -Event: 2.379 Thread 0x00007177dc683fa0 Exception (0x0000000629cbdb28) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.423 Thread 0x00007177dc02d0f0 Exception (0x000000060d9ca708) -thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] -Event: 2.434 Thread 0x00007177dc02d0f0 Exception (0x000000060da66f58) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.435 Thread 0x00007177dc02d0f0 Exception (0x000000060da74e20) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.598 Thread 0x00007177dc69dcb0 Exception (0x000000060d59e850) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 863] -Event: 2.847 Thread 0x00007177dc69dcb0 Exception (0x000000060d781928) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.925 Thread 0x00007177dc69dcb0 Exception (0x000000060d828338) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.929 Thread 0x00007177dc69dcb0 Exception (0x000000060d850bc0) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.968 Thread 0x00007177dc69dcb0 Exception (0x000000060d9497e0) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.968 Thread 0x00007177dc69dcb0 Exception (0x000000060d94ef08) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.985 Thread 0x00007177dc69dcb0 Exception (0x000000060da07168) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.986 Thread 0x00007177dc69dcb0 Exception (0x000000060da199e8) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.986 Thread 0x00007177dc69dcb0 Exception (0x000000060da1d988) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.986 Thread 0x00007177dc69dcb0 Exception (0x000000060da21048) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.992 Thread 0x00007177dc69dcb0 Exception (0x000000060da854f0) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.027 Thread 0x00007177dc69dcb0 Exception (0x000000060dad5f50) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.033 Thread 0x00007177dc69dcb0 Exception (0x000000060daf08c8) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.051 Thread 0x00007177dc69dcb0 Exception (0x000000060db30400) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] - -VM Operations (20 events): -Event: 0.123 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.123 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.211 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.211 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.227 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.227 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.236 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.236 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.690 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.690 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 2.386 Executing VM operation: G1CollectFull (System.gc()) -Event: 2.396 Executing VM operation: G1CollectFull (System.gc()) done -Event: 2.396 Executing VM operation: G1CollectFull (System.gc()) -Event: 2.407 Executing VM operation: G1CollectFull (System.gc()) done -Event: 2.431 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 2.431 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 2.855 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) -Event: 2.856 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done -Event: 2.923 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) -Event: 2.924 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done - -Memory protections (20 events): -Event: 0.016 Protecting memory [0x00007177b4e00000,0x00007177b4e04000] with protection modes 0 -Event: 0.016 Protecting memory [0x00007177b4d00000,0x00007177b4d04000] with protection modes 0 -Event: 0.022 Protecting memory [0x00007177b4c00000,0x00007177b4c04000] with protection modes 0 -Event: 0.023 Protecting memory [0x00007177b4b00000,0x00007177b4b04000] with protection modes 0 -Event: 0.047 Protecting memory [0x00007177b4a00000,0x00007177b4a04000] with protection modes 0 -Event: 0.247 Protecting memory [0x00007177ab8b2000,0x00007177ab8b6000] with protection modes 0 -Event: 0.249 Protecting memory [0x00007177ab7b2000,0x00007177ab7b6000] with protection modes 0 -Event: 0.251 Protecting memory [0x00007177ab6b2000,0x00007177ab6b6000] with protection modes 0 -Event: 0.251 Protecting memory [0x00007177ab5b2000,0x00007177ab5b6000] with protection modes 0 -Event: 0.351 Protecting memory [0x00007177ab4b2000,0x00007177ab4b6000] with protection modes 0 -Event: 0.580 Protecting memory [0x00007177b4a00000,0x00007177b4a04000] with protection modes 0 -Event: 0.678 Protecting memory [0x00007177ab3b2000,0x00007177ab3b6000] with protection modes 0 -Event: 0.687 Protecting memory [0x00007177ab2b2000,0x00007177ab2b6000] with protection modes 0 -Event: 0.721 Protecting memory [0x00007177ab0b2000,0x00007177ab0b6000] with protection modes 0 -Event: 2.341 Protecting memory [0x00007177ab3b2000,0x00007177ab3b6000] with protection modes 0 -Event: 2.407 Protecting memory [0x00007177ab2b2000,0x00007177ab2b6000] with protection modes 0 -Event: 2.439 Protecting memory [0x00007177aa9ac000,0x00007177aa9b0000] with protection modes 0 -Event: 2.439 Protecting memory [0x00007177e3500000,0x00007177e3504000] with protection modes 0 -Event: 2.860 Protecting memory [0x00007177ab3b2000,0x00007177ab3b6000] with protection modes 0 -Event: 3.228 Protecting memory [0x00007177ab2b2000,0x00007177ab2b6000] with protection modes 0 - -Nmethod flushes (20 events): -Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c488a588 -Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c48da388 -Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c4917108 -Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c491d588 -Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c493d288 -Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c493d888 -Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c493fd88 -Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c4940d08 -Event: 2.401 Thread 0x00007177dc12e310 flushing osr nmethod 0x00007177c4944888 -Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c4945288 -Event: 2.401 Thread 0x00007177dc12e310 flushing osr nmethod 0x00007177c4947c88 -Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c4971188 -Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c4971808 -Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c4981708 -Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c4982708 -Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c4985088 -Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c4985408 -Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c49ae708 -Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c49f2b08 -Event: 2.401 Thread 0x00007177dc12e310 flushing nmethod 0x00007177c49f2f88 - -Events (20 events): -Event: 0.580 Thread 0x00007177dc683fa0 Thread added: 0x00007176f8061490 -Event: 0.678 Thread 0x00007177dc1405e0 Thread added: 0x00007177245007b0 -Event: 0.687 Thread 0x00007177dc1405e0 Thread added: 0x000071772453cbc0 -Event: 0.721 Thread 0x00007177dc683fa0 Thread added: 0x00007176f80f5850 -Event: 0.867 Thread 0x000071772453cbc0 Thread exited: 0x000071772453cbc0 -Event: 0.867 Thread 0x00007177245007b0 Thread exited: 0x00007177245007b0 -Event: 2.341 Thread 0x00007177dc1405e0 Thread added: 0x00007177245652b0 -Event: 2.407 Thread 0x00007177dc1405e0 Thread added: 0x0000717724571960 -Event: 2.439 Thread 0x00007177dc02d0f0 Thread added: 0x00007177dc69dcb0 -Event: 2.439 Thread 0x00007177dc02d0f0 Thread exited: 0x00007177dc02d0f0 -Event: 2.439 Thread 0x00007177dc02d0f0 Thread added: 0x00007177dc02d0f0 -Event: 2.566 Thread 0x0000717724571960 Thread exited: 0x0000717724571960 -Event: 2.566 Thread 0x00007177245652b0 Thread exited: 0x00007177245652b0 -Event: 2.859 Thread 0x00007177dc69dcb0 Thread added: 0x00007176b057f650 -Event: 3.228 Thread 0x00007177dc1405e0 Thread added: 0x00007177245aca20 -Event: 3.399 Thread 0x00007177245aca20 Thread exited: 0x00007177245aca20 -Event: 3.408 Thread 0x00007177dc682e90 Thread exited: 0x00007177dc682e90 -Event: 3.408 Thread 0x00007177dc683fa0 Thread exited: 0x00007177dc683fa0 -Event: 5.608 Thread 0x00007176f8061490 Thread exited: 0x00007176f8061490 -Event: 6.953 Thread 0x00007177dc69dcb0 Thread exited: 0x00007177dc69dcb0 - - -Dynamic libraries: -60c000000-60dc00000 rw-p 00000000 00:00 0 -60dc00000-800000000 ---p 00000000 00:00 0 -567ff61f2000-567ff61f3000 r-xp 00000000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java -567ff61f4000-567ff61f5000 r--p 00001000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java -567ff61f5000-567ff61f6000 rw-p 00002000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java -568003a6b000-568003ab4000 rw-p 00000000 00:00 0 [heap] -717668000000-717668075000 rw-p 00000000 00:00 0 -717668075000-71766c000000 ---p 00000000 00:00 0 -717670000000-717670021000 rw-p 00000000 00:00 0 -717670021000-717674000000 ---p 00000000 00:00 0 -717674000000-717674021000 rw-p 00000000 00:00 0 -717674021000-717678000000 ---p 00000000 00:00 0 -71767c000000-71767c021000 rw-p 00000000 00:00 0 -71767c021000-717680000000 ---p 00000000 00:00 0 -717680000000-717680021000 rw-p 00000000 00:00 0 -717680021000-717684000000 ---p 00000000 00:00 0 -717688000000-717688021000 rw-p 00000000 00:00 0 -717688021000-71768c000000 ---p 00000000 00:00 0 -71768c000000-71768c021000 rw-p 00000000 00:00 0 -71768c021000-717690000000 ---p 00000000 00:00 0 -717694000000-717694021000 rw-p 00000000 00:00 0 -717694021000-717698000000 ---p 00000000 00:00 0 -717698000000-717698021000 rw-p 00000000 00:00 0 -717698021000-71769c000000 ---p 00000000 00:00 0 -7176a0000000-7176a00c8000 rw-p 00000000 00:00 0 -7176a00c8000-7176a4000000 ---p 00000000 00:00 0 -7176a5000000-7176ab712000 r-xp 00000000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 -7176ab712000-7176abf30000 r--p 06711000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 -7176abf30000-7176abf76000 rw-p 06f2f000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 -7176abf76000-7176abff2000 rw-p 00000000 00:00 0 -7176ac000000-7176ac021000 rw-p 00000000 00:00 0 -7176ac021000-7176b0000000 ---p 00000000 00:00 0 -7176b0000000-7176b3148000 rw-p 00000000 00:00 0 -7176b3148000-7176b4000000 ---p 00000000 00:00 0 -7176b8000000-7176b80f8000 rw-p 00000000 00:00 0 -7176b80f8000-7176bc000000 ---p 00000000 00:00 0 -7176bc000000-7176bc021000 rw-p 00000000 00:00 0 -7176bc021000-7176c0000000 ---p 00000000 00:00 0 -7176c4000000-7176c4021000 rw-p 00000000 00:00 0 -7176c4021000-7176c8000000 ---p 00000000 00:00 0 -7176c8000000-7176c8021000 rw-p 00000000 00:00 0 -7176c8021000-7176cc000000 ---p 00000000 00:00 0 -7176d0000000-7176d0021000 rw-p 00000000 00:00 0 -7176d0021000-7176d4000000 ---p 00000000 00:00 0 -7176d4000000-7176d4021000 rw-p 00000000 00:00 0 -7176d4021000-7176d8000000 ---p 00000000 00:00 0 -7176dc000000-7176dc021000 rw-p 00000000 00:00 0 -7176dc021000-7176e0000000 ---p 00000000 00:00 0 -7176e0000000-7176e0021000 rw-p 00000000 00:00 0 -7176e0021000-7176e4000000 ---p 00000000 00:00 0 -7176e8000000-7176e8128000 rw-p 00000000 00:00 0 -7176e8128000-7176ec000000 ---p 00000000 00:00 0 -7176ec000000-7176ec39a000 rw-p 00000000 00:00 0 -7176ec39a000-7176f0000000 ---p 00000000 00:00 0 -7176f4000000-7176f4021000 rw-p 00000000 00:00 0 -7176f4021000-7176f8000000 ---p 00000000 00:00 0 -7176f8000000-7176f813a000 rw-p 00000000 00:00 0 -7176f813a000-7176fc000000 ---p 00000000 00:00 0 -717700000000-717700021000 rw-p 00000000 00:00 0 -717700021000-717704000000 ---p 00000000 00:00 0 -717704000000-717704021000 rw-p 00000000 00:00 0 -717704021000-717708000000 ---p 00000000 00:00 0 -71770c000000-71770c021000 rw-p 00000000 00:00 0 -71770c021000-717710000000 ---p 00000000 00:00 0 -717710000000-7177100cf000 rw-p 00000000 00:00 0 -7177100cf000-717714000000 ---p 00000000 00:00 0 -717718000000-717718021000 rw-p 00000000 00:00 0 -717718021000-71771c000000 ---p 00000000 00:00 0 -71771c000000-71771c021000 rw-p 00000000 00:00 0 -71771c021000-717720000000 ---p 00000000 00:00 0 -717720600000-717720725000 r--p 00000000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -717720725000-717720be5000 r-xp 00125000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -717720be5000-717720d19000 r--p 005e5000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -717720d19000-717720d1a000 ---p 00719000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -717720d1a000-717720d7d000 r--p 00719000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -717720d7d000-717720d87000 rw-p 0077c000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -717720d87000-717720d98000 rw-p 00000000 00:00 0 -717720e00000-717720e01000 ---p 00000000 00:00 0 -717720e01000-717721601000 rw-p 00000000 00:00 0 -717721800000-717721801000 ---p 00000000 00:00 0 -717721801000-717722001000 rw-p 00000000 00:00 0 -717722200000-717722201000 ---p 00000000 00:00 0 -717722201000-717722a01000 rw-p 00000000 00:00 0 -717722c00000-717722c01000 ---p 00000000 00:00 0 -717722c01000-717723401000 rw-p 00000000 00:00 0 -717723600000-717723601000 ---p 00000000 00:00 0 -717723601000-717723e01000 rw-p 00000000 00:00 0 -717724000000-7177245c2000 rw-p 00000000 00:00 0 -7177245c2000-717728000000 ---p 00000000 00:00 0 -717728000000-7177288c4000 rw-p 00000000 00:00 0 -7177288c4000-71772c000000 ---p 00000000 00:00 0 -71772c600000-71772c601000 ---p 00000000 00:00 0 -71772c601000-71772ce01000 rw-p 00000000 00:00 0 -71772d000000-71772d02f000 r--p 00000000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -71772d02f000-71772d702000 r-xp 0002f000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -71772d702000-71772d824000 r--p 00702000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -71772d824000-71772d835000 r--p 00823000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -71772d835000-71772d8b3000 rw-p 00834000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -71772d8b3000-71772d8c7000 rw-p 00000000 00:00 0 -71772da00000-71772da22000 r-xp 00000000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -71772da22000-71772dc21000 ---p 00022000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -71772dc21000-71772dc29000 r--p 00021000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -71772dc29000-71772dc2a000 rw-p 00029000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -71772dc2a000-71772dc2b000 rw-p 00000000 00:00 0 -71772e000000-71772ecf5000 r--p 00000000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -71772ecf5000-71772f6d8000 r-xp 00cf5000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -71772f6d8000-71772fae9000 r--p 016d8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -71772fae9000-71772ff6b000 r--p 01ae8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -71772ff6b000-71772ff73000 rw-p 01f6a000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -71772ff73000-71772ff7e000 rw-p 00000000 00:00 0 -717730000000-717730021000 rw-p 00000000 00:00 0 -717730021000-717734000000 ---p 00000000 00:00 0 -717734000000-717734021000 rw-p 00000000 00:00 0 -717734021000-717738000000 ---p 00000000 00:00 0 -717738400000-717738401000 ---p 00000000 00:00 0 -717738401000-717738c01000 rw-p 00000000 00:00 0 -717738e00000-717738e01000 ---p 00000000 00:00 0 -717738e01000-717739601000 rw-p 00000000 00:00 0 -717739800000-717739801000 ---p 00000000 00:00 0 -717739801000-71773a001000 rw-p 00000000 00:00 0 -71773a200000-71773a201000 ---p 00000000 00:00 0 -71773a201000-71773aa01000 rw-p 00000000 00:00 0 -71773ac00000-71773ac01000 ---p 00000000 00:00 0 -71773ac01000-71773b401000 rw-p 00000000 00:00 0 -71773b600000-71773b601000 ---p 00000000 00:00 0 -71773b601000-71773be01000 rw-p 00000000 00:00 0 -71773c000000-71773c021000 rw-p 00000000 00:00 0 -71773c021000-717740000000 ---p 00000000 00:00 0 -717740000000-717740021000 rw-p 00000000 00:00 0 -717740021000-717744000000 ---p 00000000 00:00 0 -717744200000-717744400000 rw-s 00000000 00:06 1017 /dev/nvidiactl -717744400000-71774448d000 r--p 00000000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -71774448d000-717744bf5000 r-xp 0008d000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -717744bf5000-717745482000 r--p 007f5000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -717745482000-7177454c4000 r--p 01081000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -7177454c4000-7177454c7000 rw-p 010c3000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -7177454c7000-7177454cd000 rw-p 00000000 00:00 0 -717745600000-7177457c4000 r--p 00000000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -7177457c4000-7177474c4000 r-xp 001c4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -7177474c4000-717747b39000 r--p 01ec4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -717747b39000-717747b3a000 ---p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -717747b3a000-717747d1a000 r--p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -717747d1a000-717747d93000 rw-p 02719000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -717747d93000-717747e08000 rw-p 00000000 00:00 0 -717748000000-717748021000 rw-p 00000000 00:00 0 -717748021000-71774c000000 ---p 00000000 00:00 0 -71774c000000-71774c635000 rw-p 00000000 00:00 0 -71774c635000-717750000000 ---p 00000000 00:00 0 -717750040000-7177500c0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177500c0000-7177502c0000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7177502c0000-7177503c0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177503c0000-717750400000 rw-s 00000000 00:06 1017 /dev/nvidiactl -717750400000-717750600000 rw-s 00000000 00:06 1017 /dev/nvidiactl -717750600000-71775065b000 r--p 00000000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -71775065b000-7177509d9000 r-xp 0005b000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -7177509d9000-717750dd5000 r--p 003d9000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -717750dd5000-717750e10000 r--p 007d4000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -717750e10000-717750e15000 rw-p 0080f000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -717750e15000-717750e40000 rw-p 00000000 00:00 0 -717750e60000-717750ea0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -717750ea0000-717750ec0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -717750ec0000-717750f00000 rw-s 00000000 00:06 1017 /dev/nvidiactl -717750f00000-717751000000 rw-s 00000000 00:06 1017 /dev/nvidiactl -717751000000-71775106e000 r--p 00000000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -71775106e000-7177515d5000 r-xp 0006e000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -7177515d5000-717751ce8000 r--p 005d5000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -717751ce8000-717751ce9000 ---p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -717751ce9000-717751d26000 r--p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -717751d26000-717751d29000 rw-p 00d25000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -717751d29000-717751d2b000 rw-p 00000000 00:00 0 -717751d2d000-717751d40000 rw-s 00000000 00:06 1017 /dev/nvidiactl -717751d40000-717751dc0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -717751dc0000-717751e00000 rw-s 00000000 00:06 1017 /dev/nvidiactl -717751e00000-717752041000 r-xp 00000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -717752041000-717752062000 rwxp 00241000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -717752062000-717752200000 r-xp 00262000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -717752200000-717752e00000 r-xp 00400000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -717752e00000-717753cab000 r-xp 01000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -717753cab000-717753e10000 r--p 01eaa000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -717753e10000-717753e7e000 rw-p 0200f000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -717753e7e000-717753e9c000 rw-p 00000000 00:00 0 -717753ea0000-717753ec0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -717753ec0000-717753f00000 rw-s 00000000 00:06 1017 /dev/nvidiactl -717753f00000-717754000000 rw-s 00000000 00:06 1017 /dev/nvidiactl -717754000000-7177543f0000 rw-p 00000000 00:00 0 -7177543f0000-7177545b0000 rw-p 00000000 00:00 0 -7177545b0000-7177546f0000 rw-p 00000000 00:00 0 -7177546f0000-717754710000 rw-p 00000000 00:00 0 -717754710000-717754730000 rw-p 00000000 00:00 0 -717754730000-717754770000 rw-p 00000000 00:00 0 -717754770000-7177549f0000 rw-p 00000000 00:00 0 -7177549f0000-717754a10000 rw-p 00000000 00:00 0 -717754a10000-717754a30000 rw-p 00000000 00:00 0 -717754a30000-717754a70000 rw-p 00000000 00:00 0 -717754a70000-717754af0000 rw-p 00000000 00:00 0 -717754af0000-717754cf0000 rw-p 00000000 00:00 0 -717754cf0000-717754d10000 rw-p 00000000 00:00 0 -717754d10000-717754d30000 rw-p 00000000 00:00 0 -717754d30000-717754d70000 rw-p 00000000 00:00 0 -717754d70000-717754ef0000 rw-p 00000000 00:00 0 -717754ef0000-717754ff0000 rw-p 00000000 00:00 0 -717754ff0000-7177550f0000 rw-p 00000000 00:00 0 -7177550f0000-717755170000 rw-p 00000000 00:00 0 -717755170000-717755200000 ---p 00000000 00:00 0 -717755200000-717755420000 rw-p 00000000 00:00 0 -717755420000-717758000000 ---p 00000000 00:00 0 -717758000000-717758021000 rw-p 00000000 00:00 0 -717758021000-71775c000000 ---p 00000000 00:00 0 -71775c020000-71775c040000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71775c040000-71775c080000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71775c080000-71775c180000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71775c180000-71775c200000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71775c200000-71775c201000 r--p 00000000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -71775c201000-71775c202000 r-xp 00001000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -71775c202000-71775de1c000 r--p 00002000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -71775de1c000-71775de1d000 r--p 01c1b000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -71775de1d000-71775de1e000 rw-p 01c1c000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -71775de20000-71775de40000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71775de40000-71775de80000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71775de80000-71775df80000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71775df80000-71775e000000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71775e000000-71775ed91000 rw-p 00001000 103:03 10498862 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/classes.jsa -71775ed91000-71775f000000 ---p 00000000 00:00 0 -71775f000000-71775f030000 rw-p 00000000 00:00 0 -71775f030000-71775f090000 rw-p 00000000 00:00 0 -71775f090000-71775f0b0000 rw-p 00000000 00:00 0 -71775f0b0000-71775f130000 rw-p 00000000 00:00 0 -71775f130000-71775f150000 rw-p 00000000 00:00 0 -71775f150000-71775f1b0000 rw-p 00000000 00:00 0 -71775f1b0000-71775f1d0000 rw-p 00000000 00:00 0 -71775f1d0000-71775f230000 rw-p 00000000 00:00 0 -71775f230000-71775f250000 rw-p 00000000 00:00 0 -71775f250000-71775f280000 ---p 00000000 00:00 0 -71775f280000-71775f290000 rw-p 00000000 00:00 0 -71775f290000-71779f000000 ---p 00000000 00:00 0 -71779f007000-71779f01a000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71779f03a000-71779f07a000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71779f07a000-71779f2bf000 rw-s 00000000 00:01 7173 /memfd:/.nvidia_drv.XXXXXX (deleted) -71779f2bf000-71779f400000 rw-s 00000000 103:03 13372247 /home/codex/.cache/mesa_shader_cache/index -71779f400000-71779f493000 r--p 00000000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -71779f493000-71779f8e6000 r-xp 00093000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -71779f8e6000-71779fdfc000 r--p 004e6000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -71779fdfc000-71779fe34000 r--p 009fb000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -71779fe34000-71779fe44000 rw-p 00a33000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -71779fe44000-71779fe49000 rw-p 00000000 00:00 0 -71779fe4c000-71779fe5f000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71779fe5f000-71779fe72000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71779fe72000-71779fe92000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71779fe92000-71779fea5000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71779fea5000-71779fee5000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71779fee5000-71779ff05000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71779ff05000-71779ff45000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71779ff45000-71779ff85000 rw-s 00000000 00:06 1017 /dev/nvidiactl -71779ff85000-71779ff96000 r--p 00000000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -71779ff96000-71779ffd8000 r-xp 00011000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -71779ffd8000-71779fff0000 r--p 00053000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -71779fff0000-71779fffe000 r--p 0006a000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -71779fffe000-7177a0000000 rw-p 00078000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -7177a0000000-7177a0021000 rw-p 00000000 00:00 0 -7177a0021000-7177a4000000 ---p 00000000 00:00 0 -7177a4000000-7177a4021000 rw-p 00000000 00:00 0 -7177a4021000-7177a8000000 ---p 00000000 00:00 0 -7177a800c000-7177a8010000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177a8010000-7177a8030000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177a8030000-7177a8034000 r--p 00000000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -7177a8034000-7177a8050000 r-xp 00004000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -7177a8050000-7177a8056000 r--p 00020000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -7177a8056000-7177a8057000 ---p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -7177a8057000-7177a8059000 r--p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -7177a8059000-7177a805a000 rw-p 00028000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -7177a805a000-7177a8064000 r--p 00000000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -7177a8064000-7177a806e000 r-xp 0000a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -7177a806e000-7177a8075000 r--p 00014000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -7177a8075000-7177a807e000 r--p 0001a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -7177a807e000-7177a807f000 rw-p 00023000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -7177a807f000-7177a808b000 r--p 00000000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -7177a808b000-7177a80ab000 r-xp 0000c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -7177a80ab000-7177a80b7000 r--p 0002c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -7177a80b7000-7177a80c1000 r--p 00037000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -7177a80c1000-7177a80c2000 rw-p 00041000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -7177a80c2000-7177a80d1000 r--p 00000000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -7177a80d1000-7177a81b7000 r-xp 0000f000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -7177a81b7000-7177a81f5000 r--p 000f5000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -7177a81f5000-7177a81f6000 ---p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -7177a81f6000-7177a81f9000 r--p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -7177a81f9000-7177a81ff000 rw-p 00136000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -7177a81ff000-7177a8200000 rw-p 00000000 00:00 0 -7177a8200000-7177a8216000 r--p 00000000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -7177a8216000-7177a8306000 r-xp 00016000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -7177a8306000-7177a8379000 r--p 00106000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -7177a8379000-7177a8380000 r--p 00178000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -7177a8380000-7177a8387000 rw-p 0017f000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -7177a8387000-7177a8402000 rw-p 00000000 00:00 0 -7177a8402000-7177a8403000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7177a8403000-7177a8404000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7177a8404000-7177a8406000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177a8406000-7177a8407000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7177a8407000-7177a8408000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7177a8408000-7177a8409000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7177a8409000-7177a840a000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177a840a000-7177a840b000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177a840b000-7177a840c000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177a840c000-7177a840d000 rw-s 00044000 00:01 7173 /memfd:/.nvidia_drv.XXXXXX (deleted) -7177a840d000-7177a840e000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7177a840e000-7177a8412000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177a8412000-7177a8413000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7177a8413000-7177a8415000 r--p 00000000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -7177a8415000-7177a841e000 r-xp 00002000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -7177a841e000-7177a8421000 r--p 0000b000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -7177a8421000-7177a8422000 ---p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -7177a8422000-7177a8423000 r--p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -7177a8423000-7177a8424000 rw-p 0000f000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -7177a8424000-7177a8426000 rw-p 00000000 00:00 0 -7177a8426000-7177a8428000 r--p 00000000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -7177a8428000-7177a8493000 r-xp 00002000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -7177a8493000-7177a84bb000 r--p 0006d000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -7177a84bb000-7177a84bc000 r--p 00094000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -7177a84bc000-7177a84bd000 rw-p 00095000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -7177a84bd000-7177a84c3000 r--p 00000000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -7177a84c3000-7177a84dd000 r-xp 00006000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -7177a84dd000-7177a84e4000 r--p 00020000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -7177a84e4000-7177a84e5000 ---p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -7177a84e5000-7177a84e6000 r--p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -7177a84e6000-7177a84e7000 rw-p 00028000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -7177a84e7000-7177a84e9000 rw-p 00000000 00:00 0 -7177a84e9000-7177a84fc000 r--p 00000000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -7177a84fc000-7177a851b000 r-xp 00013000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -7177a851b000-7177a8528000 r--p 00032000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -7177a8528000-7177a8538000 r--p 0003e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -7177a8538000-7177a8539000 rw-p 0004e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -7177a8539000-7177a854c000 r--p 00000000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -7177a854c000-7177a85cb000 r-xp 00013000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -7177a85cb000-7177a85f6000 r--p 00092000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -7177a85f6000-7177a85f7000 ---p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -7177a85f7000-7177a85fe000 r--p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -7177a85fe000-7177a85ff000 rw-p 000c4000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -7177a85ff000-7177a8f22000 rw-p 00000000 00:00 0 -7177a8f22000-7177a8f24000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177a8f24000-7177a8f25000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7177a8f25000-7177a8f26000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177a8f26000-7177a8f2a000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177a8f2a000-7177a8f2b000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7177a8f2b000-7177a8f2f000 r--p 00000000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -7177a8f2f000-7177a8f3f000 r-xp 00004000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -7177a8f3f000-7177a8f42000 r--p 00014000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -7177a8f42000-7177a8f43000 r--p 00016000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -7177a8f43000-7177a8f44000 rw-p 00017000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -7177a8f44000-7177a8f4f000 r--p 00000000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -7177a8f4f000-7177a8f7d000 r-xp 0000b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -7177a8f7d000-7177a8f8f000 r--p 00039000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -7177a8f8f000-7177a8f90000 ---p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -7177a8f90000-7177a8f91000 r--p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -7177a8f91000-7177a8f92000 rw-p 0004c000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -7177a8f92000-7177a8f96000 r--p 00000000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -7177a8f96000-7177a8fac000 r-xp 00004000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -7177a8fac000-7177a8fb6000 r--p 0001a000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -7177a8fb6000-7177a8fb7000 r--p 00023000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -7177a8fb7000-7177a8fb8000 rw-p 00024000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -7177a8fb8000-7177a8fe7000 r--p 00000000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -7177a8fe7000-7177a90a3000 r-xp 0002f000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -7177a90a3000-7177a90ee000 r--p 000eb000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -7177a90ee000-7177a90fc000 r--p 00135000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -7177a90fc000-7177a90fe000 rw-p 00143000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -7177a90fe000-7177a90ff000 rw-p 00000000 00:00 0 -7177a90ff000-7177a9100000 ---p 00000000 00:00 0 -7177a9100000-7177a9200000 rw-p 00000000 00:00 0 -7177a9200000-7177a9202000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177a9202000-7177a9203000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7177a9203000-7177a9223000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177a9223000-7177a9289000 r--p 00000000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -7177a9289000-7177a937c000 r-xp 00066000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -7177a937c000-7177a9408000 r--p 00159000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -7177a9408000-7177a941b000 r--p 001e4000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -7177a941b000-7177a941c000 rw-p 001f7000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -7177a941c000-7177a941e000 rw-p 00000000 00:00 0 -7177a941e000-7177a944d000 r--p 00000000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -7177a944d000-7177a95a0000 r-xp 0002f000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -7177a95a0000-7177a95f4000 r--p 00182000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -7177a95f4000-7177a95f5000 ---p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -7177a95f5000-7177a95fe000 r--p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -7177a95fe000-7177a95ff000 rw-p 001df000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -7177a95ff000-7177a9600000 rw-p 00000000 00:00 0 -7177a9600000-7177a969a000 r--p 00000000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -7177a969a000-7177a97ab000 r-xp 0009a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -7177a97ab000-7177a981a000 r--p 001ab000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -7177a981a000-7177a981b000 ---p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -7177a981b000-7177a9826000 r--p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -7177a9826000-7177a9829000 rw-p 00225000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -7177a9829000-7177a982c000 rw-p 00000000 00:00 0 -7177a982c000-7177a982d000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7177a982d000-7177a9836000 rw-s 00000000 00:01 672023 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) -7177a9836000-7177a983f000 rw-s 00000000 00:01 672022 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) -7177a983f000-7177a9841000 r--p 00000000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -7177a9841000-7177a985a000 r-xp 00002000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -7177a985a000-7177a985c000 r--p 0001b000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -7177a985c000-7177a985d000 ---p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -7177a985d000-7177a985e000 r--p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -7177a985e000-7177a985f000 rw-p 0001e000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -7177a985f000-7177a9863000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177a9863000-7177a9865000 r--p 00000000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -7177a9865000-7177a986d000 r-xp 00002000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -7177a986d000-7177a986f000 r--p 0000a000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -7177a986f000-7177a9870000 r--p 0000b000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -7177a9870000-7177a9871000 rw-p 0000c000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -7177a9871000-7177a9873000 r--p 00000000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -7177a9873000-7177a987b000 r-xp 00002000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -7177a987b000-7177a987c000 r--p 0000a000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -7177a987c000-7177a987d000 ---p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -7177a987d000-7177a987e000 r--p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -7177a987e000-7177a987f000 rw-p 0000c000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -7177a987f000-7177a98b2000 r--p 00000000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -7177a98b2000-7177a9915000 r-xp 00033000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -7177a9915000-7177a9934000 r--p 00096000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -7177a9934000-7177a995f000 r--p 000b4000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -7177a995f000-7177a9960000 rw-p 000df000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -7177a9960000-7177a9961000 rw-p 00000000 00:00 0 -7177a9961000-7177a9964000 r--p 00000000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -7177a9964000-7177a9985000 r-xp 00003000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -7177a9985000-7177a9991000 r--p 00024000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -7177a9991000-7177a9992000 ---p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -7177a9992000-7177a9993000 r--p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -7177a9993000-7177a9994000 rw-p 00031000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -7177a9994000-7177a99a2000 r--p 00000000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -7177a99a2000-7177a99b3000 r-xp 0000e000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -7177a99b3000-7177a99c1000 r--p 0001f000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -7177a99c1000-7177a99c5000 r--p 0002c000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -7177a99c5000-7177a99c6000 rw-p 00030000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -7177a99c6000-7177a99ce000 r--p 00000000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -7177a99ce000-7177a99ec000 r-xp 00008000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -7177a99ec000-7177a99f9000 r--p 00026000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -7177a99f9000-7177a99fb000 r--p 00032000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -7177a99fb000-7177a99fc000 rw-p 00034000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -7177a99fc000-7177a9a00000 rw-p 00000000 00:00 0 -7177a9a00000-7177a9a01000 ---p 00000000 00:00 0 -7177a9a01000-7177aa201000 rw-p 00000000 00:00 0 -7177aa201000-7177aa202000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177aa202000-7177aa204000 r--p 00000000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -7177aa204000-7177aa208000 r-xp 00002000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -7177aa208000-7177aa20a000 r--p 00006000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -7177aa20a000-7177aa20b000 r--p 00007000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -7177aa20b000-7177aa20c000 rw-p 00008000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -7177aa20c000-7177aa210000 r--p 00000000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -7177aa210000-7177aa225000 r-xp 00004000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -7177aa225000-7177aa22b000 r--p 00019000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -7177aa22b000-7177aa22c000 ---p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -7177aa22c000-7177aa22e000 r--p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -7177aa22e000-7177aa22f000 rw-p 00021000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -7177aa22f000-7177aa232000 r--p 00000000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -7177aa232000-7177aa249000 r-xp 00003000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -7177aa249000-7177aa24d000 r--p 0001a000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -7177aa24d000-7177aa24e000 r--p 0001d000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -7177aa24e000-7177aa24f000 rw-p 0001e000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -7177aa24f000-7177aa253000 r--p 00000000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -7177aa253000-7177aa272000 r-xp 00004000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -7177aa272000-7177aa27c000 r--p 00023000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -7177aa27c000-7177aa27d000 ---p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -7177aa27d000-7177aa27f000 r--p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -7177aa27f000-7177aa280000 rw-p 0002f000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -7177aa280000-7177aa285000 r--p 00000000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -7177aa285000-7177aa290000 r-xp 00005000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -7177aa290000-7177aa294000 r--p 00010000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -7177aa294000-7177aa295000 ---p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -7177aa295000-7177aa296000 r--p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -7177aa296000-7177aa297000 rw-p 00015000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -7177aa297000-7177aa2a1000 r--p 00000000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -7177aa2a1000-7177aa353000 r-xp 0000a000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -7177aa353000-7177aa364000 r--p 000bc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -7177aa364000-7177aa365000 r--p 000cc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -7177aa365000-7177aa366000 rw-p 000cd000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -7177aa366000-7177aa376000 r--p 00000000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -7177aa376000-7177aa3d4000 r-xp 00010000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -7177aa3d4000-7177aa3f0000 r--p 0006e000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -7177aa3f0000-7177aa3f1000 ---p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -7177aa3f1000-7177aa3f7000 r--p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -7177aa3f7000-7177aa3f8000 rw-p 00090000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -7177aa3f8000-7177aa400000 rw-p 00000000 00:00 0 -7177aa400000-7177aa800000 rw-p 00000000 00:00 0 -7177aa800000-7177aa802000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177aa802000-7177aa806000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177aa806000-7177aa857000 r--p 00000000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -7177aa857000-7177aa8b3000 r-xp 00051000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -7177aa8b3000-7177aa8e8000 rwxp 000ad000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -7177aa8e8000-7177aa8e9000 r-xp 000e2000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -7177aa8e9000-7177aa909000 r--p 000e3000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -7177aa909000-7177aa929000 r--p 00102000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -7177aa929000-7177aa92e000 rw-p 00122000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -7177aa92e000-7177aa930000 rw-p 00000000 00:00 0 -7177aa930000-7177aa936000 r--p 00000000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -7177aa936000-7177aa980000 r-xp 00006000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -7177aa980000-7177aa9aa000 r--p 00050000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -7177aa9aa000-7177aa9ab000 r--p 00079000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -7177aa9ab000-7177aa9ac000 rw-p 0007a000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -7177aa9ac000-7177aa9b0000 ---p 00000000 00:00 0 -7177aa9b0000-7177aaaac000 rw-p 00000000 00:00 0 -7177aaaac000-7177aaaad000 ---p 00000000 00:00 0 -7177aaaad000-7177aabad000 rw-p 00000000 00:00 0 -7177aabad000-7177aabae000 ---p 00000000 00:00 0 -7177aabae000-7177aacae000 rw-p 00000000 00:00 0 -7177aacae000-7177aacaf000 ---p 00000000 00:00 0 -7177aacaf000-7177aadaf000 rw-p 00000000 00:00 0 -7177aadaf000-7177aadb0000 ---p 00000000 00:00 0 -7177aadb0000-7177aaeb0000 rw-p 00000000 00:00 0 -7177aaeb0000-7177aaeb1000 ---p 00000000 00:00 0 -7177aaeb1000-7177aafb1000 rw-p 00000000 00:00 0 -7177aafb1000-7177aafb2000 ---p 00000000 00:00 0 -7177aafb2000-7177ab0b2000 rw-p 00000000 00:00 0 -7177ab0b2000-7177ab0b6000 ---p 00000000 00:00 0 -7177ab0b6000-7177ab1b2000 rw-p 00000000 00:00 0 -7177ab1b2000-7177ab2b2000 rw-s 00000000 00:01 1015832 /SYSV00000000 (deleted) -7177ab2b2000-7177ab2b6000 ---p 00000000 00:00 0 -7177ab2b6000-7177ab3b2000 rw-p 00000000 00:00 0 -7177ab3b2000-7177ab3b6000 ---p 00000000 00:00 0 -7177ab3b6000-7177ab4b2000 rw-p 00000000 00:00 0 -7177ab4b2000-7177ab4b6000 ---p 00000000 00:00 0 -7177ab4b6000-7177ab5b2000 rw-p 00000000 00:00 0 -7177ab5b2000-7177ab5b6000 ---p 00000000 00:00 0 -7177ab5b6000-7177ab6b2000 rw-p 00000000 00:00 0 -7177ab6b2000-7177ab6b6000 ---p 00000000 00:00 0 -7177ab6b6000-7177ab7b2000 rw-p 00000000 00:00 0 -7177ab7b2000-7177ab7b6000 ---p 00000000 00:00 0 -7177ab7b6000-7177ab8b2000 rw-p 00000000 00:00 0 -7177ab8b2000-7177ab8b6000 ---p 00000000 00:00 0 -7177ab8b6000-7177ab9b2000 rw-p 00000000 00:00 0 -7177ab9b2000-7177ab9bf000 r--p 00000000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -7177ab9bf000-7177aba48000 r-xp 0000d000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -7177aba48000-7177aba71000 r--p 00096000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -7177aba71000-7177aba72000 ---p 000bf000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -7177aba72000-7177aba79000 r--p 000bf000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -7177aba79000-7177aba7a000 rw-p 000c6000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -7177aba7a000-7177abbfb000 r-xp 00000000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so -7177abbfb000-7177abbfc000 ---p 00181000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so -7177abbfc000-7177abbfe000 r--p 00181000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so -7177abbfe000-7177abbff000 rw-p 00183000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so -7177abbff000-7177abc00000 rw-p 00000000 00:00 0 -7177abc00000-7177ac021000 rw-p 00000000 00:00 0 -7177ac021000-7177b0000000 ---p 00000000 00:00 0 -7177b0000000-7177b0021000 rw-p 00000000 00:00 0 -7177b0021000-7177b4000000 ---p 00000000 00:00 0 -7177b4000000-7177b4001000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7177b4001000-7177b4003000 r--p 00000000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -7177b4003000-7177b400a000 r-xp 00002000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -7177b400a000-7177b400b000 r--p 00009000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -7177b400b000-7177b400c000 ---p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -7177b400c000-7177b400d000 r--p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -7177b400d000-7177b400e000 rw-p 0000b000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -7177b400e000-7177b4011000 r--p 00000000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -7177b4011000-7177b4014000 r-xp 00003000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -7177b4014000-7177b4015000 r--p 00006000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -7177b4015000-7177b4016000 ---p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -7177b4016000-7177b4017000 r--p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -7177b4017000-7177b4018000 rw-p 00008000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -7177b4018000-7177b401d000 r--p 00000000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -7177b401d000-7177b4023000 r-xp 00005000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -7177b4023000-7177b4026000 r--p 0000b000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -7177b4026000-7177b4028000 r--p 0000d000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -7177b4028000-7177b4029000 rw-p 0000f000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -7177b4029000-7177b4039000 r--p 00000000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -7177b4039000-7177b405a000 r-xp 00010000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -7177b405a000-7177b4096000 r--p 00031000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -7177b4096000-7177b409a000 r--p 0006c000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -7177b409a000-7177b409d000 rw-p 00070000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -7177b409d000-7177b40c0000 rw-p 00000000 00:00 0 -7177b40c0000-7177b40d9000 r--p 00000000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -7177b40d9000-7177b4165000 r-xp 00019000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -7177b4165000-7177b41fa000 r--p 000a5000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -7177b41fa000-7177b41fb000 ---p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -7177b41fb000-7177b41fc000 r--p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -7177b41fc000-7177b4200000 rw-p 0013b000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -7177b4200000-7177b4600000 rw-p 00000000 00:00 0 -7177b4600000-7177b4608000 r--p 00000000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -7177b4608000-7177b4660000 r-xp 00008000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -7177b4660000-7177b4671000 r--p 00060000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -7177b4671000-7177b4672000 ---p 00071000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -7177b4672000-7177b4678000 r--p 00071000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -7177b4678000-7177b4679000 rw-p 00077000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -7177b4679000-7177b4883000 rw-p 00000000 00:00 0 -7177b4883000-7177b4884000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7177b4884000-7177b4885000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177b4885000-7177b4889000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177b4889000-7177b488c000 r--p 00000000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -7177b488c000-7177b488f000 r-xp 00003000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -7177b488f000-7177b4890000 r--p 00006000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -7177b4890000-7177b4891000 ---p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -7177b4891000-7177b4892000 r--p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -7177b4892000-7177b4893000 rw-p 00008000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -7177b4893000-7177b4896000 r--p 00000000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -7177b4896000-7177b48aa000 r-xp 00003000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -7177b48aa000-7177b48ae000 r--p 00017000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -7177b48ae000-7177b48af000 ---p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -7177b48af000-7177b48b0000 r--p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -7177b48b0000-7177b48b1000 rw-p 0001c000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -7177b48b1000-7177b48b4000 r--p 00000000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -7177b48b4000-7177b48ba000 r-xp 00003000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -7177b48ba000-7177b48bc000 r--p 00009000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -7177b48bc000-7177b48bd000 r--p 0000a000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -7177b48bd000-7177b48be000 rw-p 0000b000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -7177b48be000-7177b48c5000 r--p 00000000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -7177b48c5000-7177b48cb000 r-xp 00007000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -7177b48cb000-7177b48ce000 r--p 0000d000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -7177b48ce000-7177b48cf000 ---p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -7177b48cf000-7177b48d0000 r--p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -7177b48d0000-7177b48d1000 rw-p 00011000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -7177b48d1000-7177b48dc000 r--p 00000000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -7177b48dc000-7177b48e5000 r-xp 0000b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -7177b48e5000-7177b48ea000 r--p 00014000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -7177b48ea000-7177b48eb000 ---p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -7177b48eb000-7177b48ed000 r--p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -7177b48ed000-7177b48ee000 rw-p 0001b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -7177b48ee000-7177b48f5000 r--s 00000000 103:03 11147989 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache -7177b48f5000-7177b48f6000 r--p 00000000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -7177b48f6000-7177b48f9000 r-xp 00001000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -7177b48f9000-7177b48fa000 r--p 00004000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -7177b48fa000-7177b48fb000 ---p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -7177b48fb000-7177b48fc000 r--p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -7177b48fc000-7177b48fd000 rw-p 00006000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -7177b48fd000-7177b4900000 r--p 00000000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -7177b4900000-7177b4904000 r-xp 00003000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -7177b4904000-7177b4906000 r--p 00007000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -7177b4906000-7177b4907000 r--p 00008000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -7177b4907000-7177b4908000 rw-p 00009000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -7177b4908000-7177b4909000 r--p 00000000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -7177b4909000-7177b490b000 r-xp 00001000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -7177b490b000-7177b490c000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -7177b490c000-7177b490d000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -7177b490d000-7177b490e000 rw-p 00004000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -7177b490e000-7177b49cf000 r-xp 00000000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -7177b49cf000-7177b49d0000 r--p 000c0000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -7177b49d0000-7177b49db000 rw-p 000c1000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -7177b49db000-7177b4a00000 rw-p 00000000 00:00 0 -7177b4a00000-7177b4a04000 ---p 00000000 00:00 0 -7177b4a04000-7177b4b00000 rw-p 00000000 00:00 0 -7177b4b00000-7177b4b04000 ---p 00000000 00:00 0 -7177b4b04000-7177b4c00000 rw-p 00000000 00:00 0 -7177b4c00000-7177b4c04000 ---p 00000000 00:00 0 -7177b4c04000-7177b4d00000 rw-p 00000000 00:00 0 -7177b4d00000-7177b4d04000 ---p 00000000 00:00 0 -7177b4d04000-7177b4e00000 rw-p 00000000 00:00 0 -7177b4e00000-7177b4e04000 ---p 00000000 00:00 0 -7177b4e04000-7177b4f00000 rw-p 00000000 00:00 0 -7177b4f00000-7177b4f04000 ---p 00000000 00:00 0 -7177b4f04000-7177b5000000 rw-p 00000000 00:00 0 -7177b5000000-7177b5f06000 r--p 00000000 103:03 10618858 /usr/lib/locale/locale-archive -7177b5f06000-7177b5f07000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7177b5f07000-7177b5f09000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177b5f09000-7177b5f0a000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7177b5f0a000-7177b5f7a000 r-xp 00000000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -7177b5f7a000-7177b5f7b000 ---p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -7177b5f7b000-7177b5f80000 r--p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -7177b5f80000-7177b5f82000 rw-p 00075000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -7177b5f82000-7177b5f84000 rw-p 00000000 00:00 0 -7177b5f84000-7177b5fb0000 r--p 00000000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -7177b5fb0000-7177b5fe4000 r-xp 0002c000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -7177b5fe4000-7177b5ffe000 r--p 00060000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -7177b5ffe000-7177b5fff000 r--p 00079000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -7177b5fff000-7177b6000000 rw-p 0007a000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -7177b6000000-7177b8000000 rw-p 00000000 00:00 0 -7177b8000000-7177b8021000 rw-p 00000000 00:00 0 -7177b8021000-7177bc000000 ---p 00000000 00:00 0 -7177bc000000-7177bc001000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7177bc001000-7177bc002000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7177bc002000-7177bc003000 r--p 00000000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -7177bc003000-7177bc004000 r-xp 00001000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -7177bc004000-7177bc005000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -7177bc005000-7177bc006000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -7177bc006000-7177bc007000 rw-p 00003000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -7177bc007000-7177bc008000 r--p 00000000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 -7177bc008000-7177bc009000 r-xp 00001000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 -7177bc009000-7177bc028000 r--p 00002000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 -7177bc028000-7177bc029000 r--p 00020000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 -7177bc029000-7177bc02a000 rw-p 00021000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 -7177bc02a000-7177bc0f8000 r-xp 00000000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -7177bc0f8000-7177bc0f9000 r--p 000cd000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -7177bc0f9000-7177bc0fa000 rw-p 000ce000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -7177bc0fa000-7177bc0fe000 ---p 00000000 00:00 0 -7177bc0fe000-7177bc1fa000 rw-p 00000000 00:00 0 -7177bc1fa000-7177bc1fe000 ---p 00000000 00:00 0 -7177bc1fe000-7177bc2fa000 rw-p 00000000 00:00 0 -7177bc2fa000-7177bc2fe000 ---p 00000000 00:00 0 -7177bc2fe000-7177bc3fa000 rw-p 00000000 00:00 0 -7177bc3fa000-7177bc3fb000 ---p 00000000 00:00 0 -7177bc3fb000-7177bc4fb000 rw-p 00000000 00:00 0 -7177bc4fb000-7177bc4fc000 ---p 00000000 00:00 0 -7177bc4fc000-7177bc5fc000 rw-p 00000000 00:00 0 -7177bc5fc000-7177bc5fd000 ---p 00000000 00:00 0 -7177bc5fd000-7177bc6fd000 rw-p 00000000 00:00 0 -7177bc6fd000-7177bc6fe000 ---p 00000000 00:00 0 -7177bc6fe000-7177bc7fe000 rw-p 00000000 00:00 0 -7177bc7fe000-7177bca70000 rw-p 00000000 00:00 0 -7177bca70000-7177c4700000 ---p 00000000 00:00 0 -7177c4700000-7177c4704000 ---p 00000000 00:00 0 -7177c4704000-7177c4800000 rw-p 00000000 00:00 0 -7177c4800000-7177c4ad0000 rwxp 00000000 00:00 0 -7177c4ad0000-7177cbd37000 ---p 00000000 00:00 0 -7177cbd37000-7177cbfb7000 rwxp 00000000 00:00 0 -7177cbfb7000-7177cc2c8000 ---p 00000000 00:00 0 -7177cc2c8000-7177cc538000 rwxp 00000000 00:00 0 -7177cc538000-7177d3800000 ---p 00000000 00:00 0 -7177d3800000-7177dbfb5000 r--s 00000000 103:03 10498840 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/modules -7177dbfb5000-7177dbfb6000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177dbfb6000-7177dbfb7000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7177dbfb7000-7177dbfb8000 r--s 00000000 00:06 1017 /dev/nvidiactl -7177dbfb8000-7177dbfb9000 rw-s 00000000 00:01 1028 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) -7177dbfb9000-7177dbfba000 r--p 00000000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -7177dbfba000-7177dbfbb000 r-xp 00001000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -7177dbfbb000-7177dbfbc000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -7177dbfbc000-7177dbfbd000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -7177dbfbd000-7177dbfbe000 rw-p 00003000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -7177dbfbe000-7177dbfc0000 r--p 00000000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -7177dbfc0000-7177dbfc2000 r-xp 00002000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -7177dbfc2000-7177dbfc3000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -7177dbfc3000-7177dbfc4000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -7177dbfc4000-7177dbfc5000 rw-p 00005000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -7177dbfc5000-7177dbfca000 r--p 00000000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 -7177dbfca000-7177dbff3000 r-xp 00005000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 -7177dbff3000-7177dbffe000 r--p 0002e000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 -7177dbffe000-7177dbfff000 r--p 00038000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 -7177dbfff000-7177dc000000 rw-p 00039000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 -7177dc000000-7177dc6a1000 rw-p 00000000 00:00 0 -7177dc6a1000-7177e0000000 ---p 00000000 00:00 0 -7177e0000000-7177e0001000 r--p 00000000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -7177e0001000-7177e0002000 r-xp 00001000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -7177e0002000-7177e0003000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -7177e0003000-7177e0004000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -7177e0004000-7177e0005000 rw-p 00003000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -7177e0005000-7177e0007000 r--p 00000000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -7177e0007000-7177e000a000 r-xp 00002000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -7177e000a000-7177e000b000 r--p 00005000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -7177e000b000-7177e000c000 r--p 00006000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -7177e000c000-7177e000d000 rw-p 00007000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -7177e000d000-7177e000f000 r--p 00000000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -7177e000f000-7177e0015000 r-xp 00002000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -7177e0015000-7177e0017000 r--p 00008000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -7177e0017000-7177e0018000 r--p 00009000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -7177e0018000-7177e0019000 rw-p 0000a000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -7177e0019000-7177e001a000 r--p 00000000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 -7177e001a000-7177e0022000 r-xp 00001000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 -7177e0022000-7177e0025000 r--p 00009000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 -7177e0025000-7177e0026000 r--p 0000b000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 -7177e0026000-7177e0027000 rw-p 0000c000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 -7177e0027000-7177e0029000 r--p 00000000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -7177e0029000-7177e0030000 r-xp 00002000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -7177e0030000-7177e0032000 r--p 00009000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -7177e0032000-7177e0033000 r--p 0000a000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -7177e0033000-7177e0034000 rw-p 0000b000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -7177e0034000-7177e0038000 r--p 00000000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -7177e0038000-7177e0045000 r-xp 00004000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -7177e0045000-7177e0048000 r--p 00011000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -7177e0048000-7177e0049000 ---p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -7177e0049000-7177e004a000 r--p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -7177e004a000-7177e004b000 rw-p 00015000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -7177e004b000-7177e004c000 rw-p 00000000 00:00 0 -7177e004c000-7177e0057000 r--p 00000000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -7177e0057000-7177e006b000 r-xp 0000b000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -7177e006b000-7177e0074000 r--p 0001f000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -7177e0074000-7177e0075000 r--p 00027000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -7177e0075000-7177e0076000 rw-p 00028000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -7177e0076000-7177e06fd000 rw-p 00000000 00:00 0 -7177e06fd000-7177e06fe000 ---p 00000000 00:00 0 -7177e06fe000-7177e07fe000 rw-p 00000000 00:00 0 -7177e07fe000-7177e07ff000 ---p 00000000 00:00 0 -7177e07ff000-7177e08ff000 rw-p 00000000 00:00 0 -7177e08ff000-7177e0900000 ---p 00000000 00:00 0 -7177e0900000-7177e0a00000 rw-p 00000000 00:00 0 -7177e0a00000-7177e0a0e000 rw-p 00000000 00:00 0 -7177e0a0e000-7177e19a0000 ---p 00000000 00:00 0 -7177e19a0000-7177e19a1000 r--p 00000000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -7177e19a1000-7177e19a3000 r-xp 00001000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -7177e19a3000-7177e19a4000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -7177e19a4000-7177e19a5000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -7177e19a5000-7177e19a6000 rw-p 00004000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -7177e19a6000-7177e19a7000 r--p 00000000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -7177e19a7000-7177e19a8000 r-xp 00001000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -7177e19a8000-7177e19a9000 r--p 00002000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -7177e19a9000-7177e19aa000 r--p 00003000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -7177e19aa000-7177e19ab000 rw-p 00004000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -7177e19ab000-7177e19ae000 r--p 00000000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -7177e19ae000-7177e19ba000 r-xp 00003000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -7177e19ba000-7177e19bd000 r--p 0000f000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -7177e19bd000-7177e19be000 r--p 00011000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -7177e19be000-7177e19bf000 rw-p 00012000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -7177e19bf000-7177e19fd000 r-xp 00000000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -7177e19fd000-7177e19fe000 ---p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -7177e19fe000-7177e19ff000 r--p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -7177e19ff000-7177e1a00000 rw-p 0003f000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -7177e1a00000-7177e1a0e000 rw-p 00000000 00:00 0 -7177e1a0e000-7177e29a0000 ---p 00000000 00:00 0 -7177e29a0000-7177e29a1000 rw-s 00000000 00:01 672021 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=4096 (deleted) -7177e29a1000-7177e29a3000 r--p 00000000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -7177e29a3000-7177e29a5000 r-xp 00002000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -7177e29a5000-7177e29a7000 r--p 00004000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -7177e29a7000-7177e29a8000 r--p 00005000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -7177e29a8000-7177e29a9000 rw-p 00006000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -7177e29a9000-7177e29ab000 r--p 00000000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -7177e29ab000-7177e29ae000 r-xp 00002000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -7177e29ae000-7177e29af000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -7177e29af000-7177e29b0000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -7177e29b0000-7177e29b1000 rw-p 00006000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -7177e29b1000-7177e29b5000 r--p 00000000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -7177e29b5000-7177e29c0000 r-xp 00004000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -7177e29c0000-7177e29c4000 r--p 0000f000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -7177e29c4000-7177e29c5000 r--p 00012000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -7177e29c5000-7177e29c6000 rw-p 00013000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -7177e29c6000-7177e332f000 rw-p 00000000 00:00 0 -7177e332f000-7177e3415000 ---p 00000000 00:00 0 -7177e3415000-7177e341b000 rw-p 00000000 00:00 0 -7177e341b000-7177e3500000 ---p 00000000 00:00 0 -7177e3500000-7177e3504000 ---p 00000000 00:00 0 -7177e3504000-7177e3600000 rw-p 00000000 00:00 0 -7177e3600000-7177e4930000 r-xp 00000000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so -7177e4930000-7177e4a00000 r--p 0132f000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so -7177e4a00000-7177e4a2e000 rw-p 013ff000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so -7177e4a2e000-7177e4aa4000 rw-p 00000000 00:00 0 -7177e4aa4000-7177e4aa5000 r--p 00000000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -7177e4aa5000-7177e4aa7000 r-xp 00001000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -7177e4aa7000-7177e4aa8000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -7177e4aa8000-7177e4aa9000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -7177e4aa9000-7177e4aaa000 rw-p 00004000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -7177e4aaa000-7177e4aac000 r--p 00000000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -7177e4aac000-7177e4ab3000 r-xp 00002000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -7177e4ab3000-7177e4ab5000 r--p 00009000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -7177e4ab5000-7177e4ab6000 r--p 0000a000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -7177e4ab6000-7177e4ab7000 rw-p 0000b000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -7177e4ab7000-7177e4ab8000 rw-s 00000000 00:01 672020 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) -7177e4ab8000-7177e4ab9000 rw-s 00000000 00:01 671055 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) -7177e4ab9000-7177e4aba000 r-xp 00000000 00:00 0 -7177e4aba000-7177e4abb000 r--p 00000000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -7177e4abb000-7177e4abc000 r-xp 00001000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -7177e4abc000-7177e4abd000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -7177e4abd000-7177e4abe000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -7177e4abe000-7177e4abf000 rw-p 00003000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -7177e4abf000-7177e4ac0000 r--p 00000000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -7177e4ac0000-7177e4ac3000 r-xp 00001000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -7177e4ac3000-7177e4ac4000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -7177e4ac4000-7177e4ac5000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -7177e4ac5000-7177e4ac6000 rw-p 00005000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -7177e4ac6000-7177e4ac8000 r--p 00000000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -7177e4ac8000-7177e4acf000 r-xp 00002000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -7177e4acf000-7177e4ad1000 r--p 00009000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -7177e4ad1000-7177e4ad2000 r--p 0000a000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -7177e4ad2000-7177e4ad3000 rw-p 0000b000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -7177e4ad3000-7177e4ad4000 r-xp 00000000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so -7177e4ad4000-7177e4ad5000 ---p 00001000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so -7177e4ad5000-7177e4ad6000 r--p 00001000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so -7177e4ad6000-7177e4ad7000 rw-p 00002000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so -7177e4ad7000-7177e4ad8000 rw-p 00000000 00:00 0 -7177e4ad8000-7177e4ad9000 r-xp 0005e000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -7177e4ad9000-7177e4b19000 rw-p 00000000 00:00 0 -7177e4b19000-7177e4b27000 r--p 00000000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -7177e4b27000-7177e4ba3000 r-xp 0000e000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -7177e4ba3000-7177e4bfe000 r--p 0008a000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -7177e4bfe000-7177e4bff000 r--p 000e4000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -7177e4bff000-7177e4c00000 rw-p 000e5000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -7177e4c00000-7177e4c28000 r--p 00000000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -7177e4c28000-7177e4dbd000 r-xp 00028000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -7177e4dbd000-7177e4e15000 r--p 001bd000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -7177e4e15000-7177e4e16000 ---p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -7177e4e16000-7177e4e1a000 r--p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -7177e4e1a000-7177e4e1c000 rw-p 00219000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -7177e4e1c000-7177e4e29000 rw-p 00000000 00:00 0 -7177e4e29000-7177e4e34000 r-xp 00000000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -7177e4e34000-7177e4e35000 ---p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -7177e4e35000-7177e4e36000 r--p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -7177e4e36000-7177e4e37000 rw-p 0000c000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -7177e4e37000-7177e4e4a000 r-xp 00000000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -7177e4e4a000-7177e4e4b000 ---p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -7177e4e4b000-7177e4e4c000 r--p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -7177e4e4c000-7177e4e4d000 rw-p 00014000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -7177e4e4d000-7177e4e6d000 r-xp 00000000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -7177e4e6d000-7177e4e6e000 r--p 0001f000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -7177e4e6e000-7177e4e6f000 rw-p 00020000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -7177e4e6f000-7177e4e70000 rw-p 00000000 00:00 0 -7177e4e70000-7177e4e8e000 r-xp 00000000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -7177e4e8e000-7177e4e90000 r--p 0001d000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -7177e4e90000-7177e4e91000 rw-p 0001f000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -7177e4e91000-7177e4e92000 r--p 00000000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -7177e4e92000-7177e4e93000 r-xp 00001000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -7177e4e93000-7177e4e94000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -7177e4e94000-7177e4e95000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -7177e4e95000-7177e4e96000 rw-p 00003000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -7177e4e96000-7177e4e9a000 rw-p 00000000 00:00 0 -7177e4e9a000-7177e4e9b000 r--p 00000000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -7177e4e9b000-7177e4e9c000 r-xp 00001000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -7177e4e9c000-7177e4e9d000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -7177e4e9d000-7177e4e9e000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -7177e4e9e000-7177e4e9f000 rw-p 00003000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -7177e4e9f000-7177e4ea0000 r--p 00000000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -7177e4ea0000-7177e4ea1000 r-xp 00001000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -7177e4ea1000-7177e4ea2000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -7177e4ea2000-7177e4ea3000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -7177e4ea3000-7177e4ea4000 rw-p 00003000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -7177e4ea4000-7177e4ea6000 r--p 00000000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -7177e4ea6000-7177e4eb7000 r-xp 00002000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -7177e4eb7000-7177e4ebd000 r--p 00013000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -7177e4ebd000-7177e4ebe000 ---p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -7177e4ebe000-7177e4ebf000 r--p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -7177e4ebf000-7177e4ec0000 rw-p 0001a000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -7177e4ec0000-7177e4ec7000 r-xp 00000000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -7177e4ec7000-7177e4ec8000 ---p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -7177e4ec8000-7177e4ec9000 r--p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -7177e4ec9000-7177e4eca000 rw-p 00008000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -7177e4eca000-7177e4ecf000 rw-p 00000000 00:00 0 -7177e4ecf000-7177e4ed6000 ---p 00000000 00:00 0 -7177e4ed6000-7177e4ede000 rw-s 00000000 103:03 4325444 /tmp/hsperfdata_codex/85302 -7177e4ede000-7177e4edf000 ---p 00000000 00:00 0 -7177e4edf000-7177e4ee0000 r--p 00000000 00:00 0 -7177e4ee0000-7177e4eef000 r-xp 00000000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so -7177e4eef000-7177e4ef0000 r--p 0000e000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so -7177e4ef0000-7177e4ef1000 rw-p 0000f000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so -7177e4ef1000-7177e4ef3000 rw-p 00000000 00:00 0 -7177e4ef3000-7177e4ef7000 r--p 00000000 00:00 0 [vvar] -7177e4ef7000-7177e4ef9000 r-xp 00000000 00:00 0 [vdso] -7177e4ef9000-7177e4efb000 r--p 00000000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -7177e4efb000-7177e4f25000 r-xp 00002000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -7177e4f25000-7177e4f30000 r--p 0002c000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -7177e4f30000-7177e4f31000 ---p 00000000 00:00 0 -7177e4f31000-7177e4f33000 r--p 00037000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -7177e4f33000-7177e4f35000 rw-p 00039000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -7ffd1cda5000-7ffd1cdc8000 rw-p 00000000 00:00 0 [stack] -ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall] -Total number of mappings: 919 - - -VM Arguments: -jvm_args: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -java_command: jme3test.vulkan.VulkanTest -java_class_path (initial): /home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/java/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/groovy/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/resources/main:/home/codex/java/prj/jmonkeyengine/jme3-lwjgl3/build/libs/jme3-lwjgl3-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-desktop/build/libs/jme3-desktop-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-effects/build/libs/jme3-effects-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jbullet/build/libs/jme3-jbullet-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jogg/build/libs/jme3-jogg-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-networking/build/libs/jme3-networking-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-niftygui/build/libs/jme3-niftygui-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins/build/libs/jme3-plugins-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-terrain/build/libs/jme3-terrain-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-awt-dialogs/build/libs/jme3-awt-dialogs-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-core/build/libs/jme3-core-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json-gson/build/libs/jme3-plugins-json-gson-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json/build/libs/jme3-plugins-json-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-testdata/build/libs/jme3-testdata-null-SNAPSHOT.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-examples/1.4.3/4a41c559851c0c5a77ba3a9d1ccc8e6e92207dc7/nifty-examples-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjglx/lwjgl3-awt/0.2.3/2be63e81d6b73300d8203ce7235b2660c62eb3ea/lwjgl3-awt-0.2.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/7119f7d0eeb1e5502ff0ca71d2b4d47317da015/lwjgl-glfw-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/99ef08056feb9627f90425a4d2a22cd9fae8e39b/lwjgl-glfw-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/cfa8f1e96d572ed56da5945adf5167628f5eecdb/lwjgl-glfw-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/797e0965709ad180d9b00c88a086dbda15002203/lwjgl-glfw-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/671adf04a6bc4f792af13892e37f804be30b7070/lwjgl-glfw-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/b54023af492b4c2c72451f3a7aa0f385e9969474/lwjgl-glfw-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/82c8d748a654241b5961ddd1c098e8b648e38a48/lwjgl-glfw-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/399b42b491c5dfa6595ae6fd79dcba61b93538a7/lwjgl-glfw-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jawt/3.3.6/43299e222bd7db5e99254a8e620330954b73c2a6/lwjgl-jawt-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/245910eb57f2444429c74e6bf96030e5ec0a6739/lwjgl-jemalloc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/f9da76351e14a695be172d6915c8a7b2905307f/lwjgl-jemalloc-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c86043a342a33e5d32fabf962578580633db3c6e/lwjgl-jemalloc-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/26f8b467dc2e0f3000d608de3564b572bb46f927/lwjgl-jemalloc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c484cae39a718010dbc7931fe5e12664600a13c2/lwjgl-jemalloc-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1bc2e16e70df7f418d668c2984ac8066f1f6f5b1/lwjgl-jemalloc-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/9a42df0f2e9747815490311d7db7b4a046d5f40/lwjgl-jemalloc-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1f828c1fc06792475850162725433adf5ad001c0/lwjgl-jemalloc-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ad313317ff399fd2a7f4dd74716a68cf3976c6ad/lwjgl-openal-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/9c2b9b660e085bb0b47a4453dc0e26f24a5475e4/lwjgl-openal-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/82f693541d69aa125750bf8be9c4194435c56f03/lwjgl-openal-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ef356c04ef141d4efbde07793f31784f1f1a1bae/lwjgl-openal-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/7830af894fa110e65bf5075deb9183efbdbc50f5/lwjgl-openal-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/fd2c17603c63e8d543cb57d1db77ebd4574f3b7a/lwjgl-openal-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/c39f6827f0bd97601fc4e389801d5c813f59a5f2/lwjgl-openal-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/13f692aec4ae4b2d3c468aa0008472175f0ea1e0/lwjgl-openal-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opencl/3.3.6/93fdcea16d27b1466450e38dc28c8e1b4819ec25/lwjgl-opencl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ac2532612a4df374e9a9282bcf8ce2573018ebbb/lwjgl-opengl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/18dc639ebc94aa5202c2157f7490d28997b697c5/lwjgl-opengl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b0ab1d0e315d2fcc50d6cab7e8feaf4688d5d9a0/lwjgl-opengl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b8dc6467fe232d552793c53dc56f9fa8a385299c/lwjgl-opengl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ee815fbf454b916f13c10fff62e513eb09042ef0/lwjgl-opengl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/44de180f79e0b45c9e5bee10ca7540dcb5ddd373/lwjgl-opengl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/59f708eb4bf0be0204bbc9c06807911724673db6/lwjgl-opengl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/fee4fb2ee786af6530b6f9188205a76bc4e05268/lwjgl-opengl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-vulkan/3.3.6/a403e0931b03b138854bb2ba9c48dab646cba6d8/lwjgl-vulkan-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/9d0964fe2b75f64d9dab9839c2b059b7e8f71115/lwjgl-shaderc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/ab69a0e011f057ed25857c97fa3c87f20ab8f670/lwjgl-shaderc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/ce7721d30cfaf47feaed10213e0c43eb55c49d68/lwjgl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9a29b6a22fc5184604b8cb434ee5d5ecc4bfcbee/lwjgl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/7a6f04e02429ba2f4bda9be191347bb7d3c71127/lwjgl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/dc7db8fc4f1e6563867f9155b9a42d9c73d8992f/lwjgl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/2c9d698e76c3d0fe307d94cc6f428038492f25df/lwjgl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9eeb8887b5e3aa672efd2e1b0973ffa5891a3151/lwjgl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/f14e7a5289d2355822f4f83b3fd38d158c939acd/lwjgl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/832e2964ce74e02e768814a29c06d60645115b9a/lwjgl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/jbullet/1.0.3/362f53e8aa981037c2523ac24eb4d9b190a49036/jbullet-1.0.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/javax.vecmath/vecmath/1.5.2/fd17bc3e67f909573dfc039d8e2abecf407c4e27/vecmath-1.5.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/j-ogg-vorbis/1.0.6/a69d1cf62eaf75b71af61f9c23265d278a966735/j-ogg-vorbis-1.0.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-default-controls/1.4.3/2ccafe0182a73da87657ca24b639b6e8c1accd50/nifty-default-controls-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty/1.4.3/fa9ac16e00d1b375d10f58d1c1eb576950ae8c9d/nifty-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-style-black/1.4.3/c20a02dbdeb0bd9d2be258955fceb55c13185a8/nifty-style-black-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.9.1/2cc2131b98ebfb04e2b2c7dfb84431f4045096b/gson-2.9.1.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/stack-alloc/1.0.2/13cbb10c01ec09d0f5879f988946a97998175dfc/stack-alloc-1.0.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/xpp3/xpp3/1.1.4c/9b988ea84b9e4e9f1874e390ce099b8ac12cfff5/xpp3-1.1.4c.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/2.0.2/516c03b21d50a644d538de0f0369c620989cd8f0/jsr305-2.0.2.jar -Launcher Type: SUN_STANDARD - -[Global flags] - intx CICompilerCount = 4 {product} {ergonomic} - uint ConcGCThreads = 2 {product} {ergonomic} - uint G1ConcRefinementThreads = 8 {product} {ergonomic} - size_t G1HeapRegionSize = 4194304 {product} {ergonomic} - size_t InitialHeapSize = 524288000 {product} {ergonomic} - size_t MarkStackSize = 4194304 {product} {ergonomic} - size_t MarkStackSizeMax = 536870912 {product} {ergonomic} - size_t MaxHeapSize = 8388608000 {product} {ergonomic} - size_t MaxNewSize = 5033164800 {product} {ergonomic} - size_t MinHeapDeltaBytes = 4194304 {product} {ergonomic} - size_t MinHeapSize = 8388608 {product} {ergonomic} - uintx NonNMethodCodeHeapSize = 5836800 {pd product} {ergonomic} - uintx NonProfiledCodeHeapSize = 122912768 {pd product} {ergonomic} - uintx ProfiledCodeHeapSize = 122908672 {pd product} {ergonomic} - uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} - bool SegmentedCodeCache = true {product} {ergonomic} - size_t SoftMaxHeapSize = 8388608000 {manageable} {ergonomic} - bool UseCompressedOops = true {product lp64_product} {ergonomic} - bool UseG1GC = true {product} {ergonomic} - -Logging: -Log output configuration: - #0: stdout all=warning uptime,level,tags foldmultilines=false - #1: stderr all=off uptime,level,tags foldmultilines=false - -Environment Variables: -PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin -USERNAME=codex -SHELL=/bin/bash -DISPLAY=:1 -LANG=en_US.UTF-8 - -Active Locale: -LC_ALL=en_US.UTF-8 -LC_COLLATE=en_US.UTF-8 -LC_CTYPE=en_US.UTF-8 -LC_MESSAGES=en_US.UTF-8 -LC_MONETARY=en_US.UTF-8 -LC_NUMERIC=en_US.UTF-8 -LC_TIME=en_US.UTF-8 - -Signal Handlers: - SIGSEGV: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGBUS: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGFPE: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGPIPE: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGXFSZ: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGILL: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGUSR2: SR_handler in libjvm.so, mask=00000000000000000000000000000000, flags=SA_RESTART|SA_SIGINFO, blocked - SIGHUP: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGINT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGTERM: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGQUIT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGTRAP: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - - -Periodic native trim disabled - ---------------- S Y S T E M --------------- - -OS: -DISTRIB_ID=Pop -DISTRIB_RELEASE=22.04 -DISTRIB_CODENAME=jammy -DISTRIB_DESCRIPTION="Pop!_OS 22.04 LTS" -uname: Linux 6.9.3-76060903-generic #202405300957~1726766035~22.04~4092a0e SMP PREEMPT_DYNAMIC Thu S x86_64 -OS uptime: 0 days 15:17 hours -libc: glibc 2.35 NPTL 2.35 -rlimit (soft/hard): STACK 8192k/infinity , CORE 0k/infinity , NPROC 127655/127655 , NOFILE 1048576/1048576 , AS infinity/infinity , CPU infinity/infinity , DATA infinity/infinity , FSIZE infinity/infinity , MEMLOCK 4095956k/4095956k -load average: 2.88 1.79 1.18 - -/proc/meminfo: -MemTotal: 32767652 kB -MemFree: 20156988 kB -MemAvailable: 23562748 kB -Buffers: 347352 kB -Cached: 5014400 kB -SwapCached: 0 kB -Active: 8810016 kB -Inactive: 2815840 kB -Active(anon): 6299316 kB -Inactive(anon): 0 kB -Active(file): 2510700 kB -Inactive(file): 2815840 kB -Unevictable: 15204 kB -Mlocked: 72 kB -SwapTotal: 20970996 kB -SwapFree: 20970996 kB -Zswap: 0 kB -Zswapped: 0 kB -Dirty: 44 kB -Writeback: 0 kB -AnonPages: 6279364 kB -Mapped: 1830436 kB -Shmem: 35212 kB -KReclaimable: 197300 kB -Slab: 385968 kB -SReclaimable: 197300 kB -SUnreclaim: 188668 kB -KernelStack: 22928 kB -PageTables: 54400 kB -SecPageTables: 0 kB -NFS_Unstable: 0 kB -Bounce: 0 kB -WritebackTmp: 0 kB -CommitLimit: 37354820 kB -Committed_AS: 12319684 kB -VmallocTotal: 34359738367 kB -VmallocUsed: 252496 kB -VmallocChunk: 0 kB -Percpu: 9472 kB -HardwareCorrupted: 0 kB -AnonHugePages: 0 kB -ShmemHugePages: 6144 kB -ShmemPmdMapped: 0 kB -FileHugePages: 0 kB -FilePmdMapped: 0 kB -Unaccepted: 0 kB -HugePages_Total: 0 -HugePages_Free: 0 -HugePages_Rsvd: 0 -HugePages_Surp: 0 -Hugepagesize: 2048 kB -Hugetlb: 0 kB -DirectMap4k: 851768 kB -DirectMap2M: 15826944 kB -DirectMap1G: 16777216 kB - -/sys/kernel/mm/transparent_hugepage/enabled: always [madvise] never -/sys/kernel/mm/transparent_hugepage/hpage_pmd_size: 2097152 -/sys/kernel/mm/transparent_hugepage/shmem_enabled: always within_size advise [never] deny force -/sys/kernel/mm/transparent_hugepage/defrag (defrag/compaction efforts parameter): always defer defer+madvise [madvise] never - -Process Memory: -Virtual Size: 13446916K (peak: 13510788K) -Resident Set Size: 319092K (peak: 319092K) (anon: 173400K, file: 144668K, shmem: 1024K) -Swapped out: 0K -C-Heap outstanding allocations: 78977K, retained: 34794K -glibc malloc tunables: (default) - -/proc/sys/kernel/threads-max (system-wide limit on the number of threads): 255310 -/proc/sys/vm/max_map_count (maximum number of memory map areas a process may have): 2147483642 -/proc/sys/vm/swappiness (control to define how aggressively the kernel swaps out anonymous memory): 180 -/proc/sys/kernel/pid_max (system-wide limit on number of process identifiers): 4194304 - -container (cgroup) information: -container_type: cgroupv2 -cpu_cpuset_cpus: not supported -cpu_memory_nodes: not supported -active_processor_count: 8 -cpu_quota: not supported -cpu_period: not supported -cpu_shares: not supported -memory_limit_in_bytes: unlimited -memory_and_swap_limit_in_bytes: unlimited -memory_soft_limit_in_bytes: 0 -memory_usage_in_bytes: 5973584 k -memory_max_usage_in_bytes: not supported -rss_usage_in_bytes: 3563880 k -cache_usage_in_bytes: 2326868 k -memory_swap_current_in_bytes: 0 -memory_swap_max_limit_in_bytes: unlimited -maximum number of tasks: 38296 -current number of tasks: 330 - -Steal ticks since vm start: 0 -Steal ticks percentage since vm start: 0.000 - -CPU: total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 158 stepping 9 microcode 0xf8, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, adx, fma, vzeroupper, clflush, clflushopt, rdtscp, f16c -CPU Model and flags from /proc/cpuinfo: -model name : Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities - -Online cpus: 0-7 -Offline cpus: -BIOS frequency limitation: -Frequency switch latency (ns): 0 -Available cpu frequencies: -Current governor: powersave -Core performance/turbo boost: - -Memory: 4k page, physical 32767652k(23562748k free), swap 20970996k(20970996k free) -Page Sizes: 4k - -vm_info: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58) for linux-amd64 JRE (23.0.2+7-58), built on 2024-11-29T09:34:55Z with gcc 13.2.0 - -END. diff --git a/hs_err_pid85657.log b/hs_err_pid85657.log deleted file mode 100644 index e5175b0904..0000000000 --- a/hs_err_pid85657.log +++ /dev/null @@ -1,1598 +0,0 @@ -# -# A fatal error has been detected by the Java Runtime Environment: -# -# SIGSEGV (0xb) at pc=0x00007903f6c5933a, pid=85657, tid=85703 -# -# JRE version: Java(TM) SE Runtime Environment (23.0.2+7) (build 23.0.2+7-58) -# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64) -# Problematic frame: -# C [libjemalloc.so+0x5933a] -# -# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/codex/java/prj/jmonkeyengine/core.85657) -# -# If you would like to submit a bug report, please visit: -# https://bugreport.java.com/bugreport/crash.jsp -# - ---------------- S U M M A R Y ------------ - -Command Line: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant jme3test.vulkan.VulkanTest - -Host: Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz, 8 cores, 31G, Pop!_OS 22.04 LTS -Time: Thu Jun 26 22:36:15 2025 EDT elapsed time: 6.457410 seconds (0d 0h 0m 6s) - ---------------- T H R E A D --------------- - -Current thread is native thread - -Stack: [0x00007903f4f3d000,0x00007903f503d000], sp=0x00007903f503b8d0, free space=1018k -Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) -C [libjemalloc.so+0x5933a] - -siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000000 - -Registers: -RAX=0x0000000000000000, RBX=0x0000000000000200, RCX=0x0000000000000000, RDX=0x00007903f6c78440 -RSP=0x00007903f503b8d0, RBP=0x00007903f503bdb0, RSI=0x0000000000000000, RDI=0x00007903f65a8208 -R8 =0x0000000000000000, R9 =0x0000000000000000, R10=0x0000000000000000, R11=0x00007903f65a8248 -R12=0x000000000000003f, R13=0x00007903f503bd70, R14=0x000000000000003f, R15=0x00007903f503bad0 -RIP=0x00007903f6c5933a, EFLAGS=0x0000000000010246, CSGSFS=0x002b000000000033, ERR=0x0000000000000004 - TRAPNO=0x000000000000000e - - -Top of Stack: (sp=0x00007903f503b8d0) -0x00007903f503b8d0: 00007904204e05a0 00007903f503b960 -0x00007903f503b8e0: 00007903f503b970 000079042754f211 -0x00007903f503b8f0: 0000000000000005 00007904204e0798 -0x00007903f503b900: 0000000000000005 0000000000000000 -0x00007903f503b910: 0000000000000001 00007904204e0230 -0x00007903f503b920: 00007904204e0798 00007904204e0230 -0x00007903f503b930: 000000010fd3f020 00007904204e05a0 -0x00007903f503b940: 0000000000000000 3430393700000000 -0x00007903f503b950: 3039306500000000 bf8eef8900000004 -0x00007903f503b960: 00000000ffffffff 0000000000000000 -0x00007903f503b970: 000079042720d4d0 000079042753c7c0 -0x00007903f503b980: 00007903f503b9b0 0000790426c78613 -0x00007903f503b990: 00007903f503bb88 000079042728849a -0x00007903f503b9a0: 0000000000000000 00007903f503baa0 -0x00007903f503b9b0: 00000000fbad8001 0000000000000002 -0x00007903f503b9c0: 00007904204e0230 00007903f7fff028 -0x00007903f503b9d0: 000079042741cae8 0000000000000004 -0x00007903f503b9e0: 00007903f503cb58 0000790427555f71 -0x00007903f503b9f0: 0000000000000005 0000000000000000 -0x00007903f503ba00: 000079042720d4d0 00007904272a53e0 -0x00007903f503ba10: 0000000000000000 00007903f503be00 -0x00007903f503ba20: 000079042741caf8 0000000000000000 -0x00007903f503ba30: 000079042741cae8 0000790427558dae -0x00007903f503ba40: 0000000000000001 000000000000006f -0x00007903f503ba50: 00007903f7fb17d0 0000000000000000 -0x00007903f503ba60: 00007902f0b80660 0000000000000000 -0x00007903f503ba70: 00000000000000ca f2eded9b3df5b717 -0x00007903f503ba80: 0000000000000213 0000790427417300 -0x00007903f503ba90: 0000000000000000 0000000000000200 -0x00007903f503baa0: 00007903f503bdb0 000000000000003f -0x00007903f503bab0: 00007903f503bd70 00007903f503bad0 -0x00007903f503bac0: 00007902f00024d0 00007903f6c592f8 - -Instructions: (pc=0x00007903f6c5933a) -0x00007903f6c5923a: f4 66 41 c1 ec 03 41 0f b7 d4 2b 95 40 ff ff ff -0x00007903f6c5924a: 48 c1 e2 03 e8 bd f0 fa ff 49 8b 4d 00 41 0f b7 -0x00007903f6c5925a: 7d 14 48 01 d9 89 fe 66 41 2b 7d 10 29 ce 66 c1 -0x00007903f6c5926a: ef 03 49 89 4d 00 66 c1 ee 03 66 39 fe 73 0c 4c -0x00007903f6c5927a: 8b bd 50 ff ff ff 66 41 89 4f 10 48 8d 65 d8 5b -0x00007903f6c5928a: 41 5c 41 5d 41 5e 41 5f 5d c3 29 d8 48 89 a5 48 -0x00007903f6c5929a: ff ff ff 4c 89 ff 44 0f b7 e0 44 0f b7 c0 66 89 -0x00007903f6c592aa: 45 c0 45 8d 74 24 01 4e 8d 1c c5 00 00 00 00 44 -0x00007903f6c592ba: 89 a5 40 ff ff ff 4a 8d 1c f5 0f 00 00 00 4c 29 -0x00007903f6c592ca: da 4c 89 9d 38 ff ff ff 81 e3 f0 ff 1f 00 4c 8d -0x00007903f6c592da: 14 16 4c 89 c2 48 8b b5 30 ff ff ff 48 29 dc 4c -0x00007903f6c592ea: 89 55 c8 49 89 e6 4c 89 f1 e8 28 ed ff ff 48 29 -0x00007903f6c592fa: dc 48 89 65 80 45 85 e4 0f 84 07 ff ff ff 44 8b -0x00007903f6c5930a: 8d 2c ff ff ff c7 45 b8 00 00 00 00 4c 89 7d b0 -0x00007903f6c5931a: 4d 89 f7 45 89 e6 4b 8d 0c 89 4c 89 4d a0 48 c1 -0x00007903f6c5932a: e1 03 48 89 4d 88 49 8b 37 48 8d 15 06 f1 01 00 -0x00007903f6c5933a: 44 8b 2e 41 81 e5 ff 0f 00 00 44 89 e8 4c 8b 24 -0x00007903f6c5934a: c2 4c 89 65 a8 4c 8b 06 48 8d 3d 67 72 02 00 4c -0x00007903f6c5935a: 8b 5d a0 49 c1 e8 26 41 83 e0 3f 46 8b 14 9f 44 -0x00007903f6c5936a: 89 c3 44 89 45 bc 4c 8d 0c dd 00 00 00 00 49 29 -0x00007903f6c5937a: d9 49 c1 e1 05 4d 01 ca 4d 01 e2 49 8d 7a 48 4c -0x00007903f6c5938a: 89 55 90 48 89 7d 98 e8 6a f0 fa ff 4c 8b 4d 90 -0x00007903f6c5939a: 85 c0 0f 85 ce 03 00 00 49 8d 49 40 48 89 4d 90 -0x00007903f6c593aa: 49 8b 1f 48 8b 55 a0 45 8d 5e ff 45 31 e4 48 8d -0x00007903f6c593ba: 05 a1 72 02 00 41 ba 01 00 00 00 41 83 e3 01 48 -0x00007903f6c593ca: 8b 3b 44 8b 04 90 48 8b 45 c8 89 fe 81 e6 ff 0f -0x00007903f6c593da: 00 00 48 8b 08 41 39 f5 0f 84 c0 02 00 00 4a 89 -0x00007903f6c593ea: 0c e0 4b 89 1c e7 41 bc 01 00 00 00 bb 01 00 00 -0x00007903f6c593fa: 00 41 83 fe 01 0f 86 51 02 00 00 45 85 db 74 38 -0x00007903f6c5940a: 49 8b 57 08 48 8b 48 08 48 8b 32 89 f7 81 e7 ff -0x00007903f6c5941a: 0f 00 00 41 39 fd 0f 84 6a 04 00 00 45 89 e3 41 -0x00007903f6c5942a: 83 c4 01 4a 89 0c d8 4b 89 14 df 48 83 c3 01 41 - - - ---------------- P R O C E S S --------------- - -VM state: not at safepoint (normal execution) - -VM Mutex/Monitor currently owned by a thread: None - -Heap address: 0x000000060c000000, size: 8000 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 - -CDS archive(s) mapped at: [0x000079039e000000-0x000079039ed91000-0x000079039ed91000), size 14225408, SharedBaseAddress: 0x000079039e000000, ArchiveRelocationMode: 1. -Compressed class space mapped at: 0x000079039f000000-0x00007903df000000, reserved size: 1073741824 -Narrow klass base: 0x000079039e000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 - -GC Precious Log: - - -Heap: - garbage-first heap total reserved 8192000K, committed 28672K, used 14493K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 3 young (12288K), 1 survivors (4096K) - Metaspace used 22161K, committed 22464K, reserved 1114112K - class space used 2300K, committed 2432K, reserved 1048576K - -Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, TAMS=top-at-mark-start, PB=parsable bottom -| 0|0x000000060c000000, 0x000000060c367560, 0x000000060c400000| 85%| O| |TAMS 0x000000060c000000| PB 0x000000060c000000| Untracked | 0 -| 1|0x000000060c400000, 0x000000060c6c3790, 0x000000060c800000| 69%| O| |TAMS 0x000000060c400000| PB 0x000000060c400000| Untracked | 0 -| 2|0x000000060c800000, 0x000000060c800000, 0x000000060cc00000| 0%| F| |TAMS 0x000000060c800000| PB 0x000000060c800000| Untracked | 0 -| 3|0x000000060cc00000, 0x000000060cc00000, 0x000000060d000000| 0%| F| |TAMS 0x000000060cc00000| PB 0x000000060cc00000| Untracked | 0 -| 4|0x000000060d000000, 0x000000060d2a9c00, 0x000000060d400000| 66%| E| |TAMS 0x000000060d000000| PB 0x000000060d000000| Complete | 0 -| 5|0x000000060d400000, 0x000000060d552c20, 0x000000060d800000| 33%| S|CS|TAMS 0x000000060d400000| PB 0x000000060d400000| Complete | 0 -| 6|0x000000060d800000, 0x000000060dc00000, 0x000000060dc00000|100%| E|CS|TAMS 0x000000060d800000| PB 0x000000060d800000| Complete | 0 - -Card table byte_map: [0x0000790406800000,0x00007904077a0000] _byte_map_base: 0x00007904037a0000 - -Marking Bits: (CMBitMap*) 0x0000790420059190 - Bits: [0x00007903fea00000, 0x0000790406700000) - -Polling page: 0x0000790427528000 - -Metaspace: - -Usage: - Non-class: 19.40 MB used. - Class: 2.25 MB used. - Both: 21.64 MB used. - -Virtual space: - Non-class space: 64.00 MB reserved, 19.56 MB ( 31%) committed, 1 nodes. - Class space: 1.00 GB reserved, 2.38 MB ( <1%) committed, 1 nodes. - Both: 1.06 GB reserved, 21.94 MB ( 2%) committed. - -Chunk freelists: - Non-Class: 11.89 MB - Class: 13.44 MB - Both: 25.33 MB - -MaxMetaspaceSize: unlimited -CompressedClassSpaceSize: 1.00 GB -Initial GC threshold: 21.00 MB -Current GC threshold: 27.12 MB -CDS: on - - commit_granule_bytes: 65536. - - commit_granule_words: 8192. - - virtual_space_node_default_size: 8388608. - - enlarge_chunks_in_place: 1. - - use_allocation_guard: 0. - - -Internal statistics: - -num_allocs_failed_limit: 0. -num_arena_births: 334. -num_arena_deaths: 0. -num_vsnodes_births: 2. -num_vsnodes_deaths: 0. -num_space_committed: 351. -num_space_uncommitted: 0. -num_chunks_returned_to_freelist: 0. -num_chunks_taken_from_freelist: 687. -num_chunk_merges: 0. -num_chunk_splits: 437. -num_chunks_enlarged: 282. -num_inconsistent_stats: 0. - -CodeHeap 'non-profiled nmethods': size=120032Kb used=764Kb max_used=764Kb free=119267Kb - bounds [0x00007904102c8000, 0x0000790410538000, 0x0000790417800000] -CodeHeap 'profiled nmethods': size=120028Kb used=2918Kb max_used=2918Kb free=117109Kb - bounds [0x0000790408800000, 0x0000790408ae0000, 0x000079040fd37000] -CodeHeap 'non-nmethods': size=5700Kb used=2463Kb max_used=2482Kb free=3237Kb - bounds [0x000079040fd37000, 0x000079040ffb7000, 0x00007904102c8000] -CodeCache: size=245760Kb, used=6145Kb, max_used=6164Kb, free=239613Kb - total_blobs=3788, nmethods=2353, adapters=1341, full_count=0 -Compilation: enabled, stopped_count=0, restarted_count=0 - -Compilation events (20 events): -Event: 6.437 Thread 0x00007904201485b0 2487 3 com.jme3.util.IntMap::iterator (15 bytes) -Event: 6.438 Thread 0x00007904201485b0 nmethod 2487 0x0000790408ad4a88 code [0x0000790408ad4bc0, 0x0000790408ad4f50] -Event: 6.438 Thread 0x00007904201485b0 2488 3 com.jme3.util.IntMap$IntMapIterator:: (20 bytes) -Event: 6.438 Thread 0x00007904201485b0 nmethod 2488 0x0000790408ad4f88 code [0x0000790408ad50a0, 0x0000790408ad5278] -Event: 6.438 Thread 0x00007904201485b0 2489 3 com.jme3.util.IntMap$IntMapIterator::beginUse (24 bytes) -Event: 6.438 Thread 0x00007904201485b0 nmethod 2489 0x0000790408ad5308 code [0x0000790408ad5420, 0x0000790408ad55e8] -Event: 6.438 Thread 0x00007904201485b0 2490 3 com.jme3.util.IntMap$IntMapIterator::hasNext (20 bytes) -Event: 6.439 Thread 0x00007904201485b0 nmethod 2490 0x0000790408ad5608 code [0x0000790408ad5720, 0x0000790408ad5898] -Event: 6.453 Thread 0x00007904201485b0 2491 3 org.lwjgl.vulkan.VkClearValue::sizeof (4 bytes) -Event: 6.454 Thread 0x00007904201485b0 nmethod 2491 0x0000790408ad5908 code [0x0000790408ad5a20, 0x0000790408ad5b28] -Event: 6.454 Thread 0x00007904201485b0 2493 3 org.lwjgl.vulkan.VkOffset2D:: (7 bytes) -Event: 6.454 Thread 0x00007904201485b0 nmethod 2493 0x0000790408ad5c08 code [0x0000790408ad5d60, 0x0000790408ad6108] -Event: 6.454 Thread 0x00007904201485b0 2494 3 org.lwjgl.vulkan.VkOffset2D::set (14 bytes) -Event: 6.455 Thread 0x00007904201485b0 nmethod 2494 0x0000790408ad6188 code [0x0000790408ad62e0, 0x0000790408ad6730] -Event: 6.455 Thread 0x00007904201485b0 2495 3 org.lwjgl.vulkan.VkOffset2D::x (10 bytes) -Event: 6.455 Thread 0x00007904201485b0 nmethod 2495 0x0000790408ad6788 code [0x0000790408ad68c0, 0x0000790408ad6af8] -Event: 6.455 Thread 0x00007904201485b0 2492 3 org.lwjgl.vulkan.VkRenderPassBeginInfo::nclearValueCount (11 bytes) -Event: 6.455 Thread 0x00007904201485b0 nmethod 2492 0x0000790408ad6b88 code [0x0000790408ad6ca0, 0x0000790408ad6dc0] -Event: 6.455 Thread 0x00007904201485b0 2496 3 org.lwjgl.vulkan.VkOffset2D::malloc (19 bytes) -Event: 6.456 Thread 0x00007904201485b0 nmethod 2496 0x0000790408ad6e88 code [0x0000790408ad6fe0, 0x0000790408ad7330] - -GC Heap History (8 events): -Event: 2.375 GC heap before -{Heap before GC invocations=0 (full 0): - garbage-first heap total reserved 8192000K, committed 516096K, used 21627K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 6 young (24576K), 0 survivors (0K) - Metaspace used 16391K, committed 16640K, reserved 1114112K - class space used 1823K, committed 1920K, reserved 1048576K -} -Event: 2.386 GC heap after -{Heap after GC invocations=1 (full 1): - garbage-first heap total reserved 8192000K, committed 98304K, used 6315K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 0 young (0K), 0 survivors (0K) - Metaspace used 16391K, committed 16640K, reserved 1114112K - class space used 1823K, committed 1920K, reserved 1048576K -} -Event: 2.387 GC heap before -{Heap before GC invocations=1 (full 1): - garbage-first heap total reserved 8192000K, committed 98304K, used 6315K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 0 young (0K), 0 survivors (0K) - Metaspace used 16391K, committed 16640K, reserved 1114112K - class space used 1823K, committed 1920K, reserved 1048576K -} -Event: 2.399 GC heap after -{Heap after GC invocations=2 (full 2): - garbage-first heap total reserved 8192000K, committed 28672K, used 6315K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 0 young (0K), 0 survivors (0K) - Metaspace used 16391K, committed 16640K, reserved 1114112K - class space used 1823K, committed 1920K, reserved 1048576K -} -Event: 2.930 GC heap before -{Heap before GC invocations=2 (full 2): - garbage-first heap total reserved 8192000K, committed 28672K, used 14507K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 2 young (8192K), 0 survivors (0K) - Metaspace used 18709K, committed 19008K, reserved 1114112K - class space used 2041K, committed 2176K, reserved 1048576K -} -Event: 2.931 GC heap after -{Heap after GC invocations=3 (full 2): - garbage-first heap total reserved 8192000K, committed 28672K, used 7432K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 1 young (4096K), 1 survivors (4096K) - Metaspace used 18709K, committed 19008K, reserved 1114112K - class space used 2041K, committed 2176K, reserved 1048576K -} -Event: 2.983 GC heap before -{Heap before GC invocations=3 (full 2): - garbage-first heap total reserved 8192000K, committed 28672K, used 11528K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 2 young (8192K), 1 survivors (4096K) - Metaspace used 20103K, committed 20416K, reserved 1114112K - class space used 2172K, committed 2304K, reserved 1048576K -} -Event: 2.984 GC heap after -{Heap after GC invocations=4 (full 2): - garbage-first heap total reserved 8192000K, committed 28672K, used 7670K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 1 young (4096K), 1 survivors (4096K) - Metaspace used 20103K, committed 20416K, reserved 1114112K - class space used 2172K, committed 2304K, reserved 1048576K -} - -Dll operation events (12 events): -Event: 0.001 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -Event: 0.016 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -Event: 0.017 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -Event: 0.024 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -Event: 0.026 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -Event: 0.071 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -Event: 0.121 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -Event: 0.127 Loaded shared library /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -Event: 0.217 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -Event: 0.219 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -Event: 0.246 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so -Event: 0.323 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so - -Deoptimization events (20 events): -Event: 2.675 Thread 0x00007904206ae090 DEOPT PACKING pc=0x000079040888f38b sp=0x00007903f503a650 -Event: 2.675 Thread 0x00007904206ae090 DEOPT UNPACKING pc=0x000079040fd8b30f sp=0x00007903f5039b08 mode 0 -Event: 2.676 Thread 0x00007904206ae090 DEOPT PACKING pc=0x000079040888f38b sp=0x00007903f503a650 -Event: 2.676 Thread 0x00007904206ae090 DEOPT UNPACKING pc=0x000079040fd8b30f sp=0x00007903f5039b08 mode 0 -Event: 2.914 Thread 0x00007904206ae090 Uncommon trap: trap_request=0xffffff76 fr.pc=0x000079041034cde8 relative=0x00000000000001a8 -Event: 2.914 Thread 0x00007904206ae090 Uncommon trap: reason=predicate action=maybe_recompile pc=0x000079041034cde8 method=java.util.regex.Pattern$BmpCharPropertyGreedy.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 12 c2 -Event: 2.914 Thread 0x00007904206ae090 DEOPT PACKING pc=0x000079041034cde8 sp=0x00007903f503b0e0 -Event: 2.914 Thread 0x00007904206ae090 DEOPT UNPACKING pc=0x000079040fd8abf9 sp=0x00007903f503b0b8 mode 2 -Event: 2.968 Thread 0x00007904206ae090 Uncommon trap: trap_request=0xffffff6e fr.pc=0x00007904103669e8 relative=0x0000000000000148 -Event: 2.968 Thread 0x00007904206ae090 Uncommon trap: reason=loop_limit_check action=maybe_recompile pc=0x00007904103669e8 method=java.util.regex.Pattern$Start.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 34 c2 -Event: 2.968 Thread 0x00007904206ae090 DEOPT PACKING pc=0x00007904103669e8 sp=0x00007903f503b0a0 -Event: 2.968 Thread 0x00007904206ae090 DEOPT UNPACKING pc=0x000079040fd8abf9 sp=0x00007903f503b050 mode 2 -Event: 3.109 Thread 0x00007904206ae090 Uncommon trap: trap_request=0xffffff6e fr.pc=0x0000790410369538 relative=0x0000000000000538 -Event: 3.109 Thread 0x00007904206ae090 Uncommon trap: reason=loop_limit_check action=maybe_recompile pc=0x0000790410369538 method=java.util.regex.Pattern$Start.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 34 c2 -Event: 3.109 Thread 0x00007904206ae090 DEOPT PACKING pc=0x0000790410369538 sp=0x00007903f503aa60 -Event: 3.109 Thread 0x00007904206ae090 DEOPT UNPACKING pc=0x000079040fd8abf9 sp=0x00007903f503a9c0 mode 2 -Event: 3.145 Thread 0x00007904206ae090 DEOPT PACKING pc=0x0000790408a30c1f sp=0x00007903f503a7c0 -Event: 3.145 Thread 0x00007904206ae090 DEOPT UNPACKING pc=0x000079040fd8b30f sp=0x00007903f5039c00 mode 0 -Event: 3.147 Thread 0x00007904206ae090 DEOPT PACKING pc=0x00007904088b3254 sp=0x00007903f503a790 -Event: 3.147 Thread 0x00007904206ae090 DEOPT UNPACKING pc=0x000079040fd8b30f sp=0x00007903f5039c48 mode 0 - -Classes loaded (20 events): -Event: 2.954 Loading class javax/imageio/ImageTypeSpecifier$Packed -Event: 2.954 Loading class javax/imageio/ImageTypeSpecifier$Packed done -Event: 2.955 Loading class java/awt/image/DataBufferByte -Event: 2.955 Loading class java/awt/image/DataBufferByte done -Event: 2.955 Loading class sun/awt/image/ByteInterleavedRaster -Event: 2.955 Loading class sun/awt/image/ByteComponentRaster -Event: 2.955 Loading class sun/awt/image/ByteComponentRaster done -Event: 2.955 Loading class sun/awt/image/ByteInterleavedRaster done -Event: 2.955 Loading class sun/awt/image/ShortComponentRaster -Event: 2.955 Loading class sun/awt/image/ShortComponentRaster done -Event: 3.023 Loading class java/util/function/LongFunction -Event: 3.023 Loading class java/util/function/LongFunction done -Event: 3.401 Loading class sun/awt/AppContext$PostShutdownEventRunnable -Event: 3.401 Loading class sun/awt/AppContext$PostShutdownEventRunnable done -Event: 3.401 Loading class sun/awt/AWTAutoShutdown$1 -Event: 3.401 Loading class sun/awt/AWTAutoShutdown$1 done -Event: 6.456 Loading class java/lang/Throwable$WrappedPrintStream -Event: 6.456 Loading class java/lang/Throwable$PrintStreamOrWriter -Event: 6.456 Loading class java/lang/Throwable$PrintStreamOrWriter done -Event: 6.456 Loading class java/lang/Throwable$WrappedPrintStream done - -Classes unloaded (0 events): -No events - -Classes redefined (0 events): -No events - -Internal exceptions (20 events): -Event: 0.617 Thread 0x000079042067c030 Exception (0x000000062a0b8978) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.325 Thread 0x000079042067c030 Exception (0x000000062a3573b0) -thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] -Event: 2.369 Thread 0x000079042067c030 Exception (0x0000000629cc2cd0) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.416 Thread 0x000079042002d0f0 Exception (0x000000060d996940) -thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] -Event: 2.425 Thread 0x000079042002d0f0 Exception (0x000000060d9f4c80) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.426 Thread 0x000079042002d0f0 Exception (0x000000060da02ff0) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.601 Thread 0x00007904206ae090 Exception (0x000000060d599078) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 863] -Event: 2.914 Thread 0x00007904206ae090 Exception (0x000000060d73e808) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.980 Thread 0x00007904206ae090 Exception (0x000000060dbd2d10) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 2.983 Thread 0x00007904206ae090 Exception (0x000000060dbfbc78) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.020 Thread 0x00007904206ae090 Exception (0x000000060d900098) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.021 Thread 0x00007904206ae090 Exception (0x000000060d9057e0) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.035 Thread 0x00007904206ae090 Exception (0x000000060d9be038) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.036 Thread 0x00007904206ae090 Exception (0x000000060d9d08c8) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.037 Thread 0x00007904206ae090 Exception (0x000000060d9d4868) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.037 Thread 0x00007904206ae090 Exception (0x000000060d9d8168) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.043 Thread 0x00007904206ae090 Exception (0x000000060da3c3d0) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.077 Thread 0x00007904206ae090 Exception (0x000000060da8ce90) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.083 Thread 0x00007904206ae090 Exception (0x000000060daa78d0) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 3.105 Thread 0x00007904206ae090 Exception (0x000000060dae73e0) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] - -VM Operations (20 events): -Event: 0.135 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.135 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.231 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.231 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.248 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.248 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.257 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.257 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.651 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.651 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 2.375 Executing VM operation: G1CollectFull (System.gc()) -Event: 2.386 Executing VM operation: G1CollectFull (System.gc()) done -Event: 2.387 Executing VM operation: G1CollectFull (System.gc()) -Event: 2.399 Executing VM operation: G1CollectFull (System.gc()) done -Event: 2.423 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 2.423 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 2.930 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) -Event: 2.931 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done -Event: 2.983 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) -Event: 2.984 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done - -Memory protections (20 events): -Event: 0.016 Protecting memory [0x00007903fc500000,0x00007903fc504000] with protection modes 0 -Event: 0.016 Protecting memory [0x00007903fc400000,0x00007903fc404000] with protection modes 0 -Event: 0.021 Protecting memory [0x00007903fc230000,0x00007903fc234000] with protection modes 0 -Event: 0.022 Protecting memory [0x00007903fc130000,0x00007903fc134000] with protection modes 0 -Event: 0.052 Protecting memory [0x00007903fc030000,0x00007903fc034000] with protection modes 0 -Event: 0.269 Protecting memory [0x00007903f5f72000,0x00007903f5f76000] with protection modes 0 -Event: 0.271 Protecting memory [0x00007903f5e72000,0x00007903f5e76000] with protection modes 0 -Event: 0.273 Protecting memory [0x00007903f5d72000,0x00007903f5d76000] with protection modes 0 -Event: 0.273 Protecting memory [0x00007903f5c72000,0x00007903f5c76000] with protection modes 0 -Event: 0.323 Protecting memory [0x00007903f5b72000,0x00007903f5b76000] with protection modes 0 -Event: 0.544 Protecting memory [0x00007903fc030000,0x00007903fc034000] with protection modes 0 -Event: 0.648 Protecting memory [0x00007903f5a72000,0x00007903f5a76000] with protection modes 0 -Event: 0.681 Protecting memory [0x00007903f5872000,0x00007903f5876000] with protection modes 0 -Event: 2.348 Protecting memory [0x00007903f5a72000,0x00007903f5a76000] with protection modes 0 -Event: 2.371 Protecting memory [0x00007903f5772000,0x00007903f5776000] with protection modes 0 -Event: 2.431 Protecting memory [0x00007903f4f3d000,0x00007903f4f41000] with protection modes 0 -Event: 2.431 Protecting memory [0x0000790425b00000,0x0000790425b04000] with protection modes 0 -Event: 2.579 Protecting memory [0x00007903f5772000,0x00007903f5776000] with protection modes 0 -Event: 2.928 Protecting memory [0x00007903f5772000,0x00007903f5776000] with protection modes 0 -Event: 3.289 Protecting memory [0x00007903f5a72000,0x00007903f5a76000] with protection modes 0 - -Nmethod flushes (20 events): -Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x000079040888aa08 -Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x000079040888db88 -Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x00007904088adf88 -Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x00007904088ae888 -Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x00007904088dbd08 -Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x00007904088dcb08 -Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x00007904088dd588 -Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x00007904088fd388 -Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x0000790408923988 -Event: 2.391 Thread 0x000079042012e2f0 flushing osr nmethod 0x0000790408923e08 -Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x000079040893ec08 -Event: 2.391 Thread 0x000079042012e2f0 flushing osr nmethod 0x000079040894f808 -Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x0000790408976408 -Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x0000790408977b88 -Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x0000790408988308 -Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x0000790408989008 -Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x000079040898c808 -Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x00007904089b5d08 -Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x00007904089b6008 -Event: 2.391 Thread 0x000079042012e2f0 flushing nmethod 0x0000790408a0fc88 - -Events (20 events): -Event: 0.544 Thread 0x000079042067c030 Thread added: 0x0000790338061560 -Event: 0.648 Thread 0x00007904201485b0 Thread added: 0x000079036437f070 -Event: 0.681 Thread 0x000079042067c030 Thread added: 0x00007903380dcdf0 -Event: 1.035 Thread 0x000079036437f070 Thread exited: 0x000079036437f070 -Event: 2.348 Thread 0x000079042013eeb0 Thread added: 0x00007903682bda80 -Event: 2.371 Thread 0x00007904201485b0 Thread added: 0x0000790364420100 -Event: 2.431 Thread 0x000079042002d0f0 Thread added: 0x00007904206ae090 -Event: 2.431 Thread 0x000079042002d0f0 Thread exited: 0x000079042002d0f0 -Event: 2.431 Thread 0x000079042002d0f0 Thread added: 0x000079042002d0f0 -Event: 2.564 Thread 0x0000790364420100 Thread exited: 0x0000790364420100 -Event: 2.564 Thread 0x00007903682bda80 Thread exited: 0x00007903682bda80 -Event: 2.579 Thread 0x00007904201485b0 Thread added: 0x0000790364363310 -Event: 2.914 Thread 0x0000790364363310 Thread exited: 0x0000790364363310 -Event: 2.928 Thread 0x00007904206ae090 Thread added: 0x00007902f057f190 -Event: 3.289 Thread 0x00007904201485b0 Thread added: 0x0000790364489930 -Event: 3.402 Thread 0x000079042067af20 Thread exited: 0x000079042067af20 -Event: 3.402 Thread 0x000079042067c030 Thread exited: 0x000079042067c030 -Event: 3.420 Thread 0x0000790364489930 Thread exited: 0x0000790364489930 -Event: 5.580 Thread 0x0000790338061560 Thread exited: 0x0000790338061560 -Event: 6.456 Thread 0x00007904206ae090 Thread exited: 0x00007904206ae090 - - -Dynamic libraries: -60c000000-60dc00000 rw-p 00000000 00:00 0 -60dc00000-800000000 ---p 00000000 00:00 0 -558c5a9d0000-558c5a9d1000 r-xp 00000000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java -558c5a9d2000-558c5a9d3000 r--p 00001000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java -558c5a9d3000-558c5a9d4000 rw-p 00002000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java -558c6796b000-558c679b4000 rw-p 00000000 00:00 0 [heap] -7902a8000000-7902a80e0000 rw-p 00000000 00:00 0 -7902a80e0000-7902ac000000 ---p 00000000 00:00 0 -7902b0000000-7902b0021000 rw-p 00000000 00:00 0 -7902b0021000-7902b4000000 ---p 00000000 00:00 0 -7902b4000000-7902b4021000 rw-p 00000000 00:00 0 -7902b4021000-7902b8000000 ---p 00000000 00:00 0 -7902bc000000-7902bc021000 rw-p 00000000 00:00 0 -7902bc021000-7902c0000000 ---p 00000000 00:00 0 -7902c0000000-7902c0021000 rw-p 00000000 00:00 0 -7902c0021000-7902c4000000 ---p 00000000 00:00 0 -7902c8000000-7902c8021000 rw-p 00000000 00:00 0 -7902c8021000-7902cc000000 ---p 00000000 00:00 0 -7902cc000000-7902cc021000 rw-p 00000000 00:00 0 -7902cc021000-7902d0000000 ---p 00000000 00:00 0 -7902d4000000-7902d4021000 rw-p 00000000 00:00 0 -7902d4021000-7902d8000000 ---p 00000000 00:00 0 -7902d8000000-7902d80c8000 rw-p 00000000 00:00 0 -7902d80c8000-7902dc000000 ---p 00000000 00:00 0 -7902e0000000-7902e0021000 rw-p 00000000 00:00 0 -7902e0021000-7902e4000000 ---p 00000000 00:00 0 -7902e5000000-7902eb712000 r-xp 00000000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 -7902eb712000-7902ebf30000 r--p 06711000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 -7902ebf30000-7902ebf76000 rw-p 06f2f000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 -7902ebf76000-7902ebff2000 rw-p 00000000 00:00 0 -7902ec000000-7902ec021000 rw-p 00000000 00:00 0 -7902ec021000-7902f0000000 ---p 00000000 00:00 0 -7902f0000000-7902f3148000 rw-p 00000000 00:00 0 -7902f3148000-7902f4000000 ---p 00000000 00:00 0 -7902f8000000-7902f8021000 rw-p 00000000 00:00 0 -7902f8021000-7902fc000000 ---p 00000000 00:00 0 -7902fc000000-7902fc021000 rw-p 00000000 00:00 0 -7902fc021000-790300000000 ---p 00000000 00:00 0 -790304000000-790304021000 rw-p 00000000 00:00 0 -790304021000-790308000000 ---p 00000000 00:00 0 -790308000000-790308021000 rw-p 00000000 00:00 0 -790308021000-79030c000000 ---p 00000000 00:00 0 -790310000000-790310021000 rw-p 00000000 00:00 0 -790310021000-790314000000 ---p 00000000 00:00 0 -790314000000-790314021000 rw-p 00000000 00:00 0 -790314021000-790318000000 ---p 00000000 00:00 0 -79031c000000-79031c021000 rw-p 00000000 00:00 0 -79031c021000-790320000000 ---p 00000000 00:00 0 -790320000000-7903202bd000 rw-p 00000000 00:00 0 -7903202bd000-790324000000 ---p 00000000 00:00 0 -790328000000-790328021000 rw-p 00000000 00:00 0 -790328021000-79032c000000 ---p 00000000 00:00 0 -79032c000000-79032c36a000 rw-p 00000000 00:00 0 -79032c36a000-790330000000 ---p 00000000 00:00 0 -790334000000-790334021000 rw-p 00000000 00:00 0 -790334021000-790338000000 ---p 00000000 00:00 0 -790338000000-790338142000 rw-p 00000000 00:00 0 -790338142000-79033c000000 ---p 00000000 00:00 0 -790340000000-790340021000 rw-p 00000000 00:00 0 -790340021000-790344000000 ---p 00000000 00:00 0 -790344000000-790344021000 rw-p 00000000 00:00 0 -790344021000-790348000000 ---p 00000000 00:00 0 -79034c000000-79034c021000 rw-p 00000000 00:00 0 -79034c021000-790350000000 ---p 00000000 00:00 0 -790350000000-7903501a6000 rw-p 00000000 00:00 0 -7903501a6000-790354000000 ---p 00000000 00:00 0 -790358000000-790358021000 rw-p 00000000 00:00 0 -790358021000-79035c000000 ---p 00000000 00:00 0 -79035c000000-79035c021000 rw-p 00000000 00:00 0 -79035c021000-790360000000 ---p 00000000 00:00 0 -790362e00000-790362f25000 r--p 00000000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -790362f25000-7903633e5000 r-xp 00125000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -7903633e5000-790363519000 r--p 005e5000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -790363519000-79036351a000 ---p 00719000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -79036351a000-79036357d000 r--p 00719000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -79036357d000-790363587000 rw-p 0077c000 103:03 4325446 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -790363587000-790363598000 rw-p 00000000 00:00 0 -790363600000-790363601000 ---p 00000000 00:00 0 -790363601000-790363e01000 rw-p 00000000 00:00 0 -790364000000-7903644a1000 rw-p 00000000 00:00 0 -7903644a1000-790368000000 ---p 00000000 00:00 0 -790368000000-790368591000 rw-p 00000000 00:00 0 -790368591000-79036c000000 ---p 00000000 00:00 0 -79036c400000-79036c401000 ---p 00000000 00:00 0 -79036c401000-79036cc01000 rw-p 00000000 00:00 0 -79036ce00000-79036ce01000 ---p 00000000 00:00 0 -79036ce01000-79036d601000 rw-p 00000000 00:00 0 -79036d800000-79036d801000 ---p 00000000 00:00 0 -79036d801000-79036e001000 rw-p 00000000 00:00 0 -79036e200000-79036e201000 ---p 00000000 00:00 0 -79036e201000-79036ea01000 rw-p 00000000 00:00 0 -79036ec00000-79036ec01000 ---p 00000000 00:00 0 -79036ec01000-79036f401000 rw-p 00000000 00:00 0 -79036f600000-79036f62f000 r--p 00000000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -79036f62f000-79036fd02000 r-xp 0002f000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -79036fd02000-79036fe24000 r--p 00702000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -79036fe24000-79036fe35000 r--p 00823000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -79036fe35000-79036feb3000 rw-p 00834000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -79036feb3000-79036fec7000 rw-p 00000000 00:00 0 -790370000000-790370021000 rw-p 00000000 00:00 0 -790370021000-790374000000 ---p 00000000 00:00 0 -790374000000-790374021000 rw-p 00000000 00:00 0 -790374021000-790378000000 ---p 00000000 00:00 0 -790378200000-790378ef5000 r--p 00000000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -790378ef5000-7903798d8000 r-xp 00cf5000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -7903798d8000-790379ce9000 r--p 016d8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -790379ce9000-79037a16b000 r--p 01ae8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -79037a16b000-79037a173000 rw-p 01f6a000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -79037a173000-79037a17e000 rw-p 00000000 00:00 0 -79037a200000-79037a201000 ---p 00000000 00:00 0 -79037a201000-79037aa01000 rw-p 00000000 00:00 0 -79037ac00000-79037ac01000 ---p 00000000 00:00 0 -79037ac01000-79037b401000 rw-p 00000000 00:00 0 -79037b600000-79037b601000 ---p 00000000 00:00 0 -79037b601000-79037be01000 rw-p 00000000 00:00 0 -79037c000000-79037c021000 rw-p 00000000 00:00 0 -79037c021000-790380000000 ---p 00000000 00:00 0 -790380000000-790380021000 rw-p 00000000 00:00 0 -790380021000-790384000000 ---p 00000000 00:00 0 -790384600000-790384601000 ---p 00000000 00:00 0 -790384601000-790384e01000 rw-p 00000000 00:00 0 -790385000000-790385001000 ---p 00000000 00:00 0 -790385001000-790385801000 rw-p 00000000 00:00 0 -790385a00000-790385a01000 ---p 00000000 00:00 0 -790385a01000-790386201000 rw-p 00000000 00:00 0 -790386400000-79038648d000 r--p 00000000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -79038648d000-790386bf5000 r-xp 0008d000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -790386bf5000-790387482000 r--p 007f5000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -790387482000-7903874c4000 r--p 01081000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -7903874c4000-7903874c7000 rw-p 010c3000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -7903874c7000-7903874cd000 rw-p 00000000 00:00 0 -790387600000-79038765b000 r--p 00000000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -79038765b000-7903879d9000 r-xp 0005b000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -7903879d9000-790387dd5000 r--p 003d9000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -790387dd5000-790387e10000 r--p 007d4000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -790387e10000-790387e15000 rw-p 0080f000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -790387e15000-790387e40000 rw-p 00000000 00:00 0 -790388000000-790388021000 rw-p 00000000 00:00 0 -790388021000-79038c000000 ---p 00000000 00:00 0 -79038c000000-79038c638000 rw-p 00000000 00:00 0 -79038c638000-790390000000 ---p 00000000 00:00 0 -790390000000-790390200000 rw-s 00000000 00:06 1017 /dev/nvidiactl -790390200000-790390222000 r-xp 00000000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -790390222000-790390421000 ---p 00022000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -790390421000-790390429000 r--p 00021000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -790390429000-79039042a000 rw-p 00029000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -79039042a000-79039042b000 rw-p 00000000 00:00 0 -790390600000-790390800000 rw-s 00000000 00:06 1022 /dev/nvidia0 -790390800000-79039086e000 r--p 00000000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -79039086e000-790390dd5000 r-xp 0006e000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -790390dd5000-7903914e8000 r--p 005d5000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -7903914e8000-7903914e9000 ---p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -7903914e9000-790391526000 r--p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -790391526000-790391529000 rw-p 00d25000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -790391529000-79039152b000 rw-p 00000000 00:00 0 -790391600000-7903917c4000 r--p 00000000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -7903917c4000-7903934c4000 r-xp 001c4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -7903934c4000-790393b39000 r--p 01ec4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -790393b39000-790393b3a000 ---p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -790393b3a000-790393d1a000 r--p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -790393d1a000-790393d93000 rw-p 02719000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -790393d93000-790393e08000 rw-p 00000000 00:00 0 -790393e0d000-790393e8d000 rw-s 00000000 00:06 1017 /dev/nvidiactl -790393e8d000-790393f8d000 rw-s 00000000 00:06 1017 /dev/nvidiactl -790393f8d000-790393fa0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -790393fa0000-790393fe0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -790394000000-7903943f0000 rw-p 00000000 00:00 0 -7903943f0000-7903945b0000 rw-p 00000000 00:00 0 -7903945b0000-7903946f0000 rw-p 00000000 00:00 0 -7903946f0000-790394710000 rw-p 00000000 00:00 0 -790394710000-790394730000 rw-p 00000000 00:00 0 -790394730000-790394770000 rw-p 00000000 00:00 0 -790394770000-7903949f0000 rw-p 00000000 00:00 0 -7903949f0000-790394a10000 rw-p 00000000 00:00 0 -790394a10000-790394a30000 rw-p 00000000 00:00 0 -790394a30000-790394a70000 rw-p 00000000 00:00 0 -790394a70000-790394af0000 rw-p 00000000 00:00 0 -790394af0000-790394cf0000 rw-p 00000000 00:00 0 -790394cf0000-790394d10000 rw-p 00000000 00:00 0 -790394d10000-790394d30000 rw-p 00000000 00:00 0 -790394d30000-790394d70000 rw-p 00000000 00:00 0 -790394d70000-790394ef0000 rw-p 00000000 00:00 0 -790394ef0000-790394ff0000 rw-p 00000000 00:00 0 -790394ff0000-7903950f0000 rw-p 00000000 00:00 0 -7903950f0000-790395170000 rw-p 00000000 00:00 0 -790395170000-790395200000 ---p 00000000 00:00 0 -790395200000-790395420000 rw-p 00000000 00:00 0 -790395420000-790398000000 ---p 00000000 00:00 0 -790398000000-790398021000 rw-p 00000000 00:00 0 -790398021000-79039c000000 ---p 00000000 00:00 0 -79039c000000-79039c200000 rw-s 00000000 00:06 1017 /dev/nvidiactl -79039c200000-79039c201000 r--p 00000000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -79039c201000-79039c202000 r-xp 00001000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -79039c202000-79039de1c000 r--p 00002000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -79039de1c000-79039de1d000 r--p 01c1b000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -79039de1d000-79039de1e000 rw-p 01c1c000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -79039de20000-79039de60000 rw-s 00000000 00:06 1017 /dev/nvidiactl -79039de60000-79039de80000 rw-s 00000000 00:06 1017 /dev/nvidiactl -79039de80000-79039df00000 rw-s 00000000 00:06 1017 /dev/nvidiactl -79039df00000-79039e000000 rw-s 00000000 00:06 1017 /dev/nvidiactl -79039e000000-79039ed91000 rw-p 00001000 103:03 10498862 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/classes.jsa -79039ed91000-79039f000000 ---p 00000000 00:00 0 -79039f000000-79039f030000 rw-p 00000000 00:00 0 -79039f030000-79039f090000 rw-p 00000000 00:00 0 -79039f090000-79039f0b0000 rw-p 00000000 00:00 0 -79039f0b0000-79039f130000 rw-p 00000000 00:00 0 -79039f130000-79039f150000 rw-p 00000000 00:00 0 -79039f150000-79039f1b0000 rw-p 00000000 00:00 0 -79039f1b0000-79039f1d0000 rw-p 00000000 00:00 0 -79039f1d0000-79039f230000 rw-p 00000000 00:00 0 -79039f230000-79039f250000 rw-p 00000000 00:00 0 -79039f250000-79039f280000 ---p 00000000 00:00 0 -79039f280000-79039f290000 rw-p 00000000 00:00 0 -79039f290000-7903df000000 ---p 00000000 00:00 0 -7903df004000-7903df005000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7903df005000-7903df009000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903df009000-7903df00a000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7903df00a000-7903df00c000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903df00c000-7903df00d000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7903df00d000-7903df04d000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903df04d000-7903df06d000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903df06d000-7903df0ad000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903df0cd000-7903df0e0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903df0e0000-7903df120000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903df120000-7903df140000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903df140000-7903df240000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903df240000-7903df280000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903df280000-7903df2c0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903df2c0000-7903df3c0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903df3c0000-7903df400000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903df400000-7903df493000 r--p 00000000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -7903df493000-7903df8e6000 r-xp 00093000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -7903df8e6000-7903dfdfc000 r--p 004e6000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -7903dfdfc000-7903dfe34000 r--p 009fb000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -7903dfe34000-7903dfe44000 rw-p 00a33000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -7903dfe44000-7903dfe49000 rw-p 00000000 00:00 0 -7903dfe49000-7903dfe4d000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903dfe4d000-7903dfe60000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903dfe60000-7903dfe80000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903dfe80000-7903dff00000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903dff00000-7903e0000000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903e0000000-7903e0021000 rw-p 00000000 00:00 0 -7903e0021000-7903e4000000 ---p 00000000 00:00 0 -7903e4000000-7903e4021000 rw-p 00000000 00:00 0 -7903e4021000-7903e8000000 ---p 00000000 00:00 0 -7903e8000000-7903e8001000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7903e8001000-7903e8002000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7903e8022000-7903e8035000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903e8035000-7903e8055000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903e8055000-7903e80d5000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903e80d5000-7903e8115000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903e8115000-7903e8135000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903e8135000-7903e8175000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903e8175000-7903e8195000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903e8195000-7903e81d5000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903e81d5000-7903e841a000 rw-s 00000000 00:01 7173 /memfd:/.nvidia_drv.XXXXXX (deleted) -7903e841a000-7903e855b000 rw-s 00000000 103:03 13372247 /home/codex/.cache/mesa_shader_cache/index -7903e855b000-7903e856c000 r--p 00000000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -7903e856c000-7903e85ae000 r-xp 00011000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -7903e85ae000-7903e85c6000 r--p 00053000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -7903e85c6000-7903e85d4000 r--p 0006a000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -7903e85d4000-7903e85d6000 rw-p 00078000 103:03 11280457 /usr/lib/x86_64-linux-gnu/spa-0.2/audioconvert/libspa-audioconvert.so -7903e85d6000-7903e85da000 r--p 00000000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -7903e85da000-7903e85f6000 r-xp 00004000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -7903e85f6000-7903e85fc000 r--p 00020000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -7903e85fc000-7903e85fd000 ---p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -7903e85fd000-7903e85ff000 r--p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -7903e85ff000-7903e8600000 rw-p 00028000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -7903e8600000-7903e8616000 r--p 00000000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -7903e8616000-7903e8706000 r-xp 00016000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -7903e8706000-7903e8779000 r--p 00106000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -7903e8779000-7903e8780000 r--p 00178000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -7903e8780000-7903e8787000 rw-p 0017f000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -7903e8787000-7903e8802000 rw-p 00000000 00:00 0 -7903e8802000-7903e8803000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903e8803000-7903e8804000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903e8804000-7903e8805000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903e8805000-7903e8818000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903e8818000-7903e881a000 r--p 00000000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -7903e881a000-7903e8823000 r-xp 00002000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -7903e8823000-7903e8826000 r--p 0000b000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -7903e8826000-7903e8827000 ---p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -7903e8827000-7903e8828000 r--p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -7903e8828000-7903e8829000 rw-p 0000f000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -7903e8829000-7903e882b000 rw-p 00000000 00:00 0 -7903e882b000-7903e882d000 r--p 00000000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -7903e882d000-7903e8898000 r-xp 00002000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -7903e8898000-7903e88c0000 r--p 0006d000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -7903e88c0000-7903e88c1000 r--p 00094000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -7903e88c1000-7903e88c2000 rw-p 00095000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -7903e88c2000-7903e88d1000 r--p 00000000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -7903e88d1000-7903e89b7000 r-xp 0000f000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -7903e89b7000-7903e89f5000 r--p 000f5000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -7903e89f5000-7903e89f6000 ---p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -7903e89f6000-7903e89f9000 r--p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -7903e89f9000-7903e89ff000 rw-p 00136000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -7903e89ff000-7903e9322000 rw-p 00000000 00:00 0 -7903e9322000-7903e9323000 rw-s 00044000 00:01 7173 /memfd:/.nvidia_drv.XXXXXX (deleted) -7903e9323000-7903e9324000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7903e9324000-7903e9325000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7903e9325000-7903e9327000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903e9327000-7903e9328000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7903e9328000-7903e9348000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903e9348000-7903e9352000 r--p 00000000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -7903e9352000-7903e935c000 r-xp 0000a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -7903e935c000-7903e9363000 r--p 00014000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -7903e9363000-7903e936c000 r--p 0001a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -7903e936c000-7903e936d000 rw-p 00023000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -7903e936d000-7903e9379000 r--p 00000000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -7903e9379000-7903e9399000 r-xp 0000c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -7903e9399000-7903e93a5000 r--p 0002c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -7903e93a5000-7903e93af000 r--p 00037000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -7903e93af000-7903e93b0000 rw-p 00041000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -7903e93b0000-7903e93c3000 r--p 00000000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -7903e93c3000-7903e93e2000 r-xp 00013000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -7903e93e2000-7903e93ef000 r--p 00032000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -7903e93ef000-7903e93ff000 r--p 0003e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -7903e93ff000-7903e9400000 rw-p 0004e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -7903e9400000-7903e9401000 ---p 00000000 00:00 0 -7903e9401000-7903e9c01000 rw-p 00000000 00:00 0 -7903e9c01000-7903e9c02000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903e9c02000-7903e9c06000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903e9c06000-7903e9c07000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7903e9c07000-7903e9c09000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903e9c09000-7903e9c14000 r--p 00000000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -7903e9c14000-7903e9c42000 r-xp 0000b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -7903e9c42000-7903e9c54000 r--p 00039000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -7903e9c54000-7903e9c55000 ---p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -7903e9c55000-7903e9c56000 r--p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -7903e9c56000-7903e9c57000 rw-p 0004c000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -7903e9c57000-7903e9c6a000 r--p 00000000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -7903e9c6a000-7903e9ce9000 r-xp 00013000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -7903e9ce9000-7903e9d14000 r--p 00092000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -7903e9d14000-7903e9d15000 ---p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -7903e9d15000-7903e9d1c000 r--p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -7903e9d1c000-7903e9d1d000 rw-p 000c4000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -7903e9d1d000-7903e9d1e000 rw-p 00000000 00:00 0 -7903e9d1e000-7903e9d51000 r--p 00000000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -7903e9d51000-7903e9db4000 r-xp 00033000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -7903e9db4000-7903e9dd3000 r--p 00096000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -7903e9dd3000-7903e9dfe000 r--p 000b4000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -7903e9dfe000-7903e9dff000 rw-p 000df000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -7903e9dff000-7903e9e00000 rw-p 00000000 00:00 0 -7903e9e00000-7903ea041000 r-xp 00000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -7903ea041000-7903ea062000 rwxp 00241000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -7903ea062000-7903ea200000 r-xp 00262000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -7903ea200000-7903eae00000 r-xp 00400000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -7903eae00000-7903ebcab000 r-xp 01000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -7903ebcab000-7903ebe10000 r--p 01eaa000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -7903ebe10000-7903ebe7e000 rw-p 0200f000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -7903ebe7e000-7903ebe9c000 rw-p 00000000 00:00 0 -7903ebe9c000-7903ebea0000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903ebea0000-7903ebea4000 r--p 00000000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -7903ebea4000-7903ebeb4000 r-xp 00004000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -7903ebeb4000-7903ebeb7000 r--p 00014000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -7903ebeb7000-7903ebeb8000 r--p 00016000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -7903ebeb8000-7903ebeb9000 rw-p 00017000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -7903ebeb9000-7903ebee8000 r--p 00000000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -7903ebee8000-7903ebfa4000 r-xp 0002f000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -7903ebfa4000-7903ebfef000 r--p 000eb000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -7903ebfef000-7903ebffd000 r--p 00135000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -7903ebffd000-7903ebfff000 rw-p 00143000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -7903ebfff000-7903ec000000 rw-p 00000000 00:00 0 -7903ec000000-7903ec021000 rw-p 00000000 00:00 0 -7903ec021000-7903f0000000 ---p 00000000 00:00 0 -7903f0000000-7903f0021000 rw-p 00000000 00:00 0 -7903f0021000-7903f4000000 ---p 00000000 00:00 0 -7903f4000000-7903f4001000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7903f4001000-7903f4002000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7903f4002000-7903f4003000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903f4003000-7903f4007000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903f4007000-7903f4010000 rw-s 00000000 00:01 666571 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) -7903f4010000-7903f4019000 rw-s 00000000 00:01 666570 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=32832 (deleted) -7903f4019000-7903f401b000 r--p 00000000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -7903f401b000-7903f401f000 r-xp 00002000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -7903f401f000-7903f4021000 r--p 00006000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -7903f4021000-7903f4022000 r--p 00007000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -7903f4022000-7903f4023000 rw-p 00008000 103:03 11280493 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-rt.so -7903f4023000-7903f4089000 r--p 00000000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -7903f4089000-7903f417c000 r-xp 00066000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -7903f417c000-7903f4208000 r--p 00159000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -7903f4208000-7903f421b000 r--p 001e4000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -7903f421b000-7903f421c000 rw-p 001f7000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -7903f421c000-7903f421e000 rw-p 00000000 00:00 0 -7903f421e000-7903f424d000 r--p 00000000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -7903f424d000-7903f43a0000 r-xp 0002f000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -7903f43a0000-7903f43f4000 r--p 00182000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -7903f43f4000-7903f43f5000 ---p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -7903f43f5000-7903f43fe000 r--p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -7903f43fe000-7903f43ff000 rw-p 001df000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -7903f43ff000-7903f4400000 rw-p 00000000 00:00 0 -7903f4400000-7903f449a000 r--p 00000000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -7903f449a000-7903f45ab000 r-xp 0009a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -7903f45ab000-7903f461a000 r--p 001ab000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -7903f461a000-7903f461b000 ---p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -7903f461b000-7903f4626000 r--p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -7903f4626000-7903f4629000 rw-p 00225000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -7903f4629000-7903f462c000 rw-p 00000000 00:00 0 -7903f462c000-7903f462d000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7903f462d000-7903f4633000 r--p 00000000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -7903f4633000-7903f464d000 r-xp 00006000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -7903f464d000-7903f4654000 r--p 00020000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -7903f4654000-7903f4655000 ---p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -7903f4655000-7903f4656000 r--p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -7903f4656000-7903f4657000 rw-p 00028000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -7903f4657000-7903f4659000 rw-p 00000000 00:00 0 -7903f4659000-7903f465d000 r--p 00000000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -7903f465d000-7903f4673000 r-xp 00004000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -7903f4673000-7903f467d000 r--p 0001a000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -7903f467d000-7903f467e000 r--p 00023000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -7903f467e000-7903f467f000 rw-p 00024000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -7903f467f000-7903f4681000 r--p 00000000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -7903f4681000-7903f469a000 r-xp 00002000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -7903f469a000-7903f469c000 r--p 0001b000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -7903f469c000-7903f469d000 ---p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -7903f469d000-7903f469e000 r--p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -7903f469e000-7903f469f000 rw-p 0001e000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -7903f469f000-7903f46a3000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903f46a3000-7903f46a5000 r--p 00000000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -7903f46a5000-7903f46ad000 r-xp 00002000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -7903f46ad000-7903f46af000 r--p 0000a000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -7903f46af000-7903f46b0000 r--p 0000b000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -7903f46b0000-7903f46b1000 rw-p 0000c000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -7903f46b1000-7903f46b3000 r--p 00000000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -7903f46b3000-7903f46bb000 r-xp 00002000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -7903f46bb000-7903f46bc000 r--p 0000a000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -7903f46bc000-7903f46bd000 ---p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -7903f46bd000-7903f46be000 r--p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -7903f46be000-7903f46bf000 rw-p 0000c000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -7903f46bf000-7903f46c3000 r--p 00000000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -7903f46c3000-7903f46d8000 r-xp 00004000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -7903f46d8000-7903f46de000 r--p 00019000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -7903f46de000-7903f46df000 ---p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -7903f46df000-7903f46e1000 r--p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -7903f46e1000-7903f46e2000 rw-p 00021000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -7903f46e2000-7903f46e5000 r--p 00000000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -7903f46e5000-7903f4706000 r-xp 00003000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -7903f4706000-7903f4712000 r--p 00024000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -7903f4712000-7903f4713000 ---p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -7903f4713000-7903f4714000 r--p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -7903f4714000-7903f4715000 rw-p 00031000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -7903f4715000-7903f4723000 r--p 00000000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -7903f4723000-7903f4734000 r-xp 0000e000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -7903f4734000-7903f4742000 r--p 0001f000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -7903f4742000-7903f4746000 r--p 0002c000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -7903f4746000-7903f4747000 rw-p 00030000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -7903f4747000-7903f474f000 r--p 00000000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -7903f474f000-7903f476d000 r-xp 00008000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -7903f476d000-7903f477a000 r--p 00026000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -7903f477a000-7903f477c000 r--p 00032000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -7903f477c000-7903f477d000 rw-p 00034000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -7903f477d000-7903f4781000 rw-p 00000000 00:00 0 -7903f4781000-7903f4783000 r--p 00000000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -7903f4783000-7903f478a000 r-xp 00002000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -7903f478a000-7903f478b000 r--p 00009000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -7903f478b000-7903f478c000 ---p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -7903f478c000-7903f478d000 r--p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -7903f478d000-7903f478e000 rw-p 0000b000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -7903f478e000-7903f4791000 r--p 00000000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -7903f4791000-7903f47a8000 r-xp 00003000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -7903f47a8000-7903f47ac000 r--p 0001a000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -7903f47ac000-7903f47ad000 r--p 0001d000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -7903f47ad000-7903f47ae000 rw-p 0001e000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -7903f47ae000-7903f47b2000 r--p 00000000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -7903f47b2000-7903f47d1000 r-xp 00004000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -7903f47d1000-7903f47db000 r--p 00023000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -7903f47db000-7903f47dc000 ---p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -7903f47dc000-7903f47de000 r--p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -7903f47de000-7903f47df000 rw-p 0002f000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -7903f47df000-7903f47e4000 r--p 00000000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -7903f47e4000-7903f47ef000 r-xp 00005000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -7903f47ef000-7903f47f3000 r--p 00010000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -7903f47f3000-7903f47f4000 ---p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -7903f47f4000-7903f47f5000 r--p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -7903f47f5000-7903f47f6000 rw-p 00015000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -7903f47f6000-7903f4800000 r--p 00000000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -7903f4800000-7903f48b2000 r-xp 0000a000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -7903f48b2000-7903f48c3000 r--p 000bc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -7903f48c3000-7903f48c4000 r--p 000cc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -7903f48c4000-7903f48c5000 rw-p 000cd000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -7903f48c5000-7903f48ca000 r--p 00000000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -7903f48ca000-7903f48d0000 r-xp 00005000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -7903f48d0000-7903f48d3000 r--p 0000b000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -7903f48d3000-7903f48d5000 r--p 0000d000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -7903f48d5000-7903f48d6000 rw-p 0000f000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -7903f48d6000-7903f4927000 r--p 00000000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -7903f4927000-7903f4983000 r-xp 00051000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -7903f4983000-7903f49b8000 rwxp 000ad000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -7903f49b8000-7903f49b9000 r-xp 000e2000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -7903f49b9000-7903f49d9000 r--p 000e3000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -7903f49d9000-7903f49f9000 r--p 00102000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -7903f49f9000-7903f49fe000 rw-p 00122000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -7903f49fe000-7903f4a00000 rw-p 00000000 00:00 0 -7903f4a00000-7903f4e00000 rw-p 00000000 00:00 0 -7903f4e00000-7903f4e02000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903f4e02000-7903f4e05000 r--p 00000000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -7903f4e05000-7903f4e08000 r-xp 00003000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -7903f4e08000-7903f4e09000 r--p 00006000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -7903f4e09000-7903f4e0a000 ---p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -7903f4e0a000-7903f4e0b000 r--p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -7903f4e0b000-7903f4e0c000 rw-p 00008000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -7903f4e0c000-7903f4e1c000 r--p 00000000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -7903f4e1c000-7903f4e7a000 r-xp 00010000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -7903f4e7a000-7903f4e96000 r--p 0006e000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -7903f4e96000-7903f4e97000 ---p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -7903f4e97000-7903f4e9d000 r--p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -7903f4e9d000-7903f4e9e000 rw-p 00090000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -7903f4e9e000-7903f4ea6000 rw-p 00000000 00:00 0 -7903f4ea6000-7903f4eb6000 r--p 00000000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -7903f4eb6000-7903f4ed7000 r-xp 00010000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -7903f4ed7000-7903f4f13000 r--p 00031000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -7903f4f13000-7903f4f17000 r--p 0006c000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -7903f4f17000-7903f4f1a000 rw-p 00070000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -7903f4f1a000-7903f4f3d000 rw-p 00000000 00:00 0 -7903f4f3d000-7903f4f41000 ---p 00000000 00:00 0 -7903f4f41000-7903f503d000 rw-p 00000000 00:00 0 -7903f503d000-7903f503e000 ---p 00000000 00:00 0 -7903f503e000-7903f513e000 rw-p 00000000 00:00 0 -7903f513e000-7903f513f000 ---p 00000000 00:00 0 -7903f513f000-7903f523f000 rw-p 00000000 00:00 0 -7903f523f000-7903f5240000 ---p 00000000 00:00 0 -7903f5240000-7903f5340000 rw-p 00000000 00:00 0 -7903f5340000-7903f5341000 ---p 00000000 00:00 0 -7903f5341000-7903f5441000 rw-p 00000000 00:00 0 -7903f5441000-7903f5442000 ---p 00000000 00:00 0 -7903f5442000-7903f5542000 rw-p 00000000 00:00 0 -7903f5542000-7903f5543000 ---p 00000000 00:00 0 -7903f5543000-7903f5643000 rw-p 00000000 00:00 0 -7903f5643000-7903f5644000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7903f5644000-7903f5645000 r--p 00000000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -7903f5645000-7903f5646000 r-xp 00001000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -7903f5646000-7903f5647000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -7903f5647000-7903f5648000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -7903f5648000-7903f5649000 rw-p 00003000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -7903f5649000-7903f564c000 r--p 00000000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -7903f564c000-7903f564f000 r-xp 00003000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -7903f564f000-7903f5650000 r--p 00006000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -7903f5650000-7903f5651000 ---p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -7903f5651000-7903f5652000 r--p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -7903f5652000-7903f5653000 rw-p 00008000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -7903f5653000-7903f5656000 r--p 00000000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -7903f5656000-7903f566a000 r-xp 00003000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -7903f566a000-7903f566e000 r--p 00017000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -7903f566e000-7903f566f000 ---p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -7903f566f000-7903f5670000 r--p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -7903f5670000-7903f5671000 rw-p 0001c000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -7903f5671000-7903f5672000 ---p 00000000 00:00 0 -7903f5672000-7903f5772000 rw-p 00000000 00:00 0 -7903f5772000-7903f5776000 ---p 00000000 00:00 0 -7903f5776000-7903f5872000 rw-p 00000000 00:00 0 -7903f5872000-7903f5876000 ---p 00000000 00:00 0 -7903f5876000-7903f5972000 rw-p 00000000 00:00 0 -7903f5972000-7903f5a72000 rw-s 00000000 00:01 1015856 /SYSV00000000 (deleted) -7903f5a72000-7903f5a76000 ---p 00000000 00:00 0 -7903f5a76000-7903f5b72000 rw-p 00000000 00:00 0 -7903f5b72000-7903f5b76000 ---p 00000000 00:00 0 -7903f5b76000-7903f5c72000 rw-p 00000000 00:00 0 -7903f5c72000-7903f5c76000 ---p 00000000 00:00 0 -7903f5c76000-7903f5d72000 rw-p 00000000 00:00 0 -7903f5d72000-7903f5d76000 ---p 00000000 00:00 0 -7903f5d76000-7903f5e72000 rw-p 00000000 00:00 0 -7903f5e72000-7903f5e76000 ---p 00000000 00:00 0 -7903f5e76000-7903f5f72000 rw-p 00000000 00:00 0 -7903f5f72000-7903f5f76000 ---p 00000000 00:00 0 -7903f5f76000-7903f6072000 rw-p 00000000 00:00 0 -7903f6072000-7903f607f000 r--p 00000000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -7903f607f000-7903f6108000 r-xp 0000d000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -7903f6108000-7903f6131000 r--p 00096000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -7903f6131000-7903f6132000 ---p 000bf000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -7903f6132000-7903f6139000 r--p 000bf000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -7903f6139000-7903f613a000 rw-p 000c6000 103:03 11141767 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 -7903f613a000-7903f62bb000 r-xp 00000000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so -7903f62bb000-7903f62bc000 ---p 00181000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so -7903f62bc000-7903f62be000 r--p 00181000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so -7903f62be000-7903f62bf000 rw-p 00183000 103:03 10498762 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libfontmanager.so -7903f62bf000-7903f62c0000 rw-p 00000000 00:00 0 -7903f62c0000-7903f62d9000 r--p 00000000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -7903f62d9000-7903f6365000 r-xp 00019000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -7903f6365000-7903f63fa000 r--p 000a5000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -7903f63fa000-7903f63fb000 ---p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -7903f63fb000-7903f63fc000 r--p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -7903f63fc000-7903f6400000 rw-p 0013b000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -7903f6400000-7903f6c00000 rw-p 00000000 00:00 0 -7903f6c00000-7903f6c08000 r--p 00000000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -7903f6c08000-7903f6c60000 r-xp 00008000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -7903f6c60000-7903f6c71000 r--p 00060000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -7903f6c71000-7903f6c72000 ---p 00071000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -7903f6c72000-7903f6c78000 r--p 00071000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -7903f6c78000-7903f6c79000 rw-p 00077000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -7903f6c79000-7903f6e83000 rw-p 00000000 00:00 0 -7903f6e83000-7903f6e84000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903f6e84000-7903f6e85000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7903f6e85000-7903f6e88000 r--p 00000000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -7903f6e88000-7903f6e8e000 r-xp 00003000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -7903f6e8e000-7903f6e90000 r--p 00009000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -7903f6e90000-7903f6e91000 r--p 0000a000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -7903f6e91000-7903f6e92000 rw-p 0000b000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -7903f6e92000-7903f6e98000 r--p 00000000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -7903f6e98000-7903f6ee2000 r-xp 00006000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -7903f6ee2000-7903f6f0c000 r--p 00050000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -7903f6f0c000-7903f6f0d000 r--p 00079000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -7903f6f0d000-7903f6f0e000 rw-p 0007a000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -7903f6f0e000-7903f6fcf000 r-xp 00000000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -7903f6fcf000-7903f6fd0000 r--p 000c0000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -7903f6fd0000-7903f6fdb000 rw-p 000c1000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -7903f6fdb000-7903f7000000 rw-p 00000000 00:00 0 -7903f7000000-7903f7f06000 r--p 00000000 103:03 10618858 /usr/lib/locale/locale-archive -7903f7f06000-7903f7f08000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7903f7f08000-7903f7f09000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7903f7f09000-7903f7f0a000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7903f7f0a000-7903f7f7a000 r-xp 00000000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -7903f7f7a000-7903f7f7b000 ---p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -7903f7f7b000-7903f7f80000 r--p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -7903f7f80000-7903f7f82000 rw-p 00075000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -7903f7f82000-7903f7f84000 rw-p 00000000 00:00 0 -7903f7f84000-7903f7fb0000 r--p 00000000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -7903f7fb0000-7903f7fe4000 r-xp 0002c000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -7903f7fe4000-7903f7ffe000 r--p 00060000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -7903f7ffe000-7903f7fff000 r--p 00079000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -7903f7fff000-7903f8000000 rw-p 0007a000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -7903f8000000-7903f8021000 rw-p 00000000 00:00 0 -7903f8021000-7903fc000000 ---p 00000000 00:00 0 -7903fc000000-7903fc007000 r--p 00000000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -7903fc007000-7903fc00d000 r-xp 00007000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -7903fc00d000-7903fc010000 r--p 0000d000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -7903fc010000-7903fc011000 ---p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -7903fc011000-7903fc012000 r--p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -7903fc012000-7903fc013000 rw-p 00011000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -7903fc013000-7903fc01e000 r--p 00000000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -7903fc01e000-7903fc027000 r-xp 0000b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -7903fc027000-7903fc02c000 r--p 00014000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -7903fc02c000-7903fc02d000 ---p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -7903fc02d000-7903fc02f000 r--p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -7903fc02f000-7903fc030000 rw-p 0001b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -7903fc030000-7903fc034000 ---p 00000000 00:00 0 -7903fc034000-7903fc130000 rw-p 00000000 00:00 0 -7903fc130000-7903fc134000 ---p 00000000 00:00 0 -7903fc134000-7903fc230000 rw-p 00000000 00:00 0 -7903fc230000-7903fc234000 ---p 00000000 00:00 0 -7903fc234000-7903fc330000 rw-p 00000000 00:00 0 -7903fc330000-7903fc3fe000 r-xp 00000000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -7903fc3fe000-7903fc3ff000 r--p 000cd000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -7903fc3ff000-7903fc400000 rw-p 000ce000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -7903fc400000-7903fc404000 ---p 00000000 00:00 0 -7903fc404000-7903fc500000 rw-p 00000000 00:00 0 -7903fc500000-7903fc504000 ---p 00000000 00:00 0 -7903fc504000-7903fc600000 rw-p 00000000 00:00 0 -7903fc600000-7903fc604000 ---p 00000000 00:00 0 -7903fc604000-7903fc700000 rw-p 00000000 00:00 0 -7903fc700000-7903fc704000 ---p 00000000 00:00 0 -7903fc704000-7903fc800000 rw-p 00000000 00:00 0 -7903fc800000-7903fc804000 ---p 00000000 00:00 0 -7903fc804000-7903fc900000 rw-p 00000000 00:00 0 -7903fc900000-7903fc904000 ---p 00000000 00:00 0 -7903fc904000-7903fca00000 rw-p 00000000 00:00 0 -7903fca00000-7903fea70000 rw-p 00000000 00:00 0 -7903fea70000-790406700000 ---p 00000000 00:00 0 -790406700000-790406704000 ---p 00000000 00:00 0 -790406704000-790406800000 rw-p 00000000 00:00 0 -790406800000-79040680e000 rw-p 00000000 00:00 0 -79040680e000-7904077a0000 ---p 00000000 00:00 0 -7904077a0000-7904077a1000 r--p 00000000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -7904077a1000-7904077a2000 r-xp 00001000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -7904077a2000-7904077a3000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -7904077a3000-7904077a4000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -7904077a4000-7904077a5000 rw-p 00003000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -7904077a5000-7904077a6000 r--p 00000000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -7904077a6000-7904077a7000 r-xp 00001000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -7904077a7000-7904077a8000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -7904077a8000-7904077a9000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -7904077a9000-7904077aa000 rw-p 00003000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -7904077aa000-7904077ac000 r--p 00000000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -7904077ac000-7904077ae000 r-xp 00002000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -7904077ae000-7904077af000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -7904077af000-7904077b0000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -7904077b0000-7904077b1000 rw-p 00005000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -7904077b1000-7904077b8000 r--s 00000000 103:03 11147989 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache -7904077b8000-7904077b9000 r--p 00000000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -7904077b9000-7904077bc000 r-xp 00001000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -7904077bc000-7904077bd000 r--p 00004000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -7904077bd000-7904077be000 ---p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -7904077be000-7904077bf000 r--p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -7904077bf000-7904077c0000 rw-p 00006000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -7904077c0000-7904077c3000 r--p 00000000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -7904077c3000-7904077c7000 r-xp 00003000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -7904077c7000-7904077c9000 r--p 00007000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -7904077c9000-7904077ca000 r--p 00008000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -7904077ca000-7904077cb000 rw-p 00009000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -7904077cb000-7904077cc000 r--p 00000000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -7904077cc000-7904077ce000 r-xp 00001000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -7904077ce000-7904077cf000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -7904077cf000-7904077d0000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -7904077d0000-7904077d1000 rw-p 00004000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -7904077d1000-7904077d3000 r--p 00000000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -7904077d3000-7904077d9000 r-xp 00002000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -7904077d9000-7904077db000 r--p 00008000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -7904077db000-7904077dc000 r--p 00009000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -7904077dc000-7904077dd000 rw-p 0000a000 103:03 11144225 /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 -7904077dd000-7904077de000 r--p 00000000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 -7904077de000-7904077df000 r-xp 00001000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 -7904077df000-7904077fe000 r--p 00002000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 -7904077fe000-7904077ff000 r--p 00020000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 -7904077ff000-790407800000 rw-p 00021000 103:03 11144513 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9 -790407800000-79040780e000 rw-p 00000000 00:00 0 -79040780e000-7904087a0000 ---p 00000000 00:00 0 -7904087a0000-7904087a1000 rw-s 00000000 00:06 1022 /dev/nvidia0 -7904087a1000-7904087a2000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7904087a2000-7904087a3000 rw-s 00000000 00:06 1017 /dev/nvidiactl -7904087a3000-7904087a4000 r--s 00000000 00:06 1017 /dev/nvidiactl -7904087a4000-7904087a5000 r--p 00000000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -7904087a5000-7904087a7000 r-xp 00001000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -7904087a7000-7904087a8000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -7904087a8000-7904087a9000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -7904087a9000-7904087aa000 rw-p 00004000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -7904087aa000-7904087ab000 r--p 00000000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 -7904087ab000-7904087b3000 r-xp 00001000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 -7904087b3000-7904087b6000 r--p 00009000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 -7904087b6000-7904087b7000 r--p 0000b000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 -7904087b7000-7904087b8000 rw-p 0000c000 103:03 11144515 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 -7904087b8000-7904087bd000 r--p 00000000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 -7904087bd000-7904087e6000 r-xp 00005000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 -7904087e6000-7904087f1000 r--p 0002e000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 -7904087f1000-7904087f2000 r--p 00038000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 -7904087f2000-7904087f3000 rw-p 00039000 103:03 11145680 /usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0 -7904087f3000-7904087f5000 r--p 00000000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -7904087f5000-7904087fc000 r-xp 00002000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -7904087fc000-7904087fe000 r--p 00009000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -7904087fe000-7904087ff000 r--p 0000a000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -7904087ff000-790408800000 rw-p 0000b000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -790408800000-790408ae0000 rwxp 00000000 00:00 0 -790408ae0000-79040fd37000 ---p 00000000 00:00 0 -79040fd37000-79040ffb7000 rwxp 00000000 00:00 0 -79040ffb7000-7904102c8000 ---p 00000000 00:00 0 -7904102c8000-790410538000 rwxp 00000000 00:00 0 -790410538000-790417800000 ---p 00000000 00:00 0 -790417800000-79041ffb5000 r--s 00000000 103:03 10498840 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/modules -79041ffb5000-79041ffb6000 rw-s 00000000 00:01 1028 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) -79041ffb6000-79041ffb8000 r--p 00000000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -79041ffb8000-79041ffbb000 r-xp 00002000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -79041ffbb000-79041ffbc000 r--p 00005000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -79041ffbc000-79041ffbd000 r--p 00006000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -79041ffbd000-79041ffbe000 rw-p 00007000 103:03 11144233 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 -79041ffbe000-79041ffc2000 r--p 00000000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -79041ffc2000-79041ffcf000 r-xp 00004000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -79041ffcf000-79041ffd2000 r--p 00011000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -79041ffd2000-79041ffd3000 ---p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -79041ffd3000-79041ffd4000 r--p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -79041ffd4000-79041ffd5000 rw-p 00015000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -79041ffd5000-79041ffd6000 rw-p 00000000 00:00 0 -79041ffd6000-79041ffe1000 r--p 00000000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -79041ffe1000-79041fff5000 r-xp 0000b000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -79041fff5000-79041fffe000 r--p 0001f000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -79041fffe000-79041ffff000 r--p 00027000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -79041ffff000-790420000000 rw-p 00028000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -790420000000-7904206b1000 rw-p 00000000 00:00 0 -7904206b1000-790424000000 ---p 00000000 00:00 0 -790424000000-790424001000 r--p 00000000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -790424001000-790424002000 r-xp 00001000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -790424002000-790424003000 r--p 00002000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -790424003000-790424004000 r--p 00003000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -790424004000-790424005000 rw-p 00004000 103:03 11144241 /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 -790424005000-790424007000 r--p 00000000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -790424007000-790424009000 r-xp 00002000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -790424009000-79042400b000 r--p 00004000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -79042400b000-79042400c000 r--p 00005000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -79042400c000-79042400d000 rw-p 00006000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -79042400d000-79042400e000 r--p 00000000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -79042400e000-790424010000 r-xp 00001000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -790424010000-790424011000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -790424011000-790424012000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -790424012000-790424013000 rw-p 00004000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -790424013000-790424015000 r--p 00000000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -790424015000-79042401c000 r-xp 00002000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -79042401c000-79042401e000 r--p 00009000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -79042401e000-79042401f000 r--p 0000a000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -79042401f000-790424020000 rw-p 0000b000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -790424020000-790424023000 r--p 00000000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -790424023000-79042402f000 r-xp 00003000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -79042402f000-790424032000 r--p 0000f000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -790424032000-790424033000 r--p 00011000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -790424033000-790424034000 rw-p 00012000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -790424034000-790424072000 r-xp 00000000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -790424072000-790424073000 ---p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -790424073000-790424074000 r--p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -790424074000-790424075000 rw-p 0003f000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -790424075000-790424076000 ---p 00000000 00:00 0 -790424076000-790424176000 rw-p 00000000 00:00 0 -790424176000-790424177000 ---p 00000000 00:00 0 -790424177000-790424277000 rw-p 00000000 00:00 0 -790424277000-790424394000 rw-p 00000000 00:00 0 -790424394000-790424395000 ---p 00000000 00:00 0 -790424395000-790424495000 rw-p 00000000 00:00 0 -790424495000-790424496000 ---p 00000000 00:00 0 -790424496000-790424596000 rw-p 00000000 00:00 0 -790424596000-790424d9e000 rw-p 00000000 00:00 0 -790424d9e000-790424d9f000 ---p 00000000 00:00 0 -790424d9f000-790424e9f000 rw-p 00000000 00:00 0 -790424e9f000-790424ea0000 ---p 00000000 00:00 0 -790424ea0000-790424fa0000 rw-p 00000000 00:00 0 -790424fa0000-790424fa1000 ---p 00000000 00:00 0 -790424fa1000-7904250a1000 rw-p 00000000 00:00 0 -7904250a1000-79042592f000 rw-p 00000000 00:00 0 -79042592f000-790425a15000 ---p 00000000 00:00 0 -790425a15000-790425a1b000 rw-p 00000000 00:00 0 -790425a1b000-790425b00000 ---p 00000000 00:00 0 -790425b00000-790425b04000 ---p 00000000 00:00 0 -790425b04000-790425c00000 rw-p 00000000 00:00 0 -790425c00000-790426f30000 r-xp 00000000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so -790426f30000-790427000000 r--p 0132f000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so -790427000000-79042702e000 rw-p 013ff000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so -79042702e000-7904270a4000 rw-p 00000000 00:00 0 -7904270a4000-7904270a5000 rw-s 00000000 00:01 668325 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=4096 (deleted) -7904270a5000-7904270a9000 r--p 00000000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -7904270a9000-7904270b4000 r-xp 00004000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -7904270b4000-7904270b8000 r--p 0000f000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -7904270b8000-7904270b9000 r--p 00012000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -7904270b9000-7904270ba000 rw-p 00013000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -7904270ba000-7904270bb000 rw-s 00000000 00:01 668324 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) -7904270bb000-7904270bc000 rw-s 00000000 00:01 668323 /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) -7904270bc000-7904270bd000 r-xp 00000000 00:00 0 -7904270bd000-7904270be000 r--p 00000000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -7904270be000-7904270bf000 r-xp 00001000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -7904270bf000-7904270c0000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -7904270c0000-7904270c1000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -7904270c1000-7904270c2000 rw-p 00003000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -7904270c2000-7904270c3000 r--p 00000000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -7904270c3000-7904270c6000 r-xp 00001000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -7904270c6000-7904270c7000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -7904270c7000-7904270c8000 r--p 00004000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -7904270c8000-7904270c9000 rw-p 00005000 103:03 11144267 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 -7904270c9000-7904270cb000 r--p 00000000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -7904270cb000-7904270d2000 r-xp 00002000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -7904270d2000-7904270d4000 r--p 00009000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -7904270d4000-7904270d5000 r--p 0000a000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -7904270d5000-7904270d6000 rw-p 0000b000 103:03 11144249 /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 -7904270d6000-7904270d7000 r-xp 00000000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so -7904270d7000-7904270d8000 ---p 00001000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so -7904270d8000-7904270d9000 r--p 00001000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so -7904270d9000-7904270da000 rw-p 00002000 103:03 10498817 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libprefs.so -7904270da000-790427119000 rw-p 00000000 00:00 0 -790427119000-790427127000 r--p 00000000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -790427127000-7904271a3000 r-xp 0000e000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -7904271a3000-7904271fe000 r--p 0008a000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -7904271fe000-7904271ff000 r--p 000e4000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -7904271ff000-790427200000 rw-p 000e5000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -790427200000-790427228000 r--p 00000000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -790427228000-7904273bd000 r-xp 00028000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -7904273bd000-790427415000 r--p 001bd000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -790427415000-790427416000 ---p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -790427416000-79042741a000 r--p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -79042741a000-79042741c000 rw-p 00219000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -79042741c000-790427429000 rw-p 00000000 00:00 0 -790427429000-79042742b000 r--p 00000000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -79042742b000-79042742e000 r-xp 00002000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -79042742e000-79042742f000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -79042742f000-790427430000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -790427430000-790427431000 rw-p 00006000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -790427431000-790427432000 rw-p 00000000 00:00 0 -790427432000-790427433000 r-xp 0005e000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -790427433000-790427434000 rw-p 00000000 00:00 0 -790427434000-79042743f000 r-xp 00000000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -79042743f000-790427440000 ---p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -790427440000-790427441000 r--p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -790427441000-790427442000 rw-p 0000c000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -790427442000-790427455000 r-xp 00000000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -790427455000-790427456000 ---p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -790427456000-790427457000 r--p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -790427457000-790427458000 rw-p 00014000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -790427458000-790427497000 rw-p 00000000 00:00 0 -790427497000-7904274b7000 r-xp 00000000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -7904274b7000-7904274b8000 r--p 0001f000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -7904274b8000-7904274b9000 rw-p 00020000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -7904274b9000-7904274ba000 rw-p 00000000 00:00 0 -7904274ba000-7904274d8000 r-xp 00000000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -7904274d8000-7904274da000 r--p 0001d000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -7904274da000-7904274db000 rw-p 0001f000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -7904274db000-7904274dc000 r--p 00000000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -7904274dc000-7904274dd000 r-xp 00001000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -7904274dd000-7904274de000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -7904274de000-7904274df000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -7904274df000-7904274e0000 rw-p 00003000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -7904274e0000-7904274e4000 rw-p 00000000 00:00 0 -7904274e4000-7904274e5000 r--p 00000000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -7904274e5000-7904274e6000 r-xp 00001000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -7904274e6000-7904274e7000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -7904274e7000-7904274e8000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -7904274e8000-7904274e9000 rw-p 00003000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -7904274e9000-7904274ea000 r--p 00000000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -7904274ea000-7904274eb000 r-xp 00001000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -7904274eb000-7904274ec000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -7904274ec000-7904274ed000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -7904274ed000-7904274ee000 rw-p 00003000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -7904274ee000-7904274f0000 r--p 00000000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -7904274f0000-790427501000 r-xp 00002000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -790427501000-790427507000 r--p 00013000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -790427507000-790427508000 ---p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -790427508000-790427509000 r--p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -790427509000-79042750a000 rw-p 0001a000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -79042750a000-790427511000 r-xp 00000000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -790427511000-790427512000 ---p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -790427512000-790427513000 r--p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -790427513000-790427514000 rw-p 00008000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -790427514000-790427519000 rw-p 00000000 00:00 0 -790427519000-790427520000 ---p 00000000 00:00 0 -790427520000-790427528000 rw-s 00000000 103:03 4325444 /tmp/hsperfdata_codex/85657 -790427528000-790427529000 ---p 00000000 00:00 0 -790427529000-79042752a000 r--p 00000000 00:00 0 -79042752a000-790427539000 r-xp 00000000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so -790427539000-79042753a000 r--p 0000e000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so -79042753a000-79042753b000 rw-p 0000f000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so -79042753b000-79042753d000 rw-p 00000000 00:00 0 -79042753d000-790427541000 r--p 00000000 00:00 0 [vvar] -790427541000-790427543000 r-xp 00000000 00:00 0 [vdso] -790427543000-790427545000 r--p 00000000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -790427545000-79042756f000 r-xp 00002000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -79042756f000-79042757a000 r--p 0002c000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -79042757a000-79042757b000 ---p 00000000 00:00 0 -79042757b000-79042757d000 r--p 00037000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -79042757d000-79042757f000 rw-p 00039000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -7fffd44b6000-7fffd44d9000 rw-p 00000000 00:00 0 [stack] -ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall] -Total number of mappings: 921 - - -VM Arguments: -jvm_args: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -java_command: jme3test.vulkan.VulkanTest -java_class_path (initial): /home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/java/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/groovy/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/resources/main:/home/codex/java/prj/jmonkeyengine/jme3-lwjgl3/build/libs/jme3-lwjgl3-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-desktop/build/libs/jme3-desktop-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-effects/build/libs/jme3-effects-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jbullet/build/libs/jme3-jbullet-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jogg/build/libs/jme3-jogg-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-networking/build/libs/jme3-networking-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-niftygui/build/libs/jme3-niftygui-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins/build/libs/jme3-plugins-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-terrain/build/libs/jme3-terrain-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-awt-dialogs/build/libs/jme3-awt-dialogs-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-core/build/libs/jme3-core-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json-gson/build/libs/jme3-plugins-json-gson-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json/build/libs/jme3-plugins-json-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-testdata/build/libs/jme3-testdata-null-SNAPSHOT.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-examples/1.4.3/4a41c559851c0c5a77ba3a9d1ccc8e6e92207dc7/nifty-examples-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjglx/lwjgl3-awt/0.2.3/2be63e81d6b73300d8203ce7235b2660c62eb3ea/lwjgl3-awt-0.2.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/7119f7d0eeb1e5502ff0ca71d2b4d47317da015/lwjgl-glfw-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/99ef08056feb9627f90425a4d2a22cd9fae8e39b/lwjgl-glfw-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/cfa8f1e96d572ed56da5945adf5167628f5eecdb/lwjgl-glfw-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/797e0965709ad180d9b00c88a086dbda15002203/lwjgl-glfw-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/671adf04a6bc4f792af13892e37f804be30b7070/lwjgl-glfw-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/b54023af492b4c2c72451f3a7aa0f385e9969474/lwjgl-glfw-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/82c8d748a654241b5961ddd1c098e8b648e38a48/lwjgl-glfw-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/399b42b491c5dfa6595ae6fd79dcba61b93538a7/lwjgl-glfw-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jawt/3.3.6/43299e222bd7db5e99254a8e620330954b73c2a6/lwjgl-jawt-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/245910eb57f2444429c74e6bf96030e5ec0a6739/lwjgl-jemalloc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/f9da76351e14a695be172d6915c8a7b2905307f/lwjgl-jemalloc-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c86043a342a33e5d32fabf962578580633db3c6e/lwjgl-jemalloc-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/26f8b467dc2e0f3000d608de3564b572bb46f927/lwjgl-jemalloc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c484cae39a718010dbc7931fe5e12664600a13c2/lwjgl-jemalloc-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1bc2e16e70df7f418d668c2984ac8066f1f6f5b1/lwjgl-jemalloc-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/9a42df0f2e9747815490311d7db7b4a046d5f40/lwjgl-jemalloc-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1f828c1fc06792475850162725433adf5ad001c0/lwjgl-jemalloc-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ad313317ff399fd2a7f4dd74716a68cf3976c6ad/lwjgl-openal-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/9c2b9b660e085bb0b47a4453dc0e26f24a5475e4/lwjgl-openal-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/82f693541d69aa125750bf8be9c4194435c56f03/lwjgl-openal-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ef356c04ef141d4efbde07793f31784f1f1a1bae/lwjgl-openal-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/7830af894fa110e65bf5075deb9183efbdbc50f5/lwjgl-openal-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/fd2c17603c63e8d543cb57d1db77ebd4574f3b7a/lwjgl-openal-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/c39f6827f0bd97601fc4e389801d5c813f59a5f2/lwjgl-openal-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/13f692aec4ae4b2d3c468aa0008472175f0ea1e0/lwjgl-openal-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opencl/3.3.6/93fdcea16d27b1466450e38dc28c8e1b4819ec25/lwjgl-opencl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ac2532612a4df374e9a9282bcf8ce2573018ebbb/lwjgl-opengl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/18dc639ebc94aa5202c2157f7490d28997b697c5/lwjgl-opengl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b0ab1d0e315d2fcc50d6cab7e8feaf4688d5d9a0/lwjgl-opengl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b8dc6467fe232d552793c53dc56f9fa8a385299c/lwjgl-opengl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ee815fbf454b916f13c10fff62e513eb09042ef0/lwjgl-opengl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/44de180f79e0b45c9e5bee10ca7540dcb5ddd373/lwjgl-opengl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/59f708eb4bf0be0204bbc9c06807911724673db6/lwjgl-opengl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/fee4fb2ee786af6530b6f9188205a76bc4e05268/lwjgl-opengl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-vulkan/3.3.6/a403e0931b03b138854bb2ba9c48dab646cba6d8/lwjgl-vulkan-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/9d0964fe2b75f64d9dab9839c2b059b7e8f71115/lwjgl-shaderc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/ab69a0e011f057ed25857c97fa3c87f20ab8f670/lwjgl-shaderc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/ce7721d30cfaf47feaed10213e0c43eb55c49d68/lwjgl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9a29b6a22fc5184604b8cb434ee5d5ecc4bfcbee/lwjgl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/7a6f04e02429ba2f4bda9be191347bb7d3c71127/lwjgl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/dc7db8fc4f1e6563867f9155b9a42d9c73d8992f/lwjgl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/2c9d698e76c3d0fe307d94cc6f428038492f25df/lwjgl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9eeb8887b5e3aa672efd2e1b0973ffa5891a3151/lwjgl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/f14e7a5289d2355822f4f83b3fd38d158c939acd/lwjgl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/832e2964ce74e02e768814a29c06d60645115b9a/lwjgl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/jbullet/1.0.3/362f53e8aa981037c2523ac24eb4d9b190a49036/jbullet-1.0.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/javax.vecmath/vecmath/1.5.2/fd17bc3e67f909573dfc039d8e2abecf407c4e27/vecmath-1.5.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/j-ogg-vorbis/1.0.6/a69d1cf62eaf75b71af61f9c23265d278a966735/j-ogg-vorbis-1.0.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-default-controls/1.4.3/2ccafe0182a73da87657ca24b639b6e8c1accd50/nifty-default-controls-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty/1.4.3/fa9ac16e00d1b375d10f58d1c1eb576950ae8c9d/nifty-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-style-black/1.4.3/c20a02dbdeb0bd9d2be258955fceb55c13185a8/nifty-style-black-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.9.1/2cc2131b98ebfb04e2b2c7dfb84431f4045096b/gson-2.9.1.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/stack-alloc/1.0.2/13cbb10c01ec09d0f5879f988946a97998175dfc/stack-alloc-1.0.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/xpp3/xpp3/1.1.4c/9b988ea84b9e4e9f1874e390ce099b8ac12cfff5/xpp3-1.1.4c.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/2.0.2/516c03b21d50a644d538de0f0369c620989cd8f0/jsr305-2.0.2.jar -Launcher Type: SUN_STANDARD - -[Global flags] - intx CICompilerCount = 4 {product} {ergonomic} - uint ConcGCThreads = 2 {product} {ergonomic} - uint G1ConcRefinementThreads = 8 {product} {ergonomic} - size_t G1HeapRegionSize = 4194304 {product} {ergonomic} - size_t InitialHeapSize = 524288000 {product} {ergonomic} - size_t MarkStackSize = 4194304 {product} {ergonomic} - size_t MarkStackSizeMax = 536870912 {product} {ergonomic} - size_t MaxHeapSize = 8388608000 {product} {ergonomic} - size_t MaxNewSize = 5033164800 {product} {ergonomic} - size_t MinHeapDeltaBytes = 4194304 {product} {ergonomic} - size_t MinHeapSize = 8388608 {product} {ergonomic} - uintx NonNMethodCodeHeapSize = 5836800 {pd product} {ergonomic} - uintx NonProfiledCodeHeapSize = 122912768 {pd product} {ergonomic} - uintx ProfiledCodeHeapSize = 122908672 {pd product} {ergonomic} - uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} - bool SegmentedCodeCache = true {product} {ergonomic} - size_t SoftMaxHeapSize = 8388608000 {manageable} {ergonomic} - bool UseCompressedOops = true {product lp64_product} {ergonomic} - bool UseG1GC = true {product} {ergonomic} - -Logging: -Log output configuration: - #0: stdout all=warning uptime,level,tags foldmultilines=false - #1: stderr all=off uptime,level,tags foldmultilines=false - -Environment Variables: -PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin -USERNAME=codex -SHELL=/bin/bash -DISPLAY=:1 -LANG=en_US.UTF-8 - -Active Locale: -LC_ALL=en_US.UTF-8 -LC_COLLATE=en_US.UTF-8 -LC_CTYPE=en_US.UTF-8 -LC_MESSAGES=en_US.UTF-8 -LC_MONETARY=en_US.UTF-8 -LC_NUMERIC=en_US.UTF-8 -LC_TIME=en_US.UTF-8 - -Signal Handlers: - SIGSEGV: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGBUS: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGFPE: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGPIPE: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGXFSZ: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGILL: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGUSR2: SR_handler in libjvm.so, mask=00000000000000000000000000000000, flags=SA_RESTART|SA_SIGINFO, blocked - SIGHUP: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGINT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGTERM: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGQUIT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGTRAP: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - - -Periodic native trim disabled - ---------------- S Y S T E M --------------- - -OS: -DISTRIB_ID=Pop -DISTRIB_RELEASE=22.04 -DISTRIB_CODENAME=jammy -DISTRIB_DESCRIPTION="Pop!_OS 22.04 LTS" -uname: Linux 6.9.3-76060903-generic #202405300957~1726766035~22.04~4092a0e SMP PREEMPT_DYNAMIC Thu S x86_64 -OS uptime: 0 days 15:18 hours -libc: glibc 2.35 NPTL 2.35 -rlimit (soft/hard): STACK 8192k/infinity , CORE 0k/infinity , NPROC 127655/127655 , NOFILE 1048576/1048576 , AS infinity/infinity , CPU infinity/infinity , DATA infinity/infinity , FSIZE infinity/infinity , MEMLOCK 4095956k/4095956k -load average: 1.41 1.57 1.15 - -/proc/meminfo: -MemTotal: 32767652 kB -MemFree: 20134740 kB -MemAvailable: 23540972 kB -Buffers: 347504 kB -Cached: 5014736 kB -SwapCached: 0 kB -Active: 8818268 kB -Inactive: 2816324 kB -Active(anon): 6307560 kB -Inactive(anon): 0 kB -Active(file): 2510708 kB -Inactive(file): 2816324 kB -Unevictable: 15204 kB -Mlocked: 72 kB -SwapTotal: 20970996 kB -SwapFree: 20970996 kB -Zswap: 0 kB -Zswapped: 0 kB -Dirty: 324 kB -Writeback: 0 kB -AnonPages: 6287800 kB -Mapped: 1828896 kB -Shmem: 35208 kB -KReclaimable: 197260 kB -Slab: 386392 kB -SReclaimable: 197260 kB -SUnreclaim: 189132 kB -KernelStack: 22880 kB -PageTables: 54428 kB -SecPageTables: 0 kB -NFS_Unstable: 0 kB -Bounce: 0 kB -WritebackTmp: 0 kB -CommitLimit: 37354820 kB -Committed_AS: 12325568 kB -VmallocTotal: 34359738367 kB -VmallocUsed: 252400 kB -VmallocChunk: 0 kB -Percpu: 9472 kB -HardwareCorrupted: 0 kB -AnonHugePages: 0 kB -ShmemHugePages: 6144 kB -ShmemPmdMapped: 0 kB -FileHugePages: 0 kB -FilePmdMapped: 0 kB -Unaccepted: 0 kB -HugePages_Total: 0 -HugePages_Free: 0 -HugePages_Rsvd: 0 -HugePages_Surp: 0 -Hugepagesize: 2048 kB -Hugetlb: 0 kB -DirectMap4k: 851768 kB -DirectMap2M: 15826944 kB -DirectMap1G: 16777216 kB - -/sys/kernel/mm/transparent_hugepage/enabled: always [madvise] never -/sys/kernel/mm/transparent_hugepage/hpage_pmd_size: 2097152 -/sys/kernel/mm/transparent_hugepage/shmem_enabled: always within_size advise [never] deny force -/sys/kernel/mm/transparent_hugepage/defrag (defrag/compaction efforts parameter): always defer defer+madvise [madvise] never - -Process Memory: -Virtual Size: 13446916K (peak: 13510788K) -Resident Set Size: 317340K (peak: 317340K) (anon: 171248K, file: 145068K, shmem: 1024K) -Swapped out: 0K -C-Heap outstanding allocations: 79001K, retained: 32298K -glibc malloc tunables: (default) - -/proc/sys/kernel/threads-max (system-wide limit on the number of threads): 255310 -/proc/sys/vm/max_map_count (maximum number of memory map areas a process may have): 2147483642 -/proc/sys/vm/swappiness (control to define how aggressively the kernel swaps out anonymous memory): 180 -/proc/sys/kernel/pid_max (system-wide limit on number of process identifiers): 4194304 - -container (cgroup) information: -container_type: cgroupv2 -cpu_cpuset_cpus: not supported -cpu_memory_nodes: not supported -active_processor_count: 8 -cpu_quota: not supported -cpu_period: not supported -cpu_shares: not supported -memory_limit_in_bytes: unlimited -memory_and_swap_limit_in_bytes: unlimited -memory_soft_limit_in_bytes: 0 -memory_usage_in_bytes: 5982148 k -memory_max_usage_in_bytes: not supported -rss_usage_in_bytes: 3571588 k -cache_usage_in_bytes: 2327152 k -memory_swap_current_in_bytes: 0 -memory_swap_max_limit_in_bytes: unlimited -maximum number of tasks: 38296 -current number of tasks: 328 - -Steal ticks since vm start: 0 -Steal ticks percentage since vm start: 0.000 - -CPU: total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 158 stepping 9 microcode 0xf8, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, adx, fma, vzeroupper, clflush, clflushopt, rdtscp, f16c -CPU Model and flags from /proc/cpuinfo: -model name : Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities - -Online cpus: 0-7 -Offline cpus: -BIOS frequency limitation: -Frequency switch latency (ns): 0 -Available cpu frequencies: -Current governor: powersave -Core performance/turbo boost: - -Memory: 4k page, physical 32767652k(23540972k free), swap 20970996k(20970996k free) -Page Sizes: 4k - -vm_info: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58) for linux-amd64 JRE (23.0.2+7-58), built on 2024-11-29T09:34:55Z with gcc 13.2.0 - -END. diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java index f374d7f5a8..640b7ec879 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java @@ -2,20 +2,21 @@ import com.jme3.app.SimpleApplication; import com.jme3.material.RenderState; +import com.jme3.renderer.vulkan.VulkanUtils; import com.jme3.shaderc.ShaderType; import com.jme3.shaderc.ShadercLoader; import com.jme3.system.AppSettings; import com.jme3.system.vulkan.LwjglVulkanContext; import com.jme3.vulkan.*; +import com.jme3.vulkan.Queue; +import org.lwjgl.PointerBuffer; import org.lwjgl.glfw.GLFW; import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryUtil; import org.lwjgl.vulkan.*; import java.nio.IntBuffer; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; import java.util.logging.Level; import static com.jme3.renderer.vulkan.VulkanUtils.*; @@ -24,21 +25,22 @@ import static org.lwjgl.vulkan.EXTDebugUtils.VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT; import static org.lwjgl.vulkan.VK13.*; -public class VulkanHelperTest extends SimpleApplication { +public class VulkanHelperTest extends SimpleApplication implements SwapchainUpdater { private VulkanInstance instance; private Surface surface; private LogicalDevice device; private SimpleQueueFamilies queues; private Swapchain swapchain; - private List swapchainImages; private ShaderModule vertModule, fragModule; private PipelineLayout pipelineLayout; private RenderPass renderPass; private GraphicsPipeline pipeline; - private final List frameBuffers = new ArrayList<>(); - private CommandBuffer graphicsCommands; + private CommandPool graphicsPool; private VulkanRenderManager renderer; + private boolean swapchainResizeFlag = false; + + private final Collection deviceExtensions = new ArrayList<>(); private long debugMessenger = NULL; private final VkDebugUtilsMessengerCallbackEXT debugCallback = new VulkanDebugCallback(Level.SEVERE); @@ -56,6 +58,8 @@ public static void main(String[] args) { @Override public void simpleInitApp() { + assetManager.registerLoader(ShadercLoader.class, "glsl"); + deviceExtensions.add(KHRSwapchain.VK_KHR_SWAPCHAIN_EXTENSION_NAME); long window = ((LwjglVulkanContext)context).getWindowHandle(); try (InstanceBuilder inst = new InstanceBuilder(VK13.VK_API_VERSION_1_3)) { inst.addGlfwExtensions(); @@ -70,20 +74,20 @@ public void simpleInitApp() { surface = new Surface(instance, window); PhysicalDevice physDevice = PhysicalDevice.getPhysicalDevice( instance.getNativeObject(), - Arrays.asList(surface, DeviceEvaluator.extensions(inst.getNamedExtensions()), DeviceEvaluator.swapchain(surface)), + Arrays.asList(surface, DeviceEvaluator.extensions(deviceExtensions), DeviceEvaluator.swapchain(surface)), () -> new SimpleQueueFamilies(surface)); queues = physDevice.getQueueFamilies(); - device = new LogicalDevice(physDevice, inst.getExtensions(), inst.getLayers()); + PointerBuffer deviceExts = VulkanUtils.toPointers(inst.getStack(), deviceExtensions, inst.getStack()::UTF8); + device = new LogicalDevice(physDevice, deviceExts, inst.getLayers()); physDevice.getQueueFamilies().createQueues(device); try (SimpleSwapchainSupport support = new SimpleSwapchainSupport(physDevice, surface, window)) { swapchain = new Swapchain(device, surface, support); } } - swapchainImages = swapchain.createViews(); vertModule = new ShaderModule(device, assetManager.loadAsset(ShadercLoader.key( "Shaders/VulkanVertTest.glsl", ShaderType.Vertex)), "main"); fragModule = new ShaderModule(device, assetManager.loadAsset(ShadercLoader.key( - "Shader/VulkanFragTest.glsl", ShaderType.Fragment)), "main"); + "Shaders/VulkanFragTest.glsl", ShaderType.Fragment)), "main"); pipelineLayout = new PipelineLayout(device); try (RenderPassBuilder pass = new RenderPassBuilder()) { int color = pass.createAttachment(a -> a @@ -112,13 +116,10 @@ public void simpleInitApp() { .dstAccessMask(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT); renderPass = pass.build(device); } + swapchain.createFrameBuffers(renderPass); pipeline = new GraphicsPipeline(device, pipelineLayout, renderPass, new RenderState(), vertModule, fragModule); - for (ImageView v : swapchainImages) { - frameBuffers.add(new FrameBuffer(device, renderPass, - swapchain.getExtent().width(), swapchain.getExtent().height(), 1, v)); - } - CommandPool graphicsPool = new CommandPool(device, queues.getGraphicsQueue(), false, true); - graphicsCommands = graphicsPool.allocateCommandBuffer(); + graphicsPool = new CommandPool(device, queues.getGraphicsQueue(), false, true); + //graphicsCommands = graphicsPool.allocateCommandBuffer(); renderer = new VulkanRenderManager(2, Frame::new); } @@ -132,6 +133,29 @@ public void stop() { super.stop(); } + @Override + public boolean swapchainOutOfDate(Swapchain swapchain, int imageAcquireCode) { + if (swapchainResizeFlag || imageAcquireCode == KHRSwapchain.VK_ERROR_OUT_OF_DATE_KHR + || imageAcquireCode == KHRSwapchain.VK_SUBOPTIMAL_KHR) { + swapchainResizeFlag = false; + long window = ((LwjglVulkanContext)context).getWindowHandle(); + try (SimpleSwapchainSupport support = new SimpleSwapchainSupport(device.getPhysicalDevice(), surface, window)) { + swapchain.reload(support); + swapchain.createFrameBuffers(renderPass); + } + return true; + } + if (imageAcquireCode != VK_SUCCESS) { + throw new RuntimeException("Failed to acquire swapchain image."); + } + return false; + } + + @Override + public void reshape(int w, int h) { + swapchainResizeFlag = true; + } + @Override public void simpleUpdate(float tpf) { renderer.render(tpf); @@ -159,6 +183,7 @@ private void createDebugMessenger(MemoryStack stack) { private class Frame implements Runnable { private final int index; + private final CommandBuffer graphicsCommands = graphicsPool.allocateCommandBuffer(); private final Semaphore imageAvailable = new Semaphore(device); private final Semaphore renderFinished = new Semaphore(device); private final Fence inFlight = new Fence(device, true); @@ -169,22 +194,26 @@ private Frame(int index) { @Override public void run() { - inFlight.blockThenReset(5000); - Swapchain.SwapchainImage image = swapchain.acquireNextImage(imageAvailable, null, 5000); + inFlight.block(5000); + Swapchain.SwapchainImage image = swapchain.acquireNextImage(VulkanHelperTest.this, imageAvailable, null, 5000); + if (image == null) { + return; + } + inFlight.reset(); graphicsCommands.reset(); graphicsCommands.begin(); - renderPass.begin(graphicsCommands, frameBuffers.get(index)); + renderPass.begin(graphicsCommands, image.getFrameBuffer()); pipeline.bind(graphicsCommands); try (MemoryStack stack = MemoryStack.stackPush()) { VkViewport.Buffer vp = VkViewport.calloc(1, stack) .x(0f).y(0f) - .width(swapchain.getExtent().width()) - .height(swapchain.getExtent().height()) + .width(swapchain.getExtent().getX()) + .height(swapchain.getExtent().getY()) .minDepth(0f).maxDepth(1f); vkCmdSetViewport(graphicsCommands.getBuffer(), 0, vp); VkRect2D.Buffer scissor = VkRect2D.calloc(1, stack); scissor.offset().set(0, 0); - scissor.extent(swapchain.getExtent()); + scissor.extent(swapchain.getExtent().toStruct(stack)); vkCmdSetScissor(graphicsCommands.getBuffer(), 0, scissor); } vkCmdDraw(graphicsCommands.getBuffer(), 3, 1, 0, 0); @@ -254,7 +283,13 @@ public boolean isComplete() { @Override public IntBuffer getSwapchainConcurrentBuffers(MemoryStack stack) { - return null; + if (Objects.equals(graphicsIndex, presentIndex)) { + return null; + } + IntBuffer buf = stack.mallocInt(NUM_QUEUES); + buf.put(0, graphicsIndex); + buf.put(1, presentIndex); + return buf; } public Queue getGraphicsQueue() { @@ -316,15 +351,13 @@ public VkExtent2D selectExtent() { if (caps.currentExtent().width() != UINT32_MAX) { return caps.currentExtent(); } - try (MemoryStack stack = MemoryStack.stackPush()) { - IntBuffer width = stack.mallocInt(1); - IntBuffer height = stack.mallocInt(1); - GLFW.glfwGetFramebufferSize(window, width, height); - VkExtent2D ext = VkExtent2D.malloc(stack); - ext.width(Math.min(Math.max(width.get(0), caps.minImageExtent().width()), caps.maxImageExtent().width())); - ext.height(Math.min(Math.max(width.get(0), caps.minImageExtent().height()), caps.maxImageExtent().height())); - return ext; - } + IntBuffer width = stack.mallocInt(1); + IntBuffer height = stack.mallocInt(1); + GLFW.glfwGetFramebufferSize(window, width, height); + VkExtent2D ext = VkExtent2D.malloc(stack); + ext.width(Math.min(Math.max(width.get(0), caps.minImageExtent().width()), caps.maxImageExtent().width())); + ext.height(Math.min(Math.max(width.get(0), caps.minImageExtent().height()), caps.maxImageExtent().height())); + return ext; } @Override diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java index 49133a1c8b..cf97770299 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java @@ -594,6 +594,7 @@ public void run() { .pImageIndices(stack.ints(image)); check(KHRSwapchain.vkQueuePresentKHR(presentQueue, present), "Failed to present image to swapchain"); System.out.println("end frame render commands"); + BufferUtils bufutils; } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandBuffer.java index 621467db72..039b7738fa 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandBuffer.java @@ -20,31 +20,35 @@ public class CommandBuffer { public CommandBuffer(CommandPool pool) { this.pool = pool; - VkCommandBufferAllocateInfo allocate = VkCommandBufferAllocateInfo.create() - .sType(VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO) - .commandPool(pool.getNativeObject()) - .level(VK_COMMAND_BUFFER_LEVEL_PRIMARY) - .commandBufferCount(1); - PointerBuffer ptr = MemoryUtil.memAllocPointer(1); - check(vkAllocateCommandBuffers(pool.getDevice().getNativeObject(), allocate, ptr), - "Failed to allocate command buffer"); - buffer = new VkCommandBuffer(ptr.get(0), pool.getDevice().getNativeObject()); - allocate.close(); - MemoryUtil.memFree(ptr); + try (MemoryStack stack = MemoryStack.stackPush()) { + VkCommandBufferAllocateInfo allocate = VkCommandBufferAllocateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO) + .commandPool(pool.getNativeObject()) + .level(VK_COMMAND_BUFFER_LEVEL_PRIMARY) + .commandBufferCount(1); + PointerBuffer ptr = stack.mallocPointer(1); + check(vkAllocateCommandBuffers(pool.getDevice().getNativeObject(), allocate, ptr), + "Failed to allocate command buffer"); + buffer = new VkCommandBuffer(ptr.get(0), pool.getDevice().getNativeObject()); + } } public void begin() { if (recording) { throw new IllegalStateException("Command buffer already recording."); } - VkCommandBufferBeginInfo begin = VkCommandBufferBeginInfo.create() - .sType(VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO); - check(vkBeginCommandBuffer(buffer, begin), "Failed to begin command buffer"); - begin.close(); - recording = true; + try (MemoryStack stack = MemoryStack.stackPush()) { + VkCommandBufferBeginInfo begin = VkCommandBufferBeginInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO); + check(vkBeginCommandBuffer(buffer, begin), "Failed to begin command buffer"); + recording = true; + } } public void end() { + if (!recording) { + throw new IllegalStateException("Command buffer has not begun recording."); + } check(vkEndCommandBuffer(buffer), "Failed to record command buffer"); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandPool.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandPool.java index aca0119358..0242a2e0bc 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandPool.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandPool.java @@ -2,6 +2,7 @@ import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; +import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryUtil; import org.lwjgl.vulkan.VkCommandPoolCreateInfo; @@ -15,38 +16,40 @@ public class CommandPool implements Native { private final LogicalDevice device; private final Queue queue; private final NativeReference ref; - private LongBuffer id = MemoryUtil.memAllocLong(1); + private long id; public CommandPool(LogicalDevice device, Queue queue, boolean isTransient, boolean reset) { this.device = device; this.queue = queue; - VkCommandPoolCreateInfo create = VkCommandPoolCreateInfo.create() - .sType(VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO) - .flags((isTransient ? VK_COMMAND_POOL_CREATE_TRANSIENT_BIT : 0) - | (reset ? VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT : 0)) - .queueFamilyIndex(queue.getFamilyIndex()); - check(vkCreateCommandPool(device.getNativeObject(), create, null, id), "Failed to create command pool."); - create.close(); + try (MemoryStack stack = MemoryStack.stackPush()) { + VkCommandPoolCreateInfo create = VkCommandPoolCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO) + .flags((isTransient ? VK_COMMAND_POOL_CREATE_TRANSIENT_BIT : 0) + | (reset ? VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT : 0)) + .queueFamilyIndex(queue.getFamilyIndex()); + LongBuffer idBuf = stack.mallocLong(1); + check(vkCreateCommandPool(device.getNativeObject(), create, null, idBuf), "Failed to create command pool."); + id = idBuf.get(0); + } ref = Native.get().register(this); device.getNativeReference().addDependent(ref); } @Override public Long getNativeObject() { - return id != null ? id.get(0) : null; + return id; } @Override public Runnable createNativeDestroyer() { return () -> { - vkDestroyCommandPool(device.getNativeObject(), id.get(0), null); - MemoryUtil.memFree(id); + vkDestroyCommandPool(device.getNativeObject(), id, null); }; } @Override public void prematureNativeDestruction() { - id = null; + id = VK_NULL_HANDLE; } @Override diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/DeviceEvaluator.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/DeviceEvaluator.java index 44e9ed7925..431b2954bd 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/DeviceEvaluator.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/DeviceEvaluator.java @@ -1,5 +1,6 @@ package com.jme3.vulkan; +import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkExtensionProperties; import java.util.Arrays; @@ -31,10 +32,19 @@ public DeviceExtensionSupport(Collection extensions) { @Override public Float evaluateDevice(PhysicalDevice device) { - VkExtensionProperties.Buffer exts = device.getExtensions(); - if (extensions.stream().allMatch(e -> exts.stream().anyMatch( - p -> p.extensionNameString().equals(e)))) return 0f; - return null; + try (MemoryStack stack = MemoryStack.stackPush()) { + VkExtensionProperties.Buffer exts = device.getExtensions(stack); + System.out.println("available:"); + for (VkExtensionProperties p : exts) { + System.out.println(" " + p.extensionNameString()); + } + if (extensions.stream().allMatch(e -> { + System.out.println("trying " + e + " extension..."); + return exts.stream().anyMatch( + p -> p.extensionNameString().equals(e)); })) return 0f; + System.out.println("Reject device by extensions"); + return null; + } } } @@ -49,7 +59,11 @@ public DeviceSwapchainSupport(Surface surface) { @Override public Float evaluateDevice(PhysicalDevice device) { - return device.querySwapchainSupport(surface) ? 0f : null; + if (device.querySwapchainSupport(surface)) { + return 0f; + } + System.out.println("Reject device by swapchain support"); + return null; } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Extent2.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Extent2.java new file mode 100644 index 0000000000..278a2157b0 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Extent2.java @@ -0,0 +1,58 @@ +package com.jme3.vulkan; + +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkExtent2D; + +public final class Extent2 { + + public int x, y; + + public Extent2() { + this(0, 0); + } + + public Extent2(int x, int y) { + this.x = x; + this.y = y; + } + + public Extent2(VkExtent2D vk) { + this.x = vk.width(); + this.y = vk.height(); + } + + public Extent2 set(int x, int y) { + this.x = x; + this.y = y; + return this; + } + + public Extent2 set(VkExtent2D vk) { + this.x = vk.width(); + this.y = vk.height(); + return this; + } + + public Extent2 setX(int x) { + this.x = x; + return this; + } + + public Extent2 setY(int y) { + this.y = y; + return this; + } + + public VkExtent2D toStruct(MemoryStack stack) { + return VkExtent2D.malloc(stack).set(x, y); + } + + public int getX() { + return x; + } + + public int getY() { + return y; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Fence.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Fence.java index 3f21ff483c..d5a0e0270d 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Fence.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Fence.java @@ -55,6 +55,10 @@ public NativeReference getNativeReference() { return ref; } + public String toString() { + return "Fence[" + !isBlocking() + "]"; + } + public void block(long timeoutMillis) { check(vkWaitForFences(device.getNativeObject(), id, true, TimeUnit.MILLISECONDS.toNanos(timeoutMillis)), "Fence wait expired."); @@ -69,6 +73,10 @@ public void reset() { vkResetFences(device.getNativeObject(), id); } + public boolean isBlocking() { + return vkGetFenceStatus(device.getNativeObject(), id) != VK_SUCCESS; + } + public long getId() { return id; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/FrameBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/FrameBuffer.java index b94f3ddff4..4bd242b86a 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/FrameBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/FrameBuffer.java @@ -2,7 +2,7 @@ import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; -import org.lwjgl.system.MemoryUtil; +import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkFramebufferCreateInfo; import java.nio.LongBuffer; @@ -16,7 +16,7 @@ public class FrameBuffer implements Native { private final NativeReference ref; private final int width, height, layers; private final ImageView[] attachments; - private LongBuffer id = MemoryUtil.memAllocLong(1); + private long id; public FrameBuffer(LogicalDevice device, RenderPass compat, int width, int height, int layers, ImageView... attachments) { this.device = device; @@ -24,39 +24,40 @@ public FrameBuffer(LogicalDevice device, RenderPass compat, int width, int heigh this.height = height; this.layers = layers; this.attachments = attachments; - LongBuffer att = MemoryUtil.memAllocLong(attachments.length); - for (int i = 0; i < attachments.length; i++) { - att.put(i, attachments[i].getNativeObject()); + try (MemoryStack stack = MemoryStack.stackPush()) { + LongBuffer att = stack.mallocLong(attachments.length); + for (int i = 0; i < attachments.length; i++) { + att.put(i, attachments[i].getNativeObject()); + } + VkFramebufferCreateInfo create = VkFramebufferCreateInfo.calloc() + .sType(VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO) + .renderPass(compat.getNativeObject()) + .pAttachments(att) + .width(width).height(height) + .layers(layers); + LongBuffer idBuf = stack.mallocLong(1); + check(vkCreateFramebuffer(device.getNativeObject(), create, null, idBuf)); + id = idBuf.get(0); } - VkFramebufferCreateInfo create = VkFramebufferCreateInfo.create() - .sType(VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO) - .renderPass(compat.getNativeObject()) - .pAttachments(att) - .width(width).height(height) - .layers(layers); - check(vkCreateFramebuffer(device.getNativeObject(), create, null, id)); - MemoryUtil.memFree(att); - create.close(); ref = Native.get().register(this); device.getNativeReference().addDependent(ref); } @Override public Long getNativeObject() { - return id != null ? id.get(0) : null; + return id; } @Override public Runnable createNativeDestroyer() { return () -> { - vkDestroyFramebuffer(device.getNativeObject(), id.get(0), null); - MemoryUtil.memFree(id); + vkDestroyFramebuffer(device.getNativeObject(), id, null); }; } @Override public void prematureNativeDestruction() { - id = null; + id = VK_NULL_HANDLE; } @Override diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java index 9719122fee..7c3ffa6856 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java @@ -17,7 +17,7 @@ public class GraphicsPipeline implements Native { private final LogicalDevice device; private final NativeReference ref; - private LongBuffer id = MemoryUtil.memAllocLong(1); + private long id; public GraphicsPipeline(LogicalDevice device, PipelineLayout layout, RenderPass compat, RenderState state, ShaderModule vert, ShaderModule frag) { this.device = device; @@ -95,8 +95,11 @@ public GraphicsPipeline(LogicalDevice device, PipelineLayout layout, RenderPass .subpass(0) .basePipelineHandle(VK_NULL_HANDLE) .basePipelineIndex(-1); - check(vkCreateGraphicsPipelines(device.getNativeObject(), VK_NULL_HANDLE, pipeline, null, id), + System.out.println("render pass: " + compat.getNativeObject()); + LongBuffer idBuf = stack.mallocLong(1); + check(vkCreateGraphicsPipelines(device.getNativeObject(), VK_NULL_HANDLE, pipeline, null, idBuf), "Failed to create graphics pipeline"); + id = idBuf.get(0); } ref = Native.get().register(this); device.getNativeReference().addDependent(ref); @@ -104,20 +107,19 @@ public GraphicsPipeline(LogicalDevice device, PipelineLayout layout, RenderPass @Override public Long getNativeObject() { - return id != null ? id.get(0) : null; + return id; } @Override public Runnable createNativeDestroyer() { return () -> { - vkDestroyPipeline(device.getNativeObject(), id.get(0), null); - MemoryUtil.memFree(id); + vkDestroyPipeline(device.getNativeObject(), id, null); }; } @Override public void prematureNativeDestruction() { - id = null; + id = VK_NULL_HANDLE; } @Override @@ -126,7 +128,7 @@ public NativeReference getNativeReference() { } public void bind(CommandBuffer cmd) { - vkCmdBindPipeline(cmd.getBuffer(), VK_PIPELINE_BIND_POINT_GRAPHICS, id.get(0)); + vkCmdBindPipeline(cmd.getBuffer(), VK_PIPELINE_BIND_POINT_GRAPHICS, id); } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Image.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Image.java index 9bf5755a14..5a5ec7251e 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Image.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Image.java @@ -1,121 +1,12 @@ package com.jme3.vulkan; import com.jme3.util.natives.Native; -import com.jme3.util.natives.NativeReference; -import org.lwjgl.system.MemoryUtil; -import org.lwjgl.vulkan.*; +import org.lwjgl.vulkan.VkImageViewCreateInfo; -import java.nio.LongBuffer; +public interface Image extends Native { -import static com.jme3.renderer.vulkan.VulkanUtils.*; -import static org.lwjgl.vulkan.VK10.*; + ImageView createView(VkImageViewCreateInfo create); -public class Image implements Native { - - private final LogicalDevice device; - private final NativeReference ref; - private final int width, height, format, tiling, usage, mem; - protected LongBuffer id = MemoryUtil.memAllocLong(1); - protected LongBuffer memory = MemoryUtil.memAllocLong(1); - - public Image(LogicalDevice device, int width, int height, int format, int tiling, int usage, int mem) { - this.device = device; - this.width = width; - this.height = height; - this.format = format; - this.tiling = tiling; - this.usage = usage; - this.mem = mem; - VkImageCreateInfo create = VkImageCreateInfo.create() - .sType(VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO) - .imageType(VK_IMAGE_TYPE_2D) - .mipLevels(1) - .arrayLayers(1) - .format(format) - .tiling(tiling) - .initialLayout(VK_IMAGE_LAYOUT_UNDEFINED) - .usage(usage) - .samples(VK_SAMPLE_COUNT_1_BIT) - .sharingMode(VK_SHARING_MODE_EXCLUSIVE); - create.extent().width(width).height(height).depth(1); - createImageMemory(create, mem); - create.free(); - ref = Native.get().register(this); - device.getNativeReference().addDependent(ref); - } - - public Image(LogicalDevice device, VkImageCreateInfo create, int mem) { - this.device = device; - this.width = create.extent().width(); - this.height = create.extent().height(); - this.format = create.format(); - this.tiling = create.tiling(); - this.usage = create.usage(); - this.mem = mem; - createImageMemory(create, mem); - ref = Native.get().register(this); - device.getNativeReference().addDependent(ref); - } - - public Image(LogicalDevice device, long id) { - width = height = format = tiling = usage = mem = 0; // todo: fix image interfacing - this.device = device; - this.id.put(0, id); - this.memory.put(0, MemoryUtil.NULL); - ref = Native.get().register(this); - device.getNativeReference().addDependent(ref); - } - - private void createImageMemory(VkImageCreateInfo create, int mem) { - create.sType(VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO); - vkCreateImage(device.getNativeObject(), create, null, id); - VkMemoryRequirements memReq = VkMemoryRequirements.create(); - vkGetImageMemoryRequirements(device.getNativeObject(), id.get(0), memReq); - VkMemoryAllocateInfo allocate = VkMemoryAllocateInfo.create() - .sType(VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO) - .allocationSize(memReq.size()) - .memoryTypeIndex(device.getPhysicalDevice().findMemoryType(memReq.memoryTypeBits(), mem)); - check(vkAllocateMemory(device.getNativeObject(), allocate, null, memory), "Failed to allocate image memory"); - vkBindImageMemory(device.getNativeObject(), id.get(0), memory.get(0), 0); - memReq.free(); - allocate.free(); - } - - @Override - public Long getNativeObject() { - return id != null ? id.get(0) : null; - } - - @Override - public Runnable createNativeDestroyer() { - return () -> { - vkDestroyImage(device.getNativeObject(), id.get(0), null); - MemoryUtil.memFree(id); - MemoryUtil.memFree(memory); - }; - } - - @Override - public void prematureNativeDestruction() { - id = null; - memory = null; - } - - @Override - public NativeReference getNativeReference() { - return ref; - } - - public LogicalDevice getDevice() { - return device; - } - - public long getMemory() { - return memory != null ? memory.get(0) : MemoryUtil.NULL; - } - - public ImageView createView(VkImageViewCreateInfo create) { - return new ImageView(this, create); - } + LogicalDevice getDevice(); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ImageView.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ImageView.java index 377e4d4b70..9b9e6bbc9c 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ImageView.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ImageView.java @@ -2,6 +2,7 @@ import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; +import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryUtil; import org.lwjgl.vulkan.VK10; import org.lwjgl.vulkan.VkImageViewCreateInfo; @@ -12,34 +13,37 @@ public class ImageView implements Native { private final Image image; private final NativeReference ref; - private LongBuffer id = MemoryUtil.memAllocLong(1); + private long id; public ImageView(Image image, VkImageViewCreateInfo create) { this.image = image; create.sType(VK10.VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO); create.image(image.getNativeObject()); - VK10.vkCreateImageView(image.getDevice().getNativeObject(), create, null, id); + System.out.println("image ID: " + image.getNativeObject()); + try (MemoryStack stack = MemoryStack.stackPush()) { + LongBuffer idBuf = stack.mallocLong(1); + VK10.vkCreateImageView(image.getDevice().getNativeObject(), create, null, idBuf); + id = idBuf.get(0); + } ref = Native.get().register(this); image.getNativeReference().addDependent(ref); } @Override public Long getNativeObject() { - return id != null ? id.get(0) : null; + return id; } @Override public Runnable createNativeDestroyer() { return () -> { - VK10.vkDestroyImageView(image.getDevice().getNativeObject(), id.get(0), null); - MemoryUtil.memFree(id); + VK10.vkDestroyImageView(image.getDevice().getNativeObject(), id, null); + id = VK10.VK_NULL_HANDLE; }; } @Override - public void prematureNativeDestruction() { - id = null; - } + public void prematureNativeDestruction() {} @Override public NativeReference getNativeReference() { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/InstanceBuilder.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/InstanceBuilder.java index 6ad8d52c5d..7446748874 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/InstanceBuilder.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/InstanceBuilder.java @@ -143,4 +143,8 @@ public int getNumLayers() { return layers.size(); } + public MemoryStack getStack() { + return stack; + } + } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/LogicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/LogicalDevice.java index 0b841e29d1..89e2c55c18 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/LogicalDevice.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/LogicalDevice.java @@ -4,12 +4,8 @@ import com.jme3.util.natives.NativeReference; import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; -import org.lwjgl.system.MemoryUtil; import org.lwjgl.vulkan.VkDevice; import org.lwjgl.vulkan.VkDeviceCreateInfo; -import org.lwjgl.vulkan.VkPhysicalDeviceFeatures; - -import java.util.Collection; import static com.jme3.renderer.vulkan.VulkanUtils.*; import static org.lwjgl.vulkan.VK10.*; @@ -34,9 +30,9 @@ public LogicalDevice(PhysicalDevice physical, PointerBuffer extensions, PointerB create.ppEnabledLayerNames(layers); } PointerBuffer ptr = stack.mallocPointer(1); - device = new VkDevice(check(vkCreateDevice(physical.getDevice(), create, null, ptr), - "Failed to create logical device."), physical.getDevice(), create); - MemoryUtil.memFree(ptr); + check(vkCreateDevice(physical.getDevice(), create, null, ptr), + "Failed to create logical device."); + device = new VkDevice(ptr.get(0), physical.getDevice(), create); } ref = Native.get().register(this); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java index c9a591edc7..a5e823e725 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java @@ -66,8 +66,8 @@ public VkPhysicalDeviceFeatures getFeatures() { return features; } - public VkExtensionProperties.Buffer getExtensions() { - return enumerateBuffer(VkExtensionProperties::create, (count, buffer) -> + public VkExtensionProperties.Buffer getExtensions(MemoryStack stack) { + return enumerateBuffer(stack, n -> VkExtensionProperties.malloc(n, stack), (count, buffer) -> vkEnumerateDeviceExtensionProperties(device, (ByteBuffer)null, count, buffer)); } @@ -97,15 +97,16 @@ public int findMemoryType(int filter, int properties) { } public boolean querySwapchainSupport(Surface surface) { - IntBuffer count = MemoryUtil.memAllocInt(1); - KHRSurface.vkGetPhysicalDeviceSurfaceFormatsKHR(device, surface.getNativeObject(), count, null); - if (count.get(0) <= 0) { - return false; + try (MemoryStack stack = MemoryStack.stackPush()) { + IntBuffer count = stack.mallocInt(1); + KHRSurface.vkGetPhysicalDeviceSurfaceFormatsKHR(device, surface.getNativeObject(), count, null); + if (count.get(0) <= 0) { + return false; + } + KHRSurface.vkGetPhysicalDeviceSurfacePresentModesKHR(device, surface.getNativeObject(), count, null); + int n = count.get(0); + return n > 0; } - KHRSurface.vkGetPhysicalDeviceSurfacePresentModesKHR(device, surface.getNativeObject(), count, null); - int n = count.get(0); - MemoryUtil.memFree(count); - return n > 0; } @SuppressWarnings("unchecked") @@ -113,11 +114,12 @@ public static PhysicalDevice getPhysicalDevice(VkIn Collection evaluators, Supplier queueFactory) { try (MemoryStack stack = MemoryStack.stackPush()) { + System.out.println("Get physical device from instance: " + instance); PointerBuffer devices = enumerateBuffer(stack, stack::mallocPointer, (count, buffer) -> check(vkEnumeratePhysicalDevices(instance, count, buffer), "Failed to enumerate physical devices.")); PhysicalDevice device = null; - float score = 0f; + float score = -1f; for (PhysicalDevice d : iteratePointers(devices, ptr -> new PhysicalDevice(instance, queueFactory.get(), ptr))) { if (!d.queues.isComplete()) { continue; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java index 6ff22e8bb6..8acb3c564d 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java @@ -2,6 +2,7 @@ import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; +import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryUtil; import org.lwjgl.vulkan.VkPipelineLayoutCreateInfo; @@ -14,36 +15,37 @@ public class PipelineLayout implements Native { private final LogicalDevice device; private final NativeReference ref; - private LongBuffer id = MemoryUtil.memAllocLong(1); + private long id; public PipelineLayout(LogicalDevice device) { this.device = device; - VkPipelineLayoutCreateInfo create = VkPipelineLayoutCreateInfo.create() - .sType(VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO); - check(vkCreatePipelineLayout(device.getNativeObject(), create, null, id), - "Failed to create pipeline."); - create.close(); + try (MemoryStack stack = MemoryStack.stackPush()) { + VkPipelineLayoutCreateInfo create = VkPipelineLayoutCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO); + LongBuffer idBuf = stack.mallocLong(1); + check(vkCreatePipelineLayout(device.getNativeObject(), create, null, idBuf), + "Failed to create pipeline."); + id = idBuf.get(0); + } ref = Native.get().register(this); device.getNativeReference().addDependent(ref); } @Override public Long getNativeObject() { - return id != null ? id.get(0) : null; + return id; } @Override public Runnable createNativeDestroyer() { return () -> { - vkDestroyPipelineLayout(device.getNativeObject(), id.get(0), null); - MemoryUtil.memFree(id); + vkDestroyPipelineLayout(device.getNativeObject(), id, null); + id = VK_NULL_HANDLE; }; } @Override - public void prematureNativeDestruction() { - id = null; - } + public void prematureNativeDestruction() {} @Override public NativeReference getNativeReference() { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPass.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPass.java index cd2e4889e0..e5a6e61a1b 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPass.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPass.java @@ -17,33 +17,34 @@ public class RenderPass implements Native { private final LogicalDevice device; private final NativeReference ref; - private LongBuffer id = MemoryUtil.memAllocLong(1); + private long id; public RenderPass(LogicalDevice device, VkRenderPassCreateInfo create) { this.device = device; - check(vkCreateRenderPass(device.getNativeObject(), create, null, id), - "Failed to create render pass."); + try (MemoryStack stack = MemoryStack.stackPush()) { + LongBuffer idBuf = stack.mallocLong(1); + check(vkCreateRenderPass(device.getNativeObject(), create, null, idBuf), "Failed to create render pass."); + id = idBuf.get(0); + } ref = Native.get().register(this); device.getNativeReference().addDependent(ref); } @Override public Long getNativeObject() { - return id != null ? id.get(0) : null; + return id; } @Override public Runnable createNativeDestroyer() { return () -> { - vkDestroyRenderPass(device.getNativeObject(), id.get(0), null); - MemoryUtil.memFree(id); + vkDestroyRenderPass(device.getNativeObject(), id, null); + id = VK_NULL_HANDLE; }; } @Override - public void prematureNativeDestruction() { - id = null; - } + public void prematureNativeDestruction() {} @Override public NativeReference getNativeReference() { @@ -56,7 +57,7 @@ public void begin(CommandBuffer cmd, FrameBuffer fbo) { clear.color().float32(stack.floats(0f, 0f, 0f, 1f)); VkRenderPassBeginInfo begin = VkRenderPassBeginInfo.calloc(stack) .sType(VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO) - .renderPass(id.get(0)) + .renderPass(id) .framebuffer(fbo.getNativeObject()) .clearValueCount(clear.limit()) .pClearValues(clear); diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Surface.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Surface.java index 81fbf0f595..c92a01ad1c 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Surface.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Surface.java @@ -37,10 +37,12 @@ public Float evaluateDevice(PhysicalDevice device) { IntBuffer count = stack.mallocInt(1); KHRSurface.vkGetPhysicalDeviceSurfaceFormatsKHR(device.getDevice(), id, count, null); if (count.get(0) == 0) { + System.out.println("Reject device by surface support (formats)"); return null; } KHRSurface.vkGetPhysicalDeviceSurfacePresentModesKHR(device.getDevice(), id, count, null); if (count.get(0) == 0) { + System.out.println("Reject device by surface support (present modes)"); return null; } return 0f; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java index 2184eb3973..707f7e305d 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java @@ -20,29 +20,60 @@ public class Swapchain implements Native { private final Surface surface; private final NativeReference ref; private final List images = new ArrayList<>(); - private final VkExtent2D extent; - private final int format; - private LongBuffer id = MemoryUtil.memAllocLong(1); - private VkSurfaceCapabilitiesKHR caps; + private SwapchainUpdater updater; + private Extent2 extent; + private int format; + private long id = VK_NULL_HANDLE; public Swapchain(LogicalDevice device, Surface surface, SwapchainSupport support) { - assert support.isSupported() : "Swapchain for device is not supported."; this.device = device; this.surface = surface; - caps = VkSurfaceCapabilitiesKHR.create(); - KHRSurface.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( - device.getPhysicalDevice().getDevice(), surface.getNativeObject(), caps); - VkSurfaceFormatKHR fmt = support.selectFormat(); + reload(support); + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + surface.getNativeReference().addDependent(ref); + } + + @Override + public Long getNativeObject() { + return id; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> KHRSwapchain.vkDestroySwapchainKHR(device.getNativeObject(), id, null); + } + + @Override + public void prematureNativeDestruction() {} + + @Override + public NativeReference getNativeReference() { + return null; + } + + public void reload(SwapchainSupport support) { + assert support.isSupported() : "Swapchain for device is not supported."; + if (id != VK_NULL_HANDLE) { + createNativeDestroyer().run(); + id = VK_NULL_HANDLE; + } + images.clear(); try (MemoryStack stack = MemoryStack.stackPush()) { + VkSurfaceCapabilitiesKHR caps = VkSurfaceCapabilitiesKHR.calloc(stack); + KHRSurface.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( + device.getPhysicalDevice().getDevice(), surface.getNativeObject(), caps); + VkSurfaceFormatKHR fmt = support.selectFormat(); format = fmt.format(); - extent = support.selectExtent(); + VkExtent2D ext = support.selectExtent(); + extent = new Extent2(ext); VkSwapchainCreateInfoKHR create = VkSwapchainCreateInfoKHR.calloc(stack) .sType(KHRSwapchain.VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR) .surface(surface.getNativeObject()) .minImageCount(support.selectImageCount()) .imageFormat(format) .imageColorSpace(fmt.colorSpace()) - .imageExtent(extent) + .imageExtent(ext) .imageArrayLayers(1) .imageUsage(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT) .preTransform(caps.currentTransform()) @@ -58,54 +89,37 @@ public Swapchain(LogicalDevice device, Surface surface, SwapchainSupport support } else { create.imageSharingMode(VK_SHARING_MODE_EXCLUSIVE); } - check(KHRSwapchain.vkCreateSwapchainKHR(device.getNativeObject(), create, null, id), + LongBuffer ptr = stack.mallocLong(1); + check(KHRSwapchain.vkCreateSwapchainKHR(device.getNativeObject(), create, null, ptr), "Failed to create swapchain."); + id = ptr.get(0); + System.out.println("swapchain handle: " + id); LongBuffer imgs = enumerateBuffer(stack, stack::mallocLong, (c, b) -> - KHRSwapchain.vkGetSwapchainImagesKHR(device.getNativeObject(), id.get(0), c, b)); + check(KHRSwapchain.vkGetSwapchainImagesKHR(device.getNativeObject(), id, c, b), + "Failed to get swapchain images.")); Objects.requireNonNull(imgs, "Swapchain contains no images."); for (int i = 0; i < imgs.limit(); i++) { images.add(new SwapchainImage(device, imgs.get(i))); } } - fmt.close(); - ref = Native.get().register(this); - device.getNativeReference().addDependent(ref); - surface.getNativeReference().addDependent(ref); } - @Override - public Long getNativeObject() { - return id != null ? id.get(0) : null; - } - - @Override - public Runnable createNativeDestroyer() { - return () -> { - KHRSwapchain.vkDestroySwapchainKHR(device.getNativeObject(), id.get(0), null); - MemoryUtil.memFree(id); - caps.free(); - }; - } - - @Override - public void prematureNativeDestruction() { - id = null; - caps = null; - } - - @Override - public NativeReference getNativeReference() { - return null; + public void createFrameBuffers(RenderPass compat) { + for (SwapchainImage img : images) { + img.createFrameBuffer(compat); + } } - public SwapchainImage acquireNextImage(Semaphore semaphore, Fence fence, long timeout) { - IntBuffer i = MemoryUtil.memAllocInt(1); - check(KHRSwapchain.vkAcquireNextImageKHR(device.getNativeObject(), id.get(0), - TimeUnit.MILLISECONDS.toNanos(timeout), Native.getId(semaphore), Native.getId(fence), i), - "Failed to acquire next swapchain image."); - SwapchainImage img = getImage(i.get(0)); - MemoryUtil.memFree(i); - return img; + public SwapchainImage acquireNextImage(SwapchainUpdater updater, Semaphore semaphore, Fence fence, long timeout) { + try (MemoryStack stack = MemoryStack.stackPush()) { + IntBuffer i = stack.mallocInt(1); + int code = KHRSwapchain.vkAcquireNextImageKHR(device.getNativeObject(), id, + TimeUnit.MILLISECONDS.toNanos(timeout), Native.getId(semaphore), Native.getId(fence), i); + if (updater.swapchainOutOfDate(this, code)) { + return null; + } + return images.get(i.get(0)); + } } public void present(Queue presentQueue, SwapchainImage image, Semaphore wait) { @@ -113,7 +127,7 @@ public void present(Queue presentQueue, SwapchainImage image, Semaphore wait) { VkPresentInfoKHR info = VkPresentInfoKHR.calloc(stack) .sType(KHRSwapchain.VK_STRUCTURE_TYPE_PRESENT_INFO_KHR) .swapchainCount(1) - .pSwapchains(id) + .pSwapchains(stack.longs(id)) .pImageIndices(stack.ints(images.indexOf(image))); if (wait != null) { info.pWaitSemaphores(stack.longs(wait.getNativeObject())); @@ -122,29 +136,6 @@ public void present(Queue presentQueue, SwapchainImage image, Semaphore wait) { } } - public List createViews() { - List result = new ArrayList<>(images.size()); - for (SwapchainImage img : images) { - VkImageViewCreateInfo create = VkImageViewCreateInfo.create() - .sType(VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO) - .image(img.getNativeObject()) - .viewType(VK_IMAGE_VIEW_TYPE_2D) - .format(format); - create.components().r(VK_COMPONENT_SWIZZLE_IDENTITY) - .g(VK_COMPONENT_SWIZZLE_IDENTITY) - .b(VK_COMPONENT_SWIZZLE_IDENTITY) - .a(VK_COMPONENT_SWIZZLE_IDENTITY); - create.subresourceRange().aspectMask(VK_IMAGE_ASPECT_COLOR_BIT) - .baseMipLevel(0) - .levelCount(1) - .baseArrayLayer(0) - .layerCount(1); - result.add(new ImageView(img, create)); - create.free(); - } - return result; - } - public LogicalDevice getDevice() { return device; } @@ -157,12 +148,7 @@ public List getImages() { return Collections.unmodifiableList(images); } - public SwapchainImage getImage(long id) { - return images.stream().filter(i -> i.getNativeObject() == id) - .findAny().orElseThrow(() -> new NoSuchElementException("Image not found.")); - } - - public VkExtent2D getExtent() { + public Extent2 getExtent() { return extent; } @@ -170,18 +156,38 @@ public int getFormat() { return format; } - public static class SwapchainImage extends Image { + public class SwapchainImage extends OldImage { + + private final ImageView view; + private FrameBuffer frameBuffer; private SwapchainImage(LogicalDevice device, long id) { super(device, id); + try (MemoryStack stack = MemoryStack.stackPush()) { + VkImageViewCreateInfo create = VkImageViewCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO) + .image(getNativeObject()) + .viewType(VK_IMAGE_VIEW_TYPE_2D) + .format(format); + create.components().r(VK_COMPONENT_SWIZZLE_IDENTITY) + .g(VK_COMPONENT_SWIZZLE_IDENTITY) + .b(VK_COMPONENT_SWIZZLE_IDENTITY) + .a(VK_COMPONENT_SWIZZLE_IDENTITY); + create.subresourceRange().aspectMask(VK_IMAGE_ASPECT_COLOR_BIT) + .baseMipLevel(0) + .levelCount(1) + .baseArrayLayer(0) + .layerCount(1); + this.view = new ImageView(this, create); + } + } + + public void createFrameBuffer(RenderPass compat) { + this.frameBuffer = new FrameBuffer(getDevice(), compat, extent.x, extent.y, 1, view); } - @Override - public Runnable createNativeDestroyer() { - return () -> { - MemoryUtil.memFree(id); - MemoryUtil.memFree(memory); - }; + public FrameBuffer getFrameBuffer() { + return frameBuffer; } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/SwapchainUpdater.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/SwapchainUpdater.java new file mode 100644 index 0000000000..80b7622154 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/SwapchainUpdater.java @@ -0,0 +1,7 @@ +package com.jme3.vulkan; + +public interface SwapchainUpdater { + + boolean swapchainOutOfDate(Swapchain swapchain, int imageAcquireCode); + +} diff --git a/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl b/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl index ad32c2cc70..1789f94a1b 100644 --- a/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl +++ b/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl @@ -1,17 +1,9 @@ #version 450 -vec2 positions[3] = vec2[] ( - vec2(0.0, -0.5), - vec2(0.5, 0.5), - vec2(-0.5, 0.5) -); -vec3 colors[3] = vec3[] ( - vec3(1.0, 0.0, 0.0), - vec3(0.0, 1.0, 0.0), - vec3(0.0, 0.0, 1.0) -); +layout (location = 0) in vec2 inPosition; +layout (location = 1) in vec3 inColor; -layout(location = 0) out vec3 fragColor; +layout (location = 0) out vec3 fragColor; void main() { gl_Position = vec4(positions[gl_VertexIndex], 0.0, 1.0); From e82ab06deb912f1ea22f46a05c0c5cf44745e6ab Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Sat, 26 Jul 2025 21:57:18 -0400 Subject: [PATCH 13/37] debug initial vulkan engine interface --- .../main/java/com/jme3/vulkan/OldImage.java | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/OldImage.java diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/OldImage.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/OldImage.java new file mode 100644 index 0000000000..d3ec4ccc11 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/OldImage.java @@ -0,0 +1,127 @@ +package com.jme3.vulkan; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.vulkan.*; + +import java.nio.LongBuffer; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.vulkan.VK10.*; + +public class OldImage implements Image { + + private final LogicalDevice device; + private final NativeReference ref; + private final int width, height, format, tiling, usage, mem; + private long id, memory; + + public OldImage(LogicalDevice device, int width, int height, int format, int tiling, int usage, int mem) { + this.device = device; + this.width = width; + this.height = height; + this.format = format; + this.tiling = tiling; + this.usage = usage; + this.mem = mem; + try (MemoryStack stack = MemoryStack.stackPush()) { + VkImageCreateInfo create = VkImageCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO) + .imageType(VK_IMAGE_TYPE_2D) + .mipLevels(1) + .arrayLayers(1) + .format(format) + .tiling(tiling) + .initialLayout(VK_IMAGE_LAYOUT_UNDEFINED) + .usage(usage) + .samples(VK_SAMPLE_COUNT_1_BIT) + .sharingMode(VK_SHARING_MODE_EXCLUSIVE); + create.extent().width(width).height(height).depth(1); + createImageMemory(stack, create, mem); + } + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + } + + public OldImage(LogicalDevice device, VkImageCreateInfo create, int mem) { + this.device = device; + this.width = create.extent().width(); + this.height = create.extent().height(); + this.format = create.format(); + this.tiling = create.tiling(); + this.usage = create.usage(); + this.mem = mem; + try (MemoryStack stack = MemoryStack.stackPush()) { + createImageMemory(stack, create, mem); + } + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + } + + public OldImage(LogicalDevice device, long id) { + width = height = format = tiling = usage = mem = 0; // todo: fix image interfacing + this.device = device; + System.out.println("Assign image ID: " + id); + this.id = id; + this.memory = VK_NULL_HANDLE; + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + } + + private void createImageMemory(MemoryStack stack, VkImageCreateInfo create, int mem) { + create.sType(VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO); + vkCreateImage(device.getNativeObject(), create, null, stack.longs(id)); + VkMemoryRequirements memReq = VkMemoryRequirements.create(); + vkGetImageMemoryRequirements(device.getNativeObject(), id, memReq); + VkMemoryAllocateInfo allocate = VkMemoryAllocateInfo.create() + .sType(VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO) + .allocationSize(memReq.size()) + .memoryTypeIndex(device.getPhysicalDevice().findMemoryType(memReq.memoryTypeBits(), mem)); + LongBuffer memBuf = stack.mallocLong(1); + check(vkAllocateMemory(device.getNativeObject(), allocate, null, memBuf), "Failed to allocate image memory"); + memory = memBuf.get(0); + vkBindImageMemory(device.getNativeObject(), id, memory, 0); + memReq.free(); + allocate.free(); + } + + @Override + public Long getNativeObject() { + return id; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> { + vkDestroyImage(device.getNativeObject(), id, null); + vkFreeMemory(device.getNativeObject(), memory, null); + id = VK_NULL_HANDLE; + memory = VK_NULL_HANDLE; + }; + } + + @Override + public void prematureNativeDestruction() {} + + @Override + public NativeReference getNativeReference() { + return ref; + } + + @Override + public LogicalDevice getDevice() { + return device; + } + + public long getMemory() { + return memory; + } + + @Override + public ImageView createView(VkImageViewCreateInfo create) { + return new ImageView(this, create); + } + +} From 5aa391e127e519cd12bfb783192c45073677fde1 Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Sun, 27 Jul 2025 22:13:10 -0400 Subject: [PATCH 14/37] add shader attributes and gpu buffers --- hs_err_pid78128.log | 1520 +++++++++++++++++ .../jme3test/vulkan/VulkanHelperTest.java | 75 +- .../java/com/jme3/vulkan/CommandBuffer.java | 6 +- .../com/jme3/vulkan/GraphicsPipeline.java | 6 +- .../java/com/jme3/vulkan/MemoryRegion.java | 102 ++ .../java/com/jme3/vulkan/MeshDescription.java | 64 + .../com/jme3/vulkan/OneTimeCommandBuffer.java | 18 +- .../java/com/jme3/vulkan/PhysicalDevice.java | 16 + .../src/main/java/com/jme3/vulkan/Vertex.java | 25 + .../com/jme3/vulkan/buffers/BufferArgs.java | 77 + .../com/jme3/vulkan/buffers/GpuBuffer.java | 105 ++ .../resources/Shaders/VulkanVertTest.glsl | 4 +- 12 files changed, 1997 insertions(+), 21 deletions(-) create mode 100644 hs_err_pid78128.log create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/MemoryRegion.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/MeshDescription.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/Vertex.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/BufferArgs.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java diff --git a/hs_err_pid78128.log b/hs_err_pid78128.log new file mode 100644 index 0000000000..1cbd152d6c --- /dev/null +++ b/hs_err_pid78128.log @@ -0,0 +1,1520 @@ +# +# A fatal error has been detected by the Java Runtime Environment: +# +# SIGSEGV (0xb) at pc=0x000073b95c45933a, pid=78128, tid=78153 +# +# JRE version: Java(TM) SE Runtime Environment (23.0.2+7) (build 23.0.2+7-58) +# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64) +# Problematic frame: +# C [libjemalloc.so+0x5933a] +# +# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/codex/java/prj/jmonkeyengine/core.78128) +# +# If you would like to submit a bug report, please visit: +# https://bugreport.java.com/bugreport/crash.jsp +# + +--------------- S U M M A R Y ------------ + +Command Line: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant jme3test.vulkan.VulkanHelperTest + +Host: Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz, 8 cores, 31G, Pop!_OS 22.04 LTS +Time: Sun Jul 27 22:12:26 2025 EDT elapsed time: 5.435825 seconds (0d 0h 0m 5s) + +--------------- T H R E A D --------------- + +Current thread is native thread + +Stack: [0x000073b95c100000,0x000073b95c200000], sp=0x000073b95c1fe8d0, free space=1018k +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +C [libjemalloc.so+0x5933a] + +siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000000 + +Registers: +RAX=0x0000000000000000, RBX=0x0000000000000200, RCX=0x0000000000000000, RDX=0x000073b95c478440 +RSP=0x000073b95c1fe8d0, RBP=0x000073b95c1fedb0, RSI=0x0000000000000000, RDI=0x000073b954ae1020 +R8 =0x0000000000000000, R9 =0x0000000000000000, R10=0x0000000000000000, R11=0x000073b954ae1060 +R12=0x000000000000003f, R13=0x000073b95c1fed70, R14=0x000000000000003f, R15=0x000073b95c1fead0 +RIP=0x000073b95c45933a, EFLAGS=0x0000000000010246, CSGSFS=0x002b000000000033, ERR=0x0000000000000004 + TRAPNO=0x000000000000000e + + +Top of Stack: (sp=0x000073b95c1fe8d0) +0x000073b95c1fe8d0: 000073b97c4c7590 000073b95c1fe960 +0x000073b95c1fe8e0: 000073b95c1fe970 000073b985b32211 +0x000073b95c1fe8f0: 0000000000000005 000073b97c4c7788 +0x000073b95c1fe900: 0000000000000005 0000000000000000 +0x000073b95c1fe910: 0000000000000001 000073b97c4c7220 +0x000073b95c1fe920: 000073b97c4c7788 000073b97c4c7220 +0x000073b95c1fe930: 000000016bd3f020 000073b97c4c7590 +0x000073b95c1fe940: 0000000000000000 3962333700000000 +0x000073b95c1fe950: 3064343900000000 4b172e4100000004 +0x000073b95c1fe960: 00000000ffffffff 0000000000000000 +0x000073b95c1fe970: 000073b98580d4d0 000073b985b1f7c0 +0x000073b95c1fe980: 000073b95c1fe9b0 000073b985278613 +0x000073b95c1fe990: 000073b95c1feb88 000073b98588849a +0x000073b95c1fe9a0: 0000000000000000 000073b95c1feaa0 +0x000073b95c1fe9b0: 00000000fbad8001 0000000000000002 +0x000073b95c1fe9c0: 000073b97c4c7220 000073b95c6ff028 +0x000073b95c1fe9d0: 000073b985a1cae8 0000000000000004 +0x000073b95c1fe9e0: 000073b95c1ffb58 000073b985b38f71 +0x000073b95c1fe9f0: 0000000000000005 0000000000000000 +0x000073b95c1fea00: 000073b98580d4d0 000073b9858a53e0 +0x000073b95c1fea10: 0000000000000000 000073b95c1fee00 +0x000073b95c1fea20: 000073b985a1caf8 0000000000000000 +0x000073b95c1fea30: 000073b985a1cae8 000073b985b3bdae +0x000073b95c1fea40: 0000000000000001 000000000000006f +0x000073b95c1fea50: 000073b95c6b17d0 0000000000000000 +0x000073b95c1fea60: 000073b8acbbbcd0 0000000000000000 +0x000073b95c1fea70: 00000000000000ca 5a15e310c4f3a7d5 +0x000073b95c1fea80: 0000000000000213 000073b985a17300 +0x000073b95c1fea90: 0000000000000000 0000000000000200 +0x000073b95c1feaa0: 000073b95c1fedb0 000000000000003f +0x000073b95c1feab0: 000073b95c1fed70 000073b95c1fead0 +0x000073b95c1feac0: 000073b8ac002420 000073b95c4592f8 + +Instructions: (pc=0x000073b95c45933a) +0x000073b95c45923a: f4 66 41 c1 ec 03 41 0f b7 d4 2b 95 40 ff ff ff +0x000073b95c45924a: 48 c1 e2 03 e8 bd f0 fa ff 49 8b 4d 00 41 0f b7 +0x000073b95c45925a: 7d 14 48 01 d9 89 fe 66 41 2b 7d 10 29 ce 66 c1 +0x000073b95c45926a: ef 03 49 89 4d 00 66 c1 ee 03 66 39 fe 73 0c 4c +0x000073b95c45927a: 8b bd 50 ff ff ff 66 41 89 4f 10 48 8d 65 d8 5b +0x000073b95c45928a: 41 5c 41 5d 41 5e 41 5f 5d c3 29 d8 48 89 a5 48 +0x000073b95c45929a: ff ff ff 4c 89 ff 44 0f b7 e0 44 0f b7 c0 66 89 +0x000073b95c4592aa: 45 c0 45 8d 74 24 01 4e 8d 1c c5 00 00 00 00 44 +0x000073b95c4592ba: 89 a5 40 ff ff ff 4a 8d 1c f5 0f 00 00 00 4c 29 +0x000073b95c4592ca: da 4c 89 9d 38 ff ff ff 81 e3 f0 ff 1f 00 4c 8d +0x000073b95c4592da: 14 16 4c 89 c2 48 8b b5 30 ff ff ff 48 29 dc 4c +0x000073b95c4592ea: 89 55 c8 49 89 e6 4c 89 f1 e8 28 ed ff ff 48 29 +0x000073b95c4592fa: dc 48 89 65 80 45 85 e4 0f 84 07 ff ff ff 44 8b +0x000073b95c45930a: 8d 2c ff ff ff c7 45 b8 00 00 00 00 4c 89 7d b0 +0x000073b95c45931a: 4d 89 f7 45 89 e6 4b 8d 0c 89 4c 89 4d a0 48 c1 +0x000073b95c45932a: e1 03 48 89 4d 88 49 8b 37 48 8d 15 06 f1 01 00 +0x000073b95c45933a: 44 8b 2e 41 81 e5 ff 0f 00 00 44 89 e8 4c 8b 24 +0x000073b95c45934a: c2 4c 89 65 a8 4c 8b 06 48 8d 3d 67 72 02 00 4c +0x000073b95c45935a: 8b 5d a0 49 c1 e8 26 41 83 e0 3f 46 8b 14 9f 44 +0x000073b95c45936a: 89 c3 44 89 45 bc 4c 8d 0c dd 00 00 00 00 49 29 +0x000073b95c45937a: d9 49 c1 e1 05 4d 01 ca 4d 01 e2 49 8d 7a 48 4c +0x000073b95c45938a: 89 55 90 48 89 7d 98 e8 6a f0 fa ff 4c 8b 4d 90 +0x000073b95c45939a: 85 c0 0f 85 ce 03 00 00 49 8d 49 40 48 89 4d 90 +0x000073b95c4593aa: 49 8b 1f 48 8b 55 a0 45 8d 5e ff 45 31 e4 48 8d +0x000073b95c4593ba: 05 a1 72 02 00 41 ba 01 00 00 00 41 83 e3 01 48 +0x000073b95c4593ca: 8b 3b 44 8b 04 90 48 8b 45 c8 89 fe 81 e6 ff 0f +0x000073b95c4593da: 00 00 48 8b 08 41 39 f5 0f 84 c0 02 00 00 4a 89 +0x000073b95c4593ea: 0c e0 4b 89 1c e7 41 bc 01 00 00 00 bb 01 00 00 +0x000073b95c4593fa: 00 41 83 fe 01 0f 86 51 02 00 00 45 85 db 74 38 +0x000073b95c45940a: 49 8b 57 08 48 8b 48 08 48 8b 32 89 f7 81 e7 ff +0x000073b95c45941a: 0f 00 00 41 39 fd 0f 84 6a 04 00 00 45 89 e3 41 +0x000073b95c45942a: 83 c4 01 4a 89 0c d8 4b 89 14 df 48 83 c3 01 41 + + + +--------------- P R O C E S S --------------- + +VM state: not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap address: 0x000000060c000000, size: 8000 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 + +CDS archive(s) mapped at: [0x000073b8fe000000-0x000073b8fed91000-0x000073b8fed91000), size 14225408, SharedBaseAddress: 0x000073b8fe000000, ArchiveRelocationMode: 1. +Compressed class space mapped at: 0x000073b8ff000000-0x000073b93f000000, reserved size: 1073741824 +Narrow klass base: 0x000073b8fe000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 + +GC Precious Log: + + +Heap: + garbage-first heap total reserved 8192000K, committed 516096K, used 11952K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 3 young (12288K), 1 survivors (4096K) + Metaspace used 10807K, committed 11072K, reserved 1114112K + class space used 906K, committed 1024K, reserved 1048576K + +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, TAMS=top-at-mark-start, PB=parsable bottom +| 0|0x000000060c000000, 0x000000060c000000, 0x000000060c400000| 0%| F| |TAMS 0x000000060c000000| PB 0x000000060c000000| Untracked | 0 +| 1|0x000000060c400000, 0x000000060c400000, 0x000000060c800000| 0%| F| |TAMS 0x000000060c400000| PB 0x000000060c400000| Untracked | 0 +| 2|0x000000060c800000, 0x000000060c800000, 0x000000060cc00000| 0%| F| |TAMS 0x000000060c800000| PB 0x000000060c800000| Untracked | 0 +| 3|0x000000060cc00000, 0x000000060cc00000, 0x000000060d000000| 0%| F| |TAMS 0x000000060cc00000| PB 0x000000060cc00000| Untracked | 0 +| 4|0x000000060d000000, 0x000000060d000000, 0x000000060d400000| 0%| F| |TAMS 0x000000060d000000| PB 0x000000060d000000| Untracked | 0 +| 5|0x000000060d400000, 0x000000060d400000, 0x000000060d800000| 0%| F| |TAMS 0x000000060d400000| PB 0x000000060d400000| Untracked | 0 +| 6|0x000000060d800000, 0x000000060d800000, 0x000000060dc00000| 0%| F| |TAMS 0x000000060d800000| PB 0x000000060d800000| Untracked | 0 +| 7|0x000000060dc00000, 0x000000060dc00000, 0x000000060e000000| 0%| F| |TAMS 0x000000060dc00000| PB 0x000000060dc00000| Untracked | 0 +| 8|0x000000060e000000, 0x000000060e000000, 0x000000060e400000| 0%| F| |TAMS 0x000000060e000000| PB 0x000000060e000000| Untracked | 0 +| 9|0x000000060e400000, 0x000000060e400000, 0x000000060e800000| 0%| F| |TAMS 0x000000060e400000| PB 0x000000060e400000| Untracked | 0 +| 10|0x000000060e800000, 0x000000060e800000, 0x000000060ec00000| 0%| F| |TAMS 0x000000060e800000| PB 0x000000060e800000| Untracked | 0 +| 11|0x000000060ec00000, 0x000000060ec00000, 0x000000060f000000| 0%| F| |TAMS 0x000000060ec00000| PB 0x000000060ec00000| Untracked | 0 +| 12|0x000000060f000000, 0x000000060f000000, 0x000000060f400000| 0%| F| |TAMS 0x000000060f000000| PB 0x000000060f000000| Untracked | 0 +| 13|0x000000060f400000, 0x000000060f400000, 0x000000060f800000| 0%| F| |TAMS 0x000000060f400000| PB 0x000000060f400000| Untracked | 0 +| 14|0x000000060f800000, 0x000000060f800000, 0x000000060fc00000| 0%| F| |TAMS 0x000000060f800000| PB 0x000000060f800000| Untracked | 0 +| 15|0x000000060fc00000, 0x000000060fc00000, 0x0000000610000000| 0%| F| |TAMS 0x000000060fc00000| PB 0x000000060fc00000| Untracked | 0 +| 16|0x0000000610000000, 0x0000000610000000, 0x0000000610400000| 0%| F| |TAMS 0x0000000610000000| PB 0x0000000610000000| Untracked | 0 +| 17|0x0000000610400000, 0x0000000610400000, 0x0000000610800000| 0%| F| |TAMS 0x0000000610400000| PB 0x0000000610400000| Untracked | 0 +| 18|0x0000000610800000, 0x0000000610800000, 0x0000000610c00000| 0%| F| |TAMS 0x0000000610800000| PB 0x0000000610800000| Untracked | 0 +| 19|0x0000000610c00000, 0x0000000610c00000, 0x0000000611000000| 0%| F| |TAMS 0x0000000610c00000| PB 0x0000000610c00000| Untracked | 0 +| 20|0x0000000611000000, 0x0000000611000000, 0x0000000611400000| 0%| F| |TAMS 0x0000000611000000| PB 0x0000000611000000| Untracked | 0 +| 21|0x0000000611400000, 0x0000000611400000, 0x0000000611800000| 0%| F| |TAMS 0x0000000611400000| PB 0x0000000611400000| Untracked | 0 +| 22|0x0000000611800000, 0x0000000611800000, 0x0000000611c00000| 0%| F| |TAMS 0x0000000611800000| PB 0x0000000611800000| Untracked | 0 +| 23|0x0000000611c00000, 0x0000000611c00000, 0x0000000612000000| 0%| F| |TAMS 0x0000000611c00000| PB 0x0000000611c00000| Untracked | 0 +| 24|0x0000000612000000, 0x0000000612000000, 0x0000000612400000| 0%| F| |TAMS 0x0000000612000000| PB 0x0000000612000000| Untracked | 0 +| 25|0x0000000612400000, 0x0000000612400000, 0x0000000612800000| 0%| F| |TAMS 0x0000000612400000| PB 0x0000000612400000| Untracked | 0 +| 26|0x0000000612800000, 0x0000000612800000, 0x0000000612c00000| 0%| F| |TAMS 0x0000000612800000| PB 0x0000000612800000| Untracked | 0 +| 27|0x0000000612c00000, 0x0000000612c00000, 0x0000000613000000| 0%| F| |TAMS 0x0000000612c00000| PB 0x0000000612c00000| Untracked | 0 +| 28|0x0000000613000000, 0x0000000613000000, 0x0000000613400000| 0%| F| |TAMS 0x0000000613000000| PB 0x0000000613000000| Untracked | 0 +| 29|0x0000000613400000, 0x0000000613400000, 0x0000000613800000| 0%| F| |TAMS 0x0000000613400000| PB 0x0000000613400000| Untracked | 0 +| 30|0x0000000613800000, 0x0000000613800000, 0x0000000613c00000| 0%| F| |TAMS 0x0000000613800000| PB 0x0000000613800000| Untracked | 0 +| 31|0x0000000613c00000, 0x0000000613c00000, 0x0000000614000000| 0%| F| |TAMS 0x0000000613c00000| PB 0x0000000613c00000| Untracked | 0 +| 32|0x0000000614000000, 0x0000000614000000, 0x0000000614400000| 0%| F| |TAMS 0x0000000614000000| PB 0x0000000614000000| Untracked | 0 +| 33|0x0000000614400000, 0x0000000614400000, 0x0000000614800000| 0%| F| |TAMS 0x0000000614400000| PB 0x0000000614400000| Untracked | 0 +| 34|0x0000000614800000, 0x0000000614800000, 0x0000000614c00000| 0%| F| |TAMS 0x0000000614800000| PB 0x0000000614800000| Untracked | 0 +| 35|0x0000000614c00000, 0x0000000614c00000, 0x0000000615000000| 0%| F| |TAMS 0x0000000614c00000| PB 0x0000000614c00000| Untracked | 0 +| 36|0x0000000615000000, 0x0000000615000000, 0x0000000615400000| 0%| F| |TAMS 0x0000000615000000| PB 0x0000000615000000| Untracked | 0 +| 37|0x0000000615400000, 0x0000000615400000, 0x0000000615800000| 0%| F| |TAMS 0x0000000615400000| PB 0x0000000615400000| Untracked | 0 +| 38|0x0000000615800000, 0x0000000615800000, 0x0000000615c00000| 0%| F| |TAMS 0x0000000615800000| PB 0x0000000615800000| Untracked | 0 +| 39|0x0000000615c00000, 0x0000000615c00000, 0x0000000616000000| 0%| F| |TAMS 0x0000000615c00000| PB 0x0000000615c00000| Untracked | 0 +| 40|0x0000000616000000, 0x0000000616000000, 0x0000000616400000| 0%| F| |TAMS 0x0000000616000000| PB 0x0000000616000000| Untracked | 0 +| 41|0x0000000616400000, 0x0000000616400000, 0x0000000616800000| 0%| F| |TAMS 0x0000000616400000| PB 0x0000000616400000| Untracked | 0 +| 42|0x0000000616800000, 0x0000000616800000, 0x0000000616c00000| 0%| F| |TAMS 0x0000000616800000| PB 0x0000000616800000| Untracked | 0 +| 43|0x0000000616c00000, 0x0000000616c00000, 0x0000000617000000| 0%| F| |TAMS 0x0000000616c00000| PB 0x0000000616c00000| Untracked | 0 +| 44|0x0000000617000000, 0x0000000617000000, 0x0000000617400000| 0%| F| |TAMS 0x0000000617000000| PB 0x0000000617000000| Untracked | 0 +| 45|0x0000000617400000, 0x0000000617400000, 0x0000000617800000| 0%| F| |TAMS 0x0000000617400000| PB 0x0000000617400000| Untracked | 0 +| 46|0x0000000617800000, 0x0000000617800000, 0x0000000617c00000| 0%| F| |TAMS 0x0000000617800000| PB 0x0000000617800000| Untracked | 0 +| 47|0x0000000617c00000, 0x0000000617c00000, 0x0000000618000000| 0%| F| |TAMS 0x0000000617c00000| PB 0x0000000617c00000| Untracked | 0 +| 48|0x0000000618000000, 0x0000000618000000, 0x0000000618400000| 0%| F| |TAMS 0x0000000618000000| PB 0x0000000618000000| Untracked | 0 +| 49|0x0000000618400000, 0x0000000618400000, 0x0000000618800000| 0%| F| |TAMS 0x0000000618400000| PB 0x0000000618400000| Untracked | 0 +| 50|0x0000000618800000, 0x0000000618800000, 0x0000000618c00000| 0%| F| |TAMS 0x0000000618800000| PB 0x0000000618800000| Untracked | 0 +| 51|0x0000000618c00000, 0x0000000618c00000, 0x0000000619000000| 0%| F| |TAMS 0x0000000618c00000| PB 0x0000000618c00000| Untracked | 0 +| 52|0x0000000619000000, 0x0000000619000000, 0x0000000619400000| 0%| F| |TAMS 0x0000000619000000| PB 0x0000000619000000| Untracked | 0 +| 53|0x0000000619400000, 0x0000000619400000, 0x0000000619800000| 0%| F| |TAMS 0x0000000619400000| PB 0x0000000619400000| Untracked | 0 +| 54|0x0000000619800000, 0x0000000619800000, 0x0000000619c00000| 0%| F| |TAMS 0x0000000619800000| PB 0x0000000619800000| Untracked | 0 +| 55|0x0000000619c00000, 0x0000000619c00000, 0x000000061a000000| 0%| F| |TAMS 0x0000000619c00000| PB 0x0000000619c00000| Untracked | 0 +| 56|0x000000061a000000, 0x000000061a000000, 0x000000061a400000| 0%| F| |TAMS 0x000000061a000000| PB 0x000000061a000000| Untracked | 0 +| 57|0x000000061a400000, 0x000000061a400000, 0x000000061a800000| 0%| F| |TAMS 0x000000061a400000| PB 0x000000061a400000| Untracked | 0 +| 58|0x000000061a800000, 0x000000061a800000, 0x000000061ac00000| 0%| F| |TAMS 0x000000061a800000| PB 0x000000061a800000| Untracked | 0 +| 59|0x000000061ac00000, 0x000000061ac00000, 0x000000061b000000| 0%| F| |TAMS 0x000000061ac00000| PB 0x000000061ac00000| Untracked | 0 +| 60|0x000000061b000000, 0x000000061b000000, 0x000000061b400000| 0%| F| |TAMS 0x000000061b000000| PB 0x000000061b000000| Untracked | 0 +| 61|0x000000061b400000, 0x000000061b400000, 0x000000061b800000| 0%| F| |TAMS 0x000000061b400000| PB 0x000000061b400000| Untracked | 0 +| 62|0x000000061b800000, 0x000000061b800000, 0x000000061bc00000| 0%| F| |TAMS 0x000000061b800000| PB 0x000000061b800000| Untracked | 0 +| 63|0x000000061bc00000, 0x000000061bc00000, 0x000000061c000000| 0%| F| |TAMS 0x000000061bc00000| PB 0x000000061bc00000| Untracked | 0 +| 64|0x000000061c000000, 0x000000061c000000, 0x000000061c400000| 0%| F| |TAMS 0x000000061c000000| PB 0x000000061c000000| Untracked | 0 +| 65|0x000000061c400000, 0x000000061c400000, 0x000000061c800000| 0%| F| |TAMS 0x000000061c400000| PB 0x000000061c400000| Untracked | 0 +| 66|0x000000061c800000, 0x000000061c800000, 0x000000061cc00000| 0%| F| |TAMS 0x000000061c800000| PB 0x000000061c800000| Untracked | 0 +| 67|0x000000061cc00000, 0x000000061cc00000, 0x000000061d000000| 0%| F| |TAMS 0x000000061cc00000| PB 0x000000061cc00000| Untracked | 0 +| 68|0x000000061d000000, 0x000000061d000000, 0x000000061d400000| 0%| F| |TAMS 0x000000061d000000| PB 0x000000061d000000| Untracked | 0 +| 69|0x000000061d400000, 0x000000061d400000, 0x000000061d800000| 0%| F| |TAMS 0x000000061d400000| PB 0x000000061d400000| Untracked | 0 +| 70|0x000000061d800000, 0x000000061d800000, 0x000000061dc00000| 0%| F| |TAMS 0x000000061d800000| PB 0x000000061d800000| Untracked | 0 +| 71|0x000000061dc00000, 0x000000061dc00000, 0x000000061e000000| 0%| F| |TAMS 0x000000061dc00000| PB 0x000000061dc00000| Untracked | 0 +| 72|0x000000061e000000, 0x000000061e000000, 0x000000061e400000| 0%| F| |TAMS 0x000000061e000000| PB 0x000000061e000000| Untracked | 0 +| 73|0x000000061e400000, 0x000000061e400000, 0x000000061e800000| 0%| F| |TAMS 0x000000061e400000| PB 0x000000061e400000| Untracked | 0 +| 74|0x000000061e800000, 0x000000061e800000, 0x000000061ec00000| 0%| F| |TAMS 0x000000061e800000| PB 0x000000061e800000| Untracked | 0 +| 75|0x000000061ec00000, 0x000000061ec00000, 0x000000061f000000| 0%| F| |TAMS 0x000000061ec00000| PB 0x000000061ec00000| Untracked | 0 +| 76|0x000000061f000000, 0x000000061f000000, 0x000000061f400000| 0%| F| |TAMS 0x000000061f000000| PB 0x000000061f000000| Untracked | 0 +| 77|0x000000061f400000, 0x000000061f400000, 0x000000061f800000| 0%| F| |TAMS 0x000000061f400000| PB 0x000000061f400000| Untracked | 0 +| 78|0x000000061f800000, 0x000000061f800000, 0x000000061fc00000| 0%| F| |TAMS 0x000000061f800000| PB 0x000000061f800000| Untracked | 0 +| 79|0x000000061fc00000, 0x000000061fc00000, 0x0000000620000000| 0%| F| |TAMS 0x000000061fc00000| PB 0x000000061fc00000| Untracked | 0 +| 80|0x0000000620000000, 0x0000000620000000, 0x0000000620400000| 0%| F| |TAMS 0x0000000620000000| PB 0x0000000620000000| Untracked | 0 +| 81|0x0000000620400000, 0x0000000620400000, 0x0000000620800000| 0%| F| |TAMS 0x0000000620400000| PB 0x0000000620400000| Untracked | 0 +| 82|0x0000000620800000, 0x0000000620800000, 0x0000000620c00000| 0%| F| |TAMS 0x0000000620800000| PB 0x0000000620800000| Untracked | 0 +| 83|0x0000000620c00000, 0x0000000620c00000, 0x0000000621000000| 0%| F| |TAMS 0x0000000620c00000| PB 0x0000000620c00000| Untracked | 0 +| 84|0x0000000621000000, 0x0000000621000000, 0x0000000621400000| 0%| F| |TAMS 0x0000000621000000| PB 0x0000000621000000| Untracked | 0 +| 85|0x0000000621400000, 0x0000000621400000, 0x0000000621800000| 0%| F| |TAMS 0x0000000621400000| PB 0x0000000621400000| Untracked | 0 +| 86|0x0000000621800000, 0x0000000621800000, 0x0000000621c00000| 0%| F| |TAMS 0x0000000621800000| PB 0x0000000621800000| Untracked | 0 +| 87|0x0000000621c00000, 0x0000000621c00000, 0x0000000622000000| 0%| F| |TAMS 0x0000000621c00000| PB 0x0000000621c00000| Untracked | 0 +| 88|0x0000000622000000, 0x0000000622000000, 0x0000000622400000| 0%| F| |TAMS 0x0000000622000000| PB 0x0000000622000000| Untracked | 0 +| 89|0x0000000622400000, 0x0000000622400000, 0x0000000622800000| 0%| F| |TAMS 0x0000000622400000| PB 0x0000000622400000| Untracked | 0 +| 90|0x0000000622800000, 0x0000000622800000, 0x0000000622c00000| 0%| F| |TAMS 0x0000000622800000| PB 0x0000000622800000| Untracked | 0 +| 91|0x0000000622c00000, 0x0000000622c00000, 0x0000000623000000| 0%| F| |TAMS 0x0000000622c00000| PB 0x0000000622c00000| Untracked | 0 +| 92|0x0000000623000000, 0x0000000623000000, 0x0000000623400000| 0%| F| |TAMS 0x0000000623000000| PB 0x0000000623000000| Untracked | 0 +| 93|0x0000000623400000, 0x0000000623400000, 0x0000000623800000| 0%| F| |TAMS 0x0000000623400000| PB 0x0000000623400000| Untracked | 0 +| 94|0x0000000623800000, 0x0000000623800000, 0x0000000623c00000| 0%| F| |TAMS 0x0000000623800000| PB 0x0000000623800000| Untracked | 0 +| 95|0x0000000623c00000, 0x0000000623c00000, 0x0000000624000000| 0%| F| |TAMS 0x0000000623c00000| PB 0x0000000623c00000| Untracked | 0 +| 96|0x0000000624000000, 0x0000000624000000, 0x0000000624400000| 0%| F| |TAMS 0x0000000624000000| PB 0x0000000624000000| Untracked | 0 +| 97|0x0000000624400000, 0x0000000624400000, 0x0000000624800000| 0%| F| |TAMS 0x0000000624400000| PB 0x0000000624400000| Untracked | 0 +| 98|0x0000000624800000, 0x0000000624800000, 0x0000000624c00000| 0%| F| |TAMS 0x0000000624800000| PB 0x0000000624800000| Untracked | 0 +| 99|0x0000000624c00000, 0x0000000624c00000, 0x0000000625000000| 0%| F| |TAMS 0x0000000624c00000| PB 0x0000000624c00000| Untracked | 0 +| 100|0x0000000625000000, 0x0000000625000000, 0x0000000625400000| 0%| F| |TAMS 0x0000000625000000| PB 0x0000000625000000| Untracked | 0 +| 101|0x0000000625400000, 0x0000000625400000, 0x0000000625800000| 0%| F| |TAMS 0x0000000625400000| PB 0x0000000625400000| Untracked | 0 +| 102|0x0000000625800000, 0x0000000625800000, 0x0000000625c00000| 0%| F| |TAMS 0x0000000625800000| PB 0x0000000625800000| Untracked | 0 +| 103|0x0000000625c00000, 0x0000000625c00000, 0x0000000626000000| 0%| F| |TAMS 0x0000000625c00000| PB 0x0000000625c00000| Untracked | 0 +| 104|0x0000000626000000, 0x0000000626000000, 0x0000000626400000| 0%| F| |TAMS 0x0000000626000000| PB 0x0000000626000000| Untracked | 0 +| 105|0x0000000626400000, 0x0000000626400000, 0x0000000626800000| 0%| F| |TAMS 0x0000000626400000| PB 0x0000000626400000| Untracked | 0 +| 106|0x0000000626800000, 0x0000000626800000, 0x0000000626c00000| 0%| F| |TAMS 0x0000000626800000| PB 0x0000000626800000| Untracked | 0 +| 107|0x0000000626c00000, 0x0000000626c00000, 0x0000000627000000| 0%| F| |TAMS 0x0000000626c00000| PB 0x0000000626c00000| Untracked | 0 +| 108|0x0000000627000000, 0x0000000627000000, 0x0000000627400000| 0%| F| |TAMS 0x0000000627000000| PB 0x0000000627000000| Untracked | 0 +| 109|0x0000000627400000, 0x0000000627400000, 0x0000000627800000| 0%| F| |TAMS 0x0000000627400000| PB 0x0000000627400000| Untracked | 0 +| 110|0x0000000627800000, 0x0000000627800000, 0x0000000627c00000| 0%| F| |TAMS 0x0000000627800000| PB 0x0000000627800000| Untracked | 0 +| 111|0x0000000627c00000, 0x0000000627c00000, 0x0000000628000000| 0%| F| |TAMS 0x0000000627c00000| PB 0x0000000627c00000| Untracked | 0 +| 112|0x0000000628000000, 0x0000000628000000, 0x0000000628400000| 0%| F| |TAMS 0x0000000628000000| PB 0x0000000628000000| Untracked | 0 +| 113|0x0000000628400000, 0x0000000628400000, 0x0000000628800000| 0%| F| |TAMS 0x0000000628400000| PB 0x0000000628400000| Untracked | 0 +| 114|0x0000000628800000, 0x0000000628800000, 0x0000000628c00000| 0%| F| |TAMS 0x0000000628800000| PB 0x0000000628800000| Untracked | 0 +| 115|0x0000000628c00000, 0x0000000628c00000, 0x0000000629000000| 0%| F| |TAMS 0x0000000628c00000| PB 0x0000000628c00000| Untracked | 0 +| 116|0x0000000629000000, 0x0000000629000000, 0x0000000629400000| 0%| F| |TAMS 0x0000000629000000| PB 0x0000000629000000| Untracked | 0 +| 117|0x0000000629400000, 0x0000000629400000, 0x0000000629800000| 0%| F| |TAMS 0x0000000629400000| PB 0x0000000629400000| Untracked | 0 +| 118|0x0000000629800000, 0x0000000629bbcdc8, 0x0000000629c00000| 93%| S|CS|TAMS 0x0000000629800000| PB 0x0000000629800000| Complete | 0 +| 119|0x0000000629c00000, 0x0000000629c00000, 0x000000062a000000| 0%| F| |TAMS 0x0000000629c00000| PB 0x0000000629c00000| Untracked | 0 +| 120|0x000000062a000000, 0x000000062a000000, 0x000000062a400000| 0%| F| |TAMS 0x000000062a000000| PB 0x000000062a000000| Untracked | 0 +| 121|0x000000062a400000, 0x000000062a400000, 0x000000062a800000| 0%| F| |TAMS 0x000000062a400000| PB 0x000000062a400000| Untracked | 0 +| 122|0x000000062a800000, 0x000000062a800000, 0x000000062ac00000| 0%| F| |TAMS 0x000000062a800000| PB 0x000000062a800000| Untracked | 0 +| 123|0x000000062ac00000, 0x000000062aed08a0, 0x000000062b000000| 70%| E| |TAMS 0x000000062ac00000| PB 0x000000062ac00000| Complete | 0 +| 124|0x000000062b000000, 0x000000062b400000, 0x000000062b400000|100%| E|CS|TAMS 0x000000062b000000| PB 0x000000062b000000| Complete | 0 +|1999|0x00000007ffc00000, 0x00000007ffd1ec18, 0x0000000800000000| 28%| O| |TAMS 0x00000007ffc00000| PB 0x00000007ffc00000| Untracked | 0 + +Card table byte_map: [0x000073b981600000,0x000073b9825a0000] _byte_map_base: 0x000073b97e5a0000 + +Marking Bits: (CMBitMap*) 0x000073b97c059190 + Bits: [0x000073b95ca00000, 0x000073b964700000) + +Polling page: 0x000073b985b0b000 + +Metaspace: + +Usage: + Non-class: 9.67 MB used. + Class: 906.79 KB used. + Both: 10.55 MB used. + +Virtual space: + Non-class space: 64.00 MB reserved, 9.81 MB ( 15%) committed, 1 nodes. + Class space: 1.00 GB reserved, 1.00 MB ( <1%) committed, 1 nodes. + Both: 1.06 GB reserved, 10.81 MB ( <1%) committed. + +Chunk freelists: + Non-Class: 6.09 MB + Class: 14.91 MB + Both: 21.00 MB + +MaxMetaspaceSize: unlimited +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 21.00 MB +Current GC threshold: 21.00 MB +CDS: on + - commit_granule_bytes: 65536. + - commit_granule_words: 8192. + - virtual_space_node_default_size: 8388608. + - enlarge_chunks_in_place: 1. + - use_allocation_guard: 0. + + +Internal statistics: + +num_allocs_failed_limit: 0. +num_arena_births: 172. +num_arena_deaths: 0. +num_vsnodes_births: 2. +num_vsnodes_deaths: 0. +num_space_committed: 173. +num_space_uncommitted: 0. +num_chunks_returned_to_freelist: 0. +num_chunks_taken_from_freelist: 469. +num_chunk_merges: 0. +num_chunk_splits: 317. +num_chunks_enlarged: 231. +num_inconsistent_stats: 0. + +CodeHeap 'non-profiled nmethods': size=120032Kb used=505Kb max_used=505Kb free=119526Kb + bounds [0x000073b96c2c8000, 0x000073b96c538000, 0x000073b973800000] +CodeHeap 'profiled nmethods': size=120028Kb used=2160Kb max_used=2160Kb free=117867Kb + bounds [0x000073b964800000, 0x000073b964a70000, 0x000073b96bd37000] +CodeHeap 'non-nmethods': size=5700Kb used=2194Kb max_used=2212Kb free=3505Kb + bounds [0x000073b96bd37000, 0x000073b96bfa7000, 0x000073b96c2c8000] +CodeCache: size=245760Kb, used=4859Kb, max_used=4877Kb, free=240898Kb + total_blobs=2935, nmethods=1733, adapters=1109, full_count=0 +Compilation: enabled, stopped_count=0, restarted_count=0 + +Compilation events (20 events): +Event: 5.366 Thread 0x000073b97c1484b0 nmethod 1721 0x000073b964a18a88 code [0x000073b964a18be0, 0x000073b964a19068] +Event: 5.380 Thread 0x000073b97c1484b0 1722 3 org.lwjgl.vulkan.VkRect2D::nextent (10 bytes) +Event: 5.380 Thread 0x000073b97c1484b0 nmethod 1722 0x000073b964a19108 code [0x000073b964a19220, 0x000073b964a19340] +Event: 5.380 Thread 0x000073b97c1484b0 1723 3 org.lwjgl.vulkan.VkViewport::calloc (20 bytes) +Event: 5.380 Thread 0x000073b97c1484b0 nmethod 1723 0x000073b964a19408 code [0x000073b964a19540, 0x000073b964a197b0] +Event: 5.380 Thread 0x000073b97c1484b0 1724 3 org.lwjgl.vulkan.VkViewport$Buffer:: (11 bytes) +Event: 5.381 Thread 0x000073b97c1484b0 nmethod 1724 0x000073b964a19808 code [0x000073b964a19920, 0x000073b964a19a80] +Event: 5.382 Thread 0x000073b97c1484b0 1725 3 org.lwjgl.openal.ALC::check (16 bytes) +Event: 5.382 Thread 0x000073b97c1484b0 nmethod 1725 0x000073b964a19b08 code [0x000073b964a19c40, 0x000073b964a19e38] +Event: 5.385 Thread 0x000073b97c1484b0 1726 3 java.lang.StackStreamFactory$FrameBuffer::isEmpty (32 bytes) +Event: 5.385 Thread 0x000073b97c1484b0 nmethod 1726 0x000073b964a19e88 code [0x000073b964a19fa0, 0x000073b964a1a150] +Event: 5.385 Thread 0x000073b97c1484b0 1727 3 java.lang.invoke.Invokers::maybeCustomize (5 bytes) +Event: 5.385 Thread 0x000073b97c1484b0 nmethod 1727 0x000073b964a1a188 code [0x000073b964a1a2a0, 0x000073b964a1a448] +Event: 5.385 Thread 0x000073b97c1484b0 1728 3 java.lang.invoke.MethodHandle::maybeCustomize (38 bytes) +Event: 5.386 Thread 0x000073b97c1484b0 nmethod 1728 0x000073b964a1a488 code [0x000073b964a1a5e0, 0x000073b964a1aaa0] +Event: 5.434 Thread 0x000073b97c1484b0 1729 3 java.lang.StackWalker::hasOption (11 bytes) +Event: 5.434 Thread 0x000073b97c1484b0 nmethod 1729 0x000073b964a1ab08 code [0x000073b964a1ac20, 0x000073b964a1adf8] +Event: 5.434 Thread 0x000073b97c1484b0 1730 3 java.util.RegularEnumSet::contains (57 bytes) +Event: 5.434 Thread 0x000073b97c1484b0 nmethod 1730 0x000073b964a1ae08 code [0x000073b964a1af60, 0x000073b964a1b330] +Event: 5.435 Thread 0x000073b97c1484b0 1731 3 jdk.internal.org.objectweb.asm.Frame::pop (53 bytes) + +GC Heap History (2 events): +Event: 0.923 GC heap before +{Heap before GC invocations=0 (full 0): + garbage-first heap total reserved 8192000K, committed 516096K, used 25723K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 6 young (24576K), 0 survivors (0K) + Metaspace used 9080K, committed 9280K, reserved 1114112K + class space used 793K, committed 896K, reserved 1048576K +} +Event: 0.925 GC heap after +{Heap after GC invocations=1 (full 0): + garbage-first heap total reserved 8192000K, committed 516096K, used 4974K [0x000000060c000000, 0x0000000800000000) + region size 4096K, 1 young (4096K), 1 survivors (4096K) + Metaspace used 9080K, committed 9280K, reserved 1114112K + class space used 793K, committed 896K, reserved 1048576K +} + +Dll operation events (10 events): +Event: 0.001 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +Event: 0.017 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +Event: 0.017 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +Event: 0.025 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +Event: 0.027 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +Event: 0.075 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +Event: 0.123 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +Event: 0.128 Loaded shared library /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +Event: 0.359 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +Event: 0.362 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so + +Deoptimization events (20 events): +Event: 0.925 Thread 0x000073b97c137930 Uncommon trap: trap_request=0xffffff45 fr.pc=0x000073b96c3151b4 relative=0x00000000000001b4 +Event: 0.925 Thread 0x000073b97c137930 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000073b96c3151b4 method=java.util.concurrent.locks.ReentrantLock$NonfairSync.initialTryLock()Z @ 25 c2 +Event: 0.925 Thread 0x000073b97c137930 DEOPT PACKING pc=0x000073b96c3151b4 sp=0x000073b980714790 +Event: 0.925 Thread 0x000073b97c137930 DEOPT UNPACKING pc=0x000073b96bd8abf9 sp=0x000073b980714730 mode 2 +Event: 1.006 Thread 0x000073b97c5f94d0 Uncommon trap: trap_request=0xffffff6e fr.pc=0x000073b96c3213a8 relative=0x0000000000000588 +Event: 1.006 Thread 0x000073b97c5f94d0 Uncommon trap: reason=loop_limit_check action=maybe_recompile pc=0x000073b96c3213a8 method=java.util.regex.Pattern$Start.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 34 c2 +Event: 1.006 Thread 0x000073b97c5f94d0 DEOPT PACKING pc=0x000073b96c3213a8 sp=0x000073b95c1fd3e0 +Event: 1.006 Thread 0x000073b97c5f94d0 DEOPT UNPACKING pc=0x000073b96bd8abf9 sp=0x000073b95c1fd2d8 mode 2 +Event: 1.041 Thread 0x000073b97c5f94d0 DEOPT PACKING pc=0x000073b9649d269f sp=0x000073b95c1fd100 +Event: 1.041 Thread 0x000073b97c5f94d0 DEOPT UNPACKING pc=0x000073b96bd8b30f sp=0x000073b95c1fc540 mode 0 +Event: 1.043 Thread 0x000073b97c5f94d0 DEOPT PACKING pc=0x000073b9648b03d4 sp=0x000073b95c1fd0d0 +Event: 1.043 Thread 0x000073b97c5f94d0 DEOPT UNPACKING pc=0x000073b96bd8b30f sp=0x000073b95c1fc588 mode 0 +Event: 1.173 Thread 0x000073b97c5f94d0 Uncommon trap: trap_request=0xffffff6e fr.pc=0x000073b96c320a38 relative=0x0000000000000538 +Event: 1.173 Thread 0x000073b97c5f94d0 Uncommon trap: reason=loop_limit_check action=maybe_recompile pc=0x000073b96c320a38 method=java.util.regex.Pattern$Start.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 34 c2 +Event: 1.173 Thread 0x000073b97c5f94d0 DEOPT PACKING pc=0x000073b96c320a38 sp=0x000073b95c1fde60 +Event: 1.173 Thread 0x000073b97c5f94d0 DEOPT UNPACKING pc=0x000073b96bd8abf9 sp=0x000073b95c1fddd0 mode 2 +Event: 3.411 Thread 0x000073b97c5f94d0 Uncommon trap: trap_request=0xffffff5c fr.pc=0x000073b96c343558 relative=0x0000000000000058 +Event: 3.411 Thread 0x000073b97c5f94d0 Uncommon trap: reason=speculate_null_check action=make_not_entrant pc=0x000073b96c343558 method=sun.misc.Unsafe.putLong(Ljava/lang/Object;JJ)V @ 10 c2 +Event: 3.411 Thread 0x000073b97c5f94d0 DEOPT PACKING pc=0x000073b96c343558 sp=0x000073b95c1fe2e0 +Event: 3.411 Thread 0x000073b97c5f94d0 DEOPT UNPACKING pc=0x000073b96bd8abf9 sp=0x000073b95c1fe278 mode 2 + +Classes loaded (20 events): +Event: 0.695 Loading class java/awt/ImageCapabilities +Event: 0.695 Loading class java/awt/ImageCapabilities done +Event: 0.695 Loading class java/awt/Image$1 +Event: 0.695 Loading class sun/awt/image/SurfaceManager$ImageAccessor +Event: 0.695 Loading class sun/awt/image/SurfaceManager$ImageAccessor done +Event: 0.695 Loading class java/awt/Image$1 done +Event: 0.695 Loading class sun/awt/image/SurfaceManager +Event: 0.695 Loading class sun/awt/image/SurfaceManager done +Event: 0.695 Loading class java/awt/image/BufferedImage$1 +Event: 0.696 Loading class java/awt/image/BufferedImage$1 done +Event: 0.696 Loading class sun/awt/image/IntegerComponentRaster +Event: 0.696 Loading class sun/awt/image/IntegerComponentRaster done +Event: 0.696 Loading class java/awt/image/IndexColorModel +Event: 0.696 Loading class java/awt/image/IndexColorModel done +Event: 0.696 Loading class sun/awt/image/ShortComponentRaster +Event: 0.696 Loading class sun/awt/image/ShortComponentRaster done +Event: 0.778 Loading class java/util/function/LongFunction +Event: 0.778 Loading class java/util/function/LongFunction done +Event: 1.162 Loading class java/lang/invoke/MethodHandle$1 +Event: 1.162 Loading class java/lang/invoke/MethodHandle$1 done + +Classes unloaded (0 events): +No events + +Classes redefined (0 events): +No events + +Internal exceptions (20 events): +Event: 0.161 Thread 0x000073b97c02d0f0 Exception (0x000000062af991e0) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.186 Thread 0x000073b97c02d0f0 Exception (0x000000062a875510) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.186 Thread 0x000073b97c02d0f0 Exception (0x000000062a878a60) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 863] +Event: 0.208 Thread 0x000073b97c02d0f0 Exception (0x000000062a970318) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.218 Thread 0x000073b97c02d0f0 Exception (0x000000062a9c7df8) +thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] +Event: 0.227 Thread 0x000073b97c02d0f0 Exception (0x000000062aa31e20) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.228 Thread 0x000073b97c02d0f0 Exception (0x000000062aa3fc38) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.630 Thread 0x000073b97c5f94d0 Exception (0x000000062a7bc610) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.679 Thread 0x000073b97c5f94d0 Exception (0x000000062a23d088) +thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] +Event: 0.680 Thread 0x000073b97c5f94d0 Exception (0x000000062a243060) +thrown [open/src/hotspot/share/prims/jni.cpp, line 520] +Event: 0.684 Thread 0x000073b97c5f94d0 Exception (0x000000062a26d9f8) +thrown [open/src/hotspot/share/prims/jni.cpp, line 520] +Event: 0.775 Thread 0x000073b97c5f94d0 Exception (0x0000000629ebdf58) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.775 Thread 0x000073b97c5f94d0 Exception (0x0000000629ec37a0) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.778 Thread 0x000073b97c5f94d0 Exception (0x0000000629edb8a8) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.780 Thread 0x000073b97c5f94d0 Exception (0x0000000629eec778) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.796 Thread 0x000073b97c5f94d0 Exception (0x0000000629f51e28) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.802 Thread 0x000073b97c5f94d0 Exception (0x0000000629fd4668) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.934 Thread 0x000073b97c5f94d0 Exception (0x000000062b05a2d8) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 0.941 Thread 0x000073b97c5f94d0 Exception (0x000000062b114760) +thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] +Event: 5.382 Thread 0x000073b8ac5a8970 Exception (0x000000062ae50888) +thrown [open/src/hotspot/share/prims/jvm.cpp, line 3093] + +VM Operations (14 events): +Event: 0.108 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.108 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.115 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.115 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.124 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.124 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.133 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.133 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.642 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.642 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.676 Executing VM operation: HandshakeAllThreads (Deoptimize) +Event: 0.676 Executing VM operation: HandshakeAllThreads (Deoptimize) done +Event: 0.923 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) +Event: 0.925 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done + +Memory protections (17 events): +Event: 0.001 Protecting memory [0x000073b984100000,0x000073b984104000] with protection modes 0 +Event: 0.015 Protecting memory [0x000073b980616000,0x000073b98061a000] with protection modes 0 +Event: 0.015 Protecting memory [0x000073b980516000,0x000073b98051a000] with protection modes 0 +Event: 0.016 Protecting memory [0x000073b980416000,0x000073b98041a000] with protection modes 0 +Event: 0.016 Protecting memory [0x000073b980316000,0x000073b98031a000] with protection modes 0 +Event: 0.016 Protecting memory [0x000073b980216000,0x000073b98021a000] with protection modes 0 +Event: 0.016 Protecting memory [0x000073b980116000,0x000073b98011a000] with protection modes 0 +Event: 0.016 Protecting memory [0x000073b980016000,0x000073b98001a000] with protection modes 0 +Event: 0.022 Protecting memory [0x000073b95c900000,0x000073b95c904000] with protection modes 0 +Event: 0.023 Protecting memory [0x000073b95c800000,0x000073b95c804000] with protection modes 0 +Event: 0.054 Protecting memory [0x000073b95c700000,0x000073b95c704000] with protection modes 0 +Event: 0.233 Protecting memory [0x000073b95c100000,0x000073b95c104000] with protection modes 0 +Event: 0.233 Protecting memory [0x000073b984100000,0x000073b984104000] with protection modes 0 +Event: 0.649 Protecting memory [0x000073b95c700000,0x000073b95c704000] with protection modes 0 +Event: 0.656 Protecting memory [0x000073b93f285000,0x000073b93f289000] with protection modes 0 +Event: 0.692 Protecting memory [0x000073b93f185000,0x000073b93f189000] with protection modes 0 +Event: 1.178 Protecting memory [0x000073b93f285000,0x000073b93f289000] with protection modes 0 + +Nmethod flushes (0 events): +No events + +Events (20 events): +Event: 0.015 Thread 0x000073b97c02d0f0 Thread added: 0x000073b97c13a6b0 +Event: 0.016 Thread 0x000073b97c02d0f0 Thread added: 0x000073b97c13bcf0 +Event: 0.016 Thread 0x000073b97c02d0f0 Thread added: 0x000073b97c13d290 +Event: 0.016 Thread 0x000073b97c02d0f0 Thread added: 0x000073b97c13edb0 +Event: 0.016 Thread 0x000073b97c02d0f0 Thread added: 0x000073b97c1484b0 +Event: 0.022 Thread 0x000073b97c02d0f0 Thread added: 0x000073b97c1551c0 +Event: 0.023 Thread 0x000073b97c02d0f0 Thread added: 0x000073b97c157ca0 +Event: 0.054 Thread 0x000073b97c13edb0 Thread added: 0x000073b8c80d9290 +Event: 0.233 Thread 0x000073b97c02d0f0 Thread added: 0x000073b97c5f94d0 +Event: 0.233 Thread 0x000073b97c02d0f0 Thread exited: 0x000073b97c02d0f0 +Event: 0.233 Thread 0x000073b97c02d0f0 Thread added: 0x000073b97c02d0f0 +Event: 0.631 Thread 0x000073b8c80d9290 Thread exited: 0x000073b8c80d9290 +Event: 0.648 Thread 0x000073b97c5f94d0 Thread added: 0x000073b8ac5a8970 +Event: 0.656 Thread 0x000073b97c1484b0 Thread added: 0x000073b8c442d840 +Event: 0.692 Thread 0x000073b97c5f94d0 Thread added: 0x000073b8ac760140 +Event: 0.922 Thread 0x000073b8c442d840 Thread exited: 0x000073b8c442d840 +Event: 1.178 Thread 0x000073b97c1484b0 Thread added: 0x000073b8c4466400 +Event: 1.378 Thread 0x000073b8c4466400 Thread exited: 0x000073b8c4466400 +Event: 5.382 Thread 0x000073b8ac5a8970 Thread exited: 0x000073b8ac5a8970 +Event: 5.435 Thread 0x000073b97c5f94d0 Thread exited: 0x000073b97c5f94d0 + + +Dynamic libraries: +60c000000-62b400000 rw-p 00000000 00:00 0 +62b400000-7ffc00000 ---p 00000000 00:00 0 +7ffc00000-7ffd1f000 rw-p 00dc0000 103:03 10498862 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/classes.jsa +7ffd1f000-800000000 rw-p 00000000 00:00 0 +5ac2ec579000-5ac2ec57a000 r-xp 00000000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java +5ac2ec57b000-5ac2ec57c000 r--p 00001000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java +5ac2ec57c000-5ac2ec57d000 rw-p 00002000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java +5ac30caa6000-5ac30caef000 rw-p 00000000 00:00 0 [heap] +73b82c000000-73b82c021000 rw-p 00000000 00:00 0 +73b82c021000-73b830000000 ---p 00000000 00:00 0 +73b830000000-73b830021000 rw-p 00000000 00:00 0 +73b830021000-73b834000000 ---p 00000000 00:00 0 +73b838000000-73b838021000 rw-p 00000000 00:00 0 +73b838021000-73b83c000000 ---p 00000000 00:00 0 +73b83c000000-73b83c021000 rw-p 00000000 00:00 0 +73b83c021000-73b840000000 ---p 00000000 00:00 0 +73b844000000-73b844021000 rw-p 00000000 00:00 0 +73b844021000-73b848000000 ---p 00000000 00:00 0 +73b848000000-73b848021000 rw-p 00000000 00:00 0 +73b848021000-73b84c000000 ---p 00000000 00:00 0 +73b850000000-73b850021000 rw-p 00000000 00:00 0 +73b850021000-73b854000000 ---p 00000000 00:00 0 +73b854000000-73b854021000 rw-p 00000000 00:00 0 +73b854021000-73b858000000 ---p 00000000 00:00 0 +73b85c000000-73b85c021000 rw-p 00000000 00:00 0 +73b85c021000-73b860000000 ---p 00000000 00:00 0 +73b860000000-73b860021000 rw-p 00000000 00:00 0 +73b860021000-73b864000000 ---p 00000000 00:00 0 +73b868000000-73b868021000 rw-p 00000000 00:00 0 +73b868021000-73b86c000000 ---p 00000000 00:00 0 +73b86c000000-73b86c021000 rw-p 00000000 00:00 0 +73b86c021000-73b870000000 ---p 00000000 00:00 0 +73b874000000-73b874021000 rw-p 00000000 00:00 0 +73b874021000-73b878000000 ---p 00000000 00:00 0 +73b878000000-73b878021000 rw-p 00000000 00:00 0 +73b878021000-73b87c000000 ---p 00000000 00:00 0 +73b880000000-73b880054000 rw-p 00000000 00:00 0 +73b880054000-73b884000000 ---p 00000000 00:00 0 +73b884000000-73b884021000 rw-p 00000000 00:00 0 +73b884021000-73b888000000 ---p 00000000 00:00 0 +73b88c000000-73b88c0c8000 rw-p 00000000 00:00 0 +73b88c0c8000-73b890000000 ---p 00000000 00:00 0 +73b890000000-73b890021000 rw-p 00000000 00:00 0 +73b890021000-73b894000000 ---p 00000000 00:00 0 +73b898000000-73b898021000 rw-p 00000000 00:00 0 +73b898021000-73b89c000000 ---p 00000000 00:00 0 +73b89d000000-73b8a3712000 r-xp 00000000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 +73b8a3712000-73b8a3f30000 r--p 06711000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 +73b8a3f30000-73b8a3f76000 rw-p 06f2f000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 +73b8a3f76000-73b8a3ff2000 rw-p 00000000 00:00 0 +73b8a4000000-73b8a4021000 rw-p 00000000 00:00 0 +73b8a4021000-73b8a8000000 ---p 00000000 00:00 0 +73b8ac000000-73b8af132000 rw-p 00000000 00:00 0 +73b8af132000-73b8b0000000 ---p 00000000 00:00 0 +73b8b0000000-73b8b027e000 rw-p 00000000 00:00 0 +73b8b027e000-73b8b4000000 ---p 00000000 00:00 0 +73b8b8000000-73b8b8021000 rw-p 00000000 00:00 0 +73b8b8021000-73b8bc000000 ---p 00000000 00:00 0 +73b8bc000000-73b8bc021000 rw-p 00000000 00:00 0 +73b8bc021000-73b8c0000000 ---p 00000000 00:00 0 +73b8c2e00000-73b8c2f25000 r--p 00000000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +73b8c2f25000-73b8c33e5000 r-xp 00125000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +73b8c33e5000-73b8c3519000 r--p 005e5000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +73b8c3519000-73b8c351a000 ---p 00719000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +73b8c351a000-73b8c357d000 r--p 00719000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +73b8c357d000-73b8c3587000 rw-p 0077c000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so +73b8c3587000-73b8c3598000 rw-p 00000000 00:00 0 +73b8c3600000-73b8c3601000 ---p 00000000 00:00 0 +73b8c3601000-73b8c3e01000 rw-p 00000000 00:00 0 +73b8c4000000-73b8c4481000 rw-p 00000000 00:00 0 +73b8c4481000-73b8c8000000 ---p 00000000 00:00 0 +73b8c8000000-73b8c8353000 rw-p 00000000 00:00 0 +73b8c8353000-73b8cc000000 ---p 00000000 00:00 0 +73b8cc400000-73b8cc401000 ---p 00000000 00:00 0 +73b8cc401000-73b8ccc01000 rw-p 00000000 00:00 0 +73b8cce00000-73b8cce01000 ---p 00000000 00:00 0 +73b8cce01000-73b8cd601000 rw-p 00000000 00:00 0 +73b8cd800000-73b8cd801000 ---p 00000000 00:00 0 +73b8cd801000-73b8ce001000 rw-p 00000000 00:00 0 +73b8ce200000-73b8ce201000 ---p 00000000 00:00 0 +73b8ce201000-73b8cea01000 rw-p 00000000 00:00 0 +73b8cec00000-73b8cec01000 ---p 00000000 00:00 0 +73b8cec01000-73b8cf401000 rw-p 00000000 00:00 0 +73b8cf600000-73b8cf62f000 r--p 00000000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +73b8cf62f000-73b8cfd02000 r-xp 0002f000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +73b8cfd02000-73b8cfe24000 r--p 00702000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +73b8cfe24000-73b8cfe35000 r--p 00823000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +73b8cfe35000-73b8cfeb3000 rw-p 00834000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 +73b8cfeb3000-73b8cfec7000 rw-p 00000000 00:00 0 +73b8d0000000-73b8d0021000 rw-p 00000000 00:00 0 +73b8d0021000-73b8d4000000 ---p 00000000 00:00 0 +73b8d4000000-73b8d4021000 rw-p 00000000 00:00 0 +73b8d4021000-73b8d8000000 ---p 00000000 00:00 0 +73b8d8000000-73b8d8200000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8d8200000-73b8d8ef5000 r--p 00000000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +73b8d8ef5000-73b8d98d8000 r-xp 00cf5000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +73b8d98d8000-73b8d9ce9000 r--p 016d8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +73b8d9ce9000-73b8da16b000 r--p 01ae8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +73b8da16b000-73b8da173000 rw-p 01f6a000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so +73b8da173000-73b8da17e000 rw-p 00000000 00:00 0 +73b8da200000-73b8da201000 ---p 00000000 00:00 0 +73b8da201000-73b8daa01000 rw-p 00000000 00:00 0 +73b8dac00000-73b8dac01000 ---p 00000000 00:00 0 +73b8dac01000-73b8db401000 rw-p 00000000 00:00 0 +73b8db600000-73b8db601000 ---p 00000000 00:00 0 +73b8db601000-73b8dbe01000 rw-p 00000000 00:00 0 +73b8dc000000-73b8dc021000 rw-p 00000000 00:00 0 +73b8dc021000-73b8e0000000 ---p 00000000 00:00 0 +73b8e0000000-73b8e0021000 rw-p 00000000 00:00 0 +73b8e0021000-73b8e4000000 ---p 00000000 00:00 0 +73b8e41fd000-73b8e42fd000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8e42fd000-73b8e42fe000 ---p 00000000 00:00 0 +73b8e42fe000-73b8e43fe000 rw-p 00000000 00:00 0 +73b8e43fe000-73b8e43ff000 ---p 00000000 00:00 0 +73b8e43ff000-73b8e44ff000 rw-p 00000000 00:00 0 +73b8e44ff000-73b8e4500000 ---p 00000000 00:00 0 +73b8e4500000-73b8e4600000 rw-p 00000000 00:00 0 +73b8e4600000-73b8e4601000 ---p 00000000 00:00 0 +73b8e4601000-73b8e4e01000 rw-p 00000000 00:00 0 +73b8e4eff000-73b8e4f00000 ---p 00000000 00:00 0 +73b8e4f00000-73b8e5000000 rw-p 00000000 00:00 0 +73b8e5000000-73b8e5001000 ---p 00000000 00:00 0 +73b8e5001000-73b8e5801000 rw-p 00000000 00:00 0 +73b8e58ff000-73b8e5900000 ---p 00000000 00:00 0 +73b8e5900000-73b8e5a00000 rw-p 00000000 00:00 0 +73b8e5a00000-73b8e5a01000 ---p 00000000 00:00 0 +73b8e5a01000-73b8e6201000 rw-p 00000000 00:00 0 +73b8e623f000-73b8e62bf000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8e62bf000-73b8e62ff000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8e62ff000-73b8e6300000 ---p 00000000 00:00 0 +73b8e6300000-73b8e6400000 rw-p 00000000 00:00 0 +73b8e6400000-73b8e648d000 r--p 00000000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +73b8e648d000-73b8e6bf5000 r-xp 0008d000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +73b8e6bf5000-73b8e7482000 r--p 007f5000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +73b8e7482000-73b8e74c4000 r--p 01081000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +73b8e74c4000-73b8e74c7000 rw-p 010c3000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so +73b8e74c7000-73b8e74cd000 rw-p 00000000 00:00 0 +73b8e74ff000-73b8e7500000 ---p 00000000 00:00 0 +73b8e7500000-73b8e7600000 rw-p 00000000 00:00 0 +73b8e7600000-73b8e765b000 r--p 00000000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +73b8e765b000-73b8e79d9000 r-xp 0005b000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +73b8e79d9000-73b8e7dd5000 r--p 003d9000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +73b8e7dd5000-73b8e7e10000 r--p 007d4000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +73b8e7e10000-73b8e7e15000 rw-p 0080f000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so +73b8e7e15000-73b8e7e40000 rw-p 00000000 00:00 0 +73b8e7e60000-73b8e7ea0000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8e7ea0000-73b8e7ec0000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8e7ec0000-73b8e7f00000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8e7f00000-73b8e8000000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8e8000000-73b8e8021000 rw-p 00000000 00:00 0 +73b8e8021000-73b8ec000000 ---p 00000000 00:00 0 +73b8ec000000-73b8ec021000 rw-p 00000000 00:00 0 +73b8ec021000-73b8f0000000 ---p 00000000 00:00 0 +73b8f0000000-73b8f0200000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8f0200000-73b8f0222000 r-xp 00000000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +73b8f0222000-73b8f0421000 ---p 00022000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +73b8f0421000-73b8f0429000 r--p 00021000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +73b8f0429000-73b8f042a000 rw-p 00029000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 +73b8f042a000-73b8f042b000 rw-p 00000000 00:00 0 +73b8f043b000-73b8f04bb000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8f04bb000-73b8f05bb000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8f05bb000-73b8f0800000 rw-s 00000000 00:01 2055 /memfd:/.nvidia_drv.XXXXXX (deleted) +73b8f0800000-73b8f086e000 r--p 00000000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +73b8f086e000-73b8f0dd5000 r-xp 0006e000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +73b8f0dd5000-73b8f14e8000 r--p 005d5000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +73b8f14e8000-73b8f14e9000 ---p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +73b8f14e9000-73b8f1526000 r--p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +73b8f1526000-73b8f1529000 rw-p 00d25000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so +73b8f1529000-73b8f152b000 rw-p 00000000 00:00 0 +73b8f152d000-73b8f1540000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8f1540000-73b8f1560000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8f1560000-73b8f15a0000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8f15c0000-73b8f1600000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8f1600000-73b8f17c4000 r--p 00000000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +73b8f17c4000-73b8f34c4000 r-xp 001c4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +73b8f34c4000-73b8f3b39000 r--p 01ec4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +73b8f3b39000-73b8f3b3a000 ---p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +73b8f3b3a000-73b8f3d1a000 r--p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +73b8f3d1a000-73b8f3d93000 rw-p 02719000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 +73b8f3d93000-73b8f3e08000 rw-p 00000000 00:00 0 +73b8f3e1a000-73b8f3e2d000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8f3e4d000-73b8f3e60000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8f3e60000-73b8f3ea0000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8f3ea0000-73b8f3ec0000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8f3ec0000-73b8f3f00000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8f3f00000-73b8f4000000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8f4000000-73b8f43e0000 rw-p 00000000 00:00 0 +73b8f43e0000-73b8f4400000 ---p 00000000 00:00 0 +73b8f4400000-73b8f49f0000 rw-p 00000000 00:00 0 +73b8f49f0000-73b8f8000000 ---p 00000000 00:00 0 +73b8f8000000-73b8f8021000 rw-p 00000000 00:00 0 +73b8f8021000-73b8fc000000 ---p 00000000 00:00 0 +73b8fc02d000-73b8fc040000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8fc040000-73b8fc080000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8fc080000-73b8fc100000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8fc100000-73b8fc200000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8fc200000-73b8fc201000 r--p 00000000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +73b8fc201000-73b8fc202000 r-xp 00001000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +73b8fc202000-73b8fde1c000 r--p 00002000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +73b8fde1c000-73b8fde1d000 r--p 01c1b000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +73b8fde1d000-73b8fde1e000 rw-p 01c1c000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 +73b8fde2d000-73b8fde4d000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8fde4d000-73b8fdecd000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8fdecd000-73b8fdee0000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8fdee0000-73b8fdf20000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8fdf20000-73b8fdf40000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8fdf40000-73b8fdf80000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b8fdf80000-73b8fe000000 rw-s 00000000 00:06 964 /dev/nvidia0 +73b8fe000000-73b8fed91000 rw-p 00001000 103:03 10498862 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/classes.jsa +73b8fed91000-73b8ff000000 ---p 00000000 00:00 0 +73b8ff000000-73b8ff030000 rw-p 00000000 00:00 0 +73b8ff030000-73b8ff0b0000 rw-p 00000000 00:00 0 +73b8ff0b0000-73b8ff0e0000 rw-p 00000000 00:00 0 +73b8ff0e0000-73b8ff100000 ---p 00000000 00:00 0 +73b8ff100000-73b8ff120000 rw-p 00000000 00:00 0 +73b8ff120000-73b93f000000 ---p 00000000 00:00 0 +73b93f004000-73b93f044000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b93f044000-73b93f185000 rw-s 00000000 103:03 13372247 /home/codex/.cache/mesa_shader_cache/index +73b93f185000-73b93f189000 ---p 00000000 00:00 0 +73b93f189000-73b93f285000 rw-p 00000000 00:00 0 +73b93f285000-73b93f289000 ---p 00000000 00:00 0 +73b93f289000-73b93f385000 rw-p 00000000 00:00 0 +73b93f400000-73b93f493000 r--p 00000000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +73b93f493000-73b93f8e6000 r-xp 00093000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +73b93f8e6000-73b93fdfc000 r--p 004e6000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +73b93fdfc000-73b93fe34000 r--p 009fb000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +73b93fe34000-73b93fe44000 rw-p 00a33000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so +73b93fe44000-73b93fe49000 rw-p 00000000 00:00 0 +73b93fe58000-73b93fe78000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b93fe78000-73b93fe98000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b93fe98000-73b93fe9a000 r--p 00000000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +73b93fe9a000-73b93fea3000 r-xp 00002000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +73b93fea3000-73b93fea6000 r--p 0000b000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +73b93fea6000-73b93fea7000 ---p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +73b93fea7000-73b93fea8000 r--p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +73b93fea8000-73b93fea9000 rw-p 0000f000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so +73b93fea9000-73b93feab000 rw-p 00000000 00:00 0 +73b93feab000-73b93feaf000 r--p 00000000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +73b93feaf000-73b93fecb000 r-xp 00004000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +73b93fecb000-73b93fed1000 r--p 00020000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +73b93fed1000-73b93fed2000 ---p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +73b93fed2000-73b93fed4000 r--p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +73b93fed4000-73b93fed5000 rw-p 00028000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so +73b93fed5000-73b93fedf000 r--p 00000000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +73b93fedf000-73b93fee9000 r-xp 0000a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +73b93fee9000-73b93fef0000 r--p 00014000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +73b93fef0000-73b93fef9000 r--p 0001a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +73b93fef9000-73b93fefa000 rw-p 00023000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so +73b93fefa000-73b93ff06000 r--p 00000000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +73b93ff06000-73b93ff26000 r-xp 0000c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +73b93ff26000-73b93ff32000 r--p 0002c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +73b93ff32000-73b93ff3c000 r--p 00037000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +73b93ff3c000-73b93ff3d000 rw-p 00041000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so +73b93ff3d000-73b93ff3f000 r--p 00000000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +73b93ff3f000-73b93ffaa000 r-xp 00002000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +73b93ffaa000-73b93ffd2000 r--p 0006d000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +73b93ffd2000-73b93ffd3000 r--p 00094000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +73b93ffd3000-73b93ffd4000 rw-p 00095000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 +73b93ffd4000-73b93ffda000 r--p 00000000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +73b93ffda000-73b93fff4000 r-xp 00006000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +73b93fff4000-73b93fffb000 r--p 00020000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +73b93fffb000-73b93fffc000 ---p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +73b93fffc000-73b93fffd000 r--p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +73b93fffd000-73b93fffe000 rw-p 00028000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 +73b93fffe000-73b940000000 rw-p 00000000 00:00 0 +73b940000000-73b940021000 rw-p 00000000 00:00 0 +73b940021000-73b944000000 ---p 00000000 00:00 0 +73b944000000-73b944021000 rw-p 00000000 00:00 0 +73b944021000-73b948000000 ---p 00000000 00:00 0 +73b948005000-73b948006000 rw-s 00000000 00:06 964 /dev/nvidia0 +73b948006000-73b94800a000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b94800a000-73b94800b000 rw-s 00000000 00:06 964 /dev/nvidia0 +73b94800b000-73b94800f000 r--p 00000000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +73b94800f000-73b94801f000 r-xp 00004000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +73b94801f000-73b948022000 r--p 00014000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +73b948022000-73b948023000 r--p 00016000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +73b948023000-73b948024000 rw-p 00017000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so +73b948024000-73b948037000 r--p 00000000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +73b948037000-73b948056000 r-xp 00013000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +73b948056000-73b948063000 r--p 00032000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +73b948063000-73b948073000 r--p 0003e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +73b948073000-73b948074000 rw-p 0004e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so +73b948074000-73b94807f000 r--p 00000000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +73b94807f000-73b9480ad000 r-xp 0000b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +73b9480ad000-73b9480bf000 r--p 00039000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +73b9480bf000-73b9480c0000 ---p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +73b9480c0000-73b9480c1000 r--p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +73b9480c1000-73b9480c2000 rw-p 0004c000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 +73b9480c2000-73b9480d1000 r--p 00000000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +73b9480d1000-73b9481b7000 r-xp 0000f000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +73b9481b7000-73b9481f5000 r--p 000f5000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +73b9481f5000-73b9481f6000 ---p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +73b9481f6000-73b9481f9000 r--p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +73b9481f9000-73b9481ff000 rw-p 00136000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 +73b9481ff000-73b948200000 rw-p 00000000 00:00 0 +73b948200000-73b948216000 r--p 00000000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +73b948216000-73b948306000 r-xp 00016000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +73b948306000-73b948379000 r--p 00106000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +73b948379000-73b948380000 r--p 00178000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +73b948380000-73b948387000 rw-p 0017f000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so +73b948387000-73b948402000 rw-p 00000000 00:00 0 +73b948402000-73b948404000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b948404000-73b948405000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b948405000-73b94846b000 r--p 00000000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +73b94846b000-73b94855e000 r-xp 00066000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +73b94855e000-73b9485ea000 r--p 00159000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +73b9485ea000-73b9485fd000 r--p 001e4000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +73b9485fd000-73b9485fe000 rw-p 001f7000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 +73b9485fe000-73b948600000 rw-p 00000000 00:00 0 +73b948600000-73b94869a000 r--p 00000000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +73b94869a000-73b9487ab000 r-xp 0009a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +73b9487ab000-73b94881a000 r--p 001ab000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +73b94881a000-73b94881b000 ---p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +73b94881b000-73b948826000 r--p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +73b948826000-73b948829000 rw-p 00225000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 +73b948829000-73b94882c000 rw-p 00000000 00:00 0 +73b94882c000-73b94882d000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b94882d000-73b948831000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b948831000-73b948835000 r--p 00000000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +73b948835000-73b94884b000 r-xp 00004000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +73b94884b000-73b948855000 r--p 0001a000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +73b948855000-73b948856000 r--p 00023000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +73b948856000-73b948857000 rw-p 00024000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 +73b948857000-73b94886a000 r--p 00000000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +73b94886a000-73b9488e9000 r-xp 00013000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +73b9488e9000-73b948914000 r--p 00092000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +73b948914000-73b948915000 ---p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +73b948915000-73b94891c000 r--p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +73b94891c000-73b94891d000 rw-p 000c4000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 +73b94891d000-73b94891e000 rw-p 00000000 00:00 0 +73b94891e000-73b948951000 r--p 00000000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +73b948951000-73b9489b4000 r-xp 00033000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +73b9489b4000-73b9489d3000 r--p 00096000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +73b9489d3000-73b9489fe000 r--p 000b4000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +73b9489fe000-73b9489ff000 rw-p 000df000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 +73b9489ff000-73b949322000 rw-p 00000000 00:00 0 +73b949322000-73b949323000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b949323000-73b949325000 r--p 00000000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +73b949325000-73b94933e000 r-xp 00002000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +73b94933e000-73b949340000 r--p 0001b000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +73b949340000-73b949341000 ---p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +73b949341000-73b949342000 r--p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +73b949342000-73b949343000 rw-p 0001e000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 +73b949343000-73b949344000 rw-s 00044000 00:01 2055 /memfd:/.nvidia_drv.XXXXXX (deleted) +73b949344000-73b949345000 rw-s 00000000 00:06 964 /dev/nvidia0 +73b949345000-73b949347000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b949347000-73b94934b000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b94934b000-73b94934d000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b94934d000-73b94934f000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b94934f000-73b949353000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b949353000-73b949363000 rw-s 00000000 00:06 964 /dev/nvidia0 +73b949363000-73b949367000 r--p 00000000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +73b949367000-73b94937c000 r-xp 00004000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +73b94937c000-73b949382000 r--p 00019000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +73b949382000-73b949383000 ---p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +73b949383000-73b949385000 r--p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +73b949385000-73b949386000 rw-p 00021000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so +73b949386000-73b9493f6000 r-xp 00000000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +73b9493f6000-73b9493f7000 ---p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +73b9493f7000-73b9493fc000 r--p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +73b9493fc000-73b9493fe000 rw-p 00075000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so +73b9493fe000-73b949400000 rw-p 00000000 00:00 0 +73b949400000-73b949401000 ---p 00000000 00:00 0 +73b949401000-73b949c01000 rw-p 00000000 00:00 0 +73b949c01000-73b949c02000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b949c1e000-73b949c4d000 r--p 00000000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +73b949c4d000-73b949da0000 r-xp 0002f000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +73b949da0000-73b949df4000 r--p 00182000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +73b949df4000-73b949df5000 ---p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +73b949df5000-73b949dfe000 r--p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +73b949dfe000-73b949dff000 rw-p 001df000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 +73b949dff000-73b949e00000 rw-p 00000000 00:00 0 +73b949e00000-73b94a041000 r-xp 00000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +73b94a041000-73b94a062000 rwxp 00241000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +73b94a062000-73b94a200000 r-xp 00262000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +73b94a200000-73b94ae00000 r-xp 00400000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +73b94ae00000-73b94bcab000 r-xp 01000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +73b94bcab000-73b94be10000 r--p 01eaa000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +73b94be10000-73b94be7e000 rw-p 0200f000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 +73b94be7e000-73b94be9c000 rw-p 00000000 00:00 0 +73b94be9c000-73b94be9d000 rw-s 00000000 00:06 964 /dev/nvidia0 +73b94be9d000-73b94be9f000 r--p 00000000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +73b94be9f000-73b94bea7000 r-xp 00002000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +73b94bea7000-73b94bea9000 r--p 0000a000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +73b94bea9000-73b94beaa000 r--p 0000b000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +73b94beaa000-73b94beab000 rw-p 0000c000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so +73b94beab000-73b94bead000 r--p 00000000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +73b94bead000-73b94beb5000 r-xp 00002000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +73b94beb5000-73b94beb6000 r--p 0000a000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +73b94beb6000-73b94beb7000 ---p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +73b94beb7000-73b94beb8000 r--p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +73b94beb8000-73b94beb9000 rw-p 0000c000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so +73b94beb9000-73b94bee8000 r--p 00000000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +73b94bee8000-73b94bfa4000 r-xp 0002f000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +73b94bfa4000-73b94bfef000 r--p 000eb000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +73b94bfef000-73b94bffd000 r--p 00135000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +73b94bffd000-73b94bfff000 rw-p 00143000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so +73b94bfff000-73b94c000000 rw-p 00000000 00:00 0 +73b94c000000-73b94c021000 rw-p 00000000 00:00 0 +73b94c021000-73b950000000 ---p 00000000 00:00 0 +73b950000000-73b950021000 rw-p 00000000 00:00 0 +73b950021000-73b954000000 ---p 00000000 00:00 0 +73b954000000-73b954004000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b954004000-73b954006000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b954006000-73b954008000 r--p 00000000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +73b954008000-73b95400b000 r-xp 00002000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +73b95400b000-73b95400c000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +73b95400c000-73b95400d000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +73b95400d000-73b95400e000 rw-p 00006000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 +73b95400e000-73b9540cf000 r-xp 00000000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +73b9540cf000-73b9540d0000 r--p 000c0000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +73b9540d0000-73b9540db000 rw-p 000c1000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so +73b9540db000-73b954100000 rw-p 00000000 00:00 0 +73b954100000-73b954103000 r--p 00000000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +73b954103000-73b954124000 r-xp 00003000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +73b954124000-73b954130000 r--p 00024000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +73b954130000-73b954131000 ---p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +73b954131000-73b954132000 r--p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +73b954132000-73b954133000 rw-p 00031000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 +73b954133000-73b954141000 r--p 00000000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +73b954141000-73b954152000 r-xp 0000e000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +73b954152000-73b954160000 r--p 0001f000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +73b954160000-73b954164000 r--p 0002c000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +73b954164000-73b954165000 rw-p 00030000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 +73b954165000-73b95416d000 r--p 00000000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +73b95416d000-73b95418b000 r-xp 00008000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +73b95418b000-73b954198000 r--p 00026000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +73b954198000-73b95419a000 r--p 00032000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +73b95419a000-73b95419b000 rw-p 00034000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 +73b95419b000-73b95419f000 rw-p 00000000 00:00 0 +73b95419f000-73b9541a1000 r--p 00000000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +73b9541a1000-73b9541a8000 r-xp 00002000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +73b9541a8000-73b9541a9000 r--p 00009000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +73b9541a9000-73b9541aa000 ---p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +73b9541aa000-73b9541ab000 r--p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +73b9541ab000-73b9541ac000 rw-p 0000b000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 +73b9541ac000-73b9541af000 r--p 00000000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +73b9541af000-73b9541c6000 r-xp 00003000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +73b9541c6000-73b9541ca000 r--p 0001a000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +73b9541ca000-73b9541cb000 r--p 0001d000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +73b9541cb000-73b9541cc000 rw-p 0001e000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 +73b9541cc000-73b9541d0000 r--p 00000000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +73b9541d0000-73b9541ef000 r-xp 00004000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +73b9541ef000-73b9541f9000 r--p 00023000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +73b9541f9000-73b9541fa000 ---p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +73b9541fa000-73b9541fc000 r--p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +73b9541fc000-73b9541fd000 rw-p 0002f000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 +73b9541fd000-73b954202000 r--p 00000000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +73b954202000-73b95420d000 r-xp 00005000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +73b95420d000-73b954211000 r--p 00010000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +73b954211000-73b954212000 ---p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +73b954212000-73b954213000 r--p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +73b954213000-73b954214000 rw-p 00015000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 +73b954214000-73b954215000 r--p 00000000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +73b954215000-73b954216000 r-xp 00001000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +73b954216000-73b954217000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +73b954217000-73b954218000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +73b954218000-73b954219000 rw-p 00003000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 +73b954219000-73b95421c000 r--p 00000000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +73b95421c000-73b95421f000 r-xp 00003000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +73b95421f000-73b954220000 r--p 00006000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +73b954220000-73b954221000 ---p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +73b954221000-73b954222000 r--p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +73b954222000-73b954223000 rw-p 00008000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 +73b954223000-73b954226000 r--p 00000000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +73b954226000-73b954229000 r-xp 00003000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +73b954229000-73b95422a000 r--p 00006000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +73b95422a000-73b95422b000 ---p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +73b95422b000-73b95422c000 r--p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +73b95422c000-73b95422d000 rw-p 00008000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 +73b95422d000-73b954237000 r--p 00000000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +73b954237000-73b9542e9000 r-xp 0000a000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +73b9542e9000-73b9542fa000 r--p 000bc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +73b9542fa000-73b9542fb000 r--p 000cc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +73b9542fb000-73b9542fc000 rw-p 000cd000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 +73b9542fc000-73b95430c000 r--p 00000000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +73b95430c000-73b95436a000 r-xp 00010000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +73b95436a000-73b954386000 r--p 0006e000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +73b954386000-73b954387000 ---p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +73b954387000-73b95438d000 r--p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +73b95438d000-73b95438e000 rw-p 00090000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 +73b95438e000-73b954396000 rw-p 00000000 00:00 0 +73b954396000-73b9543e7000 r--p 00000000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +73b9543e7000-73b954443000 r-xp 00051000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +73b954443000-73b954478000 rwxp 000ad000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +73b954478000-73b954479000 r-xp 000e2000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +73b954479000-73b954499000 r--p 000e3000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +73b954499000-73b9544b9000 r--p 00102000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +73b9544b9000-73b9544be000 rw-p 00122000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 +73b9544be000-73b9544c0000 rw-p 00000000 00:00 0 +73b9544c0000-73b9544d9000 r--p 00000000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +73b9544d9000-73b954565000 r-xp 00019000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +73b954565000-73b9545fa000 r--p 000a5000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +73b9545fa000-73b9545fb000 ---p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +73b9545fb000-73b9545fc000 r--p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +73b9545fc000-73b954600000 rw-p 0013b000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 +73b954600000-73b955000000 rw-p 00000000 00:00 0 +73b955000000-73b955f06000 r--p 00000000 103:03 10618858 /usr/lib/locale/locale-archive +73b955f06000-73b955f07000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b955f07000-73b955f08000 r--p 00000000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +73b955f08000-73b955f09000 r-xp 00001000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +73b955f09000-73b955f0a000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +73b955f0a000-73b955f0b000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +73b955f0b000-73b955f0c000 rw-p 00003000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 +73b955f0c000-73b955f0d000 r--p 00000000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +73b955f0d000-73b955f0e000 r-xp 00001000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +73b955f0e000-73b955f0f000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +73b955f0f000-73b955f10000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +73b955f10000-73b955f11000 rw-p 00003000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 +73b955f11000-73b955f16000 r--p 00000000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +73b955f16000-73b955f1c000 r-xp 00005000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +73b955f1c000-73b955f1f000 r--p 0000b000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +73b955f1f000-73b955f21000 r--p 0000d000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +73b955f21000-73b955f22000 rw-p 0000f000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 +73b955f22000-73b955f25000 r--p 00000000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +73b955f25000-73b955f39000 r-xp 00003000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +73b955f39000-73b955f3d000 r--p 00017000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +73b955f3d000-73b955f3e000 ---p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +73b955f3e000-73b955f3f000 r--p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +73b955f3f000-73b955f40000 rw-p 0001c000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so +73b955f40000-73b955f43000 r--p 00000000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +73b955f43000-73b955f49000 r-xp 00003000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +73b955f49000-73b955f4b000 r--p 00009000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +73b955f4b000-73b955f4c000 r--p 0000a000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +73b955f4c000-73b955f4d000 rw-p 0000b000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 +73b955f4d000-73b955f4f000 r--p 00000000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +73b955f4f000-73b955f51000 r-xp 00002000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +73b955f51000-73b955f52000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +73b955f52000-73b955f53000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +73b955f53000-73b955f54000 rw-p 00005000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 +73b955f54000-73b955f5b000 r--p 00000000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +73b955f5b000-73b955f61000 r-xp 00007000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +73b955f61000-73b955f64000 r--p 0000d000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +73b955f64000-73b955f65000 ---p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +73b955f65000-73b955f66000 r--p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +73b955f66000-73b955f67000 rw-p 00011000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 +73b955f67000-73b955f72000 r--p 00000000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +73b955f72000-73b955f7b000 r-xp 0000b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +73b955f7b000-73b955f80000 r--p 00014000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +73b955f80000-73b955f81000 ---p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +73b955f81000-73b955f83000 r--p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +73b955f83000-73b955f84000 rw-p 0001b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 +73b955f84000-73b955f8a000 r--p 00000000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +73b955f8a000-73b955fd4000 r-xp 00006000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +73b955fd4000-73b955ffe000 r--p 00050000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +73b955ffe000-73b955fff000 r--p 00079000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +73b955fff000-73b956000000 rw-p 0007a000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 +73b956000000-73b958000000 rw-p 00000000 00:00 0 +73b958000000-73b958021000 rw-p 00000000 00:00 0 +73b958021000-73b95c000000 ---p 00000000 00:00 0 +73b95c000000-73b95c004000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b95c004000-73b95c005000 r--p 00000000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +73b95c005000-73b95c007000 r-xp 00001000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +73b95c007000-73b95c008000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +73b95c008000-73b95c009000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +73b95c009000-73b95c00a000 rw-p 00004000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 +73b95c00a000-73b95c00b000 r--p 00000000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +73b95c00b000-73b95c00c000 r-xp 00001000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +73b95c00c000-73b95c00d000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +73b95c00d000-73b95c00e000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +73b95c00e000-73b95c00f000 rw-p 00003000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 +73b95c01b000-73b95c01d000 r--p 00000000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +73b95c01d000-73b95c024000 r-xp 00002000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +73b95c024000-73b95c026000 r--p 00009000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +73b95c026000-73b95c027000 r--p 0000a000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +73b95c027000-73b95c028000 rw-p 0000b000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 +73b95c028000-73b95c02b000 r--p 00000000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +73b95c02b000-73b95c037000 r-xp 00003000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +73b95c037000-73b95c03a000 r--p 0000f000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +73b95c03a000-73b95c03b000 r--p 00011000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +73b95c03b000-73b95c03c000 rw-p 00012000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 +73b95c03c000-73b95c040000 r--p 00000000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +73b95c040000-73b95c04b000 r-xp 00004000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +73b95c04b000-73b95c04f000 r--p 0000f000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +73b95c04f000-73b95c050000 r--p 00012000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +73b95c050000-73b95c051000 rw-p 00013000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 +73b95c051000-73b95c055000 r--p 00000000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +73b95c055000-73b95c062000 r-xp 00004000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +73b95c062000-73b95c065000 r--p 00011000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +73b95c065000-73b95c066000 ---p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +73b95c066000-73b95c067000 r--p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +73b95c067000-73b95c068000 rw-p 00015000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 +73b95c068000-73b95c069000 rw-p 00000000 00:00 0 +73b95c069000-73b95c079000 r--p 00000000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +73b95c079000-73b95c09a000 r-xp 00010000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +73b95c09a000-73b95c0d6000 r--p 00031000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +73b95c0d6000-73b95c0da000 r--p 0006c000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +73b95c0da000-73b95c0dd000 rw-p 00070000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so +73b95c0dd000-73b95c100000 rw-p 00000000 00:00 0 +73b95c100000-73b95c104000 ---p 00000000 00:00 0 +73b95c104000-73b95c200000 rw-p 00000000 00:00 0 +73b95c200000-73b95c400000 rw-p 00000000 00:00 0 +73b95c400000-73b95c408000 r--p 00000000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +73b95c408000-73b95c460000 r-xp 00008000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +73b95c460000-73b95c471000 r--p 00060000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +73b95c471000-73b95c472000 ---p 00071000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +73b95c472000-73b95c478000 r--p 00071000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +73b95c478000-73b95c479000 rw-p 00077000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so +73b95c479000-73b95c683000 rw-p 00000000 00:00 0 +73b95c683000-73b95c684000 rw-s 00000000 00:06 964 /dev/nvidia0 +73b95c684000-73b95c6b0000 r--p 00000000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +73b95c6b0000-73b95c6e4000 r-xp 0002c000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +73b95c6e4000-73b95c6fe000 r--p 00060000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +73b95c6fe000-73b95c6ff000 r--p 00079000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +73b95c6ff000-73b95c700000 rw-p 0007a000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +73b95c700000-73b95c704000 ---p 00000000 00:00 0 +73b95c704000-73b95c800000 rw-p 00000000 00:00 0 +73b95c800000-73b95c804000 ---p 00000000 00:00 0 +73b95c804000-73b95c900000 rw-p 00000000 00:00 0 +73b95c900000-73b95c904000 ---p 00000000 00:00 0 +73b95c904000-73b95ca00000 rw-p 00000000 00:00 0 +73b95ca00000-73b95d1d0000 rw-p 00000000 00:00 0 +73b95d1d0000-73b9646f0000 ---p 00000000 00:00 0 +73b9646f0000-73b964700000 rw-p 00000000 00:00 0 +73b964700000-73b964701000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b964706000-73b964711000 r--p 00000000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +73b964711000-73b964725000 r-xp 0000b000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +73b964725000-73b96472e000 r--p 0001f000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +73b96472e000-73b96472f000 r--p 00027000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +73b96472f000-73b964730000 rw-p 00028000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 +73b964730000-73b9647fe000 r-xp 00000000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +73b9647fe000-73b9647ff000 r--p 000cd000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +73b9647ff000-73b964800000 rw-p 000ce000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so +73b964800000-73b964a70000 rwxp 00000000 00:00 0 +73b964a70000-73b96bd37000 ---p 00000000 00:00 0 +73b96bd37000-73b96bfa7000 rwxp 00000000 00:00 0 +73b96bfa7000-73b96c2c8000 ---p 00000000 00:00 0 +73b96c2c8000-73b96c538000 rwxp 00000000 00:00 0 +73b96c538000-73b973800000 ---p 00000000 00:00 0 +73b973800000-73b97bfb5000 r--s 00000000 103:03 10498840 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/modules +73b97bfb5000-73b97bfb6000 rw-s 00000000 00:06 964 /dev/nvidia0 +73b97bfb6000-73b97bfb7000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b97bfbf000-73b97bffd000 r-xp 00000000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +73b97bffd000-73b97bffe000 ---p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +73b97bffe000-73b97bfff000 r--p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +73b97bfff000-73b97c000000 rw-p 0003f000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so +73b97c000000-73b97c5fe000 rw-p 00000000 00:00 0 +73b97c5fe000-73b980000000 ---p 00000000 00:00 0 +73b980000000-73b980001000 rw-s 00000000 00:06 957 /dev/nvidiactl +73b980001000-73b980002000 r--s 00000000 00:06 957 /dev/nvidiactl +73b980016000-73b98001a000 ---p 00000000 00:00 0 +73b98001a000-73b980116000 rw-p 00000000 00:00 0 +73b980116000-73b98011a000 ---p 00000000 00:00 0 +73b98011a000-73b980216000 rw-p 00000000 00:00 0 +73b980216000-73b98021a000 ---p 00000000 00:00 0 +73b98021a000-73b980316000 rw-p 00000000 00:00 0 +73b980316000-73b98031a000 ---p 00000000 00:00 0 +73b98031a000-73b980416000 rw-p 00000000 00:00 0 +73b980416000-73b98041a000 ---p 00000000 00:00 0 +73b98041a000-73b980516000 rw-p 00000000 00:00 0 +73b980516000-73b98051a000 ---p 00000000 00:00 0 +73b98051a000-73b980616000 rw-p 00000000 00:00 0 +73b980616000-73b98061a000 ---p 00000000 00:00 0 +73b98061a000-73b980716000 rw-p 00000000 00:00 0 +73b980716000-73b980717000 ---p 00000000 00:00 0 +73b980717000-73b980817000 rw-p 00000000 00:00 0 +73b980817000-73b980818000 ---p 00000000 00:00 0 +73b980818000-73b980918000 rw-p 00000000 00:00 0 +73b980918000-73b9809f4000 rw-p 00000000 00:00 0 +73b9809f4000-73b9809f5000 ---p 00000000 00:00 0 +73b9809f5000-73b980af5000 rw-p 00000000 00:00 0 +73b980af5000-73b980af6000 ---p 00000000 00:00 0 +73b980af6000-73b980bf6000 rw-p 00000000 00:00 0 +73b980bf6000-73b9813fe000 rw-p 00000000 00:00 0 +73b9813fe000-73b9813ff000 ---p 00000000 00:00 0 +73b9813ff000-73b9814ff000 rw-p 00000000 00:00 0 +73b9814ff000-73b981500000 ---p 00000000 00:00 0 +73b981500000-73b981600000 rw-p 00000000 00:00 0 +73b981600000-73b9816fa000 rw-p 00000000 00:00 0 +73b9816fa000-73b98259e000 ---p 00000000 00:00 0 +73b98259e000-73b9825a0000 rw-p 00000000 00:00 0 +73b9825a4000-73b9825a6000 r--p 00000000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +73b9825a6000-73b9825ad000 r-xp 00002000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +73b9825ad000-73b9825af000 r--p 00009000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +73b9825af000-73b9825b0000 r--p 0000a000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +73b9825b0000-73b9825b1000 rw-p 0000b000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 +73b9825b1000-73b9825b3000 r--p 00000000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +73b9825b3000-73b9825b5000 r-xp 00002000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +73b9825b5000-73b9825b7000 r--p 00004000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +73b9825b7000-73b9825b8000 r--p 00005000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +73b9825b8000-73b9825b9000 rw-p 00006000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 +73b9825b9000-73b9825ba000 r--p 00000000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +73b9825ba000-73b9825bc000 r-xp 00001000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +73b9825bc000-73b9825bd000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +73b9825bd000-73b9825be000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +73b9825be000-73b9825bf000 rw-p 00004000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 +73b9825bf000-73b9826fa000 rw-p 00000000 00:00 0 +73b9826fa000-73b98359e000 ---p 00000000 00:00 0 +73b98359e000-73b9835a0000 rw-p 00000000 00:00 0 +73b9835a0000-73b9835a1000 ---p 00000000 00:00 0 +73b9835a1000-73b9836a1000 rw-p 00000000 00:00 0 +73b9836a1000-73b983f2f000 rw-p 00000000 00:00 0 +73b983f2f000-73b984015000 ---p 00000000 00:00 0 +73b984015000-73b98401a000 rw-p 00000000 00:00 0 +73b98401a000-73b984100000 ---p 00000000 00:00 0 +73b984100000-73b984104000 ---p 00000000 00:00 0 +73b984104000-73b984200000 rw-p 00000000 00:00 0 +73b984200000-73b985530000 r-xp 00000000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so +73b985530000-73b985600000 r--p 0132f000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so +73b985600000-73b98562e000 rw-p 013ff000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so +73b98562e000-73b9856a4000 rw-p 00000000 00:00 0 +73b9856a4000-73b9856ab000 r--s 00000000 103:03 11147989 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache +73b9856ab000-73b9856ac000 r--p 00000000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +73b9856ac000-73b9856af000 r-xp 00001000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +73b9856af000-73b9856b0000 r--p 00004000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +73b9856b0000-73b9856b1000 ---p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +73b9856b1000-73b9856b2000 r--p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +73b9856b2000-73b9856b3000 rw-p 00006000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so +73b9856b3000-73b9856b6000 r--p 00000000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +73b9856b6000-73b9856ba000 r-xp 00003000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +73b9856ba000-73b9856bc000 r--p 00007000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +73b9856bc000-73b9856bd000 r--p 00008000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +73b9856bd000-73b9856be000 rw-p 00009000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 +73b9856be000-73b9856bf000 r--p 00000000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +73b9856bf000-73b9856c1000 r-xp 00001000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +73b9856c1000-73b9856c2000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +73b9856c2000-73b9856c3000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +73b9856c3000-73b9856c4000 rw-p 00004000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so +73b9856c4000-73b9856d7000 r-xp 00000000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +73b9856d7000-73b9856d8000 ---p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +73b9856d8000-73b9856d9000 r--p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +73b9856d9000-73b9856da000 rw-p 00014000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so +73b9856da000-73b985719000 rw-p 00000000 00:00 0 +73b985719000-73b985727000 r--p 00000000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +73b985727000-73b9857a3000 r-xp 0000e000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +73b9857a3000-73b9857fe000 r--p 0008a000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +73b9857fe000-73b9857ff000 r--p 000e4000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +73b9857ff000-73b985800000 rw-p 000e5000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 +73b985800000-73b985828000 r--p 00000000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +73b985828000-73b9859bd000 r-xp 00028000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +73b9859bd000-73b985a15000 r--p 001bd000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +73b985a15000-73b985a16000 ---p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +73b985a16000-73b985a1a000 r--p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +73b985a1a000-73b985a1c000 rw-p 00219000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 +73b985a1c000-73b985a29000 rw-p 00000000 00:00 0 +73b985a29000-73b985a2a000 r-xp 00000000 00:00 0 +73b985a2a000-73b985a2b000 rw-p 00000000 00:00 0 +73b985a2b000-73b985a2c000 r-xp 0005e000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so +73b985a2c000-73b985a2d000 rw-p 00000000 00:00 0 +73b985a2d000-73b985a38000 r-xp 00000000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +73b985a38000-73b985a39000 ---p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +73b985a39000-73b985a3a000 r--p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +73b985a3a000-73b985a3b000 rw-p 0000c000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so +73b985a3b000-73b985a7a000 rw-p 00000000 00:00 0 +73b985a7a000-73b985a9a000 r-xp 00000000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +73b985a9a000-73b985a9b000 r--p 0001f000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +73b985a9b000-73b985a9c000 rw-p 00020000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so +73b985a9c000-73b985a9d000 rw-p 00000000 00:00 0 +73b985a9d000-73b985abb000 r-xp 00000000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +73b985abb000-73b985abd000 r--p 0001d000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +73b985abd000-73b985abe000 rw-p 0001f000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so +73b985abe000-73b985abf000 r--p 00000000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +73b985abf000-73b985ac0000 r-xp 00001000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +73b985ac0000-73b985ac1000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +73b985ac1000-73b985ac2000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +73b985ac2000-73b985ac3000 rw-p 00003000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 +73b985ac3000-73b985ac7000 rw-p 00000000 00:00 0 +73b985ac7000-73b985ac8000 r--p 00000000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +73b985ac8000-73b985ac9000 r-xp 00001000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +73b985ac9000-73b985aca000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +73b985aca000-73b985acb000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +73b985acb000-73b985acc000 rw-p 00003000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 +73b985acc000-73b985acd000 r--p 00000000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +73b985acd000-73b985ace000 r-xp 00001000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +73b985ace000-73b985acf000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +73b985acf000-73b985ad0000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +73b985ad0000-73b985ad1000 rw-p 00003000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 +73b985ad1000-73b985ad3000 r--p 00000000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +73b985ad3000-73b985ae4000 r-xp 00002000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +73b985ae4000-73b985aea000 r--p 00013000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +73b985aea000-73b985aeb000 ---p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +73b985aeb000-73b985aec000 r--p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +73b985aec000-73b985aed000 rw-p 0001a000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 +73b985aed000-73b985af4000 r-xp 00000000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +73b985af4000-73b985af5000 ---p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +73b985af5000-73b985af6000 r--p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +73b985af6000-73b985af7000 rw-p 00008000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so +73b985af7000-73b985afc000 rw-p 00000000 00:00 0 +73b985afc000-73b985b03000 ---p 00000000 00:00 0 +73b985b03000-73b985b0b000 rw-s 00000000 103:03 4325447 /tmp/hsperfdata_codex/78128 +73b985b0b000-73b985b0c000 ---p 00000000 00:00 0 +73b985b0c000-73b985b0d000 r--p 00000000 00:00 0 +73b985b0d000-73b985b1c000 r-xp 00000000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so +73b985b1c000-73b985b1d000 r--p 0000e000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so +73b985b1d000-73b985b1e000 rw-p 0000f000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so +73b985b1e000-73b985b20000 rw-p 00000000 00:00 0 +73b985b20000-73b985b24000 r--p 00000000 00:00 0 [vvar] +73b985b24000-73b985b26000 r-xp 00000000 00:00 0 [vdso] +73b985b26000-73b985b28000 r--p 00000000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +73b985b28000-73b985b52000 r-xp 00002000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +73b985b52000-73b985b5d000 r--p 0002c000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +73b985b5d000-73b985b5e000 ---p 00000000 00:00 0 +73b985b5e000-73b985b60000 r--p 00037000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +73b985b60000-73b985b62000 rw-p 00039000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 +7ffee72d3000-7ffee72f6000 rw-p 00000000 00:00 0 [stack] +ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall] +Total number of mappings: 796 + + +VM Arguments: +jvm_args: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant +java_command: jme3test.vulkan.VulkanHelperTest +java_class_path (initial): /home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/java/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/groovy/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/resources/main:/home/codex/java/prj/jmonkeyengine/jme3-lwjgl3/build/libs/jme3-lwjgl3-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-desktop/build/libs/jme3-desktop-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-effects/build/libs/jme3-effects-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jbullet/build/libs/jme3-jbullet-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jogg/build/libs/jme3-jogg-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-networking/build/libs/jme3-networking-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-niftygui/build/libs/jme3-niftygui-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins/build/libs/jme3-plugins-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-terrain/build/libs/jme3-terrain-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-awt-dialogs/build/libs/jme3-awt-dialogs-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-core/build/libs/jme3-core-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json-gson/build/libs/jme3-plugins-json-gson-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json/build/libs/jme3-plugins-json-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-testdata/build/libs/jme3-testdata-null-SNAPSHOT.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-examples/1.4.3/4a41c559851c0c5a77ba3a9d1ccc8e6e92207dc7/nifty-examples-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjglx/lwjgl3-awt/0.2.3/2be63e81d6b73300d8203ce7235b2660c62eb3ea/lwjgl3-awt-0.2.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/7119f7d0eeb1e5502ff0ca71d2b4d47317da015/lwjgl-glfw-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/99ef08056feb9627f90425a4d2a22cd9fae8e39b/lwjgl-glfw-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/cfa8f1e96d572ed56da5945adf5167628f5eecdb/lwjgl-glfw-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/797e0965709ad180d9b00c88a086dbda15002203/lwjgl-glfw-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/671adf04a6bc4f792af13892e37f804be30b7070/lwjgl-glfw-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/b54023af492b4c2c72451f3a7aa0f385e9969474/lwjgl-glfw-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/82c8d748a654241b5961ddd1c098e8b648e38a48/lwjgl-glfw-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/399b42b491c5dfa6595ae6fd79dcba61b93538a7/lwjgl-glfw-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jawt/3.3.6/43299e222bd7db5e99254a8e620330954b73c2a6/lwjgl-jawt-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/245910eb57f2444429c74e6bf96030e5ec0a6739/lwjgl-jemalloc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/f9da76351e14a695be172d6915c8a7b2905307f/lwjgl-jemalloc-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c86043a342a33e5d32fabf962578580633db3c6e/lwjgl-jemalloc-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/26f8b467dc2e0f3000d608de3564b572bb46f927/lwjgl-jemalloc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c484cae39a718010dbc7931fe5e12664600a13c2/lwjgl-jemalloc-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1bc2e16e70df7f418d668c2984ac8066f1f6f5b1/lwjgl-jemalloc-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/9a42df0f2e9747815490311d7db7b4a046d5f40/lwjgl-jemalloc-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1f828c1fc06792475850162725433adf5ad001c0/lwjgl-jemalloc-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ad313317ff399fd2a7f4dd74716a68cf3976c6ad/lwjgl-openal-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/9c2b9b660e085bb0b47a4453dc0e26f24a5475e4/lwjgl-openal-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/82f693541d69aa125750bf8be9c4194435c56f03/lwjgl-openal-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ef356c04ef141d4efbde07793f31784f1f1a1bae/lwjgl-openal-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/7830af894fa110e65bf5075deb9183efbdbc50f5/lwjgl-openal-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/fd2c17603c63e8d543cb57d1db77ebd4574f3b7a/lwjgl-openal-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/c39f6827f0bd97601fc4e389801d5c813f59a5f2/lwjgl-openal-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/13f692aec4ae4b2d3c468aa0008472175f0ea1e0/lwjgl-openal-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opencl/3.3.6/93fdcea16d27b1466450e38dc28c8e1b4819ec25/lwjgl-opencl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ac2532612a4df374e9a9282bcf8ce2573018ebbb/lwjgl-opengl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/18dc639ebc94aa5202c2157f7490d28997b697c5/lwjgl-opengl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b0ab1d0e315d2fcc50d6cab7e8feaf4688d5d9a0/lwjgl-opengl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b8dc6467fe232d552793c53dc56f9fa8a385299c/lwjgl-opengl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ee815fbf454b916f13c10fff62e513eb09042ef0/lwjgl-opengl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/44de180f79e0b45c9e5bee10ca7540dcb5ddd373/lwjgl-opengl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/59f708eb4bf0be0204bbc9c06807911724673db6/lwjgl-opengl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/fee4fb2ee786af6530b6f9188205a76bc4e05268/lwjgl-opengl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-vulkan/3.3.6/a403e0931b03b138854bb2ba9c48dab646cba6d8/lwjgl-vulkan-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/9d0964fe2b75f64d9dab9839c2b059b7e8f71115/lwjgl-shaderc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/ab69a0e011f057ed25857c97fa3c87f20ab8f670/lwjgl-shaderc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/ce7721d30cfaf47feaed10213e0c43eb55c49d68/lwjgl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9a29b6a22fc5184604b8cb434ee5d5ecc4bfcbee/lwjgl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/7a6f04e02429ba2f4bda9be191347bb7d3c71127/lwjgl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/dc7db8fc4f1e6563867f9155b9a42d9c73d8992f/lwjgl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/2c9d698e76c3d0fe307d94cc6f428038492f25df/lwjgl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9eeb8887b5e3aa672efd2e1b0973ffa5891a3151/lwjgl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/f14e7a5289d2355822f4f83b3fd38d158c939acd/lwjgl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/832e2964ce74e02e768814a29c06d60645115b9a/lwjgl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/jbullet/1.0.3/362f53e8aa981037c2523ac24eb4d9b190a49036/jbullet-1.0.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/javax.vecmath/vecmath/1.5.2/fd17bc3e67f909573dfc039d8e2abecf407c4e27/vecmath-1.5.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/j-ogg-vorbis/1.0.6/a69d1cf62eaf75b71af61f9c23265d278a966735/j-ogg-vorbis-1.0.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-default-controls/1.4.3/2ccafe0182a73da87657ca24b639b6e8c1accd50/nifty-default-controls-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty/1.4.3/fa9ac16e00d1b375d10f58d1c1eb576950ae8c9d/nifty-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-style-black/1.4.3/c20a02dbdeb0bd9d2be258955fceb55c13185a8/nifty-style-black-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.9.1/2cc2131b98ebfb04e2b2c7dfb84431f4045096b/gson-2.9.1.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/stack-alloc/1.0.2/13cbb10c01ec09d0f5879f988946a97998175dfc/stack-alloc-1.0.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/xpp3/xpp3/1.1.4c/9b988ea84b9e4e9f1874e390ce099b8ac12cfff5/xpp3-1.1.4c.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/2.0.2/516c03b21d50a644d538de0f0369c620989cd8f0/jsr305-2.0.2.jar +Launcher Type: SUN_STANDARD + +[Global flags] + intx CICompilerCount = 4 {product} {ergonomic} + uint ConcGCThreads = 2 {product} {ergonomic} + uint G1ConcRefinementThreads = 8 {product} {ergonomic} + size_t G1HeapRegionSize = 4194304 {product} {ergonomic} + size_t InitialHeapSize = 524288000 {product} {ergonomic} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MarkStackSizeMax = 536870912 {product} {ergonomic} + size_t MaxHeapSize = 8388608000 {product} {ergonomic} + size_t MaxNewSize = 5033164800 {product} {ergonomic} + size_t MinHeapDeltaBytes = 4194304 {product} {ergonomic} + size_t MinHeapSize = 8388608 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 5836800 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 122912768 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 122908672 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + size_t SoftMaxHeapSize = 8388608000 {manageable} {ergonomic} + bool UseCompressedOops = true {product lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags foldmultilines=false + #1: stderr all=off uptime,level,tags foldmultilines=false + +Environment Variables: +PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin +USERNAME=codex +SHELL=/bin/bash +DISPLAY=:1 +LANG=en_US.UTF-8 + +Active Locale: +LC_ALL=en_US.UTF-8 +LC_COLLATE=en_US.UTF-8 +LC_CTYPE=en_US.UTF-8 +LC_MESSAGES=en_US.UTF-8 +LC_MONETARY=en_US.UTF-8 +LC_NUMERIC=en_US.UTF-8 +LC_TIME=en_US.UTF-8 + +Signal Handlers: + SIGSEGV: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGBUS: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGFPE: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGPIPE: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGXFSZ: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGILL: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + SIGUSR2: SR_handler in libjvm.so, mask=00000000000000000000000000000000, flags=SA_RESTART|SA_SIGINFO, blocked + SIGHUP: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGINT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGTERM: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGQUIT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked + SIGTRAP: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked + + +Periodic native trim disabled + +--------------- S Y S T E M --------------- + +OS: +DISTRIB_ID=Pop +DISTRIB_RELEASE=22.04 +DISTRIB_CODENAME=jammy +DISTRIB_DESCRIPTION="Pop!_OS 22.04 LTS" +uname: Linux 6.9.3-76060903-generic #202405300957~1726766035~22.04~4092a0e SMP PREEMPT_DYNAMIC Thu S x86_64 +OS uptime: 0 days 14:29 hours +libc: glibc 2.35 NPTL 2.35 +rlimit (soft/hard): STACK 8192k/infinity , CORE 0k/infinity , NPROC 127655/127655 , NOFILE 1048576/1048576 , AS infinity/infinity , CPU infinity/infinity , DATA infinity/infinity , FSIZE infinity/infinity , MEMLOCK 4095952k/4095952k +load average: 0.61 0.77 0.83 + +/proc/meminfo: +MemTotal: 32767632 kB +MemFree: 21158436 kB +MemAvailable: 24189976 kB +Buffers: 321172 kB +Cached: 4673028 kB +SwapCached: 0 kB +Active: 8033496 kB +Inactive: 2595692 kB +Active(anon): 5672072 kB +Inactive(anon): 0 kB +Active(file): 2361424 kB +Inactive(file): 2595692 kB +Unevictable: 15204 kB +Mlocked: 72 kB +SwapTotal: 20970996 kB +SwapFree: 20970996 kB +Zswap: 0 kB +Zswapped: 0 kB +Dirty: 28 kB +Writeback: 0 kB +AnonPages: 5650496 kB +Mapped: 1807064 kB +Shmem: 37084 kB +KReclaimable: 187708 kB +Slab: 366340 kB +SReclaimable: 187708 kB +SUnreclaim: 178632 kB +KernelStack: 20768 kB +PageTables: 48056 kB +SecPageTables: 0 kB +NFS_Unstable: 0 kB +Bounce: 0 kB +WritebackTmp: 0 kB +CommitLimit: 37354812 kB +Committed_AS: 11214484 kB +VmallocTotal: 34359738367 kB +VmallocUsed: 247428 kB +VmallocChunk: 0 kB +Percpu: 9120 kB +HardwareCorrupted: 0 kB +AnonHugePages: 0 kB +ShmemHugePages: 6144 kB +ShmemPmdMapped: 0 kB +FileHugePages: 0 kB +FilePmdMapped: 0 kB +Unaccepted: 0 kB +HugePages_Total: 0 +HugePages_Free: 0 +HugePages_Rsvd: 0 +HugePages_Surp: 0 +Hugepagesize: 2048 kB +Hugetlb: 0 kB +DirectMap4k: 800568 kB +DirectMap2M: 12732416 kB +DirectMap1G: 19922944 kB + +/sys/kernel/mm/transparent_hugepage/enabled: always [madvise] never +/sys/kernel/mm/transparent_hugepage/hpage_pmd_size: 2097152 +/sys/kernel/mm/transparent_hugepage/shmem_enabled: always within_size advise [never] deny force +/sys/kernel/mm/transparent_hugepage/defrag (defrag/compaction efforts parameter): always defer defer+madvise [madvise] never + +Process Memory: +Virtual Size: 13041280K (peak: 13042084K) +Resident Set Size: 297012K (peak: 297276K) (anon: 154376K, file: 142636K, shmem: 0K) +Swapped out: 0K +C-Heap outstanding allocations: 68142K, retained: 32033K +glibc malloc tunables: (default) + +/proc/sys/kernel/threads-max (system-wide limit on the number of threads): 255310 +/proc/sys/vm/max_map_count (maximum number of memory map areas a process may have): 2147483642 +/proc/sys/vm/swappiness (control to define how aggressively the kernel swaps out anonymous memory): 180 +/proc/sys/kernel/pid_max (system-wide limit on number of process identifiers): 4194304 + +container (cgroup) information: +container_type: cgroupv2 +cpu_cpuset_cpus: not supported +cpu_memory_nodes: not supported +active_processor_count: 8 +cpu_quota: not supported +cpu_period: not supported +cpu_shares: not supported +memory_limit_in_bytes: unlimited +memory_and_swap_limit_in_bytes: unlimited +memory_soft_limit_in_bytes: 0 +memory_usage_in_bytes: 5721300 k +memory_max_usage_in_bytes: not supported +rss_usage_in_bytes: 3396096 k +cache_usage_in_bytes: 2245204 k +memory_swap_current_in_bytes: 0 +memory_swap_max_limit_in_bytes: unlimited +maximum number of tasks: 38296 +current number of tasks: 306 + +Steal ticks since vm start: 0 +Steal ticks percentage since vm start: 0.000 + +CPU: total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 158 stepping 9 microcode 0xf8, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, adx, fma, vzeroupper, clflush, clflushopt, rdtscp, f16c +CPU Model and flags from /proc/cpuinfo: +model name : Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz +flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities + +Online cpus: 0-7 +Offline cpus: +BIOS frequency limitation: +Frequency switch latency (ns): 0 +Available cpu frequencies: +Current governor: powersave +Core performance/turbo boost: + +Memory: 4k page, physical 32767632k(24189976k free), swap 20970996k(20970996k free) +Page Sizes: 4k + +vm_info: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58) for linux-amd64 JRE (23.0.2+7-58), built on 2024-11-29T09:34:55Z with gcc 13.2.0 + +END. diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java index 640b7ec879..f67eb54bb2 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java @@ -7,14 +7,18 @@ import com.jme3.shaderc.ShadercLoader; import com.jme3.system.AppSettings; import com.jme3.system.vulkan.LwjglVulkanContext; +import com.jme3.util.BufferUtils; import com.jme3.vulkan.*; import com.jme3.vulkan.Queue; +import com.jme3.vulkan.buffers.BufferArgs; +import com.jme3.vulkan.buffers.GpuBuffer; import org.lwjgl.PointerBuffer; import org.lwjgl.glfw.GLFW; import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryUtil; import org.lwjgl.vulkan.*; +import java.nio.FloatBuffer; import java.nio.IntBuffer; import java.util.*; import java.util.logging.Level; @@ -37,6 +41,7 @@ public class VulkanHelperTest extends SimpleApplication implements SwapchainUpda private RenderPass renderPass; private GraphicsPipeline pipeline; private CommandPool graphicsPool; + private GpuBuffer vertexBuffer, indexBuffer; private VulkanRenderManager renderer; private boolean swapchainResizeFlag = false; @@ -45,11 +50,18 @@ public class VulkanHelperTest extends SimpleApplication implements SwapchainUpda private long debugMessenger = NULL; private final VkDebugUtilsMessengerCallbackEXT debugCallback = new VulkanDebugCallback(Level.SEVERE); + private final FloatBuffer vertexData = BufferUtils.createFloatBuffer( + -0.5f, -0.5f, 1f, 0f, 0f, + 0.5f, -0.5f, 0f, 1f, 0f, + 0.5f, 0.5f, 0f, 0f, 1f, + -0.5f, 0.5f, 1f, 1f, 1f); + private final IntBuffer indexData = BufferUtils.createIntBuffer(0, 1, 2, 2, 3, 0); + public static void main(String[] args) { VulkanHelperTest app = new VulkanHelperTest(); AppSettings settings = new AppSettings(true); - settings.setWidth(800); - settings.setHeight(800); + settings.setWidth(768); + settings.setHeight(768); settings.setRenderer("CUSTOM" + LwjglVulkanContext.class.getName()); app.setSettings(settings); app.setShowSettings(false); @@ -58,32 +70,52 @@ public static void main(String[] args) { @Override public void simpleInitApp() { + assetManager.registerLoader(ShadercLoader.class, "glsl"); deviceExtensions.add(KHRSwapchain.VK_KHR_SWAPCHAIN_EXTENSION_NAME); long window = ((LwjglVulkanContext)context).getWindowHandle(); + try (InstanceBuilder inst = new InstanceBuilder(VK13.VK_API_VERSION_1_3)) { + + // build instance inst.addGlfwExtensions(); inst.addDebugExtension(); inst.addLunarGLayer(); inst.setApplicationName(VulkanHelperTest.class.getSimpleName()); inst.setApplicationVersion(1, 0, 0); instance = inst.build(); + + // debug callbacks try (MemoryStack stack = MemoryStack.stackPush()) { createDebugMessenger(stack); } + + // surface surface = new Surface(instance, window); + + // physical device PhysicalDevice physDevice = PhysicalDevice.getPhysicalDevice( instance.getNativeObject(), Arrays.asList(surface, DeviceEvaluator.extensions(deviceExtensions), DeviceEvaluator.swapchain(surface)), () -> new SimpleQueueFamilies(surface)); + + // queue families queues = physDevice.getQueueFamilies(); + + // logical device PointerBuffer deviceExts = VulkanUtils.toPointers(inst.getStack(), deviceExtensions, inst.getStack()::UTF8); device = new LogicalDevice(physDevice, deviceExts, inst.getLayers()); + + // create queues physDevice.getQueueFamilies().createQueues(device); + + // swapchain try (SimpleSwapchainSupport support = new SimpleSwapchainSupport(physDevice, surface, window)) { swapchain = new Swapchain(device, surface, support); } } + + // pipeline vertModule = new ShaderModule(device, assetManager.loadAsset(ShadercLoader.key( "Shaders/VulkanVertTest.glsl", ShaderType.Vertex)), "main"); fragModule = new ShaderModule(device, assetManager.loadAsset(ShadercLoader.key( @@ -117,10 +149,40 @@ public void simpleInitApp() { renderPass = pass.build(device); } swapchain.createFrameBuffers(renderPass); - pipeline = new GraphicsPipeline(device, pipelineLayout, renderPass, new RenderState(), vertModule, fragModule); + pipeline = new GraphicsPipeline(device, pipelineLayout, renderPass, new RenderState(), vertModule, fragModule, new MeshDescription()); graphicsPool = new CommandPool(device, queues.getGraphicsQueue(), false, true); - //graphicsCommands = graphicsPool.allocateCommandBuffer(); renderer = new VulkanRenderManager(2, Frame::new); + + CommandPool transferPool = new CommandPool(device, queues.getGraphicsQueue(), true, false); + + // vertex buffers + try (MemoryStack stack = MemoryStack.stackPush()) { + GpuBuffer staging = new GpuBuffer(device, vertexData.capacity() * Float.BYTES, + new BufferArgs().transferSrc().hostVisible().hostCoherent()); + staging.copy(stack, vertexData); + vertexBuffer = new GpuBuffer(device, staging.getSize(), + new BufferArgs().transferDst().vertexBuffer().deviceLocal()); + CommandBuffer commands = transferPool.allocateOneTimeCommandBuffer(); + vertexBuffer.recordCopy(stack, commands, staging, 0, 0, (long)vertexData.limit() * Float.BYTES); + commands.submit(null, null, null); + transferPool.getQueue().waitIdle(); // todo: use fences to wait on transfer operations + staging.freeMemory(); // destroys buffer + } + + // index buffers + try (MemoryStack stack = MemoryStack.stackPush()) { + GpuBuffer staging = new GpuBuffer(device, indexData.capacity() * Integer.BYTES, + new BufferArgs().transferSrc().hostVisible().hostCoherent()); + staging.copy(stack, indexData); + indexBuffer = new GpuBuffer(device, staging.getSize(), + new BufferArgs().transferDst().indexBuffer().deviceLocal()); + CommandBuffer commands = transferPool.allocateOneTimeCommandBuffer(); + indexBuffer.recordCopy(stack, commands, staging, 0, 0, (long)indexData.limit() * Integer.BYTES); + commands.submit(null, null, null); + transferPool.getQueue().waitIdle(); + staging.freeMemory(); + } + } @Override @@ -205,6 +267,8 @@ public void run() { renderPass.begin(graphicsCommands, image.getFrameBuffer()); pipeline.bind(graphicsCommands); try (MemoryStack stack = MemoryStack.stackPush()) { + vkCmdBindVertexBuffers(graphicsCommands.getBuffer(), 0, stack.longs(vertexBuffer.getNativeObject()), stack.longs(0)); + vkCmdBindIndexBuffer(graphicsCommands.getBuffer(), indexBuffer.getNativeObject(), 0, VK_INDEX_TYPE_UINT32); VkViewport.Buffer vp = VkViewport.calloc(1, stack) .x(0f).y(0f) .width(swapchain.getExtent().getX()) @@ -216,7 +280,8 @@ public void run() { scissor.extent(swapchain.getExtent().toStruct(stack)); vkCmdSetScissor(graphicsCommands.getBuffer(), 0, scissor); } - vkCmdDraw(graphicsCommands.getBuffer(), 3, 1, 0, 0); + //vkCmdDraw(graphicsCommands.getBuffer(), vertexData.limit() / 5, 1, 0, 0); + vkCmdDrawIndexed(graphicsCommands.getBuffer(), indexData.limit(), 1, 0, 0, 0); vkCmdEndRenderPass(graphicsCommands.getBuffer()); graphicsCommands.end(); graphicsCommands.submit(imageAvailable, renderFinished, inFlight); diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandBuffer.java index 039b7738fa..6014e59a56 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandBuffer.java @@ -50,11 +50,12 @@ public void end() { throw new IllegalStateException("Command buffer has not begun recording."); } check(vkEndCommandBuffer(buffer), "Failed to record command buffer"); + recording = false; } public void submit(Semaphore wait, Semaphore signal, Fence fence) { - if (!recording) { - throw new IllegalStateException("Command buffer has not begun recording."); + if (recording) { + throw new IllegalStateException("Command buffer is still recording."); } try (MemoryStack stack = MemoryStack.stackPush()) { VkSubmitInfo.Buffer submit = VkSubmitInfo.calloc(1, stack) @@ -69,7 +70,6 @@ public void submit(Semaphore wait, Semaphore signal, Fence fence) { } pool.getQueue().submit(submit, fence); } - recording = false; } public void reset() { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java index 7c3ffa6856..d358f29427 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java @@ -19,7 +19,7 @@ public class GraphicsPipeline implements Native { private final NativeReference ref; private long id; - public GraphicsPipeline(LogicalDevice device, PipelineLayout layout, RenderPass compat, RenderState state, ShaderModule vert, ShaderModule frag) { + public GraphicsPipeline(LogicalDevice device, PipelineLayout layout, RenderPass compat, RenderState state, ShaderModule vert, ShaderModule frag, MeshDescription mesh) { this.device = device; try (MemoryStack stack = MemoryStack.stackPush()) { VkPipelineShaderStageCreateInfo.Buffer stages = VkPipelineShaderStageCreateInfo.calloc(2, stack); @@ -35,7 +35,9 @@ public GraphicsPipeline(LogicalDevice device, PipelineLayout layout, RenderPass .sType(VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO) .pDynamicStates(stack.ints(VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR)); VkPipelineVertexInputStateCreateInfo vertInput = VkPipelineVertexInputStateCreateInfo.calloc(stack) - .sType(VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO); + .sType(VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO) + .pVertexBindingDescriptions(mesh.getBindings()) + .pVertexAttributeDescriptions(mesh.getAttributes()); VkPipelineInputAssemblyStateCreateInfo assembly = VkPipelineInputAssemblyStateCreateInfo.calloc(stack) .sType(VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO) .topology(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST) diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MemoryRegion.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MemoryRegion.java new file mode 100644 index 0000000000..8067d55512 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MemoryRegion.java @@ -0,0 +1,102 @@ +package com.jme3.vulkan; + +import com.jme3.util.IntMap; +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import org.lwjgl.PointerBuffer; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.system.Struct; +import org.lwjgl.system.StructBuffer; +import org.lwjgl.vulkan.VkInstanceCreateInfo; +import org.lwjgl.vulkan.VkMemoryAllocateInfo; + +import java.nio.*; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.BiFunction; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.vulkan.VK10.*; + +public class MemoryRegion implements Native { + + private final LogicalDevice device; + private final NativeReference ref; + private final long id; + private final AtomicBoolean mapped = new AtomicBoolean(false); + + public MemoryRegion(LogicalDevice device, long size, int typeIndex) { + this.device = device; + try (MemoryStack stack = MemoryStack.stackPush()) { + VkMemoryAllocateInfo allocate = VkMemoryAllocateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO) + .allocationSize(size) + .memoryTypeIndex(typeIndex); + LongBuffer idBuf = stack.mallocLong(1); + check(vkAllocateMemory(device.getNativeObject(), allocate, null, idBuf), + "Failed to allocate buffer memory."); + id = idBuf.get(0); + } + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + } + + @Override + public Long getNativeObject() { + return id; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> vkFreeMemory(device.getNativeObject(), id, null); + } + + @Override + public void prematureNativeDestruction() {} + + @Override + public NativeReference getNativeReference() { + return ref; + } + + public PointerBuffer map(MemoryStack stack, int offset, int size, int flags) { + if (mapped.getAndSet(true)) { + throw new IllegalStateException("Memory already mapped."); + } + PointerBuffer data = stack.mallocPointer(1); + vkMapMemory(device.getNativeObject(), id, offset, size, flags, data); + return data; + } + + public ByteBuffer mapBytes(MemoryStack stack, int offset, int size, int flags) { + return map(stack, offset, size, flags).getByteBuffer(0, size); + } + + public ShortBuffer mapShorts(MemoryStack stack, int offset, int size, int flags) { + return map(stack, offset, size * Short.BYTES, flags).getShortBuffer(0, size); + } + + public IntBuffer mapInts(MemoryStack stack, int offset, int size, int flags) { + return map(stack, offset, size * Integer.BYTES, flags).getIntBuffer(0, size); + } + + public FloatBuffer mapFloats(MemoryStack stack, int offset, int size, int flags) { + return map(stack, offset, size * Float.BYTES, flags).getFloatBuffer(0, size); + } + + public DoubleBuffer mapDoubles(MemoryStack stack, int offset, int size, int flags) { + return map(stack, offset, size * Double.BYTES, flags).getDoubleBuffer(0, size); + } + + public LongBuffer mapLongs(MemoryStack stack, int offset, int size, int flags) { + return map(stack, offset, size * Long.BYTES, flags).getLongBuffer(0, size); + } + + public void unmap() { + if (!mapped.getAndSet(false)) { + throw new IllegalStateException("Memory is not mapped."); + } + vkUnmapMemory(device.getNativeObject(), id); + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MeshDescription.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MeshDescription.java new file mode 100644 index 0000000000..72bc1906ad --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MeshDescription.java @@ -0,0 +1,64 @@ +package com.jme3.vulkan; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import org.lwjgl.vulkan.VkVertexInputAttributeDescription; +import org.lwjgl.vulkan.VkVertexInputBindingDescription; + +import static org.lwjgl.vulkan.VK10.*; + +public class MeshDescription implements Native { + + private final VkVertexInputBindingDescription.Buffer bindings; + private final VkVertexInputAttributeDescription.Buffer attributes; + private final NativeReference ref; + + public MeshDescription() { + // for each vertex buffer on the mesh + bindings = VkVertexInputBindingDescription.calloc(1) + .binding(0) + .stride(Float.BYTES * 5) // bytes per vertex + .inputRate(VK_VERTEX_INPUT_RATE_VERTEX); + // for each attribute in each vertex buffer + attributes = VkVertexInputAttributeDescription.calloc(2); + attributes.get(0).binding(0) + .location(0) + .format(VK_FORMAT_R32G32_SFLOAT) + .offset(0); + attributes.get(1).binding(0) + .location(1) + .format(VK_FORMAT_R32G32B32_SFLOAT) + .offset(Float.BYTES * 2); + ref = Native.get().register(this); + } + + @Override + public Object getNativeObject() { + return null; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> { + bindings.free(); + attributes.free(); + }; + } + + @Override + public void prematureNativeDestruction() {} + + @Override + public NativeReference getNativeReference() { + return ref; + } + + public VkVertexInputBindingDescription.Buffer getBindings() { + return bindings; + } + + public VkVertexInputAttributeDescription.Buffer getAttributes() { + return attributes; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/OneTimeCommandBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/OneTimeCommandBuffer.java index 92e4991add..a060a2371a 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/OneTimeCommandBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/OneTimeCommandBuffer.java @@ -22,18 +22,19 @@ public void begin() { if (active) { throw new IllegalStateException("Buffer already freed."); } - VkCommandBufferBeginInfo begin = VkCommandBufferBeginInfo.create() - .sType(VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO) - .flags(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT); - vkBeginCommandBuffer(buffer, begin); - begin.close(); + try (MemoryStack stack = MemoryStack.stackPush()) { + VkCommandBufferBeginInfo begin = VkCommandBufferBeginInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO) + .flags(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT); + vkBeginCommandBuffer(buffer, begin); + } recording = true; } @Override public void submit(Semaphore wait, Semaphore signal, Fence fence) { - if (!recording) { - throw new IllegalStateException("Command buffer has not begun recording."); + if (recording) { + throw new IllegalStateException("Command buffer is still recording."); } try (MemoryStack stack = MemoryStack.stackPush()) { VkSubmitInfo.Buffer submit = VkSubmitInfo.calloc(1, stack) @@ -48,8 +49,7 @@ public void submit(Semaphore wait, Semaphore signal, Fence fence) { } pool.getQueue().submit(submit, fence); pool.getQueue().waitIdle(); - vkFreeCommandBuffers(pool.getDevice().getNativeObject(), - pool.getNativeObject(), buffer); + vkFreeCommandBuffers(pool.getDevice().getNativeObject(), pool.getNativeObject(), buffer); } active = false; recording = false; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java index a5e823e725..2bd75dcd65 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java @@ -71,6 +71,22 @@ public VkExtensionProperties.Buffer getExtensions(MemoryStack stack) { vkEnumerateDeviceExtensionProperties(device, (ByteBuffer)null, count, buffer)); } + public VkPhysicalDeviceMemoryProperties getMemory(MemoryStack stack) { + VkPhysicalDeviceMemoryProperties mem = VkPhysicalDeviceMemoryProperties.malloc(stack); + vkGetPhysicalDeviceMemoryProperties(device, mem); + return mem; + } + + public int findMemoryType(MemoryStack stack, int types, int flags) { + VkPhysicalDeviceMemoryProperties mem = getMemory(stack); + for (int i = 0; i < mem.memoryTypeCount(); i++) { + if ((types & (1 << i)) != 0 && (mem.memoryTypes().get(i).propertyFlags() & flags) != 0) { + return i; + } + } + throw new NullPointerException("Suitable memory type not found."); + } + public int findSupportedFormat(int tiling, int features, int... candidates) { VkFormatProperties props = VkFormatProperties.create(); for (int f : candidates) { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Vertex.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Vertex.java new file mode 100644 index 0000000000..237992d248 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Vertex.java @@ -0,0 +1,25 @@ +package com.jme3.vulkan; + +import org.lwjgl.system.Struct; + +import java.nio.ByteBuffer; + +public class Vertex extends Struct { + + // todo: experiment with implementing Structs + + protected Vertex(long address, ByteBuffer container) { + super(address, container); + } + + @Override + protected Vertex create(long l, ByteBuffer byteBuffer) { + return null; + } + + @Override + public int sizeof() { + return 0; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/BufferArgs.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/BufferArgs.java new file mode 100644 index 0000000000..c5c95648df --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/BufferArgs.java @@ -0,0 +1,77 @@ +package com.jme3.vulkan.buffers; + +import static org.lwjgl.vulkan.VK10.*; + +public class BufferArgs { + + private int usage; + private int memFlags = 0; + private boolean concurrent = false; + + public BufferArgs vertexBuffer() { + usage |= VK_BUFFER_USAGE_VERTEX_BUFFER_BIT; + return this; + } + + public BufferArgs indexBuffer() { + usage |= VK_BUFFER_USAGE_INDEX_BUFFER_BIT; + return this; + } + + public BufferArgs transferSrc() { + usage |= VK_BUFFER_USAGE_TRANSFER_SRC_BIT; + return this; + } + + public BufferArgs transferDst() { + usage |= VK_BUFFER_USAGE_TRANSFER_DST_BIT; + return this; + } + + public BufferArgs hostVisible() { + memFlags |= VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; + return this; + } + + public BufferArgs hostCoherent() { + memFlags |= VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; + return this; + } + + public BufferArgs hostCached() { + memFlags |= VK_MEMORY_PROPERTY_HOST_CACHED_BIT; + return this; + } + + public BufferArgs deviceLocal() { + memFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; + return this; + } + + public BufferArgs lazilyAllocated() { + memFlags |= VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT; + return this; + } + + public BufferArgs setConcurrent(boolean concurrent) { + this.concurrent = concurrent; + return this; + } + + public int getUsage() { + return usage; + } + + public int getMemoryFlags() { + return memFlags; + } + + public boolean isConcurrent() { + return concurrent; + } + + public int getSharingMode() { + return concurrent ? VK_SHARING_MODE_CONCURRENT : VK_SHARING_MODE_EXCLUSIVE; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java new file mode 100644 index 0000000000..6707d10a3b --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java @@ -0,0 +1,105 @@ +package com.jme3.vulkan.buffers; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.CommandBuffer; +import com.jme3.vulkan.LogicalDevice; +import com.jme3.vulkan.MemoryRegion; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.vulkan.VkBufferCopy; +import org.lwjgl.vulkan.VkBufferCreateInfo; +import org.lwjgl.vulkan.VkMemoryRequirements; + +import java.nio.*; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.vulkan.VK10.*; + +public class GpuBuffer implements Native { + + private final LogicalDevice device; + private final NativeReference ref; + private final int size; + private final long id; + private final MemoryRegion memory; + + public GpuBuffer(LogicalDevice device, int size, BufferArgs args) { + this.device = device; + this.size = size; + try (MemoryStack stack = MemoryStack.stackPush()) { + VkBufferCreateInfo create = VkBufferCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO) + .size(size) // size in bytes + .usage(args.getUsage()) + .sharingMode(args.getSharingMode()); + LongBuffer idBuf = stack.mallocLong(1); + check(vkCreateBuffer(device.getNativeObject(), create, null, idBuf), + "Failed to create buffer."); + id = idBuf.get(0); + VkMemoryRequirements bufferMem = VkMemoryRequirements.malloc(stack); + vkGetBufferMemoryRequirements(device.getNativeObject(), id, bufferMem); + memory = new MemoryRegion(device, bufferMem.size(), device.getPhysicalDevice().findMemoryType( + stack, bufferMem.memoryTypeBits(), args.getMemoryFlags())); + check(vkBindBufferMemory(device.getNativeObject(), id, memory.getNativeObject(), 0), + "Failed to bind buffer memory"); + } + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + memory.getNativeReference().addDependent(ref); + } + + @Override + public Long getNativeObject() { + return id; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> vkDestroyBuffer(device.getNativeObject(), id, null); + } + + @Override + public void prematureNativeDestruction() {} + + @Override + public NativeReference getNativeReference() { + return ref; + } + + public void copy(MemoryStack stack, ByteBuffer buffer) { + MemoryUtil.memCopy(buffer, memory.mapBytes(stack, 0, buffer.limit(), 0)); + memory.unmap(); + } + + public void copy(MemoryStack stack, IntBuffer buffer) { + MemoryUtil.memCopy(buffer, memory.mapInts(stack, 0, buffer.limit(), 0)); + memory.unmap(); + } + + public void copy(MemoryStack stack, FloatBuffer buffer) { + MemoryUtil.memCopy(buffer, memory.mapFloats(stack, 0, buffer.limit(), 0)); + memory.unmap(); + } + + public void recordCopy(MemoryStack stack, CommandBuffer commands, GpuBuffer source, long srcOffset, long dstOffset, long size) { + commands.begin(); + VkBufferCopy.Buffer copy = VkBufferCopy.calloc(1, stack) + .srcOffset(srcOffset).dstOffset(dstOffset).size(size); + vkCmdCopyBuffer(commands.getBuffer(), source.getNativeObject(), id, copy); + commands.end(); + } + + public void freeMemory() { + memory.getNativeReference().destroy(); + } + + public int getSize() { + return size; // size in bytes + } + + public MemoryRegion getMemory() { + return memory; + } + +} diff --git a/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl b/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl index 1789f94a1b..804b6dacd0 100644 --- a/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl +++ b/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl @@ -6,6 +6,6 @@ layout (location = 1) in vec3 inColor; layout (location = 0) out vec3 fragColor; void main() { - gl_Position = vec4(positions[gl_VertexIndex], 0.0, 1.0); - fragColor = colors[gl_VertexIndex]; + gl_Position = vec4(inPosition, 0.0, 1.0); + fragColor = inColor; } \ No newline at end of file From adb4e01a059ac4368c232ad1ecd6f6c8b2e6ac81 Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Thu, 31 Jul 2025 21:08:24 -0400 Subject: [PATCH 15/37] add uniforms; fix native crash and memory leaks --- hs_err_pid78128.log | 1520 ----------------- .../src/main/java/com/jme3/math/Matrix4f.java | 12 + .../main/java/com/jme3/renderer/Camera.java | 5 +- .../com/jme3/renderer/vulkan/VulkanUtils.java | 25 + .../jme3/util/natives/BasicNativeManager.java | 49 +- .../jme3/util/natives/NativeReference.java | 4 + .../jme3test/vulkan/VulkanHelperTest.java | 222 ++- .../main/java/jme3test/vulkan/VulkanTest.java | 5 +- .../system/vulkan/LwjglVulkanContext.java | 5 +- .../java/com/jme3/vulkan/DeviceEvaluator.java | 30 +- .../java/com/jme3/vulkan/FrameBuffer.java | 3 +- .../com/jme3/vulkan/GraphicsPipeline.java | 1 + .../src/main/java/com/jme3/vulkan/Image.java | 12 - .../java/com/jme3/vulkan/LogicalDevice.java | 7 +- .../java/com/jme3/vulkan/MeshDescription.java | 8 +- .../main/java/com/jme3/vulkan/OldImage.java | 127 -- .../java/com/jme3/vulkan/PhysicalDevice.java | 27 +- .../java/com/jme3/vulkan/PipelineLayout.java | 22 +- .../java/com/jme3/vulkan/ShaderModule.java | 1 + .../main/java/com/jme3/vulkan/Swapchain.java | 87 +- .../java/com/jme3/vulkan/VulkanLogger.java | 102 ++ .../com/jme3/vulkan/VulkanRenderManager.java | 9 +- .../com/jme3/vulkan/buffers/BufferArgs.java | 77 - .../com/jme3/vulkan/buffers/GpuBuffer.java | 93 +- .../vulkan/{ => buffers}/MemoryRegion.java | 50 +- .../jme3/vulkan/buffers/PersistentBuffer.java | 33 + .../jme3/vulkan/buffers/StageableBuffer.java | 59 + .../vulkan/descriptors/BufferDescriptor.java | 37 + .../vulkan/descriptors/BufferSetWriter.java | 32 + .../jme3/vulkan/descriptors/Descriptor.java | 28 + .../vulkan/descriptors/DescriptorPool.java | 78 + .../vulkan/descriptors/DescriptorSet.java | 44 + .../descriptors/DescriptorSetLayout.java | 65 + .../descriptors/DescriptorSetWriter.java | 39 + .../vulkan/descriptors/ImageDescriptor.java | 42 + .../vulkan/descriptors/ImageSetWriter.java | 32 + .../com/jme3/vulkan/descriptors/PoolSize.java | 43 + .../vulkan/descriptors/SetLayoutBinding.java | 50 + .../jme3/vulkan/flags/BufferUsageFlags.java | 38 + .../jme3/vulkan/flags/ImageUsageFlags.java | 28 + .../com/jme3/vulkan/flags/MemoryFlags.java | 38 + .../java/com/jme3/vulkan/images/GpuImage.java | 143 ++ .../java/com/jme3/vulkan/images/Image.java | 46 + .../jme3/vulkan/{ => images}/ImageView.java | 9 +- .../java/com/jme3/vulkan/images/Sampler.java | 69 + .../java/com/jme3/vulkan/images/Texture.java | 18 + .../jme3/vulkan/images/VulkanImageLoader.java | 199 +++ .../resources/Shaders/VulkanFragTest.glsl | 5 +- .../resources/Shaders/VulkanVertTest.glsl | 9 +- 49 files changed, 1732 insertions(+), 1955 deletions(-) delete mode 100644 hs_err_pid78128.log delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/Image.java delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/OldImage.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanLogger.java delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/BufferArgs.java rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/{ => buffers}/MemoryRegion.java (65%) create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/PersistentBuffer.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BufferDescriptor.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BufferSetWriter.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/Descriptor.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorPool.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetLayout.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetWriter.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/ImageDescriptor.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/ImageSetWriter.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/PoolSize.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/SetLayoutBinding.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/BufferUsageFlags.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/ImageUsageFlags.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/MemoryFlags.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Image.java rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/{ => images}/ImageView.java (87%) create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Sampler.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Texture.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java diff --git a/hs_err_pid78128.log b/hs_err_pid78128.log deleted file mode 100644 index 1cbd152d6c..0000000000 --- a/hs_err_pid78128.log +++ /dev/null @@ -1,1520 +0,0 @@ -# -# A fatal error has been detected by the Java Runtime Environment: -# -# SIGSEGV (0xb) at pc=0x000073b95c45933a, pid=78128, tid=78153 -# -# JRE version: Java(TM) SE Runtime Environment (23.0.2+7) (build 23.0.2+7-58) -# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64) -# Problematic frame: -# C [libjemalloc.so+0x5933a] -# -# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/codex/java/prj/jmonkeyengine/core.78128) -# -# If you would like to submit a bug report, please visit: -# https://bugreport.java.com/bugreport/crash.jsp -# - ---------------- S U M M A R Y ------------ - -Command Line: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant jme3test.vulkan.VulkanHelperTest - -Host: Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz, 8 cores, 31G, Pop!_OS 22.04 LTS -Time: Sun Jul 27 22:12:26 2025 EDT elapsed time: 5.435825 seconds (0d 0h 0m 5s) - ---------------- T H R E A D --------------- - -Current thread is native thread - -Stack: [0x000073b95c100000,0x000073b95c200000], sp=0x000073b95c1fe8d0, free space=1018k -Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) -C [libjemalloc.so+0x5933a] - -siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000000 - -Registers: -RAX=0x0000000000000000, RBX=0x0000000000000200, RCX=0x0000000000000000, RDX=0x000073b95c478440 -RSP=0x000073b95c1fe8d0, RBP=0x000073b95c1fedb0, RSI=0x0000000000000000, RDI=0x000073b954ae1020 -R8 =0x0000000000000000, R9 =0x0000000000000000, R10=0x0000000000000000, R11=0x000073b954ae1060 -R12=0x000000000000003f, R13=0x000073b95c1fed70, R14=0x000000000000003f, R15=0x000073b95c1fead0 -RIP=0x000073b95c45933a, EFLAGS=0x0000000000010246, CSGSFS=0x002b000000000033, ERR=0x0000000000000004 - TRAPNO=0x000000000000000e - - -Top of Stack: (sp=0x000073b95c1fe8d0) -0x000073b95c1fe8d0: 000073b97c4c7590 000073b95c1fe960 -0x000073b95c1fe8e0: 000073b95c1fe970 000073b985b32211 -0x000073b95c1fe8f0: 0000000000000005 000073b97c4c7788 -0x000073b95c1fe900: 0000000000000005 0000000000000000 -0x000073b95c1fe910: 0000000000000001 000073b97c4c7220 -0x000073b95c1fe920: 000073b97c4c7788 000073b97c4c7220 -0x000073b95c1fe930: 000000016bd3f020 000073b97c4c7590 -0x000073b95c1fe940: 0000000000000000 3962333700000000 -0x000073b95c1fe950: 3064343900000000 4b172e4100000004 -0x000073b95c1fe960: 00000000ffffffff 0000000000000000 -0x000073b95c1fe970: 000073b98580d4d0 000073b985b1f7c0 -0x000073b95c1fe980: 000073b95c1fe9b0 000073b985278613 -0x000073b95c1fe990: 000073b95c1feb88 000073b98588849a -0x000073b95c1fe9a0: 0000000000000000 000073b95c1feaa0 -0x000073b95c1fe9b0: 00000000fbad8001 0000000000000002 -0x000073b95c1fe9c0: 000073b97c4c7220 000073b95c6ff028 -0x000073b95c1fe9d0: 000073b985a1cae8 0000000000000004 -0x000073b95c1fe9e0: 000073b95c1ffb58 000073b985b38f71 -0x000073b95c1fe9f0: 0000000000000005 0000000000000000 -0x000073b95c1fea00: 000073b98580d4d0 000073b9858a53e0 -0x000073b95c1fea10: 0000000000000000 000073b95c1fee00 -0x000073b95c1fea20: 000073b985a1caf8 0000000000000000 -0x000073b95c1fea30: 000073b985a1cae8 000073b985b3bdae -0x000073b95c1fea40: 0000000000000001 000000000000006f -0x000073b95c1fea50: 000073b95c6b17d0 0000000000000000 -0x000073b95c1fea60: 000073b8acbbbcd0 0000000000000000 -0x000073b95c1fea70: 00000000000000ca 5a15e310c4f3a7d5 -0x000073b95c1fea80: 0000000000000213 000073b985a17300 -0x000073b95c1fea90: 0000000000000000 0000000000000200 -0x000073b95c1feaa0: 000073b95c1fedb0 000000000000003f -0x000073b95c1feab0: 000073b95c1fed70 000073b95c1fead0 -0x000073b95c1feac0: 000073b8ac002420 000073b95c4592f8 - -Instructions: (pc=0x000073b95c45933a) -0x000073b95c45923a: f4 66 41 c1 ec 03 41 0f b7 d4 2b 95 40 ff ff ff -0x000073b95c45924a: 48 c1 e2 03 e8 bd f0 fa ff 49 8b 4d 00 41 0f b7 -0x000073b95c45925a: 7d 14 48 01 d9 89 fe 66 41 2b 7d 10 29 ce 66 c1 -0x000073b95c45926a: ef 03 49 89 4d 00 66 c1 ee 03 66 39 fe 73 0c 4c -0x000073b95c45927a: 8b bd 50 ff ff ff 66 41 89 4f 10 48 8d 65 d8 5b -0x000073b95c45928a: 41 5c 41 5d 41 5e 41 5f 5d c3 29 d8 48 89 a5 48 -0x000073b95c45929a: ff ff ff 4c 89 ff 44 0f b7 e0 44 0f b7 c0 66 89 -0x000073b95c4592aa: 45 c0 45 8d 74 24 01 4e 8d 1c c5 00 00 00 00 44 -0x000073b95c4592ba: 89 a5 40 ff ff ff 4a 8d 1c f5 0f 00 00 00 4c 29 -0x000073b95c4592ca: da 4c 89 9d 38 ff ff ff 81 e3 f0 ff 1f 00 4c 8d -0x000073b95c4592da: 14 16 4c 89 c2 48 8b b5 30 ff ff ff 48 29 dc 4c -0x000073b95c4592ea: 89 55 c8 49 89 e6 4c 89 f1 e8 28 ed ff ff 48 29 -0x000073b95c4592fa: dc 48 89 65 80 45 85 e4 0f 84 07 ff ff ff 44 8b -0x000073b95c45930a: 8d 2c ff ff ff c7 45 b8 00 00 00 00 4c 89 7d b0 -0x000073b95c45931a: 4d 89 f7 45 89 e6 4b 8d 0c 89 4c 89 4d a0 48 c1 -0x000073b95c45932a: e1 03 48 89 4d 88 49 8b 37 48 8d 15 06 f1 01 00 -0x000073b95c45933a: 44 8b 2e 41 81 e5 ff 0f 00 00 44 89 e8 4c 8b 24 -0x000073b95c45934a: c2 4c 89 65 a8 4c 8b 06 48 8d 3d 67 72 02 00 4c -0x000073b95c45935a: 8b 5d a0 49 c1 e8 26 41 83 e0 3f 46 8b 14 9f 44 -0x000073b95c45936a: 89 c3 44 89 45 bc 4c 8d 0c dd 00 00 00 00 49 29 -0x000073b95c45937a: d9 49 c1 e1 05 4d 01 ca 4d 01 e2 49 8d 7a 48 4c -0x000073b95c45938a: 89 55 90 48 89 7d 98 e8 6a f0 fa ff 4c 8b 4d 90 -0x000073b95c45939a: 85 c0 0f 85 ce 03 00 00 49 8d 49 40 48 89 4d 90 -0x000073b95c4593aa: 49 8b 1f 48 8b 55 a0 45 8d 5e ff 45 31 e4 48 8d -0x000073b95c4593ba: 05 a1 72 02 00 41 ba 01 00 00 00 41 83 e3 01 48 -0x000073b95c4593ca: 8b 3b 44 8b 04 90 48 8b 45 c8 89 fe 81 e6 ff 0f -0x000073b95c4593da: 00 00 48 8b 08 41 39 f5 0f 84 c0 02 00 00 4a 89 -0x000073b95c4593ea: 0c e0 4b 89 1c e7 41 bc 01 00 00 00 bb 01 00 00 -0x000073b95c4593fa: 00 41 83 fe 01 0f 86 51 02 00 00 45 85 db 74 38 -0x000073b95c45940a: 49 8b 57 08 48 8b 48 08 48 8b 32 89 f7 81 e7 ff -0x000073b95c45941a: 0f 00 00 41 39 fd 0f 84 6a 04 00 00 45 89 e3 41 -0x000073b95c45942a: 83 c4 01 4a 89 0c d8 4b 89 14 df 48 83 c3 01 41 - - - ---------------- P R O C E S S --------------- - -VM state: not at safepoint (normal execution) - -VM Mutex/Monitor currently owned by a thread: None - -Heap address: 0x000000060c000000, size: 8000 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 - -CDS archive(s) mapped at: [0x000073b8fe000000-0x000073b8fed91000-0x000073b8fed91000), size 14225408, SharedBaseAddress: 0x000073b8fe000000, ArchiveRelocationMode: 1. -Compressed class space mapped at: 0x000073b8ff000000-0x000073b93f000000, reserved size: 1073741824 -Narrow klass base: 0x000073b8fe000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 - -GC Precious Log: - - -Heap: - garbage-first heap total reserved 8192000K, committed 516096K, used 11952K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 3 young (12288K), 1 survivors (4096K) - Metaspace used 10807K, committed 11072K, reserved 1114112K - class space used 906K, committed 1024K, reserved 1048576K - -Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, TAMS=top-at-mark-start, PB=parsable bottom -| 0|0x000000060c000000, 0x000000060c000000, 0x000000060c400000| 0%| F| |TAMS 0x000000060c000000| PB 0x000000060c000000| Untracked | 0 -| 1|0x000000060c400000, 0x000000060c400000, 0x000000060c800000| 0%| F| |TAMS 0x000000060c400000| PB 0x000000060c400000| Untracked | 0 -| 2|0x000000060c800000, 0x000000060c800000, 0x000000060cc00000| 0%| F| |TAMS 0x000000060c800000| PB 0x000000060c800000| Untracked | 0 -| 3|0x000000060cc00000, 0x000000060cc00000, 0x000000060d000000| 0%| F| |TAMS 0x000000060cc00000| PB 0x000000060cc00000| Untracked | 0 -| 4|0x000000060d000000, 0x000000060d000000, 0x000000060d400000| 0%| F| |TAMS 0x000000060d000000| PB 0x000000060d000000| Untracked | 0 -| 5|0x000000060d400000, 0x000000060d400000, 0x000000060d800000| 0%| F| |TAMS 0x000000060d400000| PB 0x000000060d400000| Untracked | 0 -| 6|0x000000060d800000, 0x000000060d800000, 0x000000060dc00000| 0%| F| |TAMS 0x000000060d800000| PB 0x000000060d800000| Untracked | 0 -| 7|0x000000060dc00000, 0x000000060dc00000, 0x000000060e000000| 0%| F| |TAMS 0x000000060dc00000| PB 0x000000060dc00000| Untracked | 0 -| 8|0x000000060e000000, 0x000000060e000000, 0x000000060e400000| 0%| F| |TAMS 0x000000060e000000| PB 0x000000060e000000| Untracked | 0 -| 9|0x000000060e400000, 0x000000060e400000, 0x000000060e800000| 0%| F| |TAMS 0x000000060e400000| PB 0x000000060e400000| Untracked | 0 -| 10|0x000000060e800000, 0x000000060e800000, 0x000000060ec00000| 0%| F| |TAMS 0x000000060e800000| PB 0x000000060e800000| Untracked | 0 -| 11|0x000000060ec00000, 0x000000060ec00000, 0x000000060f000000| 0%| F| |TAMS 0x000000060ec00000| PB 0x000000060ec00000| Untracked | 0 -| 12|0x000000060f000000, 0x000000060f000000, 0x000000060f400000| 0%| F| |TAMS 0x000000060f000000| PB 0x000000060f000000| Untracked | 0 -| 13|0x000000060f400000, 0x000000060f400000, 0x000000060f800000| 0%| F| |TAMS 0x000000060f400000| PB 0x000000060f400000| Untracked | 0 -| 14|0x000000060f800000, 0x000000060f800000, 0x000000060fc00000| 0%| F| |TAMS 0x000000060f800000| PB 0x000000060f800000| Untracked | 0 -| 15|0x000000060fc00000, 0x000000060fc00000, 0x0000000610000000| 0%| F| |TAMS 0x000000060fc00000| PB 0x000000060fc00000| Untracked | 0 -| 16|0x0000000610000000, 0x0000000610000000, 0x0000000610400000| 0%| F| |TAMS 0x0000000610000000| PB 0x0000000610000000| Untracked | 0 -| 17|0x0000000610400000, 0x0000000610400000, 0x0000000610800000| 0%| F| |TAMS 0x0000000610400000| PB 0x0000000610400000| Untracked | 0 -| 18|0x0000000610800000, 0x0000000610800000, 0x0000000610c00000| 0%| F| |TAMS 0x0000000610800000| PB 0x0000000610800000| Untracked | 0 -| 19|0x0000000610c00000, 0x0000000610c00000, 0x0000000611000000| 0%| F| |TAMS 0x0000000610c00000| PB 0x0000000610c00000| Untracked | 0 -| 20|0x0000000611000000, 0x0000000611000000, 0x0000000611400000| 0%| F| |TAMS 0x0000000611000000| PB 0x0000000611000000| Untracked | 0 -| 21|0x0000000611400000, 0x0000000611400000, 0x0000000611800000| 0%| F| |TAMS 0x0000000611400000| PB 0x0000000611400000| Untracked | 0 -| 22|0x0000000611800000, 0x0000000611800000, 0x0000000611c00000| 0%| F| |TAMS 0x0000000611800000| PB 0x0000000611800000| Untracked | 0 -| 23|0x0000000611c00000, 0x0000000611c00000, 0x0000000612000000| 0%| F| |TAMS 0x0000000611c00000| PB 0x0000000611c00000| Untracked | 0 -| 24|0x0000000612000000, 0x0000000612000000, 0x0000000612400000| 0%| F| |TAMS 0x0000000612000000| PB 0x0000000612000000| Untracked | 0 -| 25|0x0000000612400000, 0x0000000612400000, 0x0000000612800000| 0%| F| |TAMS 0x0000000612400000| PB 0x0000000612400000| Untracked | 0 -| 26|0x0000000612800000, 0x0000000612800000, 0x0000000612c00000| 0%| F| |TAMS 0x0000000612800000| PB 0x0000000612800000| Untracked | 0 -| 27|0x0000000612c00000, 0x0000000612c00000, 0x0000000613000000| 0%| F| |TAMS 0x0000000612c00000| PB 0x0000000612c00000| Untracked | 0 -| 28|0x0000000613000000, 0x0000000613000000, 0x0000000613400000| 0%| F| |TAMS 0x0000000613000000| PB 0x0000000613000000| Untracked | 0 -| 29|0x0000000613400000, 0x0000000613400000, 0x0000000613800000| 0%| F| |TAMS 0x0000000613400000| PB 0x0000000613400000| Untracked | 0 -| 30|0x0000000613800000, 0x0000000613800000, 0x0000000613c00000| 0%| F| |TAMS 0x0000000613800000| PB 0x0000000613800000| Untracked | 0 -| 31|0x0000000613c00000, 0x0000000613c00000, 0x0000000614000000| 0%| F| |TAMS 0x0000000613c00000| PB 0x0000000613c00000| Untracked | 0 -| 32|0x0000000614000000, 0x0000000614000000, 0x0000000614400000| 0%| F| |TAMS 0x0000000614000000| PB 0x0000000614000000| Untracked | 0 -| 33|0x0000000614400000, 0x0000000614400000, 0x0000000614800000| 0%| F| |TAMS 0x0000000614400000| PB 0x0000000614400000| Untracked | 0 -| 34|0x0000000614800000, 0x0000000614800000, 0x0000000614c00000| 0%| F| |TAMS 0x0000000614800000| PB 0x0000000614800000| Untracked | 0 -| 35|0x0000000614c00000, 0x0000000614c00000, 0x0000000615000000| 0%| F| |TAMS 0x0000000614c00000| PB 0x0000000614c00000| Untracked | 0 -| 36|0x0000000615000000, 0x0000000615000000, 0x0000000615400000| 0%| F| |TAMS 0x0000000615000000| PB 0x0000000615000000| Untracked | 0 -| 37|0x0000000615400000, 0x0000000615400000, 0x0000000615800000| 0%| F| |TAMS 0x0000000615400000| PB 0x0000000615400000| Untracked | 0 -| 38|0x0000000615800000, 0x0000000615800000, 0x0000000615c00000| 0%| F| |TAMS 0x0000000615800000| PB 0x0000000615800000| Untracked | 0 -| 39|0x0000000615c00000, 0x0000000615c00000, 0x0000000616000000| 0%| F| |TAMS 0x0000000615c00000| PB 0x0000000615c00000| Untracked | 0 -| 40|0x0000000616000000, 0x0000000616000000, 0x0000000616400000| 0%| F| |TAMS 0x0000000616000000| PB 0x0000000616000000| Untracked | 0 -| 41|0x0000000616400000, 0x0000000616400000, 0x0000000616800000| 0%| F| |TAMS 0x0000000616400000| PB 0x0000000616400000| Untracked | 0 -| 42|0x0000000616800000, 0x0000000616800000, 0x0000000616c00000| 0%| F| |TAMS 0x0000000616800000| PB 0x0000000616800000| Untracked | 0 -| 43|0x0000000616c00000, 0x0000000616c00000, 0x0000000617000000| 0%| F| |TAMS 0x0000000616c00000| PB 0x0000000616c00000| Untracked | 0 -| 44|0x0000000617000000, 0x0000000617000000, 0x0000000617400000| 0%| F| |TAMS 0x0000000617000000| PB 0x0000000617000000| Untracked | 0 -| 45|0x0000000617400000, 0x0000000617400000, 0x0000000617800000| 0%| F| |TAMS 0x0000000617400000| PB 0x0000000617400000| Untracked | 0 -| 46|0x0000000617800000, 0x0000000617800000, 0x0000000617c00000| 0%| F| |TAMS 0x0000000617800000| PB 0x0000000617800000| Untracked | 0 -| 47|0x0000000617c00000, 0x0000000617c00000, 0x0000000618000000| 0%| F| |TAMS 0x0000000617c00000| PB 0x0000000617c00000| Untracked | 0 -| 48|0x0000000618000000, 0x0000000618000000, 0x0000000618400000| 0%| F| |TAMS 0x0000000618000000| PB 0x0000000618000000| Untracked | 0 -| 49|0x0000000618400000, 0x0000000618400000, 0x0000000618800000| 0%| F| |TAMS 0x0000000618400000| PB 0x0000000618400000| Untracked | 0 -| 50|0x0000000618800000, 0x0000000618800000, 0x0000000618c00000| 0%| F| |TAMS 0x0000000618800000| PB 0x0000000618800000| Untracked | 0 -| 51|0x0000000618c00000, 0x0000000618c00000, 0x0000000619000000| 0%| F| |TAMS 0x0000000618c00000| PB 0x0000000618c00000| Untracked | 0 -| 52|0x0000000619000000, 0x0000000619000000, 0x0000000619400000| 0%| F| |TAMS 0x0000000619000000| PB 0x0000000619000000| Untracked | 0 -| 53|0x0000000619400000, 0x0000000619400000, 0x0000000619800000| 0%| F| |TAMS 0x0000000619400000| PB 0x0000000619400000| Untracked | 0 -| 54|0x0000000619800000, 0x0000000619800000, 0x0000000619c00000| 0%| F| |TAMS 0x0000000619800000| PB 0x0000000619800000| Untracked | 0 -| 55|0x0000000619c00000, 0x0000000619c00000, 0x000000061a000000| 0%| F| |TAMS 0x0000000619c00000| PB 0x0000000619c00000| Untracked | 0 -| 56|0x000000061a000000, 0x000000061a000000, 0x000000061a400000| 0%| F| |TAMS 0x000000061a000000| PB 0x000000061a000000| Untracked | 0 -| 57|0x000000061a400000, 0x000000061a400000, 0x000000061a800000| 0%| F| |TAMS 0x000000061a400000| PB 0x000000061a400000| Untracked | 0 -| 58|0x000000061a800000, 0x000000061a800000, 0x000000061ac00000| 0%| F| |TAMS 0x000000061a800000| PB 0x000000061a800000| Untracked | 0 -| 59|0x000000061ac00000, 0x000000061ac00000, 0x000000061b000000| 0%| F| |TAMS 0x000000061ac00000| PB 0x000000061ac00000| Untracked | 0 -| 60|0x000000061b000000, 0x000000061b000000, 0x000000061b400000| 0%| F| |TAMS 0x000000061b000000| PB 0x000000061b000000| Untracked | 0 -| 61|0x000000061b400000, 0x000000061b400000, 0x000000061b800000| 0%| F| |TAMS 0x000000061b400000| PB 0x000000061b400000| Untracked | 0 -| 62|0x000000061b800000, 0x000000061b800000, 0x000000061bc00000| 0%| F| |TAMS 0x000000061b800000| PB 0x000000061b800000| Untracked | 0 -| 63|0x000000061bc00000, 0x000000061bc00000, 0x000000061c000000| 0%| F| |TAMS 0x000000061bc00000| PB 0x000000061bc00000| Untracked | 0 -| 64|0x000000061c000000, 0x000000061c000000, 0x000000061c400000| 0%| F| |TAMS 0x000000061c000000| PB 0x000000061c000000| Untracked | 0 -| 65|0x000000061c400000, 0x000000061c400000, 0x000000061c800000| 0%| F| |TAMS 0x000000061c400000| PB 0x000000061c400000| Untracked | 0 -| 66|0x000000061c800000, 0x000000061c800000, 0x000000061cc00000| 0%| F| |TAMS 0x000000061c800000| PB 0x000000061c800000| Untracked | 0 -| 67|0x000000061cc00000, 0x000000061cc00000, 0x000000061d000000| 0%| F| |TAMS 0x000000061cc00000| PB 0x000000061cc00000| Untracked | 0 -| 68|0x000000061d000000, 0x000000061d000000, 0x000000061d400000| 0%| F| |TAMS 0x000000061d000000| PB 0x000000061d000000| Untracked | 0 -| 69|0x000000061d400000, 0x000000061d400000, 0x000000061d800000| 0%| F| |TAMS 0x000000061d400000| PB 0x000000061d400000| Untracked | 0 -| 70|0x000000061d800000, 0x000000061d800000, 0x000000061dc00000| 0%| F| |TAMS 0x000000061d800000| PB 0x000000061d800000| Untracked | 0 -| 71|0x000000061dc00000, 0x000000061dc00000, 0x000000061e000000| 0%| F| |TAMS 0x000000061dc00000| PB 0x000000061dc00000| Untracked | 0 -| 72|0x000000061e000000, 0x000000061e000000, 0x000000061e400000| 0%| F| |TAMS 0x000000061e000000| PB 0x000000061e000000| Untracked | 0 -| 73|0x000000061e400000, 0x000000061e400000, 0x000000061e800000| 0%| F| |TAMS 0x000000061e400000| PB 0x000000061e400000| Untracked | 0 -| 74|0x000000061e800000, 0x000000061e800000, 0x000000061ec00000| 0%| F| |TAMS 0x000000061e800000| PB 0x000000061e800000| Untracked | 0 -| 75|0x000000061ec00000, 0x000000061ec00000, 0x000000061f000000| 0%| F| |TAMS 0x000000061ec00000| PB 0x000000061ec00000| Untracked | 0 -| 76|0x000000061f000000, 0x000000061f000000, 0x000000061f400000| 0%| F| |TAMS 0x000000061f000000| PB 0x000000061f000000| Untracked | 0 -| 77|0x000000061f400000, 0x000000061f400000, 0x000000061f800000| 0%| F| |TAMS 0x000000061f400000| PB 0x000000061f400000| Untracked | 0 -| 78|0x000000061f800000, 0x000000061f800000, 0x000000061fc00000| 0%| F| |TAMS 0x000000061f800000| PB 0x000000061f800000| Untracked | 0 -| 79|0x000000061fc00000, 0x000000061fc00000, 0x0000000620000000| 0%| F| |TAMS 0x000000061fc00000| PB 0x000000061fc00000| Untracked | 0 -| 80|0x0000000620000000, 0x0000000620000000, 0x0000000620400000| 0%| F| |TAMS 0x0000000620000000| PB 0x0000000620000000| Untracked | 0 -| 81|0x0000000620400000, 0x0000000620400000, 0x0000000620800000| 0%| F| |TAMS 0x0000000620400000| PB 0x0000000620400000| Untracked | 0 -| 82|0x0000000620800000, 0x0000000620800000, 0x0000000620c00000| 0%| F| |TAMS 0x0000000620800000| PB 0x0000000620800000| Untracked | 0 -| 83|0x0000000620c00000, 0x0000000620c00000, 0x0000000621000000| 0%| F| |TAMS 0x0000000620c00000| PB 0x0000000620c00000| Untracked | 0 -| 84|0x0000000621000000, 0x0000000621000000, 0x0000000621400000| 0%| F| |TAMS 0x0000000621000000| PB 0x0000000621000000| Untracked | 0 -| 85|0x0000000621400000, 0x0000000621400000, 0x0000000621800000| 0%| F| |TAMS 0x0000000621400000| PB 0x0000000621400000| Untracked | 0 -| 86|0x0000000621800000, 0x0000000621800000, 0x0000000621c00000| 0%| F| |TAMS 0x0000000621800000| PB 0x0000000621800000| Untracked | 0 -| 87|0x0000000621c00000, 0x0000000621c00000, 0x0000000622000000| 0%| F| |TAMS 0x0000000621c00000| PB 0x0000000621c00000| Untracked | 0 -| 88|0x0000000622000000, 0x0000000622000000, 0x0000000622400000| 0%| F| |TAMS 0x0000000622000000| PB 0x0000000622000000| Untracked | 0 -| 89|0x0000000622400000, 0x0000000622400000, 0x0000000622800000| 0%| F| |TAMS 0x0000000622400000| PB 0x0000000622400000| Untracked | 0 -| 90|0x0000000622800000, 0x0000000622800000, 0x0000000622c00000| 0%| F| |TAMS 0x0000000622800000| PB 0x0000000622800000| Untracked | 0 -| 91|0x0000000622c00000, 0x0000000622c00000, 0x0000000623000000| 0%| F| |TAMS 0x0000000622c00000| PB 0x0000000622c00000| Untracked | 0 -| 92|0x0000000623000000, 0x0000000623000000, 0x0000000623400000| 0%| F| |TAMS 0x0000000623000000| PB 0x0000000623000000| Untracked | 0 -| 93|0x0000000623400000, 0x0000000623400000, 0x0000000623800000| 0%| F| |TAMS 0x0000000623400000| PB 0x0000000623400000| Untracked | 0 -| 94|0x0000000623800000, 0x0000000623800000, 0x0000000623c00000| 0%| F| |TAMS 0x0000000623800000| PB 0x0000000623800000| Untracked | 0 -| 95|0x0000000623c00000, 0x0000000623c00000, 0x0000000624000000| 0%| F| |TAMS 0x0000000623c00000| PB 0x0000000623c00000| Untracked | 0 -| 96|0x0000000624000000, 0x0000000624000000, 0x0000000624400000| 0%| F| |TAMS 0x0000000624000000| PB 0x0000000624000000| Untracked | 0 -| 97|0x0000000624400000, 0x0000000624400000, 0x0000000624800000| 0%| F| |TAMS 0x0000000624400000| PB 0x0000000624400000| Untracked | 0 -| 98|0x0000000624800000, 0x0000000624800000, 0x0000000624c00000| 0%| F| |TAMS 0x0000000624800000| PB 0x0000000624800000| Untracked | 0 -| 99|0x0000000624c00000, 0x0000000624c00000, 0x0000000625000000| 0%| F| |TAMS 0x0000000624c00000| PB 0x0000000624c00000| Untracked | 0 -| 100|0x0000000625000000, 0x0000000625000000, 0x0000000625400000| 0%| F| |TAMS 0x0000000625000000| PB 0x0000000625000000| Untracked | 0 -| 101|0x0000000625400000, 0x0000000625400000, 0x0000000625800000| 0%| F| |TAMS 0x0000000625400000| PB 0x0000000625400000| Untracked | 0 -| 102|0x0000000625800000, 0x0000000625800000, 0x0000000625c00000| 0%| F| |TAMS 0x0000000625800000| PB 0x0000000625800000| Untracked | 0 -| 103|0x0000000625c00000, 0x0000000625c00000, 0x0000000626000000| 0%| F| |TAMS 0x0000000625c00000| PB 0x0000000625c00000| Untracked | 0 -| 104|0x0000000626000000, 0x0000000626000000, 0x0000000626400000| 0%| F| |TAMS 0x0000000626000000| PB 0x0000000626000000| Untracked | 0 -| 105|0x0000000626400000, 0x0000000626400000, 0x0000000626800000| 0%| F| |TAMS 0x0000000626400000| PB 0x0000000626400000| Untracked | 0 -| 106|0x0000000626800000, 0x0000000626800000, 0x0000000626c00000| 0%| F| |TAMS 0x0000000626800000| PB 0x0000000626800000| Untracked | 0 -| 107|0x0000000626c00000, 0x0000000626c00000, 0x0000000627000000| 0%| F| |TAMS 0x0000000626c00000| PB 0x0000000626c00000| Untracked | 0 -| 108|0x0000000627000000, 0x0000000627000000, 0x0000000627400000| 0%| F| |TAMS 0x0000000627000000| PB 0x0000000627000000| Untracked | 0 -| 109|0x0000000627400000, 0x0000000627400000, 0x0000000627800000| 0%| F| |TAMS 0x0000000627400000| PB 0x0000000627400000| Untracked | 0 -| 110|0x0000000627800000, 0x0000000627800000, 0x0000000627c00000| 0%| F| |TAMS 0x0000000627800000| PB 0x0000000627800000| Untracked | 0 -| 111|0x0000000627c00000, 0x0000000627c00000, 0x0000000628000000| 0%| F| |TAMS 0x0000000627c00000| PB 0x0000000627c00000| Untracked | 0 -| 112|0x0000000628000000, 0x0000000628000000, 0x0000000628400000| 0%| F| |TAMS 0x0000000628000000| PB 0x0000000628000000| Untracked | 0 -| 113|0x0000000628400000, 0x0000000628400000, 0x0000000628800000| 0%| F| |TAMS 0x0000000628400000| PB 0x0000000628400000| Untracked | 0 -| 114|0x0000000628800000, 0x0000000628800000, 0x0000000628c00000| 0%| F| |TAMS 0x0000000628800000| PB 0x0000000628800000| Untracked | 0 -| 115|0x0000000628c00000, 0x0000000628c00000, 0x0000000629000000| 0%| F| |TAMS 0x0000000628c00000| PB 0x0000000628c00000| Untracked | 0 -| 116|0x0000000629000000, 0x0000000629000000, 0x0000000629400000| 0%| F| |TAMS 0x0000000629000000| PB 0x0000000629000000| Untracked | 0 -| 117|0x0000000629400000, 0x0000000629400000, 0x0000000629800000| 0%| F| |TAMS 0x0000000629400000| PB 0x0000000629400000| Untracked | 0 -| 118|0x0000000629800000, 0x0000000629bbcdc8, 0x0000000629c00000| 93%| S|CS|TAMS 0x0000000629800000| PB 0x0000000629800000| Complete | 0 -| 119|0x0000000629c00000, 0x0000000629c00000, 0x000000062a000000| 0%| F| |TAMS 0x0000000629c00000| PB 0x0000000629c00000| Untracked | 0 -| 120|0x000000062a000000, 0x000000062a000000, 0x000000062a400000| 0%| F| |TAMS 0x000000062a000000| PB 0x000000062a000000| Untracked | 0 -| 121|0x000000062a400000, 0x000000062a400000, 0x000000062a800000| 0%| F| |TAMS 0x000000062a400000| PB 0x000000062a400000| Untracked | 0 -| 122|0x000000062a800000, 0x000000062a800000, 0x000000062ac00000| 0%| F| |TAMS 0x000000062a800000| PB 0x000000062a800000| Untracked | 0 -| 123|0x000000062ac00000, 0x000000062aed08a0, 0x000000062b000000| 70%| E| |TAMS 0x000000062ac00000| PB 0x000000062ac00000| Complete | 0 -| 124|0x000000062b000000, 0x000000062b400000, 0x000000062b400000|100%| E|CS|TAMS 0x000000062b000000| PB 0x000000062b000000| Complete | 0 -|1999|0x00000007ffc00000, 0x00000007ffd1ec18, 0x0000000800000000| 28%| O| |TAMS 0x00000007ffc00000| PB 0x00000007ffc00000| Untracked | 0 - -Card table byte_map: [0x000073b981600000,0x000073b9825a0000] _byte_map_base: 0x000073b97e5a0000 - -Marking Bits: (CMBitMap*) 0x000073b97c059190 - Bits: [0x000073b95ca00000, 0x000073b964700000) - -Polling page: 0x000073b985b0b000 - -Metaspace: - -Usage: - Non-class: 9.67 MB used. - Class: 906.79 KB used. - Both: 10.55 MB used. - -Virtual space: - Non-class space: 64.00 MB reserved, 9.81 MB ( 15%) committed, 1 nodes. - Class space: 1.00 GB reserved, 1.00 MB ( <1%) committed, 1 nodes. - Both: 1.06 GB reserved, 10.81 MB ( <1%) committed. - -Chunk freelists: - Non-Class: 6.09 MB - Class: 14.91 MB - Both: 21.00 MB - -MaxMetaspaceSize: unlimited -CompressedClassSpaceSize: 1.00 GB -Initial GC threshold: 21.00 MB -Current GC threshold: 21.00 MB -CDS: on - - commit_granule_bytes: 65536. - - commit_granule_words: 8192. - - virtual_space_node_default_size: 8388608. - - enlarge_chunks_in_place: 1. - - use_allocation_guard: 0. - - -Internal statistics: - -num_allocs_failed_limit: 0. -num_arena_births: 172. -num_arena_deaths: 0. -num_vsnodes_births: 2. -num_vsnodes_deaths: 0. -num_space_committed: 173. -num_space_uncommitted: 0. -num_chunks_returned_to_freelist: 0. -num_chunks_taken_from_freelist: 469. -num_chunk_merges: 0. -num_chunk_splits: 317. -num_chunks_enlarged: 231. -num_inconsistent_stats: 0. - -CodeHeap 'non-profiled nmethods': size=120032Kb used=505Kb max_used=505Kb free=119526Kb - bounds [0x000073b96c2c8000, 0x000073b96c538000, 0x000073b973800000] -CodeHeap 'profiled nmethods': size=120028Kb used=2160Kb max_used=2160Kb free=117867Kb - bounds [0x000073b964800000, 0x000073b964a70000, 0x000073b96bd37000] -CodeHeap 'non-nmethods': size=5700Kb used=2194Kb max_used=2212Kb free=3505Kb - bounds [0x000073b96bd37000, 0x000073b96bfa7000, 0x000073b96c2c8000] -CodeCache: size=245760Kb, used=4859Kb, max_used=4877Kb, free=240898Kb - total_blobs=2935, nmethods=1733, adapters=1109, full_count=0 -Compilation: enabled, stopped_count=0, restarted_count=0 - -Compilation events (20 events): -Event: 5.366 Thread 0x000073b97c1484b0 nmethod 1721 0x000073b964a18a88 code [0x000073b964a18be0, 0x000073b964a19068] -Event: 5.380 Thread 0x000073b97c1484b0 1722 3 org.lwjgl.vulkan.VkRect2D::nextent (10 bytes) -Event: 5.380 Thread 0x000073b97c1484b0 nmethod 1722 0x000073b964a19108 code [0x000073b964a19220, 0x000073b964a19340] -Event: 5.380 Thread 0x000073b97c1484b0 1723 3 org.lwjgl.vulkan.VkViewport::calloc (20 bytes) -Event: 5.380 Thread 0x000073b97c1484b0 nmethod 1723 0x000073b964a19408 code [0x000073b964a19540, 0x000073b964a197b0] -Event: 5.380 Thread 0x000073b97c1484b0 1724 3 org.lwjgl.vulkan.VkViewport$Buffer:: (11 bytes) -Event: 5.381 Thread 0x000073b97c1484b0 nmethod 1724 0x000073b964a19808 code [0x000073b964a19920, 0x000073b964a19a80] -Event: 5.382 Thread 0x000073b97c1484b0 1725 3 org.lwjgl.openal.ALC::check (16 bytes) -Event: 5.382 Thread 0x000073b97c1484b0 nmethod 1725 0x000073b964a19b08 code [0x000073b964a19c40, 0x000073b964a19e38] -Event: 5.385 Thread 0x000073b97c1484b0 1726 3 java.lang.StackStreamFactory$FrameBuffer::isEmpty (32 bytes) -Event: 5.385 Thread 0x000073b97c1484b0 nmethod 1726 0x000073b964a19e88 code [0x000073b964a19fa0, 0x000073b964a1a150] -Event: 5.385 Thread 0x000073b97c1484b0 1727 3 java.lang.invoke.Invokers::maybeCustomize (5 bytes) -Event: 5.385 Thread 0x000073b97c1484b0 nmethod 1727 0x000073b964a1a188 code [0x000073b964a1a2a0, 0x000073b964a1a448] -Event: 5.385 Thread 0x000073b97c1484b0 1728 3 java.lang.invoke.MethodHandle::maybeCustomize (38 bytes) -Event: 5.386 Thread 0x000073b97c1484b0 nmethod 1728 0x000073b964a1a488 code [0x000073b964a1a5e0, 0x000073b964a1aaa0] -Event: 5.434 Thread 0x000073b97c1484b0 1729 3 java.lang.StackWalker::hasOption (11 bytes) -Event: 5.434 Thread 0x000073b97c1484b0 nmethod 1729 0x000073b964a1ab08 code [0x000073b964a1ac20, 0x000073b964a1adf8] -Event: 5.434 Thread 0x000073b97c1484b0 1730 3 java.util.RegularEnumSet::contains (57 bytes) -Event: 5.434 Thread 0x000073b97c1484b0 nmethod 1730 0x000073b964a1ae08 code [0x000073b964a1af60, 0x000073b964a1b330] -Event: 5.435 Thread 0x000073b97c1484b0 1731 3 jdk.internal.org.objectweb.asm.Frame::pop (53 bytes) - -GC Heap History (2 events): -Event: 0.923 GC heap before -{Heap before GC invocations=0 (full 0): - garbage-first heap total reserved 8192000K, committed 516096K, used 25723K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 6 young (24576K), 0 survivors (0K) - Metaspace used 9080K, committed 9280K, reserved 1114112K - class space used 793K, committed 896K, reserved 1048576K -} -Event: 0.925 GC heap after -{Heap after GC invocations=1 (full 0): - garbage-first heap total reserved 8192000K, committed 516096K, used 4974K [0x000000060c000000, 0x0000000800000000) - region size 4096K, 1 young (4096K), 1 survivors (4096K) - Metaspace used 9080K, committed 9280K, reserved 1114112K - class space used 793K, committed 896K, reserved 1048576K -} - -Dll operation events (10 events): -Event: 0.001 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -Event: 0.017 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -Event: 0.017 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -Event: 0.025 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -Event: 0.027 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -Event: 0.075 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -Event: 0.123 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -Event: 0.128 Loaded shared library /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -Event: 0.359 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -Event: 0.362 Loaded shared library /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so - -Deoptimization events (20 events): -Event: 0.925 Thread 0x000073b97c137930 Uncommon trap: trap_request=0xffffff45 fr.pc=0x000073b96c3151b4 relative=0x00000000000001b4 -Event: 0.925 Thread 0x000073b97c137930 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000073b96c3151b4 method=java.util.concurrent.locks.ReentrantLock$NonfairSync.initialTryLock()Z @ 25 c2 -Event: 0.925 Thread 0x000073b97c137930 DEOPT PACKING pc=0x000073b96c3151b4 sp=0x000073b980714790 -Event: 0.925 Thread 0x000073b97c137930 DEOPT UNPACKING pc=0x000073b96bd8abf9 sp=0x000073b980714730 mode 2 -Event: 1.006 Thread 0x000073b97c5f94d0 Uncommon trap: trap_request=0xffffff6e fr.pc=0x000073b96c3213a8 relative=0x0000000000000588 -Event: 1.006 Thread 0x000073b97c5f94d0 Uncommon trap: reason=loop_limit_check action=maybe_recompile pc=0x000073b96c3213a8 method=java.util.regex.Pattern$Start.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 34 c2 -Event: 1.006 Thread 0x000073b97c5f94d0 DEOPT PACKING pc=0x000073b96c3213a8 sp=0x000073b95c1fd3e0 -Event: 1.006 Thread 0x000073b97c5f94d0 DEOPT UNPACKING pc=0x000073b96bd8abf9 sp=0x000073b95c1fd2d8 mode 2 -Event: 1.041 Thread 0x000073b97c5f94d0 DEOPT PACKING pc=0x000073b9649d269f sp=0x000073b95c1fd100 -Event: 1.041 Thread 0x000073b97c5f94d0 DEOPT UNPACKING pc=0x000073b96bd8b30f sp=0x000073b95c1fc540 mode 0 -Event: 1.043 Thread 0x000073b97c5f94d0 DEOPT PACKING pc=0x000073b9648b03d4 sp=0x000073b95c1fd0d0 -Event: 1.043 Thread 0x000073b97c5f94d0 DEOPT UNPACKING pc=0x000073b96bd8b30f sp=0x000073b95c1fc588 mode 0 -Event: 1.173 Thread 0x000073b97c5f94d0 Uncommon trap: trap_request=0xffffff6e fr.pc=0x000073b96c320a38 relative=0x0000000000000538 -Event: 1.173 Thread 0x000073b97c5f94d0 Uncommon trap: reason=loop_limit_check action=maybe_recompile pc=0x000073b96c320a38 method=java.util.regex.Pattern$Start.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 34 c2 -Event: 1.173 Thread 0x000073b97c5f94d0 DEOPT PACKING pc=0x000073b96c320a38 sp=0x000073b95c1fde60 -Event: 1.173 Thread 0x000073b97c5f94d0 DEOPT UNPACKING pc=0x000073b96bd8abf9 sp=0x000073b95c1fddd0 mode 2 -Event: 3.411 Thread 0x000073b97c5f94d0 Uncommon trap: trap_request=0xffffff5c fr.pc=0x000073b96c343558 relative=0x0000000000000058 -Event: 3.411 Thread 0x000073b97c5f94d0 Uncommon trap: reason=speculate_null_check action=make_not_entrant pc=0x000073b96c343558 method=sun.misc.Unsafe.putLong(Ljava/lang/Object;JJ)V @ 10 c2 -Event: 3.411 Thread 0x000073b97c5f94d0 DEOPT PACKING pc=0x000073b96c343558 sp=0x000073b95c1fe2e0 -Event: 3.411 Thread 0x000073b97c5f94d0 DEOPT UNPACKING pc=0x000073b96bd8abf9 sp=0x000073b95c1fe278 mode 2 - -Classes loaded (20 events): -Event: 0.695 Loading class java/awt/ImageCapabilities -Event: 0.695 Loading class java/awt/ImageCapabilities done -Event: 0.695 Loading class java/awt/Image$1 -Event: 0.695 Loading class sun/awt/image/SurfaceManager$ImageAccessor -Event: 0.695 Loading class sun/awt/image/SurfaceManager$ImageAccessor done -Event: 0.695 Loading class java/awt/Image$1 done -Event: 0.695 Loading class sun/awt/image/SurfaceManager -Event: 0.695 Loading class sun/awt/image/SurfaceManager done -Event: 0.695 Loading class java/awt/image/BufferedImage$1 -Event: 0.696 Loading class java/awt/image/BufferedImage$1 done -Event: 0.696 Loading class sun/awt/image/IntegerComponentRaster -Event: 0.696 Loading class sun/awt/image/IntegerComponentRaster done -Event: 0.696 Loading class java/awt/image/IndexColorModel -Event: 0.696 Loading class java/awt/image/IndexColorModel done -Event: 0.696 Loading class sun/awt/image/ShortComponentRaster -Event: 0.696 Loading class sun/awt/image/ShortComponentRaster done -Event: 0.778 Loading class java/util/function/LongFunction -Event: 0.778 Loading class java/util/function/LongFunction done -Event: 1.162 Loading class java/lang/invoke/MethodHandle$1 -Event: 1.162 Loading class java/lang/invoke/MethodHandle$1 done - -Classes unloaded (0 events): -No events - -Classes redefined (0 events): -No events - -Internal exceptions (20 events): -Event: 0.161 Thread 0x000073b97c02d0f0 Exception (0x000000062af991e0) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.186 Thread 0x000073b97c02d0f0 Exception (0x000000062a875510) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.186 Thread 0x000073b97c02d0f0 Exception (0x000000062a878a60) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 863] -Event: 0.208 Thread 0x000073b97c02d0f0 Exception (0x000000062a970318) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.218 Thread 0x000073b97c02d0f0 Exception (0x000000062a9c7df8) -thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] -Event: 0.227 Thread 0x000073b97c02d0f0 Exception (0x000000062aa31e20) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.228 Thread 0x000073b97c02d0f0 Exception (0x000000062aa3fc38) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.630 Thread 0x000073b97c5f94d0 Exception (0x000000062a7bc610) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.679 Thread 0x000073b97c5f94d0 Exception (0x000000062a23d088) -thrown [open/src/hotspot/share/classfile/systemDictionary.cpp, line 313] -Event: 0.680 Thread 0x000073b97c5f94d0 Exception (0x000000062a243060) -thrown [open/src/hotspot/share/prims/jni.cpp, line 520] -Event: 0.684 Thread 0x000073b97c5f94d0 Exception (0x000000062a26d9f8) -thrown [open/src/hotspot/share/prims/jni.cpp, line 520] -Event: 0.775 Thread 0x000073b97c5f94d0 Exception (0x0000000629ebdf58) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.775 Thread 0x000073b97c5f94d0 Exception (0x0000000629ec37a0) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.778 Thread 0x000073b97c5f94d0 Exception (0x0000000629edb8a8) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.780 Thread 0x000073b97c5f94d0 Exception (0x0000000629eec778) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.796 Thread 0x000073b97c5f94d0 Exception (0x0000000629f51e28) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.802 Thread 0x000073b97c5f94d0 Exception (0x0000000629fd4668) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.934 Thread 0x000073b97c5f94d0 Exception (0x000000062b05a2d8) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 0.941 Thread 0x000073b97c5f94d0 Exception (0x000000062b114760) -thrown [open/src/hotspot/share/interpreter/linkResolver.cpp, line 795] -Event: 5.382 Thread 0x000073b8ac5a8970 Exception (0x000000062ae50888) -thrown [open/src/hotspot/share/prims/jvm.cpp, line 3093] - -VM Operations (14 events): -Event: 0.108 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.108 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.115 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.115 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.124 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.124 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.133 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.133 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.642 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.642 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.676 Executing VM operation: HandshakeAllThreads (Deoptimize) -Event: 0.676 Executing VM operation: HandshakeAllThreads (Deoptimize) done -Event: 0.923 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) -Event: 0.925 Executing VM operation: G1CollectForAllocation (G1 Evacuation Pause) done - -Memory protections (17 events): -Event: 0.001 Protecting memory [0x000073b984100000,0x000073b984104000] with protection modes 0 -Event: 0.015 Protecting memory [0x000073b980616000,0x000073b98061a000] with protection modes 0 -Event: 0.015 Protecting memory [0x000073b980516000,0x000073b98051a000] with protection modes 0 -Event: 0.016 Protecting memory [0x000073b980416000,0x000073b98041a000] with protection modes 0 -Event: 0.016 Protecting memory [0x000073b980316000,0x000073b98031a000] with protection modes 0 -Event: 0.016 Protecting memory [0x000073b980216000,0x000073b98021a000] with protection modes 0 -Event: 0.016 Protecting memory [0x000073b980116000,0x000073b98011a000] with protection modes 0 -Event: 0.016 Protecting memory [0x000073b980016000,0x000073b98001a000] with protection modes 0 -Event: 0.022 Protecting memory [0x000073b95c900000,0x000073b95c904000] with protection modes 0 -Event: 0.023 Protecting memory [0x000073b95c800000,0x000073b95c804000] with protection modes 0 -Event: 0.054 Protecting memory [0x000073b95c700000,0x000073b95c704000] with protection modes 0 -Event: 0.233 Protecting memory [0x000073b95c100000,0x000073b95c104000] with protection modes 0 -Event: 0.233 Protecting memory [0x000073b984100000,0x000073b984104000] with protection modes 0 -Event: 0.649 Protecting memory [0x000073b95c700000,0x000073b95c704000] with protection modes 0 -Event: 0.656 Protecting memory [0x000073b93f285000,0x000073b93f289000] with protection modes 0 -Event: 0.692 Protecting memory [0x000073b93f185000,0x000073b93f189000] with protection modes 0 -Event: 1.178 Protecting memory [0x000073b93f285000,0x000073b93f289000] with protection modes 0 - -Nmethod flushes (0 events): -No events - -Events (20 events): -Event: 0.015 Thread 0x000073b97c02d0f0 Thread added: 0x000073b97c13a6b0 -Event: 0.016 Thread 0x000073b97c02d0f0 Thread added: 0x000073b97c13bcf0 -Event: 0.016 Thread 0x000073b97c02d0f0 Thread added: 0x000073b97c13d290 -Event: 0.016 Thread 0x000073b97c02d0f0 Thread added: 0x000073b97c13edb0 -Event: 0.016 Thread 0x000073b97c02d0f0 Thread added: 0x000073b97c1484b0 -Event: 0.022 Thread 0x000073b97c02d0f0 Thread added: 0x000073b97c1551c0 -Event: 0.023 Thread 0x000073b97c02d0f0 Thread added: 0x000073b97c157ca0 -Event: 0.054 Thread 0x000073b97c13edb0 Thread added: 0x000073b8c80d9290 -Event: 0.233 Thread 0x000073b97c02d0f0 Thread added: 0x000073b97c5f94d0 -Event: 0.233 Thread 0x000073b97c02d0f0 Thread exited: 0x000073b97c02d0f0 -Event: 0.233 Thread 0x000073b97c02d0f0 Thread added: 0x000073b97c02d0f0 -Event: 0.631 Thread 0x000073b8c80d9290 Thread exited: 0x000073b8c80d9290 -Event: 0.648 Thread 0x000073b97c5f94d0 Thread added: 0x000073b8ac5a8970 -Event: 0.656 Thread 0x000073b97c1484b0 Thread added: 0x000073b8c442d840 -Event: 0.692 Thread 0x000073b97c5f94d0 Thread added: 0x000073b8ac760140 -Event: 0.922 Thread 0x000073b8c442d840 Thread exited: 0x000073b8c442d840 -Event: 1.178 Thread 0x000073b97c1484b0 Thread added: 0x000073b8c4466400 -Event: 1.378 Thread 0x000073b8c4466400 Thread exited: 0x000073b8c4466400 -Event: 5.382 Thread 0x000073b8ac5a8970 Thread exited: 0x000073b8ac5a8970 -Event: 5.435 Thread 0x000073b97c5f94d0 Thread exited: 0x000073b97c5f94d0 - - -Dynamic libraries: -60c000000-62b400000 rw-p 00000000 00:00 0 -62b400000-7ffc00000 ---p 00000000 00:00 0 -7ffc00000-7ffd1f000 rw-p 00dc0000 103:03 10498862 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/classes.jsa -7ffd1f000-800000000 rw-p 00000000 00:00 0 -5ac2ec579000-5ac2ec57a000 r-xp 00000000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java -5ac2ec57b000-5ac2ec57c000 r--p 00001000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java -5ac2ec57c000-5ac2ec57d000 rw-p 00002000 103:03 10498468 /usr/lib/jvm/jdk-23.0.2-oracle-x64/bin/java -5ac30caa6000-5ac30caef000 rw-p 00000000 00:00 0 [heap] -73b82c000000-73b82c021000 rw-p 00000000 00:00 0 -73b82c021000-73b830000000 ---p 00000000 00:00 0 -73b830000000-73b830021000 rw-p 00000000 00:00 0 -73b830021000-73b834000000 ---p 00000000 00:00 0 -73b838000000-73b838021000 rw-p 00000000 00:00 0 -73b838021000-73b83c000000 ---p 00000000 00:00 0 -73b83c000000-73b83c021000 rw-p 00000000 00:00 0 -73b83c021000-73b840000000 ---p 00000000 00:00 0 -73b844000000-73b844021000 rw-p 00000000 00:00 0 -73b844021000-73b848000000 ---p 00000000 00:00 0 -73b848000000-73b848021000 rw-p 00000000 00:00 0 -73b848021000-73b84c000000 ---p 00000000 00:00 0 -73b850000000-73b850021000 rw-p 00000000 00:00 0 -73b850021000-73b854000000 ---p 00000000 00:00 0 -73b854000000-73b854021000 rw-p 00000000 00:00 0 -73b854021000-73b858000000 ---p 00000000 00:00 0 -73b85c000000-73b85c021000 rw-p 00000000 00:00 0 -73b85c021000-73b860000000 ---p 00000000 00:00 0 -73b860000000-73b860021000 rw-p 00000000 00:00 0 -73b860021000-73b864000000 ---p 00000000 00:00 0 -73b868000000-73b868021000 rw-p 00000000 00:00 0 -73b868021000-73b86c000000 ---p 00000000 00:00 0 -73b86c000000-73b86c021000 rw-p 00000000 00:00 0 -73b86c021000-73b870000000 ---p 00000000 00:00 0 -73b874000000-73b874021000 rw-p 00000000 00:00 0 -73b874021000-73b878000000 ---p 00000000 00:00 0 -73b878000000-73b878021000 rw-p 00000000 00:00 0 -73b878021000-73b87c000000 ---p 00000000 00:00 0 -73b880000000-73b880054000 rw-p 00000000 00:00 0 -73b880054000-73b884000000 ---p 00000000 00:00 0 -73b884000000-73b884021000 rw-p 00000000 00:00 0 -73b884021000-73b888000000 ---p 00000000 00:00 0 -73b88c000000-73b88c0c8000 rw-p 00000000 00:00 0 -73b88c0c8000-73b890000000 ---p 00000000 00:00 0 -73b890000000-73b890021000 rw-p 00000000 00:00 0 -73b890021000-73b894000000 ---p 00000000 00:00 0 -73b898000000-73b898021000 rw-p 00000000 00:00 0 -73b898021000-73b89c000000 ---p 00000000 00:00 0 -73b89d000000-73b8a3712000 r-xp 00000000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 -73b8a3712000-73b8a3f30000 r--p 06711000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 -73b8a3f30000-73b8a3f76000 rw-p 06f2f000 103:03 11143272 /usr/lib/x86_64-linux-gnu/libLLVM-15.so.1 -73b8a3f76000-73b8a3ff2000 rw-p 00000000 00:00 0 -73b8a4000000-73b8a4021000 rw-p 00000000 00:00 0 -73b8a4021000-73b8a8000000 ---p 00000000 00:00 0 -73b8ac000000-73b8af132000 rw-p 00000000 00:00 0 -73b8af132000-73b8b0000000 ---p 00000000 00:00 0 -73b8b0000000-73b8b027e000 rw-p 00000000 00:00 0 -73b8b027e000-73b8b4000000 ---p 00000000 00:00 0 -73b8b8000000-73b8b8021000 rw-p 00000000 00:00 0 -73b8b8021000-73b8bc000000 ---p 00000000 00:00 0 -73b8bc000000-73b8bc021000 rw-p 00000000 00:00 0 -73b8bc021000-73b8c0000000 ---p 00000000 00:00 0 -73b8c2e00000-73b8c2f25000 r--p 00000000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -73b8c2f25000-73b8c33e5000 r-xp 00125000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -73b8c33e5000-73b8c3519000 r--p 005e5000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -73b8c3519000-73b8c351a000 ---p 00719000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -73b8c351a000-73b8c357d000 r--p 00719000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -73b8c357d000-73b8c3587000 rw-p 0077c000 103:03 4325443 /tmp/lwjgl_codex/3.3.6+1/x64/libshaderc.so -73b8c3587000-73b8c3598000 rw-p 00000000 00:00 0 -73b8c3600000-73b8c3601000 ---p 00000000 00:00 0 -73b8c3601000-73b8c3e01000 rw-p 00000000 00:00 0 -73b8c4000000-73b8c4481000 rw-p 00000000 00:00 0 -73b8c4481000-73b8c8000000 ---p 00000000 00:00 0 -73b8c8000000-73b8c8353000 rw-p 00000000 00:00 0 -73b8c8353000-73b8cc000000 ---p 00000000 00:00 0 -73b8cc400000-73b8cc401000 ---p 00000000 00:00 0 -73b8cc401000-73b8ccc01000 rw-p 00000000 00:00 0 -73b8cce00000-73b8cce01000 ---p 00000000 00:00 0 -73b8cce01000-73b8cd601000 rw-p 00000000 00:00 0 -73b8cd800000-73b8cd801000 ---p 00000000 00:00 0 -73b8cd801000-73b8ce001000 rw-p 00000000 00:00 0 -73b8ce200000-73b8ce201000 ---p 00000000 00:00 0 -73b8ce201000-73b8cea01000 rw-p 00000000 00:00 0 -73b8cec00000-73b8cec01000 ---p 00000000 00:00 0 -73b8cec01000-73b8cf401000 rw-p 00000000 00:00 0 -73b8cf600000-73b8cf62f000 r--p 00000000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -73b8cf62f000-73b8cfd02000 r-xp 0002f000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -73b8cfd02000-73b8cfe24000 r--p 00702000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -73b8cfe24000-73b8cfe35000 r--p 00823000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -73b8cfe35000-73b8cfeb3000 rw-p 00834000 103:03 11142259 /usr/lib/x86_64-linux-gnu/libnvidia-glvkspirv.so.560.35.03 -73b8cfeb3000-73b8cfec7000 rw-p 00000000 00:00 0 -73b8d0000000-73b8d0021000 rw-p 00000000 00:00 0 -73b8d0021000-73b8d4000000 ---p 00000000 00:00 0 -73b8d4000000-73b8d4021000 rw-p 00000000 00:00 0 -73b8d4021000-73b8d8000000 ---p 00000000 00:00 0 -73b8d8000000-73b8d8200000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8d8200000-73b8d8ef5000 r--p 00000000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -73b8d8ef5000-73b8d98d8000 r-xp 00cf5000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -73b8d98d8000-73b8d9ce9000 r--p 016d8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -73b8d9ce9000-73b8da16b000 r--p 01ae8000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -73b8da16b000-73b8da173000 rw-p 01f6a000 103:03 11141715 /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so -73b8da173000-73b8da17e000 rw-p 00000000 00:00 0 -73b8da200000-73b8da201000 ---p 00000000 00:00 0 -73b8da201000-73b8daa01000 rw-p 00000000 00:00 0 -73b8dac00000-73b8dac01000 ---p 00000000 00:00 0 -73b8dac01000-73b8db401000 rw-p 00000000 00:00 0 -73b8db600000-73b8db601000 ---p 00000000 00:00 0 -73b8db601000-73b8dbe01000 rw-p 00000000 00:00 0 -73b8dc000000-73b8dc021000 rw-p 00000000 00:00 0 -73b8dc021000-73b8e0000000 ---p 00000000 00:00 0 -73b8e0000000-73b8e0021000 rw-p 00000000 00:00 0 -73b8e0021000-73b8e4000000 ---p 00000000 00:00 0 -73b8e41fd000-73b8e42fd000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8e42fd000-73b8e42fe000 ---p 00000000 00:00 0 -73b8e42fe000-73b8e43fe000 rw-p 00000000 00:00 0 -73b8e43fe000-73b8e43ff000 ---p 00000000 00:00 0 -73b8e43ff000-73b8e44ff000 rw-p 00000000 00:00 0 -73b8e44ff000-73b8e4500000 ---p 00000000 00:00 0 -73b8e4500000-73b8e4600000 rw-p 00000000 00:00 0 -73b8e4600000-73b8e4601000 ---p 00000000 00:00 0 -73b8e4601000-73b8e4e01000 rw-p 00000000 00:00 0 -73b8e4eff000-73b8e4f00000 ---p 00000000 00:00 0 -73b8e4f00000-73b8e5000000 rw-p 00000000 00:00 0 -73b8e5000000-73b8e5001000 ---p 00000000 00:00 0 -73b8e5001000-73b8e5801000 rw-p 00000000 00:00 0 -73b8e58ff000-73b8e5900000 ---p 00000000 00:00 0 -73b8e5900000-73b8e5a00000 rw-p 00000000 00:00 0 -73b8e5a00000-73b8e5a01000 ---p 00000000 00:00 0 -73b8e5a01000-73b8e6201000 rw-p 00000000 00:00 0 -73b8e623f000-73b8e62bf000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8e62bf000-73b8e62ff000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8e62ff000-73b8e6300000 ---p 00000000 00:00 0 -73b8e6300000-73b8e6400000 rw-p 00000000 00:00 0 -73b8e6400000-73b8e648d000 r--p 00000000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -73b8e648d000-73b8e6bf5000 r-xp 0008d000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -73b8e6bf5000-73b8e7482000 r--p 007f5000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -73b8e7482000-73b8e74c4000 r--p 01081000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -73b8e74c4000-73b8e74c7000 rw-p 010c3000 103:03 11145574 /usr/lib/x86_64-linux-gnu/libvulkan_intel.so -73b8e74c7000-73b8e74cd000 rw-p 00000000 00:00 0 -73b8e74ff000-73b8e7500000 ---p 00000000 00:00 0 -73b8e7500000-73b8e7600000 rw-p 00000000 00:00 0 -73b8e7600000-73b8e765b000 r--p 00000000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -73b8e765b000-73b8e79d9000 r-xp 0005b000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -73b8e79d9000-73b8e7dd5000 r--p 003d9000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -73b8e7dd5000-73b8e7e10000 r--p 007d4000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -73b8e7e10000-73b8e7e15000 rw-p 0080f000 103:03 11145761 /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so -73b8e7e15000-73b8e7e40000 rw-p 00000000 00:00 0 -73b8e7e60000-73b8e7ea0000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8e7ea0000-73b8e7ec0000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8e7ec0000-73b8e7f00000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8e7f00000-73b8e8000000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8e8000000-73b8e8021000 rw-p 00000000 00:00 0 -73b8e8021000-73b8ec000000 ---p 00000000 00:00 0 -73b8ec000000-73b8ec021000 rw-p 00000000 00:00 0 -73b8ec021000-73b8f0000000 ---p 00000000 00:00 0 -73b8f0000000-73b8f0200000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8f0200000-73b8f0222000 r-xp 00000000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -73b8f0222000-73b8f0421000 ---p 00022000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -73b8f0421000-73b8f0429000 r--p 00021000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -73b8f0429000-73b8f042a000 rw-p 00029000 103:03 11141901 /usr/lib/x86_64-linux-gnu/libnvidia-allocator.so.560.35.03 -73b8f042a000-73b8f042b000 rw-p 00000000 00:00 0 -73b8f043b000-73b8f04bb000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8f04bb000-73b8f05bb000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8f05bb000-73b8f0800000 rw-s 00000000 00:01 2055 /memfd:/.nvidia_drv.XXXXXX (deleted) -73b8f0800000-73b8f086e000 r--p 00000000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -73b8f086e000-73b8f0dd5000 r-xp 0006e000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -73b8f0dd5000-73b8f14e8000 r--p 005d5000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -73b8f14e8000-73b8f14e9000 ---p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -73b8f14e9000-73b8f1526000 r--p 00ce8000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -73b8f1526000-73b8f1529000 rw-p 00d25000 103:03 11145747 /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so -73b8f1529000-73b8f152b000 rw-p 00000000 00:00 0 -73b8f152d000-73b8f1540000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8f1540000-73b8f1560000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8f1560000-73b8f15a0000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8f15c0000-73b8f1600000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8f1600000-73b8f17c4000 r--p 00000000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -73b8f17c4000-73b8f34c4000 r-xp 001c4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -73b8f34c4000-73b8f3b39000 r--p 01ec4000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -73b8f3b39000-73b8f3b3a000 ---p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -73b8f3b3a000-73b8f3d1a000 r--p 02539000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -73b8f3d1a000-73b8f3d93000 rw-p 02719000 103:03 11142260 /usr/lib/x86_64-linux-gnu/libnvidia-gpucomp.so.560.35.03 -73b8f3d93000-73b8f3e08000 rw-p 00000000 00:00 0 -73b8f3e1a000-73b8f3e2d000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8f3e4d000-73b8f3e60000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8f3e60000-73b8f3ea0000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8f3ea0000-73b8f3ec0000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8f3ec0000-73b8f3f00000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8f3f00000-73b8f4000000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8f4000000-73b8f43e0000 rw-p 00000000 00:00 0 -73b8f43e0000-73b8f4400000 ---p 00000000 00:00 0 -73b8f4400000-73b8f49f0000 rw-p 00000000 00:00 0 -73b8f49f0000-73b8f8000000 ---p 00000000 00:00 0 -73b8f8000000-73b8f8021000 rw-p 00000000 00:00 0 -73b8f8021000-73b8fc000000 ---p 00000000 00:00 0 -73b8fc02d000-73b8fc040000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8fc040000-73b8fc080000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8fc080000-73b8fc100000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8fc100000-73b8fc200000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8fc200000-73b8fc201000 r--p 00000000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -73b8fc201000-73b8fc202000 r-xp 00001000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -73b8fc202000-73b8fde1c000 r--p 00002000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -73b8fde1c000-73b8fde1d000 r--p 01c1b000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -73b8fde1d000-73b8fde1e000 rw-p 01c1c000 103:03 11145182 /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 -73b8fde2d000-73b8fde4d000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8fde4d000-73b8fdecd000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8fdecd000-73b8fdee0000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8fdee0000-73b8fdf20000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8fdf20000-73b8fdf40000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8fdf40000-73b8fdf80000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b8fdf80000-73b8fe000000 rw-s 00000000 00:06 964 /dev/nvidia0 -73b8fe000000-73b8fed91000 rw-p 00001000 103:03 10498862 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/classes.jsa -73b8fed91000-73b8ff000000 ---p 00000000 00:00 0 -73b8ff000000-73b8ff030000 rw-p 00000000 00:00 0 -73b8ff030000-73b8ff0b0000 rw-p 00000000 00:00 0 -73b8ff0b0000-73b8ff0e0000 rw-p 00000000 00:00 0 -73b8ff0e0000-73b8ff100000 ---p 00000000 00:00 0 -73b8ff100000-73b8ff120000 rw-p 00000000 00:00 0 -73b8ff120000-73b93f000000 ---p 00000000 00:00 0 -73b93f004000-73b93f044000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b93f044000-73b93f185000 rw-s 00000000 103:03 13372247 /home/codex/.cache/mesa_shader_cache/index -73b93f185000-73b93f189000 ---p 00000000 00:00 0 -73b93f189000-73b93f285000 rw-p 00000000 00:00 0 -73b93f285000-73b93f289000 ---p 00000000 00:00 0 -73b93f289000-73b93f385000 rw-p 00000000 00:00 0 -73b93f400000-73b93f493000 r--p 00000000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -73b93f493000-73b93f8e6000 r-xp 00093000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -73b93f8e6000-73b93fdfc000 r--p 004e6000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -73b93fdfc000-73b93fe34000 r--p 009fb000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -73b93fe34000-73b93fe44000 rw-p 00a33000 103:03 11145771 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so -73b93fe44000-73b93fe49000 rw-p 00000000 00:00 0 -73b93fe58000-73b93fe78000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b93fe78000-73b93fe98000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b93fe98000-73b93fe9a000 r--p 00000000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -73b93fe9a000-73b93fea3000 r-xp 00002000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -73b93fea3000-73b93fea6000 r--p 0000b000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -73b93fea6000-73b93fea7000 ---p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -73b93fea7000-73b93fea8000 r--p 0000e000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -73b93fea8000-73b93fea9000 rw-p 0000f000 103:03 11144775 /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so -73b93fea9000-73b93feab000 rw-p 00000000 00:00 0 -73b93feab000-73b93feaf000 r--p 00000000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -73b93feaf000-73b93fecb000 r-xp 00004000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -73b93fecb000-73b93fed1000 r--p 00020000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -73b93fed1000-73b93fed2000 ---p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -73b93fed2000-73b93fed4000 r--p 00026000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -73b93fed4000-73b93fed5000 rw-p 00028000 103:03 11280499 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-session-manager.so -73b93fed5000-73b93fedf000 r--p 00000000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -73b93fedf000-73b93fee9000 r-xp 0000a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -73b93fee9000-73b93fef0000 r--p 00014000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -73b93fef0000-73b93fef9000 r--p 0001a000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -73b93fef9000-73b93fefa000 rw-p 00023000 103:03 11272628 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-adapter.so -73b93fefa000-73b93ff06000 r--p 00000000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -73b93ff06000-73b93ff26000 r-xp 0000c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -73b93ff26000-73b93ff32000 r--p 0002c000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -73b93ff32000-73b93ff3c000 r--p 00037000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -73b93ff3c000-73b93ff3d000 rw-p 00041000 103:03 11272648 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-node.so -73b93ff3d000-73b93ff3f000 r--p 00000000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -73b93ff3f000-73b93ffaa000 r-xp 00002000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -73b93ffaa000-73b93ffd2000 r--p 0006d000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -73b93ffd2000-73b93ffd3000 r--p 00094000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -73b93ffd3000-73b93ffd4000 rw-p 00095000 103:03 11144033 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4 -73b93ffd4000-73b93ffda000 r--p 00000000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -73b93ffda000-73b93fff4000 r-xp 00006000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -73b93fff4000-73b93fffb000 r--p 00020000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -73b93fffb000-73b93fffc000 ---p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -73b93fffc000-73b93fffd000 r--p 00027000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -73b93fffd000-73b93fffe000 rw-p 00028000 103:03 11145798 /usr/lib/x86_64-linux-gnu/libselinux.so.1 -73b93fffe000-73b940000000 rw-p 00000000 00:00 0 -73b940000000-73b940021000 rw-p 00000000 00:00 0 -73b940021000-73b944000000 ---p 00000000 00:00 0 -73b944000000-73b944021000 rw-p 00000000 00:00 0 -73b944021000-73b948000000 ---p 00000000 00:00 0 -73b948005000-73b948006000 rw-s 00000000 00:06 964 /dev/nvidia0 -73b948006000-73b94800a000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b94800a000-73b94800b000 rw-s 00000000 00:06 964 /dev/nvidia0 -73b94800b000-73b94800f000 r--p 00000000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -73b94800f000-73b94801f000 r-xp 00004000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -73b94801f000-73b948022000 r--p 00014000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -73b948022000-73b948023000 r--p 00016000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -73b948023000-73b948024000 rw-p 00017000 103:03 11141743 /usr/lib/x86_64-linux-gnu/libVkLayer_utils.so -73b948024000-73b948037000 r--p 00000000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -73b948037000-73b948056000 r-xp 00013000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -73b948056000-73b948063000 r--p 00032000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -73b948063000-73b948073000 r--p 0003e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -73b948073000-73b948074000 rw-p 0004e000 103:03 11280487 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-protocol-native.so -73b948074000-73b94807f000 r--p 00000000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -73b94807f000-73b9480ad000 r-xp 0000b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -73b9480ad000-73b9480bf000 r--p 00039000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -73b9480bf000-73b9480c0000 ---p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -73b9480c0000-73b9480c1000 r--p 0004b000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -73b9480c1000-73b9480c2000 rw-p 0004c000 103:03 11141690 /usr/lib/x86_64-linux-gnu/libdbus-1.so.3.19.13 -73b9480c2000-73b9480d1000 r--p 00000000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -73b9480d1000-73b9481b7000 r-xp 0000f000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -73b9481b7000-73b9481f5000 r--p 000f5000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -73b9481f5000-73b9481f6000 ---p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -73b9481f6000-73b9481f9000 r--p 00133000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -73b9481f9000-73b9481ff000 rw-p 00136000 103:03 11144869 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.3.4 -73b9481ff000-73b948200000 rw-p 00000000 00:00 0 -73b948200000-73b948216000 r--p 00000000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -73b948216000-73b948306000 r-xp 00016000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -73b948306000-73b948379000 r--p 00106000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -73b948379000-73b948380000 r--p 00178000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -73b948380000-73b948387000 rw-p 0017f000 103:03 4325442 /tmp/lwjgl_codex/3.3.6+1/x64/libopenal.so -73b948387000-73b948402000 rw-p 00000000 00:00 0 -73b948402000-73b948404000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b948404000-73b948405000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b948405000-73b94846b000 r--p 00000000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -73b94846b000-73b94855e000 r-xp 00066000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -73b94855e000-73b9485ea000 r--p 00159000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -73b9485ea000-73b9485fd000 r--p 001e4000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -73b9485fd000-73b9485fe000 rw-p 001f7000 103:03 11145212 /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 -73b9485fe000-73b948600000 rw-p 00000000 00:00 0 -73b948600000-73b94869a000 r--p 00000000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -73b94869a000-73b9487ab000 r-xp 0009a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -73b9487ab000-73b94881a000 r--p 001ab000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -73b94881a000-73b94881b000 ---p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -73b94881b000-73b948826000 r--p 0021a000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -73b948826000-73b948829000 rw-p 00225000 103:03 11141372 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 -73b948829000-73b94882c000 rw-p 00000000 00:00 0 -73b94882c000-73b94882d000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b94882d000-73b948831000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b948831000-73b948835000 r--p 00000000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -73b948835000-73b94884b000 r-xp 00004000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -73b94884b000-73b948855000 r--p 0001a000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -73b948855000-73b948856000 r--p 00023000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -73b948856000-73b948857000 rw-p 00024000 103:03 11144961 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.32.1 -73b948857000-73b94886a000 r--p 00000000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -73b94886a000-73b9488e9000 r-xp 00013000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -73b9488e9000-73b948914000 r--p 00092000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -73b948914000-73b948915000 ---p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -73b948915000-73b94891c000 r--p 000bd000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -73b94891c000-73b94891d000 rw-p 000c4000 103:03 11141516 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.32.0 -73b94891d000-73b94891e000 rw-p 00000000 00:00 0 -73b94891e000-73b948951000 r--p 00000000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -73b948951000-73b9489b4000 r-xp 00033000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -73b9489b4000-73b9489d3000 r--p 00096000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -73b9489d3000-73b9489fe000 r--p 000b4000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -73b9489fe000-73b9489ff000 rw-p 000df000 103:03 11143924 /usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.1003.0 -73b9489ff000-73b949322000 rw-p 00000000 00:00 0 -73b949322000-73b949323000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b949323000-73b949325000 r--p 00000000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -73b949325000-73b94933e000 r-xp 00002000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -73b94933e000-73b949340000 r--p 0001b000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -73b949340000-73b949341000 ---p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -73b949341000-73b949342000 r--p 0001d000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -73b949342000-73b949343000 rw-p 0001e000 103:03 11145311 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.3 -73b949343000-73b949344000 rw-s 00044000 00:01 2055 /memfd:/.nvidia_drv.XXXXXX (deleted) -73b949344000-73b949345000 rw-s 00000000 00:06 964 /dev/nvidia0 -73b949345000-73b949347000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b949347000-73b94934b000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b94934b000-73b94934d000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b94934d000-73b94934f000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b94934f000-73b949353000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b949353000-73b949363000 rw-s 00000000 00:06 964 /dev/nvidia0 -73b949363000-73b949367000 r--p 00000000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -73b949367000-73b94937c000 r-xp 00004000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -73b94937c000-73b949382000 r--p 00019000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -73b949382000-73b949383000 ---p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -73b949383000-73b949385000 r--p 0001f000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -73b949385000-73b949386000 rw-p 00021000 103:03 11280465 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so -73b949386000-73b9493f6000 r-xp 00000000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -73b9493f6000-73b9493f7000 ---p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -73b9493f7000-73b9493fc000 r--p 00070000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -73b9493fc000-73b9493fe000 rw-p 00075000 103:03 10498756 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt_xawt.so -73b9493fe000-73b949400000 rw-p 00000000 00:00 0 -73b949400000-73b949401000 ---p 00000000 00:00 0 -73b949401000-73b949c01000 rw-p 00000000 00:00 0 -73b949c01000-73b949c02000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b949c1e000-73b949c4d000 r--p 00000000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -73b949c4d000-73b949da0000 r-xp 0002f000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -73b949da0000-73b949df4000 r--p 00182000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -73b949df4000-73b949df5000 ---p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -73b949df5000-73b949dfe000 r--p 001d6000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -73b949dfe000-73b949dff000 rw-p 001df000 103:03 11141796 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.13 -73b949dff000-73b949e00000 rw-p 00000000 00:00 0 -73b949e00000-73b94a041000 r-xp 00000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -73b94a041000-73b94a062000 rwxp 00241000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -73b94a062000-73b94a200000 r-xp 00262000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -73b94a200000-73b94ae00000 r-xp 00400000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -73b94ae00000-73b94bcab000 r-xp 01000000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -73b94bcab000-73b94be10000 r--p 01eaa000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -73b94be10000-73b94be7e000 rw-p 0200f000 103:03 11142244 /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.560.35.03 -73b94be7e000-73b94be9c000 rw-p 00000000 00:00 0 -73b94be9c000-73b94be9d000 rw-s 00000000 00:06 964 /dev/nvidia0 -73b94be9d000-73b94be9f000 r--p 00000000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -73b94be9f000-73b94bea7000 r-xp 00002000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -73b94bea7000-73b94bea9000 r--p 0000a000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -73b94bea9000-73b94beaa000 r--p 0000b000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -73b94beaa000-73b94beab000 rw-p 0000c000 103:03 11280481 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-metadata.so -73b94beab000-73b94bead000 r--p 00000000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -73b94bead000-73b94beb5000 r-xp 00002000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -73b94beb5000-73b94beb6000 r--p 0000a000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -73b94beb6000-73b94beb7000 ---p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -73b94beb7000-73b94beb8000 r--p 0000b000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -73b94beb8000-73b94beb9000 rw-p 0000c000 103:03 11272639 /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-client-device.so -73b94beb9000-73b94bee8000 r--p 00000000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -73b94bee8000-73b94bfa4000 r-xp 0002f000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -73b94bfa4000-73b94bfef000 r--p 000eb000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -73b94bfef000-73b94bffd000 r--p 00135000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -73b94bffd000-73b94bfff000 rw-p 00143000 103:03 11145772 /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so -73b94bfff000-73b94c000000 rw-p 00000000 00:00 0 -73b94c000000-73b94c021000 rw-p 00000000 00:00 0 -73b94c021000-73b950000000 ---p 00000000 00:00 0 -73b950000000-73b950021000 rw-p 00000000 00:00 0 -73b950021000-73b954000000 ---p 00000000 00:00 0 -73b954000000-73b954004000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b954004000-73b954006000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b954006000-73b954008000 r--p 00000000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -73b954008000-73b95400b000 r-xp 00002000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -73b95400b000-73b95400c000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -73b95400c000-73b95400d000 r--p 00005000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -73b95400d000-73b95400e000 rw-p 00006000 103:03 11144257 /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 -73b95400e000-73b9540cf000 r-xp 00000000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -73b9540cf000-73b9540d0000 r--p 000c0000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -73b9540d0000-73b9540db000 rw-p 000c1000 103:03 10498752 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libawt.so -73b9540db000-73b954100000 rw-p 00000000 00:00 0 -73b954100000-73b954103000 r--p 00000000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -73b954103000-73b954124000 r-xp 00003000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -73b954124000-73b954130000 r--p 00024000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -73b954130000-73b954131000 ---p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -73b954131000-73b954132000 r--p 00030000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -73b954132000-73b954133000 rw-p 00031000 103:03 11142216 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1 -73b954133000-73b954141000 r--p 00000000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -73b954141000-73b954152000 r-xp 0000e000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -73b954152000-73b954160000 r--p 0001f000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -73b954160000-73b954164000 r--p 0002c000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -73b954164000-73b954165000 rw-p 00030000 103:03 11141719 /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 -73b954165000-73b95416d000 r--p 00000000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -73b95416d000-73b95418b000 r-xp 00008000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -73b95418b000-73b954198000 r--p 00026000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -73b954198000-73b95419a000 r--p 00032000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -73b95419a000-73b95419b000 rw-p 00034000 103:03 11144732 /usr/lib/x86_64-linux-gnu/libedit.so.2.0.68 -73b95419b000-73b95419f000 rw-p 00000000 00:00 0 -73b95419f000-73b9541a1000 r--p 00000000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -73b9541a1000-73b9541a8000 r-xp 00002000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -73b9541a8000-73b9541a9000 r--p 00009000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -73b9541a9000-73b9541aa000 ---p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -73b9541aa000-73b9541ab000 r--p 0000a000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -73b9541ab000-73b9541ac000 rw-p 0000b000 103:03 11144791 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0 -73b9541ac000-73b9541af000 r--p 00000000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -73b9541af000-73b9541c6000 r-xp 00003000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -73b9541c6000-73b9541ca000 r--p 0001a000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -73b9541ca000-73b9541cb000 r--p 0001d000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -73b9541cb000-73b9541cc000 rw-p 0001e000 103:03 11141389 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 -73b9541cc000-73b9541d0000 r--p 00000000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -73b9541d0000-73b9541ef000 r-xp 00004000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -73b9541ef000-73b9541f9000 r--p 00023000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -73b9541f9000-73b9541fa000 ---p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -73b9541fa000-73b9541fc000 r--p 0002d000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -73b9541fc000-73b9541fd000 rw-p 0002f000 103:03 11141616 /usr/lib/x86_64-linux-gnu/libexpat.so.1.8.7 -73b9541fd000-73b954202000 r--p 00000000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -73b954202000-73b95420d000 r-xp 00005000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -73b95420d000-73b954211000 r--p 00010000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -73b954211000-73b954212000 ---p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -73b954212000-73b954213000 r--p 00014000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -73b954213000-73b954214000 rw-p 00015000 103:03 11141525 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 -73b954214000-73b954215000 r--p 00000000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -73b954215000-73b954216000 r-xp 00001000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -73b954216000-73b954217000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -73b954217000-73b954218000 r--p 00002000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -73b954218000-73b954219000 rw-p 00003000 103:03 11146139 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 -73b954219000-73b95421c000 r--p 00000000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -73b95421c000-73b95421f000 r-xp 00003000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -73b95421f000-73b954220000 r--p 00006000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -73b954220000-73b954221000 ---p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -73b954221000-73b954222000 r--p 00007000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -73b954222000-73b954223000 rw-p 00008000 103:03 11146105 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0 -73b954223000-73b954226000 r--p 00000000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -73b954226000-73b954229000 r-xp 00003000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -73b954229000-73b95422a000 r--p 00006000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -73b95422a000-73b95422b000 ---p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -73b95422b000-73b95422c000 r--p 00007000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -73b95422c000-73b95422d000 rw-p 00008000 103:03 11146109 /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0 -73b95422d000-73b954237000 r--p 00000000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -73b954237000-73b9542e9000 r-xp 0000a000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -73b9542e9000-73b9542fa000 r--p 000bc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -73b9542fa000-73b9542fb000 r--p 000cc000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -73b9542fb000-73b9542fc000 rw-p 000cd000 103:03 11146163 /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8 -73b9542fc000-73b95430c000 r--p 00000000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -73b95430c000-73b95436a000 r-xp 00010000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -73b95436a000-73b954386000 r--p 0006e000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -73b954386000-73b954387000 ---p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -73b954387000-73b95438d000 r--p 0008a000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -73b95438d000-73b95438e000 rw-p 00090000 103:03 11142258 /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.560.35.03 -73b95438e000-73b954396000 rw-p 00000000 00:00 0 -73b954396000-73b9543e7000 r--p 00000000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -73b9543e7000-73b954443000 r-xp 00051000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -73b954443000-73b954478000 rwxp 000ad000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -73b954478000-73b954479000 r-xp 000e2000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -73b954479000-73b954499000 r--p 000e3000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -73b954499000-73b9544b9000 r--p 00102000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -73b9544b9000-73b9544be000 rw-p 00122000 103:03 11142223 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.560.35.03 -73b9544be000-73b9544c0000 rw-p 00000000 00:00 0 -73b9544c0000-73b9544d9000 r--p 00000000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -73b9544d9000-73b954565000 r-xp 00019000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -73b954565000-73b9545fa000 r--p 000a5000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -73b9545fa000-73b9545fb000 ---p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -73b9545fb000-73b9545fc000 r--p 0013a000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -73b9545fc000-73b954600000 rw-p 0013b000 103:03 11141832 /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 -73b954600000-73b955000000 rw-p 00000000 00:00 0 -73b955000000-73b955f06000 r--p 00000000 103:03 10618858 /usr/lib/locale/locale-archive -73b955f06000-73b955f07000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b955f07000-73b955f08000 r--p 00000000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -73b955f08000-73b955f09000 r-xp 00001000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -73b955f09000-73b955f0a000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -73b955f0a000-73b955f0b000 r--p 00002000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -73b955f0b000-73b955f0c000 rw-p 00003000 103:03 11146103 /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0 -73b955f0c000-73b955f0d000 r--p 00000000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -73b955f0d000-73b955f0e000 r-xp 00001000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -73b955f0e000-73b955f0f000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -73b955f0f000-73b955f10000 r--p 00002000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -73b955f10000-73b955f11000 rw-p 00003000 103:03 11146091 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0 -73b955f11000-73b955f16000 r--p 00000000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -73b955f16000-73b955f1c000 r-xp 00005000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -73b955f1c000-73b955f1f000 r--p 0000b000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -73b955f1f000-73b955f21000 r--p 0000d000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -73b955f21000-73b955f22000 rw-p 0000f000 103:03 11141799 /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.22.0 -73b955f22000-73b955f25000 r--p 00000000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -73b955f25000-73b955f39000 r-xp 00003000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -73b955f39000-73b955f3d000 r--p 00017000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -73b955f3d000-73b955f3e000 ---p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -73b955f3e000-73b955f3f000 r--p 0001b000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -73b955f3f000-73b955f40000 rw-p 0001c000 103:03 11144737 /usr/lib/x86_64-linux-gnu/libelf-0.186.so -73b955f40000-73b955f43000 r--p 00000000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -73b955f43000-73b955f49000 r-xp 00003000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -73b955f49000-73b955f4b000 r--p 00009000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -73b955f4b000-73b955f4c000 r--p 0000a000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -73b955f4c000-73b955f4d000 rw-p 0000b000 103:03 11141807 /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.0.0 -73b955f4d000-73b955f4f000 r--p 00000000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -73b955f4f000-73b955f51000 r-xp 00002000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -73b955f51000-73b955f52000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -73b955f52000-73b955f53000 r--p 00004000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -73b955f53000-73b955f54000 rw-p 00005000 103:03 11146081 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0 -73b955f54000-73b955f5b000 r--p 00000000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -73b955f5b000-73b955f61000 r-xp 00007000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -73b955f61000-73b955f64000 r--p 0000d000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -73b955f64000-73b955f65000 ---p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -73b955f65000-73b955f66000 r--p 00010000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -73b955f66000-73b955f67000 rw-p 00011000 103:03 11146093 /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0.1.0 -73b955f67000-73b955f72000 r--p 00000000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -73b955f72000-73b955f7b000 r-xp 0000b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -73b955f7b000-73b955f80000 r--p 00014000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -73b955f80000-73b955f81000 ---p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -73b955f81000-73b955f83000 r--p 00019000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -73b955f83000-73b955f84000 rw-p 0001b000 103:03 11146083 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0 -73b955f84000-73b955f8a000 r--p 00000000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -73b955f8a000-73b955fd4000 r-xp 00006000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -73b955fd4000-73b955ffe000 r--p 00050000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -73b955ffe000-73b955fff000 r--p 00079000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -73b955fff000-73b956000000 rw-p 0007a000 103:03 11141582 /usr/lib/x86_64-linux-gnu/libvulkan.so.1.3.280 -73b956000000-73b958000000 rw-p 00000000 00:00 0 -73b958000000-73b958021000 rw-p 00000000 00:00 0 -73b958021000-73b95c000000 ---p 00000000 00:00 0 -73b95c000000-73b95c004000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b95c004000-73b95c005000 r--p 00000000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -73b95c005000-73b95c007000 r-xp 00001000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -73b95c007000-73b95c008000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -73b95c008000-73b95c009000 r--p 00003000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -73b95c009000-73b95c00a000 rw-p 00004000 103:03 11142265 /usr/lib/x86_64-linux-gnu/libnvidia-tls.so.560.35.03 -73b95c00a000-73b95c00b000 r--p 00000000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -73b95c00b000-73b95c00c000 r-xp 00001000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -73b95c00c000-73b95c00d000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -73b95c00d000-73b95c00e000 r--p 00002000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -73b95c00e000-73b95c00f000 rw-p 00003000 103:03 11141583 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 -73b95c01b000-73b95c01d000 r--p 00000000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -73b95c01d000-73b95c024000 r-xp 00002000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -73b95c024000-73b95c026000 r--p 00009000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -73b95c026000-73b95c027000 r--p 0000a000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -73b95c027000-73b95c028000 rw-p 0000b000 103:03 11144251 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 -73b95c028000-73b95c02b000 r--p 00000000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -73b95c02b000-73b95c037000 r-xp 00003000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -73b95c037000-73b95c03a000 r--p 0000f000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -73b95c03a000-73b95c03b000 r--p 00011000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -73b95c03b000-73b95c03c000 rw-p 00012000 103:03 11144239 /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 -73b95c03c000-73b95c040000 r--p 00000000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -73b95c040000-73b95c04b000 r-xp 00004000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -73b95c04b000-73b95c04f000 r--p 0000f000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -73b95c04f000-73b95c050000 r--p 00012000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -73b95c050000-73b95c051000 rw-p 00013000 103:03 11144231 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 -73b95c051000-73b95c055000 r--p 00000000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -73b95c055000-73b95c062000 r-xp 00004000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -73b95c062000-73b95c065000 r--p 00011000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -73b95c065000-73b95c066000 ---p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -73b95c066000-73b95c067000 r--p 00014000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -73b95c067000-73b95c068000 rw-p 00015000 103:03 11144519 /usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5 -73b95c068000-73b95c069000 rw-p 00000000 00:00 0 -73b95c069000-73b95c079000 r--p 00000000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -73b95c079000-73b95c09a000 r-xp 00010000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -73b95c09a000-73b95c0d6000 r--p 00031000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -73b95c0d6000-73b95c0da000 r--p 0006c000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -73b95c0da000-73b95c0dd000 rw-p 00070000 103:03 4325441 /tmp/lwjgl_codex/3.3.6+1/x64/libglfw.so -73b95c0dd000-73b95c100000 rw-p 00000000 00:00 0 -73b95c100000-73b95c104000 ---p 00000000 00:00 0 -73b95c104000-73b95c200000 rw-p 00000000 00:00 0 -73b95c200000-73b95c400000 rw-p 00000000 00:00 0 -73b95c400000-73b95c408000 r--p 00000000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -73b95c408000-73b95c460000 r-xp 00008000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -73b95c460000-73b95c471000 r--p 00060000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -73b95c471000-73b95c472000 ---p 00071000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -73b95c472000-73b95c478000 r--p 00071000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -73b95c478000-73b95c479000 rw-p 00077000 103:03 4325440 /tmp/lwjgl_codex/3.3.6+1/x64/libjemalloc.so -73b95c479000-73b95c683000 rw-p 00000000 00:00 0 -73b95c683000-73b95c684000 rw-s 00000000 00:06 964 /dev/nvidia0 -73b95c684000-73b95c6b0000 r--p 00000000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -73b95c6b0000-73b95c6e4000 r-xp 0002c000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -73b95c6e4000-73b95c6fe000 r--p 00060000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -73b95c6fe000-73b95c6ff000 r--p 00079000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -73b95c6ff000-73b95c700000 rw-p 0007a000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -73b95c700000-73b95c704000 ---p 00000000 00:00 0 -73b95c704000-73b95c800000 rw-p 00000000 00:00 0 -73b95c800000-73b95c804000 ---p 00000000 00:00 0 -73b95c804000-73b95c900000 rw-p 00000000 00:00 0 -73b95c900000-73b95c904000 ---p 00000000 00:00 0 -73b95c904000-73b95ca00000 rw-p 00000000 00:00 0 -73b95ca00000-73b95d1d0000 rw-p 00000000 00:00 0 -73b95d1d0000-73b9646f0000 ---p 00000000 00:00 0 -73b9646f0000-73b964700000 rw-p 00000000 00:00 0 -73b964700000-73b964701000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b964706000-73b964711000 r--p 00000000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -73b964711000-73b964725000 r-xp 0000b000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -73b964725000-73b96472e000 r--p 0001f000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -73b96472e000-73b96472f000 r--p 00027000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -73b96472f000-73b964730000 rw-p 00028000 103:03 11146115 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0 -73b964730000-73b9647fe000 r-xp 00000000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -73b9647fe000-73b9647ff000 r--p 000cd000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -73b9647ff000-73b964800000 rw-p 000ce000 103:03 10498793 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjsvml.so -73b964800000-73b964a70000 rwxp 00000000 00:00 0 -73b964a70000-73b96bd37000 ---p 00000000 00:00 0 -73b96bd37000-73b96bfa7000 rwxp 00000000 00:00 0 -73b96bfa7000-73b96c2c8000 ---p 00000000 00:00 0 -73b96c2c8000-73b96c538000 rwxp 00000000 00:00 0 -73b96c538000-73b973800000 ---p 00000000 00:00 0 -73b973800000-73b97bfb5000 r--s 00000000 103:03 10498840 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/modules -73b97bfb5000-73b97bfb6000 rw-s 00000000 00:06 964 /dev/nvidia0 -73b97bfb6000-73b97bfb7000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b97bfbf000-73b97bffd000 r-xp 00000000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -73b97bffd000-73b97bffe000 ---p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -73b97bffe000-73b97bfff000 r--p 0003e000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -73b97bfff000-73b97c000000 rw-p 0003f000 103:03 10498827 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libsimdsort.so -73b97c000000-73b97c5fe000 rw-p 00000000 00:00 0 -73b97c5fe000-73b980000000 ---p 00000000 00:00 0 -73b980000000-73b980001000 rw-s 00000000 00:06 957 /dev/nvidiactl -73b980001000-73b980002000 r--s 00000000 00:06 957 /dev/nvidiactl -73b980016000-73b98001a000 ---p 00000000 00:00 0 -73b98001a000-73b980116000 rw-p 00000000 00:00 0 -73b980116000-73b98011a000 ---p 00000000 00:00 0 -73b98011a000-73b980216000 rw-p 00000000 00:00 0 -73b980216000-73b98021a000 ---p 00000000 00:00 0 -73b98021a000-73b980316000 rw-p 00000000 00:00 0 -73b980316000-73b98031a000 ---p 00000000 00:00 0 -73b98031a000-73b980416000 rw-p 00000000 00:00 0 -73b980416000-73b98041a000 ---p 00000000 00:00 0 -73b98041a000-73b980516000 rw-p 00000000 00:00 0 -73b980516000-73b98051a000 ---p 00000000 00:00 0 -73b98051a000-73b980616000 rw-p 00000000 00:00 0 -73b980616000-73b98061a000 ---p 00000000 00:00 0 -73b98061a000-73b980716000 rw-p 00000000 00:00 0 -73b980716000-73b980717000 ---p 00000000 00:00 0 -73b980717000-73b980817000 rw-p 00000000 00:00 0 -73b980817000-73b980818000 ---p 00000000 00:00 0 -73b980818000-73b980918000 rw-p 00000000 00:00 0 -73b980918000-73b9809f4000 rw-p 00000000 00:00 0 -73b9809f4000-73b9809f5000 ---p 00000000 00:00 0 -73b9809f5000-73b980af5000 rw-p 00000000 00:00 0 -73b980af5000-73b980af6000 ---p 00000000 00:00 0 -73b980af6000-73b980bf6000 rw-p 00000000 00:00 0 -73b980bf6000-73b9813fe000 rw-p 00000000 00:00 0 -73b9813fe000-73b9813ff000 ---p 00000000 00:00 0 -73b9813ff000-73b9814ff000 rw-p 00000000 00:00 0 -73b9814ff000-73b981500000 ---p 00000000 00:00 0 -73b981500000-73b981600000 rw-p 00000000 00:00 0 -73b981600000-73b9816fa000 rw-p 00000000 00:00 0 -73b9816fa000-73b98259e000 ---p 00000000 00:00 0 -73b98259e000-73b9825a0000 rw-p 00000000 00:00 0 -73b9825a4000-73b9825a6000 r--p 00000000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -73b9825a6000-73b9825ad000 r-xp 00002000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -73b9825ad000-73b9825af000 r--p 00009000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -73b9825af000-73b9825b0000 r--p 0000a000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -73b9825b0000-73b9825b1000 rw-p 0000b000 103:03 11145333 /usr/lib/x86_64-linux-gnu/libmd.so.0.0.5 -73b9825b1000-73b9825b3000 r--p 00000000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -73b9825b3000-73b9825b5000 r-xp 00002000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -73b9825b5000-73b9825b7000 r--p 00004000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -73b9825b7000-73b9825b8000 r--p 00005000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -73b9825b8000-73b9825b9000 rw-p 00006000 103:03 11144229 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 -73b9825b9000-73b9825ba000 r--p 00000000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -73b9825ba000-73b9825bc000 r-xp 00001000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -73b9825bc000-73b9825bd000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -73b9825bd000-73b9825be000 r--p 00003000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -73b9825be000-73b9825bf000 rw-p 00004000 103:03 11144218 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 -73b9825bf000-73b9826fa000 rw-p 00000000 00:00 0 -73b9826fa000-73b98359e000 ---p 00000000 00:00 0 -73b98359e000-73b9835a0000 rw-p 00000000 00:00 0 -73b9835a0000-73b9835a1000 ---p 00000000 00:00 0 -73b9835a1000-73b9836a1000 rw-p 00000000 00:00 0 -73b9836a1000-73b983f2f000 rw-p 00000000 00:00 0 -73b983f2f000-73b984015000 ---p 00000000 00:00 0 -73b984015000-73b98401a000 rw-p 00000000 00:00 0 -73b98401a000-73b984100000 ---p 00000000 00:00 0 -73b984100000-73b984104000 ---p 00000000 00:00 0 -73b984104000-73b984200000 rw-p 00000000 00:00 0 -73b984200000-73b985530000 r-xp 00000000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so -73b985530000-73b985600000 r--p 0132f000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so -73b985600000-73b98562e000 rw-p 013ff000 103:03 10498870 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/server/libjvm.so -73b98562e000-73b9856a4000 rw-p 00000000 00:00 0 -73b9856a4000-73b9856ab000 r--s 00000000 103:03 11147989 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache -73b9856ab000-73b9856ac000 r--p 00000000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -73b9856ac000-73b9856af000 r-xp 00001000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -73b9856af000-73b9856b0000 r--p 00004000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -73b9856b0000-73b9856b1000 ---p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -73b9856b1000-73b9856b2000 r--p 00005000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -73b9856b2000-73b9856b3000 rw-p 00006000 103:03 11280463 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-dbus.so -73b9856b3000-73b9856b6000 r--p 00000000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -73b9856b6000-73b9856ba000 r-xp 00003000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -73b9856ba000-73b9856bc000 r--p 00007000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -73b9856bc000-73b9856bd000 r--p 00008000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -73b9856bd000-73b9856be000 rw-p 00009000 103:03 11141498 /usr/lib/x86_64-linux-gnu/libcap.so.2.44 -73b9856be000-73b9856bf000 r--p 00000000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -73b9856bf000-73b9856c1000 r-xp 00001000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -73b9856c1000-73b9856c2000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -73b9856c2000-73b9856c3000 r--p 00003000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -73b9856c3000-73b9856c4000 rw-p 00004000 103:03 11280464 /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-journal.so -73b9856c4000-73b9856d7000 r-xp 00000000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -73b9856d7000-73b9856d8000 ---p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -73b9856d8000-73b9856d9000 r--p 00013000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -73b9856d9000-73b9856da000 rw-p 00014000 103:03 10498814 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnio.so -73b9856da000-73b985719000 rw-p 00000000 00:00 0 -73b985719000-73b985727000 r--p 00000000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -73b985727000-73b9857a3000 r-xp 0000e000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -73b9857a3000-73b9857fe000 r--p 0008a000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -73b9857fe000-73b9857ff000 r--p 000e4000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -73b9857ff000-73b985800000 rw-p 000e5000 103:03 11141851 /usr/lib/x86_64-linux-gnu/libm.so.6 -73b985800000-73b985828000 r--p 00000000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -73b985828000-73b9859bd000 r-xp 00028000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -73b9859bd000-73b985a15000 r--p 001bd000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -73b985a15000-73b985a16000 ---p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -73b985a16000-73b985a1a000 r--p 00215000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -73b985a1a000-73b985a1c000 rw-p 00219000 103:03 11141780 /usr/lib/x86_64-linux-gnu/libc.so.6 -73b985a1c000-73b985a29000 rw-p 00000000 00:00 0 -73b985a29000-73b985a2a000 r-xp 00000000 00:00 0 -73b985a2a000-73b985a2b000 rw-p 00000000 00:00 0 -73b985a2b000-73b985a2c000 r-xp 0005e000 103:03 4325438 /tmp/lwjgl_codex/3.3.6+1/x64/liblwjgl.so -73b985a2c000-73b985a2d000 rw-p 00000000 00:00 0 -73b985a2d000-73b985a38000 r-xp 00000000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -73b985a38000-73b985a39000 ---p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -73b985a39000-73b985a3a000 r--p 0000b000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -73b985a3a000-73b985a3b000 rw-p 0000c000 103:03 10498811 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libnet.so -73b985a3b000-73b985a7a000 rw-p 00000000 00:00 0 -73b985a7a000-73b985a9a000 r-xp 00000000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -73b985a9a000-73b985a9b000 r--p 0001f000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -73b985a9b000-73b985a9c000 rw-p 00020000 103:03 10498774 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjava.so -73b985a9c000-73b985a9d000 rw-p 00000000 00:00 0 -73b985a9d000-73b985abb000 r-xp 00000000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -73b985abb000-73b985abd000 r--p 0001d000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -73b985abd000-73b985abe000 rw-p 0001f000 103:03 10498782 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjimage.so -73b985abe000-73b985abf000 r--p 00000000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -73b985abf000-73b985ac0000 r-xp 00001000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -73b985ac0000-73b985ac1000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -73b985ac1000-73b985ac2000 r--p 00002000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -73b985ac2000-73b985ac3000 rw-p 00003000 103:03 11142134 /usr/lib/x86_64-linux-gnu/librt.so.1 -73b985ac3000-73b985ac7000 rw-p 00000000 00:00 0 -73b985ac7000-73b985ac8000 r--p 00000000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -73b985ac8000-73b985ac9000 r-xp 00001000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -73b985ac9000-73b985aca000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -73b985aca000-73b985acb000 r--p 00002000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -73b985acb000-73b985acc000 rw-p 00003000 103:03 11142076 /usr/lib/x86_64-linux-gnu/libpthread.so.0 -73b985acc000-73b985acd000 r--p 00000000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -73b985acd000-73b985ace000 r-xp 00001000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -73b985ace000-73b985acf000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -73b985acf000-73b985ad0000 r--p 00002000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -73b985ad0000-73b985ad1000 rw-p 00003000 103:03 11141840 /usr/lib/x86_64-linux-gnu/libdl.so.2 -73b985ad1000-73b985ad3000 r--p 00000000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -73b985ad3000-73b985ae4000 r-xp 00002000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -73b985ae4000-73b985aea000 r--p 00013000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -73b985aea000-73b985aeb000 ---p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -73b985aeb000-73b985aec000 r--p 00019000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -73b985aec000-73b985aed000 rw-p 0001a000 103:03 11141575 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 -73b985aed000-73b985af4000 r-xp 00000000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -73b985af4000-73b985af5000 ---p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -73b985af5000-73b985af6000 r--p 00007000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -73b985af6000-73b985af7000 rw-p 00008000 103:03 10498837 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libzip.so -73b985af7000-73b985afc000 rw-p 00000000 00:00 0 -73b985afc000-73b985b03000 ---p 00000000 00:00 0 -73b985b03000-73b985b0b000 rw-s 00000000 103:03 4325447 /tmp/hsperfdata_codex/78128 -73b985b0b000-73b985b0c000 ---p 00000000 00:00 0 -73b985b0c000-73b985b0d000 r--p 00000000 00:00 0 -73b985b0d000-73b985b1c000 r-xp 00000000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so -73b985b1c000-73b985b1d000 r--p 0000e000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so -73b985b1d000-73b985b1e000 rw-p 0000f000 103:03 10498785 /usr/lib/jvm/jdk-23.0.2-oracle-x64/lib/libjli.so -73b985b1e000-73b985b20000 rw-p 00000000 00:00 0 -73b985b20000-73b985b24000 r--p 00000000 00:00 0 [vvar] -73b985b24000-73b985b26000 r-xp 00000000 00:00 0 [vdso] -73b985b26000-73b985b28000 r--p 00000000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -73b985b28000-73b985b52000 r-xp 00002000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -73b985b52000-73b985b5d000 r--p 0002c000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -73b985b5d000-73b985b5e000 ---p 00000000 00:00 0 -73b985b5e000-73b985b60000 r--p 00037000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -73b985b60000-73b985b62000 rw-p 00039000 103:03 11141617 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 -7ffee72d3000-7ffee72f6000 rw-p 00000000 00:00 0 [stack] -ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall] -Total number of mappings: 796 - - -VM Arguments: -jvm_args: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -java_command: jme3test.vulkan.VulkanHelperTest -java_class_path (initial): /home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/java/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/classes/groovy/main:/home/codex/java/prj/jmonkeyengine/jme3-examples/build/resources/main:/home/codex/java/prj/jmonkeyengine/jme3-lwjgl3/build/libs/jme3-lwjgl3-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-desktop/build/libs/jme3-desktop-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-effects/build/libs/jme3-effects-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jbullet/build/libs/jme3-jbullet-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-jogg/build/libs/jme3-jogg-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-networking/build/libs/jme3-networking-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-niftygui/build/libs/jme3-niftygui-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins/build/libs/jme3-plugins-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-terrain/build/libs/jme3-terrain-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-awt-dialogs/build/libs/jme3-awt-dialogs-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-core/build/libs/jme3-core-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json-gson/build/libs/jme3-plugins-json-gson-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-plugins-json/build/libs/jme3-plugins-json-null-SNAPSHOT.jar:/home/codex/java/prj/jmonkeyengine/jme3-testdata/build/libs/jme3-testdata-null-SNAPSHOT.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-examples/1.4.3/4a41c559851c0c5a77ba3a9d1ccc8e6e92207dc7/nifty-examples-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjglx/lwjgl3-awt/0.2.3/2be63e81d6b73300d8203ce7235b2660c62eb3ea/lwjgl3-awt-0.2.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/7119f7d0eeb1e5502ff0ca71d2b4d47317da015/lwjgl-glfw-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/99ef08056feb9627f90425a4d2a22cd9fae8e39b/lwjgl-glfw-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/cfa8f1e96d572ed56da5945adf5167628f5eecdb/lwjgl-glfw-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/797e0965709ad180d9b00c88a086dbda15002203/lwjgl-glfw-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/671adf04a6bc4f792af13892e37f804be30b7070/lwjgl-glfw-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/b54023af492b4c2c72451f3a7aa0f385e9969474/lwjgl-glfw-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/82c8d748a654241b5961ddd1c098e8b648e38a48/lwjgl-glfw-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.6/399b42b491c5dfa6595ae6fd79dcba61b93538a7/lwjgl-glfw-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jawt/3.3.6/43299e222bd7db5e99254a8e620330954b73c2a6/lwjgl-jawt-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/245910eb57f2444429c74e6bf96030e5ec0a6739/lwjgl-jemalloc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/f9da76351e14a695be172d6915c8a7b2905307f/lwjgl-jemalloc-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c86043a342a33e5d32fabf962578580633db3c6e/lwjgl-jemalloc-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/26f8b467dc2e0f3000d608de3564b572bb46f927/lwjgl-jemalloc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/c484cae39a718010dbc7931fe5e12664600a13c2/lwjgl-jemalloc-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1bc2e16e70df7f418d668c2984ac8066f1f6f5b1/lwjgl-jemalloc-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/9a42df0f2e9747815490311d7db7b4a046d5f40/lwjgl-jemalloc-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.6/1f828c1fc06792475850162725433adf5ad001c0/lwjgl-jemalloc-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ad313317ff399fd2a7f4dd74716a68cf3976c6ad/lwjgl-openal-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/9c2b9b660e085bb0b47a4453dc0e26f24a5475e4/lwjgl-openal-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/82f693541d69aa125750bf8be9c4194435c56f03/lwjgl-openal-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/ef356c04ef141d4efbde07793f31784f1f1a1bae/lwjgl-openal-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/7830af894fa110e65bf5075deb9183efbdbc50f5/lwjgl-openal-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/fd2c17603c63e8d543cb57d1db77ebd4574f3b7a/lwjgl-openal-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/c39f6827f0bd97601fc4e389801d5c813f59a5f2/lwjgl-openal-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.6/13f692aec4ae4b2d3c468aa0008472175f0ea1e0/lwjgl-openal-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opencl/3.3.6/93fdcea16d27b1466450e38dc28c8e1b4819ec25/lwjgl-opencl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ac2532612a4df374e9a9282bcf8ce2573018ebbb/lwjgl-opengl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/18dc639ebc94aa5202c2157f7490d28997b697c5/lwjgl-opengl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b0ab1d0e315d2fcc50d6cab7e8feaf4688d5d9a0/lwjgl-opengl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/b8dc6467fe232d552793c53dc56f9fa8a385299c/lwjgl-opengl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/ee815fbf454b916f13c10fff62e513eb09042ef0/lwjgl-opengl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/44de180f79e0b45c9e5bee10ca7540dcb5ddd373/lwjgl-opengl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/59f708eb4bf0be0204bbc9c06807911724673db6/lwjgl-opengl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.6/fee4fb2ee786af6530b6f9188205a76bc4e05268/lwjgl-opengl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-vulkan/3.3.6/a403e0931b03b138854bb2ba9c48dab646cba6d8/lwjgl-vulkan-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/9d0964fe2b75f64d9dab9839c2b059b7e8f71115/lwjgl-shaderc-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-shaderc/3.3.6/ab69a0e011f057ed25857c97fa3c87f20ab8f670/lwjgl-shaderc-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/ce7721d30cfaf47feaed10213e0c43eb55c49d68/lwjgl-3.3.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9a29b6a22fc5184604b8cb434ee5d5ecc4bfcbee/lwjgl-3.3.6-natives-windows.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/7a6f04e02429ba2f4bda9be191347bb7d3c71127/lwjgl-3.3.6-natives-windows-x86.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/dc7db8fc4f1e6563867f9155b9a42d9c73d8992f/lwjgl-3.3.6-natives-linux.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/2c9d698e76c3d0fe307d94cc6f428038492f25df/lwjgl-3.3.6-natives-linux-arm32.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/9eeb8887b5e3aa672efd2e1b0973ffa5891a3151/lwjgl-3.3.6-natives-linux-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/f14e7a5289d2355822f4f83b3fd38d158c939acd/lwjgl-3.3.6-natives-macos.jar:/home/codex/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.6/832e2964ce74e02e768814a29c06d60645115b9a/lwjgl-3.3.6-natives-macos-arm64.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/jbullet/1.0.3/362f53e8aa981037c2523ac24eb4d9b190a49036/jbullet-1.0.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/javax.vecmath/vecmath/1.5.2/fd17bc3e67f909573dfc039d8e2abecf407c4e27/vecmath-1.5.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/j-ogg-vorbis/1.0.6/a69d1cf62eaf75b71af61f9c23265d278a966735/j-ogg-vorbis-1.0.6.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-default-controls/1.4.3/2ccafe0182a73da87657ca24b639b6e8c1accd50/nifty-default-controls-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty/1.4.3/fa9ac16e00d1b375d10f58d1c1eb576950ae8c9d/nifty-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.nifty-gui/nifty-style-black/1.4.3/c20a02dbdeb0bd9d2be258955fceb55c13185a8/nifty-style-black-1.4.3.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.9.1/2cc2131b98ebfb04e2b2c7dfb84431f4045096b/gson-2.9.1.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.github.stephengold/stack-alloc/1.0.2/13cbb10c01ec09d0f5879f988946a97998175dfc/stack-alloc-1.0.2.jar:/home/codex/.gradle/caches/modules-2/files-2.1/xpp3/xpp3/1.1.4c/9b988ea84b9e4e9f1874e390ce099b8ac12cfff5/xpp3-1.1.4c.jar:/home/codex/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/2.0.2/516c03b21d50a644d538de0f0369c620989cd8f0/jsr305-2.0.2.jar -Launcher Type: SUN_STANDARD - -[Global flags] - intx CICompilerCount = 4 {product} {ergonomic} - uint ConcGCThreads = 2 {product} {ergonomic} - uint G1ConcRefinementThreads = 8 {product} {ergonomic} - size_t G1HeapRegionSize = 4194304 {product} {ergonomic} - size_t InitialHeapSize = 524288000 {product} {ergonomic} - size_t MarkStackSize = 4194304 {product} {ergonomic} - size_t MarkStackSizeMax = 536870912 {product} {ergonomic} - size_t MaxHeapSize = 8388608000 {product} {ergonomic} - size_t MaxNewSize = 5033164800 {product} {ergonomic} - size_t MinHeapDeltaBytes = 4194304 {product} {ergonomic} - size_t MinHeapSize = 8388608 {product} {ergonomic} - uintx NonNMethodCodeHeapSize = 5836800 {pd product} {ergonomic} - uintx NonProfiledCodeHeapSize = 122912768 {pd product} {ergonomic} - uintx ProfiledCodeHeapSize = 122908672 {pd product} {ergonomic} - uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} - bool SegmentedCodeCache = true {product} {ergonomic} - size_t SoftMaxHeapSize = 8388608000 {manageable} {ergonomic} - bool UseCompressedOops = true {product lp64_product} {ergonomic} - bool UseG1GC = true {product} {ergonomic} - -Logging: -Log output configuration: - #0: stdout all=warning uptime,level,tags foldmultilines=false - #1: stderr all=off uptime,level,tags foldmultilines=false - -Environment Variables: -PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin -USERNAME=codex -SHELL=/bin/bash -DISPLAY=:1 -LANG=en_US.UTF-8 - -Active Locale: -LC_ALL=en_US.UTF-8 -LC_COLLATE=en_US.UTF-8 -LC_CTYPE=en_US.UTF-8 -LC_MESSAGES=en_US.UTF-8 -LC_MONETARY=en_US.UTF-8 -LC_NUMERIC=en_US.UTF-8 -LC_TIME=en_US.UTF-8 - -Signal Handlers: - SIGSEGV: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGBUS: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGFPE: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGPIPE: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGXFSZ: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGILL: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - SIGUSR2: SR_handler in libjvm.so, mask=00000000000000000000000000000000, flags=SA_RESTART|SA_SIGINFO, blocked - SIGHUP: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGINT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGTERM: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGQUIT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, blocked - SIGTRAP: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO, unblocked - - -Periodic native trim disabled - ---------------- S Y S T E M --------------- - -OS: -DISTRIB_ID=Pop -DISTRIB_RELEASE=22.04 -DISTRIB_CODENAME=jammy -DISTRIB_DESCRIPTION="Pop!_OS 22.04 LTS" -uname: Linux 6.9.3-76060903-generic #202405300957~1726766035~22.04~4092a0e SMP PREEMPT_DYNAMIC Thu S x86_64 -OS uptime: 0 days 14:29 hours -libc: glibc 2.35 NPTL 2.35 -rlimit (soft/hard): STACK 8192k/infinity , CORE 0k/infinity , NPROC 127655/127655 , NOFILE 1048576/1048576 , AS infinity/infinity , CPU infinity/infinity , DATA infinity/infinity , FSIZE infinity/infinity , MEMLOCK 4095952k/4095952k -load average: 0.61 0.77 0.83 - -/proc/meminfo: -MemTotal: 32767632 kB -MemFree: 21158436 kB -MemAvailable: 24189976 kB -Buffers: 321172 kB -Cached: 4673028 kB -SwapCached: 0 kB -Active: 8033496 kB -Inactive: 2595692 kB -Active(anon): 5672072 kB -Inactive(anon): 0 kB -Active(file): 2361424 kB -Inactive(file): 2595692 kB -Unevictable: 15204 kB -Mlocked: 72 kB -SwapTotal: 20970996 kB -SwapFree: 20970996 kB -Zswap: 0 kB -Zswapped: 0 kB -Dirty: 28 kB -Writeback: 0 kB -AnonPages: 5650496 kB -Mapped: 1807064 kB -Shmem: 37084 kB -KReclaimable: 187708 kB -Slab: 366340 kB -SReclaimable: 187708 kB -SUnreclaim: 178632 kB -KernelStack: 20768 kB -PageTables: 48056 kB -SecPageTables: 0 kB -NFS_Unstable: 0 kB -Bounce: 0 kB -WritebackTmp: 0 kB -CommitLimit: 37354812 kB -Committed_AS: 11214484 kB -VmallocTotal: 34359738367 kB -VmallocUsed: 247428 kB -VmallocChunk: 0 kB -Percpu: 9120 kB -HardwareCorrupted: 0 kB -AnonHugePages: 0 kB -ShmemHugePages: 6144 kB -ShmemPmdMapped: 0 kB -FileHugePages: 0 kB -FilePmdMapped: 0 kB -Unaccepted: 0 kB -HugePages_Total: 0 -HugePages_Free: 0 -HugePages_Rsvd: 0 -HugePages_Surp: 0 -Hugepagesize: 2048 kB -Hugetlb: 0 kB -DirectMap4k: 800568 kB -DirectMap2M: 12732416 kB -DirectMap1G: 19922944 kB - -/sys/kernel/mm/transparent_hugepage/enabled: always [madvise] never -/sys/kernel/mm/transparent_hugepage/hpage_pmd_size: 2097152 -/sys/kernel/mm/transparent_hugepage/shmem_enabled: always within_size advise [never] deny force -/sys/kernel/mm/transparent_hugepage/defrag (defrag/compaction efforts parameter): always defer defer+madvise [madvise] never - -Process Memory: -Virtual Size: 13041280K (peak: 13042084K) -Resident Set Size: 297012K (peak: 297276K) (anon: 154376K, file: 142636K, shmem: 0K) -Swapped out: 0K -C-Heap outstanding allocations: 68142K, retained: 32033K -glibc malloc tunables: (default) - -/proc/sys/kernel/threads-max (system-wide limit on the number of threads): 255310 -/proc/sys/vm/max_map_count (maximum number of memory map areas a process may have): 2147483642 -/proc/sys/vm/swappiness (control to define how aggressively the kernel swaps out anonymous memory): 180 -/proc/sys/kernel/pid_max (system-wide limit on number of process identifiers): 4194304 - -container (cgroup) information: -container_type: cgroupv2 -cpu_cpuset_cpus: not supported -cpu_memory_nodes: not supported -active_processor_count: 8 -cpu_quota: not supported -cpu_period: not supported -cpu_shares: not supported -memory_limit_in_bytes: unlimited -memory_and_swap_limit_in_bytes: unlimited -memory_soft_limit_in_bytes: 0 -memory_usage_in_bytes: 5721300 k -memory_max_usage_in_bytes: not supported -rss_usage_in_bytes: 3396096 k -cache_usage_in_bytes: 2245204 k -memory_swap_current_in_bytes: 0 -memory_swap_max_limit_in_bytes: unlimited -maximum number of tasks: 38296 -current number of tasks: 306 - -Steal ticks since vm start: 0 -Steal ticks percentage since vm start: 0.000 - -CPU: total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 158 stepping 9 microcode 0xf8, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, adx, fma, vzeroupper, clflush, clflushopt, rdtscp, f16c -CPU Model and flags from /proc/cpuinfo: -model name : Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities - -Online cpus: 0-7 -Offline cpus: -BIOS frequency limitation: -Frequency switch latency (ns): 0 -Available cpu frequencies: -Current governor: powersave -Core performance/turbo boost: - -Memory: 4k page, physical 32767632k(24189976k free), swap 20970996k(20970996k free) -Page Sizes: 4k - -vm_info: Java HotSpot(TM) 64-Bit Server VM (23.0.2+7-58) for linux-amd64 JRE (23.0.2+7-58), built on 2024-11-29T09:34:55Z with gcc 13.2.0 - -END. diff --git a/jme3-core/src/main/java/com/jme3/math/Matrix4f.java b/jme3-core/src/main/java/com/jme3/math/Matrix4f.java index 4f9a6e2f35..e097de818b 100644 --- a/jme3-core/src/main/java/com/jme3/math/Matrix4f.java +++ b/jme3-core/src/main/java/com/jme3/math/Matrix4f.java @@ -2560,4 +2560,16 @@ public Matrix4f clone() { throw new AssertionError(); // can not happen } } + + /** + * Flips the sign of the Y scalar component (m11) to make Vulkan renderings + * appear upright in clip space. + * + * @return this instance + */ + public Matrix4f flipYScalarForVulkan() { + m11 = -m11; + return this; + } + } diff --git a/jme3-core/src/main/java/com/jme3/renderer/Camera.java b/jme3-core/src/main/java/com/jme3/renderer/Camera.java index b05c3bd86a..9635905d38 100644 --- a/jme3-core/src/main/java/com/jme3/renderer/Camera.java +++ b/jme3-core/src/main/java/com/jme3/renderer/Camera.java @@ -1248,7 +1248,6 @@ public void updateViewProjection() { if (overrideProjection) { viewProjectionMatrix.set(projectionMatrixOverride).multLocal(viewMatrix); } else { - //viewProjectionMatrix.set(viewMatrix).multLocal(projectionMatrix); viewProjectionMatrix.set(projectionMatrix).multLocal(viewMatrix); } } @@ -1358,7 +1357,9 @@ public void onFrustumChange() { projectionMatrix.fromFrustum(frustumNear, frustumFar, frustumLeft, frustumRight, frustumTop, frustumBottom, parallelProjection); -// projectionMatrix.transposeLocal(); + + // for Vulkan rendering + projectionMatrix.flipYScalarForVulkan(); // The frame is affected by the frustum values // update it as well diff --git a/jme3-core/src/main/java/com/jme3/renderer/vulkan/VulkanUtils.java b/jme3-core/src/main/java/com/jme3/renderer/vulkan/VulkanUtils.java index 2e9ce16e45..535f5f9d93 100644 --- a/jme3-core/src/main/java/com/jme3/renderer/vulkan/VulkanUtils.java +++ b/jme3-core/src/main/java/com/jme3/renderer/vulkan/VulkanUtils.java @@ -1,5 +1,6 @@ package com.jme3.renderer.vulkan; +import com.jme3.util.natives.Native; import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryUtil; @@ -127,6 +128,10 @@ public static boolean isBitSet(int n, int bit) { return (n & bit) > 0; } + public static int sharingMode(boolean concurrent) { + return concurrent ? VK_SHARING_MODE_CONCURRENT : VK_SHARING_MODE_EXCLUSIVE; + } + public static , E extends Struct> T accumulate(Collection collection, IntFunction allocate) { T buffer = allocate.apply(collection.size()); for (E e : collection) { @@ -135,6 +140,26 @@ public static , E extends Struct> T accumulate(C return buffer.rewind(); } + public static LongBuffer accumulate(MemoryStack stack, Native... natives) { + LongBuffer buf = stack.mallocLong(natives.length); + for (int i = 0; i < buf.limit(); i++) { + buf.put(i, natives[i].getNativeObject()); + } + return buf; + } + + public static int[] getTransferArguments(int srcLayout, int dstLayout) { + // output array format: {srcAccessMask, dstAccessMask, srcStage, dstStage} + if (srcLayout == VK_IMAGE_LAYOUT_UNDEFINED && dstLayout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL) { + return new int[] {0, VK_ACCESS_TRANSFER_WRITE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT}; + } else if (srcLayout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL && dstLayout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) { + return new int[] {VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_SHADER_READ_BIT, + VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT}; + } else { + throw new UnsupportedOperationException("Unsupported layer transitions."); + } + } + public static class NativeIterator implements Iterable, Iterator { private final PointerBuffer pointers; diff --git a/jme3-core/src/main/java/com/jme3/util/natives/BasicNativeManager.java b/jme3-core/src/main/java/com/jme3/util/natives/BasicNativeManager.java index 6bfcfdb68f..2ef3076b84 100644 --- a/jme3-core/src/main/java/com/jme3/util/natives/BasicNativeManager.java +++ b/jme3-core/src/main/java/com/jme3/util/natives/BasicNativeManager.java @@ -3,10 +3,7 @@ import java.lang.ref.PhantomReference; import java.lang.ref.ReferenceQueue; import java.lang.ref.WeakReference; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; @@ -39,8 +36,12 @@ public int flush() { int flushed = 0; for (NativeRef ref; (ref = (NativeRef)unreachable.poll()) != null;) { ref.destroy(); + refMap.remove(ref.id); flushed++; } + if (flushed > 0) { + refMap.values().removeIf(NativeRef::isDestroyed); + } return flushed; } @@ -48,7 +49,7 @@ public int flush() { public int clear() { int size = refMap.size(); for (NativeRef ref : refMap.values()) { - ref.destroyNoRemove(); + ref.destroy(); } refMap.clear(); return size; @@ -57,10 +58,10 @@ public int clear() { public class NativeRef extends WeakReference implements NativeReference { private final long id; - private final Runnable destroyer; private final WeakReference weakRef; private final AtomicBoolean active = new AtomicBoolean(true); private final Collection dependents = new ArrayList<>(); + private Runnable destroyer; private NativeRef(long id, Native referent, ReferenceQueue q) { super(referent, q); @@ -72,33 +73,43 @@ private NativeRef(long id, Native referent, ReferenceQueue q) { @Override public void destroy() { if (active.getAndSet(false)) { + for (NativeReference ref : dependents) { + ref.destroy(); + } dependents.clear(); - destroyNoRemove(); - refMap.remove(id, this); + destroyer.run(); + Native referent = weakRef.get(); + if (referent != null) { + referent.prematureNativeDestruction(); + } } } @Override public void addDependent(NativeReference reference) { + if (isDestroyed()) { + throw new IllegalStateException("Cannot add dependent to destroyed resource."); + } dependents.add(reference); } - private long getId() { - return id; + @Override + public boolean isDestroyed() { + return !active.get(); } - private void destroyNoRemove() { - for (NativeReference ref : dependents) { - ref.destroy(); - } - dependents.clear(); - destroyer.run(); - Native referent = weakRef.get(); - if (referent != null) { - referent.prematureNativeDestruction(); + @Override + public void refresh() { + Native obj = weakRef.get(); + if (obj != null) { + destroyer = obj.createNativeDestroyer(); } } + private long getId() { + return id; + } + } } diff --git a/jme3-core/src/main/java/com/jme3/util/natives/NativeReference.java b/jme3-core/src/main/java/com/jme3/util/natives/NativeReference.java index ddbefb178a..98abbcc7dd 100644 --- a/jme3-core/src/main/java/com/jme3/util/natives/NativeReference.java +++ b/jme3-core/src/main/java/com/jme3/util/natives/NativeReference.java @@ -6,4 +6,8 @@ public interface NativeReference { void addDependent(NativeReference reference); + boolean isDestroyed(); + + void refresh(); + } diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java index f67eb54bb2..09eda177fe 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java @@ -1,17 +1,26 @@ package jme3test.vulkan; +import com.jme3.app.FlyCamAppState; import com.jme3.app.SimpleApplication; import com.jme3.material.RenderState; +import com.jme3.math.Quaternion; +import com.jme3.math.Transform; +import com.jme3.math.Vector3f; import com.jme3.renderer.vulkan.VulkanUtils; import com.jme3.shaderc.ShaderType; import com.jme3.shaderc.ShadercLoader; import com.jme3.system.AppSettings; import com.jme3.system.vulkan.LwjglVulkanContext; import com.jme3.util.BufferUtils; +import com.jme3.util.natives.Native; import com.jme3.vulkan.*; import com.jme3.vulkan.Queue; -import com.jme3.vulkan.buffers.BufferArgs; -import com.jme3.vulkan.buffers.GpuBuffer; +import com.jme3.vulkan.buffers.*; +import com.jme3.vulkan.descriptors.*; +import com.jme3.vulkan.flags.ImageUsageFlags; +import com.jme3.vulkan.flags.MemoryFlags; +import com.jme3.vulkan.flags.BufferUsageFlags; +import com.jme3.vulkan.images.*; import org.lwjgl.PointerBuffer; import org.lwjgl.glfw.GLFW; import org.lwjgl.system.MemoryStack; @@ -21,6 +30,7 @@ import java.nio.FloatBuffer; import java.nio.IntBuffer; import java.util.*; +import java.util.function.Consumer; import java.util.logging.Level; import static com.jme3.renderer.vulkan.VulkanUtils.*; @@ -41,21 +51,25 @@ public class VulkanHelperTest extends SimpleApplication implements SwapchainUpda private RenderPass renderPass; private GraphicsPipeline pipeline; private CommandPool graphicsPool; - private GpuBuffer vertexBuffer, indexBuffer; + private StageableBuffer vertexBuffer, indexBuffer; + private DescriptorPool descriptorPool; + private DescriptorSetLayout descriptorLayout; private VulkanRenderManager renderer; private boolean swapchainResizeFlag = false; + private boolean applicationStopped = false; private final Collection deviceExtensions = new ArrayList<>(); - private long debugMessenger = NULL; - private final VkDebugUtilsMessengerCallbackEXT debugCallback = new VulkanDebugCallback(Level.SEVERE); + private VulkanLogger logger; private final FloatBuffer vertexData = BufferUtils.createFloatBuffer( - -0.5f, -0.5f, 1f, 0f, 0f, - 0.5f, -0.5f, 0f, 1f, 0f, - 0.5f, 0.5f, 0f, 0f, 1f, - -0.5f, 0.5f, 1f, 1f, 1f); + -0.5f, -0.5f, 1f, 0f, 0f, 1f, 0f, + 0.5f, -0.5f, 0f, 1f, 0f, 0f, 0f, + 0.5f, 0.5f, 0f, 0f, 1f, 0f, 1f, + -0.5f, 0.5f, 1f, 1f, 1f, 1f, 1f); private final IntBuffer indexData = BufferUtils.createIntBuffer(0, 1, 2, 2, 3, 0); + private final Transform modelTransform = new Transform(); + private Texture texture; public static void main(String[] args) { VulkanHelperTest app = new VulkanHelperTest(); @@ -68,10 +82,18 @@ public static void main(String[] args) { app.start(); } + public VulkanHelperTest() { + super(new FlyCamAppState()); + } + @Override public void simpleInitApp() { assetManager.registerLoader(ShadercLoader.class, "glsl"); + assetManager.registerLoader(VulkanImageLoader.class, "png", "jpg"); + flyCam.setMoveSpeed(5f); + flyCam.setDragToRotate(true); + deviceExtensions.add(KHRSwapchain.VK_KHR_SWAPCHAIN_EXTENSION_NAME); long window = ((LwjglVulkanContext)context).getWindowHandle(); @@ -86,17 +108,19 @@ public void simpleInitApp() { instance = inst.build(); // debug callbacks - try (MemoryStack stack = MemoryStack.stackPush()) { - createDebugMessenger(stack); - } + logger = new VulkanLogger(instance, Level.SEVERE); // surface surface = new Surface(instance, window); // physical device - PhysicalDevice physDevice = PhysicalDevice.getPhysicalDevice( - instance.getNativeObject(), - Arrays.asList(surface, DeviceEvaluator.extensions(deviceExtensions), DeviceEvaluator.swapchain(surface)), + PhysicalDevice physDevice = PhysicalDevice.getSuitableDevice( + instance, Arrays.asList( + surface, + DeviceEvaluator.extensions(deviceExtensions), + DeviceEvaluator.swapchain(surface), + DeviceEvaluator.anisotropy() + ), () -> new SimpleQueueFamilies(surface)); // queue families @@ -115,12 +139,18 @@ public void simpleInitApp() { } } + descriptorLayout = new DescriptorSetLayout(device, + SetLayoutBinding.uniformBuffer(0, 1, VK_SHADER_STAGE_VERTEX_BIT), + SetLayoutBinding.combinedImageSampler(1, 1, VK_SHADER_STAGE_FRAGMENT_BIT)); + descriptorPool = new DescriptorPool(device, 2, + PoolSize.uniformBuffers(2), PoolSize.combinedImageSamplers(2)); + // pipeline + pipelineLayout = new PipelineLayout(device, descriptorLayout); vertModule = new ShaderModule(device, assetManager.loadAsset(ShadercLoader.key( "Shaders/VulkanVertTest.glsl", ShaderType.Vertex)), "main"); fragModule = new ShaderModule(device, assetManager.loadAsset(ShadercLoader.key( "Shaders/VulkanFragTest.glsl", ShaderType.Fragment)), "main"); - pipelineLayout = new PipelineLayout(device); try (RenderPassBuilder pass = new RenderPassBuilder()) { int color = pass.createAttachment(a -> a .format(swapchain.getFormat()) @@ -151,47 +181,41 @@ public void simpleInitApp() { swapchain.createFrameBuffers(renderPass); pipeline = new GraphicsPipeline(device, pipelineLayout, renderPass, new RenderState(), vertModule, fragModule, new MeshDescription()); graphicsPool = new CommandPool(device, queues.getGraphicsQueue(), false, true); - renderer = new VulkanRenderManager(2, Frame::new); CommandPool transferPool = new CommandPool(device, queues.getGraphicsQueue(), true, false); // vertex buffers try (MemoryStack stack = MemoryStack.stackPush()) { - GpuBuffer staging = new GpuBuffer(device, vertexData.capacity() * Float.BYTES, - new BufferArgs().transferSrc().hostVisible().hostCoherent()); - staging.copy(stack, vertexData); - vertexBuffer = new GpuBuffer(device, staging.getSize(), - new BufferArgs().transferDst().vertexBuffer().deviceLocal()); - CommandBuffer commands = transferPool.allocateOneTimeCommandBuffer(); - vertexBuffer.recordCopy(stack, commands, staging, 0, 0, (long)vertexData.limit() * Float.BYTES); - commands.submit(null, null, null); - transferPool.getQueue().waitIdle(); // todo: use fences to wait on transfer operations - staging.freeMemory(); // destroys buffer + // cpu-accessible memory is not usually fast for the gpu to access, but + // the cpu cannot directly access fast gpu memory. The solution is to + // copy cpu-side data to a mutual staging buffer, then have the gpu copy + // that data to faster memory. Hence, why we do two copy operations here. + vertexBuffer = new StageableBuffer(device, vertexData.capacity() * Float.BYTES, + new BufferUsageFlags().vertexBuffer(), new MemoryFlags().deviceLocal(), false); + vertexBuffer.copy(stack, vertexData); // copy data to staging buffer + vertexBuffer.transfer(transferPool); // transfer staged data to vertex buffer + vertexBuffer.freeStagingBuffer(); + // index buffer + indexBuffer = new StageableBuffer(device, indexData.capacity() * Integer.BYTES, + new BufferUsageFlags().indexBuffer(), new MemoryFlags().deviceLocal(), false); + indexBuffer.copy(stack, indexData); + indexBuffer.transfer(transferPool); + indexBuffer.freeStagingBuffer(); } - // index buffers - try (MemoryStack stack = MemoryStack.stackPush()) { - GpuBuffer staging = new GpuBuffer(device, indexData.capacity() * Integer.BYTES, - new BufferArgs().transferSrc().hostVisible().hostCoherent()); - staging.copy(stack, indexData); - indexBuffer = new GpuBuffer(device, staging.getSize(), - new BufferArgs().transferDst().indexBuffer().deviceLocal()); - CommandBuffer commands = transferPool.allocateOneTimeCommandBuffer(); - indexBuffer.recordCopy(stack, commands, staging, 0, 0, (long)indexData.limit() * Integer.BYTES); - commands.submit(null, null, null); - transferPool.getQueue().waitIdle(); - staging.freeMemory(); - } + GpuImage image = loadImage("Common/Textures/MissingTexture.png", transferPool); + texture = new Texture(device, image.createView(VK_IMAGE_VIEW_TYPE_2D, VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1), + VK_FILTER_LINEAR, VK_FILTER_LINEAR, VK_SAMPLER_ADDRESS_MODE_REPEAT, VK_SAMPLER_MIPMAP_MODE_LINEAR); + + renderer = new VulkanRenderManager(2, n -> new Frame()); } @Override public void stop() { - if (debugMessenger != NULL) { - System.out.println(" destroy debug messenger"); - verifyExtensionMethod(instance.getNativeObject(), "vkDestroyDebugUtilsMessengerEXT"); - vkDestroyDebugUtilsMessengerEXT(instance.getNativeObject(), debugMessenger, null); - } + applicationStopped = true; + device.waitIdle(); + Native.get().clear(); // destroy all native objects super.stop(); } @@ -223,50 +247,81 @@ public void simpleUpdate(float tpf) { renderer.render(tpf); } - private VkDebugUtilsMessengerCreateInfoEXT createDebugger(MemoryStack stack, VkDebugUtilsMessengerCallbackEXT callback) { - VkDebugUtilsMessengerCreateInfoEXT create = VkDebugUtilsMessengerCreateInfoEXT.calloc(stack) - .sType(VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT) - .messageSeverity(VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT - | VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT) - .messageType(VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT | - VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT); - if (callback != null) { - create.pfnUserCallback(callback); + private GpuImage loadImage(String file, CommandPool transferPool) { + try (MemoryStack stack = MemoryStack.stackPush()) { + VulkanImageLoader.ImageData data = assetManager.loadAsset(VulkanImageLoader.key(file)); + GpuBuffer staging = new GpuBuffer(device, data.getBuffer().limit(), + new BufferUsageFlags().transferSrc(), new MemoryFlags().hostVisible().hostCoherent(), false); + staging.copy(stack, data.getBuffer()); + GpuImage image = new GpuImage(device, data.getWidth(), data.getHeight(), data.getFormat(), + new ImageUsageFlags().transferDst().sampled(), new MemoryFlags().deviceLocal()); + CommandBuffer commands = transferPool.allocateOneTimeCommandBuffer(); + commands.begin(); + image.transitionLayout(commands, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL); + VkBufferImageCopy.Buffer region = VkBufferImageCopy.calloc(1, stack) + .bufferOffset(0) + .bufferRowLength(0) // padding bytes + .bufferImageHeight(0); // padding bytes + region.imageSubresource().aspectMask(VK_IMAGE_ASPECT_COLOR_BIT) + .mipLevel(0) + .baseArrayLayer(0) + .layerCount(1); + region.imageOffset().set(0, 0, 0); + region.imageExtent().set(data.getWidth(), data.getHeight(), 1); + vkCmdCopyBufferToImage(commands.getBuffer(), staging.getNativeObject(), + image.getNativeObject(), VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, region); + image.transitionLayout(commands, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); + commands.end(); + commands.submit(null, null, null); + transferPool.getQueue().waitIdle(); + return image; } - return create; } - private void createDebugMessenger(MemoryStack stack) { - verifyExtensionMethod(instance.getNativeObject(), "vkCreateDebugUtilsMessengerEXT"); - debugMessenger = getLong(stack, ptr -> vkCreateDebugUtilsMessengerEXT( - instance.getNativeObject(), createDebugger(stack, debugCallback), null, ptr)); - } - - private class Frame implements Runnable { + private class Frame implements Consumer { - private final int index; private final CommandBuffer graphicsCommands = graphicsPool.allocateCommandBuffer(); private final Semaphore imageAvailable = new Semaphore(device); private final Semaphore renderFinished = new Semaphore(device); private final Fence inFlight = new Fence(device, true); - - private Frame(int index) { - this.index = index; + private final GpuBuffer uniforms; + private final DescriptorSet descriptorSet; + + public Frame() { + uniforms = new PersistentBuffer(device, 16 * Float.BYTES, + new BufferUsageFlags().uniformBuffer(), + new MemoryFlags().hostVisible().hostCoherent(), false); + descriptorSet = descriptorPool.allocateSets(descriptorLayout)[0]; + descriptorSet.write(BufferSetWriter.uniformBuffers(0, 0, new BufferDescriptor(uniforms)), + ImageSetWriter.combinedImageSampler(1, 0, new ImageDescriptor(texture, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL))); } @Override - public void run() { + public void accept(Float tpf) { + if (applicationStopped) { + return; + } inFlight.block(5000); + if (applicationStopped) { + return; + } Swapchain.SwapchainImage image = swapchain.acquireNextImage(VulkanHelperTest.this, imageAvailable, null, 5000); if (image == null) { - return; + return; // no image available: skip rendering this frame } inFlight.reset(); + renderManager.setCamera(cam, false); graphicsCommands.reset(); graphicsCommands.begin(); renderPass.begin(graphicsCommands, image.getFrameBuffer()); pipeline.bind(graphicsCommands); try (MemoryStack stack = MemoryStack.stackPush()) { + modelTransform.getRotation().multLocal(new Quaternion().fromAngleAxis(tpf, Vector3f.UNIT_Y)); + cam.getViewProjectionMatrix().mult(modelTransform.toTransformMatrix()) + .fillFloatBuffer(uniforms.mapFloats(stack, 0, 16, 0), true); + vkCmdBindDescriptorSets(graphicsCommands.getBuffer(), VK_PIPELINE_BIND_POINT_GRAPHICS, + pipelineLayout.getNativeObject(), 0, stack.longs(descriptorSet.getId()), null); + uniforms.unmap(); vkCmdBindVertexBuffers(graphicsCommands.getBuffer(), 0, stack.longs(vertexBuffer.getNativeObject()), stack.longs(0)); vkCmdBindIndexBuffer(graphicsCommands.getBuffer(), indexBuffer.getNativeObject(), 0, VK_INDEX_TYPE_UINT32); VkViewport.Buffer vp = VkViewport.calloc(1, stack) @@ -280,7 +335,6 @@ public void run() { scissor.extent(swapchain.getExtent().toStruct(stack)); vkCmdSetScissor(graphicsCommands.getBuffer(), 0, scissor); } - //vkCmdDraw(graphicsCommands.getBuffer(), vertexData.limit() / 5, 1, 0, 0); vkCmdDrawIndexed(graphicsCommands.getBuffer(), indexData.limit(), 1, 0, 0, 0); vkCmdEndRenderPass(graphicsCommands.getBuffer()); graphicsCommands.end(); @@ -305,26 +359,30 @@ public SimpleQueueFamilies(Surface surface) { @Override public boolean populate(PhysicalDevice device, VkQueueFamilyProperties.Buffer properties) { - IntBuffer ibuf = MemoryUtil.memAllocInt(1); - for (int i = 0; i < properties.limit(); i++) { - VkQueueFamilyProperties props = properties.get(i); - if (graphicsIndex == null && (props.queueFlags() & VK13.VK_QUEUE_GRAPHICS_BIT) > 0) { - graphicsIndex = i; - } - if (presentIndex == null) { - KHRSurface.vkGetPhysicalDeviceSurfaceSupportKHR( - device.getDevice(), i, surface.getNativeObject(), ibuf); - if (ibuf.get(0) == VK13.VK_TRUE) { - presentIndex = i; + try (MemoryStack stack = MemoryStack.stackPush()) { + IntBuffer ibuf = stack.callocInt(1); + for (int i = 0; i < properties.limit(); i++) { + VkQueueFamilyProperties props = properties.get(i); + if (graphicsIndex == null && (props.queueFlags() & VK13.VK_QUEUE_GRAPHICS_BIT) > 0) { + graphicsIndex = i; + } else if (presentIndex == null) { + KHRSurface.vkGetPhysicalDeviceSurfaceSupportKHR( + device.getDevice(), i, surface.getNativeObject(), ibuf); + if (ibuf.get(0) == VK13.VK_TRUE) { + presentIndex = i; + } + } + if (isComplete()) { + return true; } } } - MemoryUtil.memFree(ibuf); - return isComplete(); + return false; } @Override public VkDeviceQueueCreateInfo.Buffer createLogicalBuffers(MemoryStack stack) { + System.out.println("selected queues: " + graphicsIndex + ", " + presentIndex); VkDeviceQueueCreateInfo.Buffer create = VkDeviceQueueCreateInfo.calloc(NUM_QUEUES, stack); create.get(0).sType(VK13.VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO) .queueFamilyIndex(graphicsIndex) diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java index cf97770299..b41eb05cca 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java @@ -28,6 +28,7 @@ import java.nio.LongBuffer; import java.util.*; import java.util.concurrent.TimeUnit; +import java.util.function.Consumer; import java.util.logging.Level; import java.util.logging.Logger; @@ -560,7 +561,7 @@ private void addExtension(PointerBuffer ext) { instanceExtensions.add(ext); } - private class Frame implements Runnable { + private class Frame implements Consumer { private final Semaphore imageAvailable = null; private final Semaphore renderFinished = null; @@ -569,7 +570,7 @@ private class Frame implements Runnable { public Frame() {} @Override - public void run() { + public void accept(Float tpf) { try (MemoryStack stack = MemoryStack.stackPush()) { System.out.println("start frame render commands"); inFlight.blockThenReset(5000); diff --git a/jme3-lwjgl3/src/main/java/com/jme3/system/vulkan/LwjglVulkanContext.java b/jme3-lwjgl3/src/main/java/com/jme3/system/vulkan/LwjglVulkanContext.java index af3853d0c8..d72b629447 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/system/vulkan/LwjglVulkanContext.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/system/vulkan/LwjglVulkanContext.java @@ -175,9 +175,10 @@ protected void syncFrames() { protected void engineTerminate() { System.out.println("terminate engine"); engine.destroy(); - glfwDestroyWindow(window); + //glfwDestroyWindow(window); + glfwDestroy(); glfwTerminate(); - LOGGER.info("Display destroyed."); + System.out.println("Engine termination complete. Have a nice day."); } protected void updateSizes() { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/DeviceEvaluator.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/DeviceEvaluator.java index 431b2954bd..673a534257 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/DeviceEvaluator.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/DeviceEvaluator.java @@ -22,6 +22,10 @@ static DeviceSwapchainSupport swapchain(Surface surface) { return new DeviceSwapchainSupport(surface); } + static DeviceAnisotropySupport anisotropy() { + return new DeviceAnisotropySupport(); + } + class DeviceExtensionSupport implements DeviceEvaluator { private final Collection extensions; @@ -34,15 +38,10 @@ public DeviceExtensionSupport(Collection extensions) { public Float evaluateDevice(PhysicalDevice device) { try (MemoryStack stack = MemoryStack.stackPush()) { VkExtensionProperties.Buffer exts = device.getExtensions(stack); - System.out.println("available:"); - for (VkExtensionProperties p : exts) { - System.out.println(" " + p.extensionNameString()); + if (extensions.stream().allMatch(e -> exts.stream().anyMatch( + p -> p.extensionNameString().equals(e)))) { + return 0f; } - if (extensions.stream().allMatch(e -> { - System.out.println("trying " + e + " extension..."); - return exts.stream().anyMatch( - p -> p.extensionNameString().equals(e)); })) return 0f; - System.out.println("Reject device by extensions"); return null; } } @@ -62,10 +61,23 @@ public Float evaluateDevice(PhysicalDevice device) { if (device.querySwapchainSupport(surface)) { return 0f; } - System.out.println("Reject device by swapchain support"); return null; } } + class DeviceAnisotropySupport implements DeviceEvaluator { + + @Override + public Float evaluateDevice(PhysicalDevice device) { + try (MemoryStack stack = MemoryStack.stackPush()) { + if (device.getFeatures(stack).samplerAnisotropy()) { + return 0f; + } + return null; + } + } + + } + } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/FrameBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/FrameBuffer.java index 4bd242b86a..fb0e6d0d91 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/FrameBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/FrameBuffer.java @@ -2,6 +2,7 @@ import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.images.ImageView; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkFramebufferCreateInfo; @@ -29,7 +30,7 @@ public FrameBuffer(LogicalDevice device, RenderPass compat, int width, int heigh for (int i = 0; i < attachments.length; i++) { att.put(i, attachments[i].getNativeObject()); } - VkFramebufferCreateInfo create = VkFramebufferCreateInfo.calloc() + VkFramebufferCreateInfo create = VkFramebufferCreateInfo.calloc(stack) .sType(VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO) .renderPass(compat.getNativeObject()) .pAttachments(att) diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java index d358f29427..cfdf8987bc 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java @@ -61,6 +61,7 @@ public GraphicsPipeline(LogicalDevice device, PipelineLayout layout, RenderPass .lineWidth(1f) .cullMode(RenderStateToVulkan.faceCull(state.getFaceCullMode())) .frontFace(VK_FRONT_FACE_CLOCKWISE) + .cullMode(VK_CULL_MODE_NONE) .depthBiasEnable(false); VkPipelineMultisampleStateCreateInfo multisample = VkPipelineMultisampleStateCreateInfo.calloc(stack) .sType(VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO) diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Image.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Image.java deleted file mode 100644 index 5a5ec7251e..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Image.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.jme3.vulkan; - -import com.jme3.util.natives.Native; -import org.lwjgl.vulkan.VkImageViewCreateInfo; - -public interface Image extends Native { - - ImageView createView(VkImageViewCreateInfo create); - - LogicalDevice getDevice(); - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/LogicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/LogicalDevice.java index 89e2c55c18..362e42395b 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/LogicalDevice.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/LogicalDevice.java @@ -22,7 +22,7 @@ public LogicalDevice(PhysicalDevice physical, PointerBuffer extensions, PointerB VkDeviceCreateInfo create = VkDeviceCreateInfo.calloc(stack) .sType(VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO) .pQueueCreateInfos(physical.getQueueFamilies().createLogicalBuffers(stack)) - .pEnabledFeatures(physical.getFeatures()); + .pEnabledFeatures(physical.getFeatures(stack).samplerAnisotropy(true)); if (extensions != null) { create.ppEnabledExtensionNames(extensions); } @@ -35,6 +35,7 @@ public LogicalDevice(PhysicalDevice physical, PointerBuffer extensions, PointerB device = new VkDevice(ptr.get(0), physical.getDevice(), create); } ref = Native.get().register(this); + physical.getInstance().getNativeReference().addDependent(ref); } @Override @@ -61,4 +62,8 @@ public PhysicalDevice getPhysicalDevice() { return physical; } + public void waitIdle() { + vkDeviceWaitIdle(device); + } + } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MeshDescription.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MeshDescription.java index 72bc1906ad..6367a77a03 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MeshDescription.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MeshDescription.java @@ -17,10 +17,10 @@ public MeshDescription() { // for each vertex buffer on the mesh bindings = VkVertexInputBindingDescription.calloc(1) .binding(0) - .stride(Float.BYTES * 5) // bytes per vertex + .stride(Float.BYTES * 7) // bytes per vertex .inputRate(VK_VERTEX_INPUT_RATE_VERTEX); // for each attribute in each vertex buffer - attributes = VkVertexInputAttributeDescription.calloc(2); + attributes = VkVertexInputAttributeDescription.calloc(3); attributes.get(0).binding(0) .location(0) .format(VK_FORMAT_R32G32_SFLOAT) @@ -29,6 +29,10 @@ public MeshDescription() { .location(1) .format(VK_FORMAT_R32G32B32_SFLOAT) .offset(Float.BYTES * 2); + attributes.get(2).binding(0) + .location(2) + .format(VK_FORMAT_R32G32_SFLOAT) + .offset(Float.BYTES * 5); ref = Native.get().register(this); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/OldImage.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/OldImage.java deleted file mode 100644 index d3ec4ccc11..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/OldImage.java +++ /dev/null @@ -1,127 +0,0 @@ -package com.jme3.vulkan; - -import com.jme3.util.natives.Native; -import com.jme3.util.natives.NativeReference; -import org.lwjgl.system.MemoryStack; -import org.lwjgl.system.MemoryUtil; -import org.lwjgl.vulkan.*; - -import java.nio.LongBuffer; - -import static com.jme3.renderer.vulkan.VulkanUtils.*; -import static org.lwjgl.vulkan.VK10.*; - -public class OldImage implements Image { - - private final LogicalDevice device; - private final NativeReference ref; - private final int width, height, format, tiling, usage, mem; - private long id, memory; - - public OldImage(LogicalDevice device, int width, int height, int format, int tiling, int usage, int mem) { - this.device = device; - this.width = width; - this.height = height; - this.format = format; - this.tiling = tiling; - this.usage = usage; - this.mem = mem; - try (MemoryStack stack = MemoryStack.stackPush()) { - VkImageCreateInfo create = VkImageCreateInfo.calloc(stack) - .sType(VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO) - .imageType(VK_IMAGE_TYPE_2D) - .mipLevels(1) - .arrayLayers(1) - .format(format) - .tiling(tiling) - .initialLayout(VK_IMAGE_LAYOUT_UNDEFINED) - .usage(usage) - .samples(VK_SAMPLE_COUNT_1_BIT) - .sharingMode(VK_SHARING_MODE_EXCLUSIVE); - create.extent().width(width).height(height).depth(1); - createImageMemory(stack, create, mem); - } - ref = Native.get().register(this); - device.getNativeReference().addDependent(ref); - } - - public OldImage(LogicalDevice device, VkImageCreateInfo create, int mem) { - this.device = device; - this.width = create.extent().width(); - this.height = create.extent().height(); - this.format = create.format(); - this.tiling = create.tiling(); - this.usage = create.usage(); - this.mem = mem; - try (MemoryStack stack = MemoryStack.stackPush()) { - createImageMemory(stack, create, mem); - } - ref = Native.get().register(this); - device.getNativeReference().addDependent(ref); - } - - public OldImage(LogicalDevice device, long id) { - width = height = format = tiling = usage = mem = 0; // todo: fix image interfacing - this.device = device; - System.out.println("Assign image ID: " + id); - this.id = id; - this.memory = VK_NULL_HANDLE; - ref = Native.get().register(this); - device.getNativeReference().addDependent(ref); - } - - private void createImageMemory(MemoryStack stack, VkImageCreateInfo create, int mem) { - create.sType(VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO); - vkCreateImage(device.getNativeObject(), create, null, stack.longs(id)); - VkMemoryRequirements memReq = VkMemoryRequirements.create(); - vkGetImageMemoryRequirements(device.getNativeObject(), id, memReq); - VkMemoryAllocateInfo allocate = VkMemoryAllocateInfo.create() - .sType(VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO) - .allocationSize(memReq.size()) - .memoryTypeIndex(device.getPhysicalDevice().findMemoryType(memReq.memoryTypeBits(), mem)); - LongBuffer memBuf = stack.mallocLong(1); - check(vkAllocateMemory(device.getNativeObject(), allocate, null, memBuf), "Failed to allocate image memory"); - memory = memBuf.get(0); - vkBindImageMemory(device.getNativeObject(), id, memory, 0); - memReq.free(); - allocate.free(); - } - - @Override - public Long getNativeObject() { - return id; - } - - @Override - public Runnable createNativeDestroyer() { - return () -> { - vkDestroyImage(device.getNativeObject(), id, null); - vkFreeMemory(device.getNativeObject(), memory, null); - id = VK_NULL_HANDLE; - memory = VK_NULL_HANDLE; - }; - } - - @Override - public void prematureNativeDestruction() {} - - @Override - public NativeReference getNativeReference() { - return ref; - } - - @Override - public LogicalDevice getDevice() { - return device; - } - - public long getMemory() { - return memory; - } - - @Override - public ImageView createView(VkImageViewCreateInfo create) { - return new ImageView(this, create); - } - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java index 2bd75dcd65..f75c1e3f89 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java @@ -2,7 +2,6 @@ import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; -import org.lwjgl.system.MemoryUtil; import org.lwjgl.vulkan.*; import java.nio.ByteBuffer; @@ -15,15 +14,17 @@ public class PhysicalDevice { + private final VulkanInstance instance; private final VkPhysicalDevice device; private final T queues; private final VkQueueFamilyProperties.Buffer queueProperties; - public PhysicalDevice(VkInstance instance, T queues, long id) { + public PhysicalDevice(VulkanInstance instance, T queues, long id) { + this.instance = instance; + this.device = new VkPhysicalDevice(id, instance.getNativeObject()); + this.queues = queues; try (MemoryStack stack = MemoryStack.stackPush()) { - this.queues = queues; - this.device = new VkPhysicalDevice(id, instance); - this.queueProperties = enumerateBuffer(stack, VkQueueFamilyProperties::malloc, + this.queueProperties = enumerateBuffer(stack, n -> VkQueueFamilyProperties.calloc(n, stack), (count, buffer) -> vkGetPhysicalDeviceQueueFamilyProperties(device, count, buffer)); this.queues.populate(this, getQueueFamilyProperties()); } @@ -42,6 +43,10 @@ public Float evaluate(Collection evaluators) { return score; } + public VulkanInstance getInstance() { + return instance; + } + public VkPhysicalDevice getDevice() { return device; } @@ -54,14 +59,14 @@ public VkQueueFamilyProperties.Buffer getQueueFamilyProperties() { return queueProperties; } - public VkPhysicalDeviceProperties getProperties() { - VkPhysicalDeviceProperties props = VkPhysicalDeviceProperties.create(); + public VkPhysicalDeviceProperties getProperties(MemoryStack stack) { + VkPhysicalDeviceProperties props = VkPhysicalDeviceProperties.malloc(stack); vkGetPhysicalDeviceProperties(device, props); return props; } - public VkPhysicalDeviceFeatures getFeatures() { - VkPhysicalDeviceFeatures features = VkPhysicalDeviceFeatures.create(); + public VkPhysicalDeviceFeatures getFeatures(MemoryStack stack) { + VkPhysicalDeviceFeatures features = VkPhysicalDeviceFeatures.malloc(stack); vkGetPhysicalDeviceFeatures(device, features); return features; } @@ -126,13 +131,13 @@ public boolean querySwapchainSupport(Surface surface) { } @SuppressWarnings("unchecked") - public static PhysicalDevice getPhysicalDevice(VkInstance instance, + public static PhysicalDevice getSuitableDevice(VulkanInstance instance, Collection evaluators, Supplier queueFactory) { try (MemoryStack stack = MemoryStack.stackPush()) { System.out.println("Get physical device from instance: " + instance); PointerBuffer devices = enumerateBuffer(stack, stack::mallocPointer, - (count, buffer) -> check(vkEnumeratePhysicalDevices(instance, count, buffer), + (count, buffer) -> check(vkEnumeratePhysicalDevices(instance.getNativeObject(), count, buffer), "Failed to enumerate physical devices.")); PhysicalDevice device = null; float score = -1f; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java index 8acb3c564d..83a5ceea93 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java @@ -1,9 +1,10 @@ package com.jme3.vulkan; +import com.jme3.renderer.vulkan.VulkanUtils; import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.descriptors.DescriptorSetLayout; import org.lwjgl.system.MemoryStack; -import org.lwjgl.system.MemoryUtil; import org.lwjgl.vulkan.VkPipelineLayoutCreateInfo; import java.nio.LongBuffer; @@ -15,13 +16,17 @@ public class PipelineLayout implements Native { private final LogicalDevice device; private final NativeReference ref; - private long id; + private final DescriptorSetLayout[] layouts; + private final long id; - public PipelineLayout(LogicalDevice device) { + public PipelineLayout(LogicalDevice device, DescriptorSetLayout... layouts) { this.device = device; + this.layouts = layouts; try (MemoryStack stack = MemoryStack.stackPush()) { VkPipelineLayoutCreateInfo create = VkPipelineLayoutCreateInfo.calloc(stack) - .sType(VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO); + .sType(VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO) + .setLayoutCount(layouts.length) + .pSetLayouts(VulkanUtils.accumulate(stack, layouts)); LongBuffer idBuf = stack.mallocLong(1); check(vkCreatePipelineLayout(device.getNativeObject(), create, null, idBuf), "Failed to create pipeline."); @@ -38,10 +43,7 @@ public Long getNativeObject() { @Override public Runnable createNativeDestroyer() { - return () -> { - vkDestroyPipelineLayout(device.getNativeObject(), id, null); - id = VK_NULL_HANDLE; - }; + return () -> vkDestroyPipelineLayout(device.getNativeObject(), id, null); } @Override @@ -52,4 +54,8 @@ public NativeReference getNativeReference() { return ref; } + public DescriptorSetLayout[] getDescriptorSetLayouts() { + return layouts; + } + } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ShaderModule.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ShaderModule.java index 79d2c5d169..5810266f90 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ShaderModule.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ShaderModule.java @@ -29,6 +29,7 @@ public ShaderModule(LogicalDevice device, ByteBuffer code, String entryPoint) { "Failed to create shader module.")); } ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); } @Override diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java index 707f7e305d..e03c8f6d6c 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java @@ -2,8 +2,9 @@ import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.images.Image; +import com.jme3.vulkan.images.ImageView; import org.lwjgl.system.MemoryStack; -import org.lwjgl.system.MemoryUtil; import org.lwjgl.vulkan.*; import java.nio.IntBuffer; @@ -28,10 +29,10 @@ public class Swapchain implements Native { public Swapchain(LogicalDevice device, Surface surface, SwapchainSupport support) { this.device = device; this.surface = surface; - reload(support); ref = Native.get().register(this); device.getNativeReference().addDependent(ref); surface.getNativeReference().addDependent(ref); + reload(support); } @Override @@ -102,6 +103,7 @@ public void reload(SwapchainSupport support) { images.add(new SwapchainImage(device, imgs.get(i))); } } + ref.refresh(); // refresh the native destroyer } public void createFrameBuffers(RenderPass compat) { @@ -156,30 +158,73 @@ public int getFormat() { return format; } - public class SwapchainImage extends OldImage { + public class SwapchainImage implements Image { + private final LogicalDevice device; + private final NativeReference ref; + private final long id; private final ImageView view; private FrameBuffer frameBuffer; private SwapchainImage(LogicalDevice device, long id) { - super(device, id); - try (MemoryStack stack = MemoryStack.stackPush()) { - VkImageViewCreateInfo create = VkImageViewCreateInfo.calloc(stack) - .sType(VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO) - .image(getNativeObject()) - .viewType(VK_IMAGE_VIEW_TYPE_2D) - .format(format); - create.components().r(VK_COMPONENT_SWIZZLE_IDENTITY) - .g(VK_COMPONENT_SWIZZLE_IDENTITY) - .b(VK_COMPONENT_SWIZZLE_IDENTITY) - .a(VK_COMPONENT_SWIZZLE_IDENTITY); - create.subresourceRange().aspectMask(VK_IMAGE_ASPECT_COLOR_BIT) - .baseMipLevel(0) - .levelCount(1) - .baseArrayLayer(0) - .layerCount(1); - this.view = new ImageView(this, create); - } + this.device = device; + this.id = id; + ref = Native.get().register(this); + Swapchain.this.ref.addDependent(ref); + view = createView(VK_IMAGE_VIEW_TYPE_2D, VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1); + } + + @Override + public ImageView createView(VkImageViewCreateInfo create) { + return new ImageView(this, create); + } + + @Override + public LogicalDevice getDevice() { + return device; + } + + @Override + public int getType() { + return VK_IMAGE_TYPE_2D; + } + + @Override + public int getWidth() { + return extent.x; + } + + @Override + public int getHeight() { + return extent.y; + } + + @Override + public int getDepth() { + return 1; + } + + @Override + public int getFormat() { + return format; + } + + @Override + public Long getNativeObject() { + return id; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> {}; + } + + @Override + public void prematureNativeDestruction() {} + + @Override + public NativeReference getNativeReference() { + return ref; } public void createFrameBuffer(RenderPass compat) { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanLogger.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanLogger.java new file mode 100644 index 0000000000..611ea2fdcd --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanLogger.java @@ -0,0 +1,102 @@ +package com.jme3.vulkan; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.EXTDebugUtils; +import org.lwjgl.vulkan.VkDebugUtilsMessengerCallbackDataEXT; +import org.lwjgl.vulkan.VkDebugUtilsMessengerCallbackEXT; +import org.lwjgl.vulkan.VkDebugUtilsMessengerCreateInfoEXT; + +import java.util.logging.Level; + +import static com.jme3.renderer.vulkan.VulkanUtils.getLong; +import static com.jme3.renderer.vulkan.VulkanUtils.verifyExtensionMethod; +import static org.lwjgl.vulkan.EXTDebugUtils.*; +import static org.lwjgl.vulkan.VK10.VK_FALSE; + +public class VulkanLogger implements Native { + + private final VulkanInstance instance; + private final Level exceptionThreshold; + private final NativeReference ref; + private final long id; + private final VkDebugUtilsMessengerCallbackEXT callback = new VkDebugUtilsMessengerCallbackEXT() { + @Override + public int invoke(int messageSeverity, int messageTypes, long pCallbackData, long pUserData) { + return message(messageSeverity, messageTypes, pCallbackData, pUserData); + } + }; + + public VulkanLogger(VulkanInstance instance, Level exceptionThreshold) { + this.instance = instance; + this.exceptionThreshold = exceptionThreshold; + try (MemoryStack stack = MemoryStack.stackPush()) { + VkDebugUtilsMessengerCreateInfoEXT create = VkDebugUtilsMessengerCreateInfoEXT.calloc(stack) + .sType(VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT) + .messageSeverity( + VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT + | VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT + | VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT + | VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT + ).messageType( + VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT + | VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT + | VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT + ).pfnUserCallback(callback); + verifyExtensionMethod(instance.getNativeObject(), "vkCreateDebugUtilsMessengerEXT"); + id = getLong(stack, ptr -> vkCreateDebugUtilsMessengerEXT(instance.getNativeObject(), create, null, ptr)); + } + ref = Native.get().register(this); + instance.getNativeReference().addDependent(ref); + } + + public int message(int messageSeverity, int messageTypes, long pCallbackData, long pUserData) { + VkDebugUtilsMessengerCallbackDataEXT data = VkDebugUtilsMessengerCallbackDataEXT.create(pCallbackData); + Level lvl = getLoggingLevel(messageSeverity); + if (exceptionThreshold != null && lvl.intValue() >= exceptionThreshold.intValue()) { + throw new RuntimeException(lvl.getName() + ": " + data.pMessageString()); + } else { + System.err.println(lvl.getName() + " " + data.pMessageString()); + } + return VK_FALSE; // always return false, true is only really used for testing validation layers + } + + @Override + public Long getNativeObject() { + return id; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> { + verifyExtensionMethod(instance.getNativeObject(), "vkDestroyDebugUtilsMessengerEXT"); + vkDestroyDebugUtilsMessengerEXT(instance.getNativeObject(), id, null); + callback.close(); + }; + } + + @Override + public void prematureNativeDestruction() {} + + @Override + public NativeReference getNativeReference() { + return ref; + } + + private Level getLoggingLevel(int messageSeverity) { + switch (messageSeverity) { + case EXTDebugUtils.VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT: + return Level.SEVERE; + case EXTDebugUtils.VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT: + return Level.WARNING; + case EXTDebugUtils.VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT: + return Level.INFO; + case EXTDebugUtils.VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT: + return Level.FINE; + default: throw new UnsupportedOperationException("Unsupported severity bit: " + + Integer.numberOfTrailingZeros(Integer.highestOneBit(messageSeverity))); + } + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanRenderManager.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanRenderManager.java index b76424a749..325b0f25a5 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanRenderManager.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanRenderManager.java @@ -2,21 +2,22 @@ import java.util.ArrayList; import java.util.List; +import java.util.function.Consumer; import java.util.function.IntFunction; public class VulkanRenderManager { - private final IntFunction frameFactory; - private final List frames = new ArrayList<>(); + private final IntFunction> frameFactory; + private final List> frames = new ArrayList<>(); private int currentFrame = 0; - public VulkanRenderManager(int frames, IntFunction frameFactory) { + public VulkanRenderManager(int frames, IntFunction> frameFactory) { this.frameFactory = frameFactory; setFrames(frames); } public void render(float tpf) { - frames.get(currentFrame).run(); + frames.get(currentFrame).accept(tpf); if (++currentFrame >= frames.size()) { currentFrame = 0; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/BufferArgs.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/BufferArgs.java deleted file mode 100644 index c5c95648df..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/BufferArgs.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.jme3.vulkan.buffers; - -import static org.lwjgl.vulkan.VK10.*; - -public class BufferArgs { - - private int usage; - private int memFlags = 0; - private boolean concurrent = false; - - public BufferArgs vertexBuffer() { - usage |= VK_BUFFER_USAGE_VERTEX_BUFFER_BIT; - return this; - } - - public BufferArgs indexBuffer() { - usage |= VK_BUFFER_USAGE_INDEX_BUFFER_BIT; - return this; - } - - public BufferArgs transferSrc() { - usage |= VK_BUFFER_USAGE_TRANSFER_SRC_BIT; - return this; - } - - public BufferArgs transferDst() { - usage |= VK_BUFFER_USAGE_TRANSFER_DST_BIT; - return this; - } - - public BufferArgs hostVisible() { - memFlags |= VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; - return this; - } - - public BufferArgs hostCoherent() { - memFlags |= VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; - return this; - } - - public BufferArgs hostCached() { - memFlags |= VK_MEMORY_PROPERTY_HOST_CACHED_BIT; - return this; - } - - public BufferArgs deviceLocal() { - memFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; - return this; - } - - public BufferArgs lazilyAllocated() { - memFlags |= VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT; - return this; - } - - public BufferArgs setConcurrent(boolean concurrent) { - this.concurrent = concurrent; - return this; - } - - public int getUsage() { - return usage; - } - - public int getMemoryFlags() { - return memFlags; - } - - public boolean isConcurrent() { - return concurrent; - } - - public int getSharingMode() { - return concurrent ? VK_SHARING_MODE_CONCURRENT : VK_SHARING_MODE_EXCLUSIVE; - } - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java index 6707d10a3b..d5c930e421 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java @@ -1,10 +1,13 @@ package com.jme3.vulkan.buffers; +import com.jme3.renderer.vulkan.VulkanUtils; import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; import com.jme3.vulkan.CommandBuffer; import com.jme3.vulkan.LogicalDevice; -import com.jme3.vulkan.MemoryRegion; +import com.jme3.vulkan.flags.MemoryFlags; +import com.jme3.vulkan.flags.BufferUsageFlags; +import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryUtil; import org.lwjgl.vulkan.VkBufferCopy; @@ -22,17 +25,17 @@ public class GpuBuffer implements Native { private final NativeReference ref; private final int size; private final long id; - private final MemoryRegion memory; + protected final MemoryRegion memory; - public GpuBuffer(LogicalDevice device, int size, BufferArgs args) { + public GpuBuffer(LogicalDevice device, int size, BufferUsageFlags usage, MemoryFlags mem, boolean concurrent) { this.device = device; this.size = size; try (MemoryStack stack = MemoryStack.stackPush()) { VkBufferCreateInfo create = VkBufferCreateInfo.calloc(stack) .sType(VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO) .size(size) // size in bytes - .usage(args.getUsage()) - .sharingMode(args.getSharingMode()); + .usage(usage.getUsageFlags()) + .sharingMode(VulkanUtils.sharingMode(concurrent)); LongBuffer idBuf = stack.mallocLong(1); check(vkCreateBuffer(device.getNativeObject(), create, null, idBuf), "Failed to create buffer."); @@ -40,9 +43,8 @@ public GpuBuffer(LogicalDevice device, int size, BufferArgs args) { VkMemoryRequirements bufferMem = VkMemoryRequirements.malloc(stack); vkGetBufferMemoryRequirements(device.getNativeObject(), id, bufferMem); memory = new MemoryRegion(device, bufferMem.size(), device.getPhysicalDevice().findMemoryType( - stack, bufferMem.memoryTypeBits(), args.getMemoryFlags())); - check(vkBindBufferMemory(device.getNativeObject(), id, memory.getNativeObject(), 0), - "Failed to bind buffer memory"); + stack, bufferMem.memoryTypeBits(), mem.getMemoryFlags())); + memory.bind(this, 0); } ref = Native.get().register(this); device.getNativeReference().addDependent(ref); @@ -67,18 +69,77 @@ public NativeReference getNativeReference() { return ref; } + private void verifyBufferSize(Buffer buffer, long bytesPerElement) { + if (buffer.limit() * bytesPerElement > size) { + throw new BufferOverflowException(); + } + } + + public PointerBuffer map(MemoryStack stack, int offset, int size, int flags) { + return memory.map(stack, offset, size, flags); + } + + public ByteBuffer mapBytes(MemoryStack stack, int offset, int size, int flags) { + return map(stack, offset, size, flags).getByteBuffer(0, size); + } + + public ShortBuffer mapShorts(MemoryStack stack, int offset, int size, int flags) { + return map(stack, offset, size * Short.BYTES, flags).getShortBuffer(0, size); + } + + public IntBuffer mapInts(MemoryStack stack, int offset, int size, int flags) { + return map(stack, offset, size * Integer.BYTES, flags).getIntBuffer(0, size); + } + + public FloatBuffer mapFloats(MemoryStack stack, int offset, int size, int flags) { + return map(stack, offset, size * Float.BYTES, flags).getFloatBuffer(0, size); + } + + public DoubleBuffer mapDoubles(MemoryStack stack, int offset, int size, int flags) { + return map(stack, offset, size * Double.BYTES, flags).getDoubleBuffer(0, size); + } + + public LongBuffer mapLongs(MemoryStack stack, int offset, int size, int flags) { + return map(stack, offset, size * Long.BYTES, flags).getLongBuffer(0, size); + } + public void copy(MemoryStack stack, ByteBuffer buffer) { - MemoryUtil.memCopy(buffer, memory.mapBytes(stack, 0, buffer.limit(), 0)); - memory.unmap(); + verifyBufferSize(buffer, Byte.BYTES); + MemoryUtil.memCopy(buffer, mapBytes(stack, 0, buffer.limit(), 0)); + unmap(); + } + + public void copy(MemoryStack stack, ShortBuffer buffer) { + verifyBufferSize(buffer, Short.BYTES); + MemoryUtil.memCopy(buffer, mapShorts(stack, 0, buffer.limit(), 0)); + unmap(); } public void copy(MemoryStack stack, IntBuffer buffer) { - MemoryUtil.memCopy(buffer, memory.mapInts(stack, 0, buffer.limit(), 0)); - memory.unmap(); + verifyBufferSize(buffer, Integer.BYTES); + MemoryUtil.memCopy(buffer, mapInts(stack, 0, buffer.limit(), 0)); + unmap(); } public void copy(MemoryStack stack, FloatBuffer buffer) { - MemoryUtil.memCopy(buffer, memory.mapFloats(stack, 0, buffer.limit(), 0)); + verifyBufferSize(buffer, Float.BYTES); + MemoryUtil.memCopy(buffer, mapFloats(stack, 0, buffer.limit(), 0)); + unmap(); + } + + public void copy(MemoryStack stack, DoubleBuffer buffer) { + verifyBufferSize(buffer, Double.BYTES); + MemoryUtil.memCopy(buffer, mapDoubles(stack, 0, buffer.limit(), 0)); + unmap(); + } + + public void copy(MemoryStack stack, LongBuffer buffer) { + verifyBufferSize(buffer, Long.BYTES); + MemoryUtil.memCopy(buffer, mapLongs(stack, 0, buffer.limit(), 0)); + unmap(); + } + + public void unmap() { memory.unmap(); } @@ -94,12 +155,8 @@ public void freeMemory() { memory.getNativeReference().destroy(); } - public int getSize() { + public int size() { return size; // size in bytes } - public MemoryRegion getMemory() { - return memory; - } - } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MemoryRegion.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/MemoryRegion.java similarity index 65% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/MemoryRegion.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/MemoryRegion.java index 8067d55512..01f905c386 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MemoryRegion.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/MemoryRegion.java @@ -1,19 +1,17 @@ -package com.jme3.vulkan; +package com.jme3.vulkan.buffers; -import com.jme3.util.IntMap; import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.LogicalDevice; +import com.jme3.vulkan.images.Image; import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryUtil; -import org.lwjgl.system.Struct; -import org.lwjgl.system.StructBuffer; -import org.lwjgl.vulkan.VkInstanceCreateInfo; import org.lwjgl.vulkan.VkMemoryAllocateInfo; import java.nio.*; import java.util.concurrent.atomic.AtomicBoolean; -import java.util.function.BiFunction; +import java.util.function.Consumer; import static com.jme3.renderer.vulkan.VulkanUtils.*; import static org.lwjgl.vulkan.VK10.*; @@ -23,10 +21,12 @@ public class MemoryRegion implements Native { private final LogicalDevice device; private final NativeReference ref; private final long id; + private final long size; private final AtomicBoolean mapped = new AtomicBoolean(false); public MemoryRegion(LogicalDevice device, long size, int typeIndex) { this.device = device; + this.size = size; try (MemoryStack stack = MemoryStack.stackPush()) { VkMemoryAllocateInfo allocate = VkMemoryAllocateInfo.calloc(stack) .sType(VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO) @@ -59,6 +59,16 @@ public NativeReference getNativeReference() { return ref; } + public void bind(GpuBuffer buffer, long offset) { + check(vkBindBufferMemory(device.getNativeObject(), buffer.getNativeObject(), id, offset), + "Failed to bind buffer memory."); + } + + public void bind(Image image, long offset) { + check(vkBindImageMemory(device.getNativeObject(), image.getNativeObject(), id, offset), + "Failed to bind image memory."); + } + public PointerBuffer map(MemoryStack stack, int offset, int size, int flags) { if (mapped.getAndSet(true)) { throw new IllegalStateException("Memory already mapped."); @@ -68,30 +78,6 @@ public PointerBuffer map(MemoryStack stack, int offset, int size, int flags) { return data; } - public ByteBuffer mapBytes(MemoryStack stack, int offset, int size, int flags) { - return map(stack, offset, size, flags).getByteBuffer(0, size); - } - - public ShortBuffer mapShorts(MemoryStack stack, int offset, int size, int flags) { - return map(stack, offset, size * Short.BYTES, flags).getShortBuffer(0, size); - } - - public IntBuffer mapInts(MemoryStack stack, int offset, int size, int flags) { - return map(stack, offset, size * Integer.BYTES, flags).getIntBuffer(0, size); - } - - public FloatBuffer mapFloats(MemoryStack stack, int offset, int size, int flags) { - return map(stack, offset, size * Float.BYTES, flags).getFloatBuffer(0, size); - } - - public DoubleBuffer mapDoubles(MemoryStack stack, int offset, int size, int flags) { - return map(stack, offset, size * Double.BYTES, flags).getDoubleBuffer(0, size); - } - - public LongBuffer mapLongs(MemoryStack stack, int offset, int size, int flags) { - return map(stack, offset, size * Long.BYTES, flags).getLongBuffer(0, size); - } - public void unmap() { if (!mapped.getAndSet(false)) { throw new IllegalStateException("Memory is not mapped."); @@ -99,4 +85,8 @@ public void unmap() { vkUnmapMemory(device.getNativeObject(), id); } + public long getSize() { + return size; + } + } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/PersistentBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/PersistentBuffer.java new file mode 100644 index 0000000000..5a0932fdb0 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/PersistentBuffer.java @@ -0,0 +1,33 @@ +package com.jme3.vulkan.buffers; + +import com.jme3.vulkan.LogicalDevice; +import com.jme3.vulkan.flags.MemoryFlags; +import com.jme3.vulkan.flags.BufferUsageFlags; +import org.lwjgl.BufferUtils; +import org.lwjgl.PointerBuffer; +import org.lwjgl.system.MemoryStack; + +public class PersistentBuffer extends GpuBuffer { + + private final long address; + + public PersistentBuffer(LogicalDevice device, int size, BufferUsageFlags usage, MemoryFlags mem, boolean concurrent) { + super(device, size, usage, mem, concurrent); + try (MemoryStack stack = MemoryStack.stackPush()) { + address = memory.map(stack, 0, size, 0).get(0); + } + } + + @Override + public PointerBuffer map(MemoryStack stack, int offset, int size, int flags) { + return stack.pointers(address); + } + + @Override + public void unmap() {} + + public long getAddress() { + return address; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java new file mode 100644 index 0000000000..49877649b5 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java @@ -0,0 +1,59 @@ +package com.jme3.vulkan.buffers; + +import com.jme3.vulkan.*; +import com.jme3.vulkan.flags.MemoryFlags; +import com.jme3.vulkan.flags.BufferUsageFlags; +import org.lwjgl.PointerBuffer; +import org.lwjgl.system.MemoryStack; + +public class StageableBuffer extends GpuBuffer { + + private final GpuBuffer stage; + + public StageableBuffer(LogicalDevice device, int size, BufferUsageFlags usage, MemoryFlags mem, boolean concurrent) { + super(device, size, usage.transferDst(), mem, concurrent); + stage = new GpuBuffer(device, size, new BufferUsageFlags().transferSrc(), + new MemoryFlags().hostVisible().hostCoherent(), concurrent); + } + + @Override + public PointerBuffer map(MemoryStack stack, int offset, int size, int flags) { + return stage.map(stack, offset, size, flags); + } + + @Override + public void unmap() { + stage.unmap(); + } + + @Override + public void freeMemory() { + super.freeMemory(); + stage.freeMemory(); + } + + public void transfer(CommandPool transferPool) { + transfer(transferPool, null, null, null); + transferPool.getQueue().waitIdle(); + } + + public void transfer(CommandPool transferPool, Semaphore wait, Semaphore signal, Fence fence) { + if (stage.getNativeReference().isDestroyed()) { + throw new IllegalStateException("Staging buffer has already been freed."); + } + CommandBuffer commands = transferPool.allocateOneTimeCommandBuffer(); + try (MemoryStack stack = MemoryStack.stackPush()) { + recordCopy(stack, commands, stage, 0, 0, size()); + } + commands.submit(wait, signal, fence); + } + + public void freeStagingBuffer() { + stage.freeMemory(); + } + + public GpuBuffer getStagingBuffer() { + return stage; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BufferDescriptor.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BufferDescriptor.java new file mode 100644 index 0000000000..46457084a0 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BufferDescriptor.java @@ -0,0 +1,37 @@ +package com.jme3.vulkan.descriptors; + +import com.jme3.vulkan.buffers.GpuBuffer; +import org.lwjgl.vulkan.VkDescriptorBufferInfo; + +public class BufferDescriptor { + + private final GpuBuffer buffer; + private final long offset, range; + + public BufferDescriptor(GpuBuffer buffer) { + this(buffer, 0, buffer.size()); + } + + public BufferDescriptor(GpuBuffer buffer, long offset, long range) { + this.buffer = buffer; + this.offset = offset; + this.range = range; + } + + public void fillDescriptorInfo(VkDescriptorBufferInfo info) { + info.buffer(buffer.getNativeObject()).offset(offset).range(range); + } + + public GpuBuffer getBuffer() { + return buffer; + } + + public long getOffset() { + return offset; + } + + public long getRange() { + return range; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BufferSetWriter.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BufferSetWriter.java new file mode 100644 index 0000000000..188b780fed --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BufferSetWriter.java @@ -0,0 +1,32 @@ +package com.jme3.vulkan.descriptors; + +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VK10; +import org.lwjgl.vulkan.VkDescriptorBufferInfo; +import org.lwjgl.vulkan.VkWriteDescriptorSet; + +public class BufferSetWriter extends DescriptorSetWriter { + + private final BufferDescriptor[] descriptors; + + public BufferSetWriter(int type, int binding, int arrayElement, BufferDescriptor... descriptors) { + super(type, binding, arrayElement, descriptors.length); + this.descriptors = descriptors; + } + + @Override + public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { + super.populateWrite(stack, write); + VkDescriptorBufferInfo.Buffer info = VkDescriptorBufferInfo.calloc(descriptors.length, stack); + for (BufferDescriptor d : descriptors) { + d.fillDescriptorInfo(info.get()); + } + info.flip(); + write.pBufferInfo(info); + } + + public static BufferSetWriter uniformBuffers(int binding, int arrayElement, BufferDescriptor... descriptors) { + return new BufferSetWriter(VK10.VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, binding, arrayElement, descriptors); + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/Descriptor.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/Descriptor.java new file mode 100644 index 0000000000..17c99aa15b --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/Descriptor.java @@ -0,0 +1,28 @@ +package com.jme3.vulkan.descriptors; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; + +public class Descriptor implements Native { + + @Override + public Long getNativeObject() { + return 0L; + } + + @Override + public Runnable createNativeDestroyer() { + return null; + } + + @Override + public void prematureNativeDestruction() { + + } + + @Override + public NativeReference getNativeReference() { + return null; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorPool.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorPool.java new file mode 100644 index 0000000000..c9b9bc87b2 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorPool.java @@ -0,0 +1,78 @@ +package com.jme3.vulkan.descriptors; + +import com.jme3.renderer.vulkan.VulkanUtils; +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.LogicalDevice; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.*; + +import java.nio.LongBuffer; + +import static com.jme3.renderer.vulkan.VulkanUtils.check; +import static org.lwjgl.vulkan.VK10.*; + +public class DescriptorPool implements Native { + + private final LogicalDevice device; + private final NativeReference ref; + private final long id; + + public DescriptorPool(LogicalDevice device, int sets, PoolSize... sizes) { + this.device = device; + try (MemoryStack stack = MemoryStack.stackPush()) { + VkDescriptorPoolCreateInfo create = VkDescriptorPoolCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO) + .pPoolSizes(PoolSize.aggregate(stack, sizes)) + .maxSets(sets); + LongBuffer idBuf = stack.mallocLong(1); + check(vkCreateDescriptorPool(device.getNativeObject(), create, null, idBuf), + "Failed to create descriptor pool."); + id = idBuf.get(0); + } + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + } + + @Override + public Long getNativeObject() { + return id; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> vkDestroyDescriptorPool(device.getNativeObject(), id, null); + } + + @Override + public void prematureNativeDestruction() {} + + @Override + public NativeReference getNativeReference() { + return ref; + } + + public DescriptorSet[] allocateSets(DescriptorSetLayout... layouts) { + assert layouts.length > 0 : "Must specify at least one set layout."; + // layouts length = number of descriptor sets created + DescriptorSet[] sets = new DescriptorSet[layouts.length]; + try (MemoryStack stack = MemoryStack.stackPush()) { + VkDescriptorSetAllocateInfo allocate = VkDescriptorSetAllocateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO) + .descriptorPool(id) + .pSetLayouts(VulkanUtils.accumulate(stack, layouts)); + LongBuffer setBuf = stack.mallocLong(layouts.length); + check(vkAllocateDescriptorSets(device.getNativeObject(), allocate, setBuf), + "Failed to allocate descriptor sets."); + for (int i = 0; i < setBuf.limit(); i++) { + sets[i] = new DescriptorSet(device, this, layouts[i], setBuf.get(i)); + } + } + return sets; + } + + public void reset() { + vkResetDescriptorPool(device.getNativeObject(), id, 0); + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java new file mode 100644 index 0000000000..a7e685c841 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java @@ -0,0 +1,44 @@ +package com.jme3.vulkan.descriptors; + +import com.jme3.vulkan.LogicalDevice; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkWriteDescriptorSet; + +import static org.lwjgl.vulkan.VK10.*; + +public class DescriptorSet { + + private final LogicalDevice device; + private final DescriptorPool pool; + private final DescriptorSetLayout layout; + private final long id; + + public DescriptorSet(LogicalDevice device, DescriptorPool pool, DescriptorSetLayout layout, long id) { + this.device = device; + this.pool = pool; + this.layout = layout; + this.id = id; + } + + public void write(DescriptorSetWriter... writers) { + try (MemoryStack stack = MemoryStack.stackPush()) { + VkWriteDescriptorSet.Buffer write = VkWriteDescriptorSet.calloc(writers.length, stack); + for (DescriptorSetWriter w : writers) { + w.populateWrite(stack, write.get().sType(VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET).dstSet(id)); + } + write.flip(); + vkUpdateDescriptorSets(device.getNativeObject(), write, null); + } + } + + public void free() { + try (MemoryStack stack = MemoryStack.stackPush()) { + vkFreeDescriptorSets(device.getNativeObject(), pool.getNativeObject(), stack.longs(id)); + } + } + + public long getId() { + return id; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetLayout.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetLayout.java new file mode 100644 index 0000000000..a9a28c08e4 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetLayout.java @@ -0,0 +1,65 @@ +package com.jme3.vulkan.descriptors; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.LogicalDevice; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkDescriptorSetLayoutBinding; +import org.lwjgl.vulkan.VkDescriptorSetLayoutCreateInfo; + +import java.nio.LongBuffer; + +import static com.jme3.renderer.vulkan.VulkanUtils.check; +import static org.lwjgl.vulkan.VK10.*; + +public class DescriptorSetLayout implements Native { + + private final LogicalDevice device; + private final NativeReference ref; + private final SetLayoutBinding[] bindings; + private final long id; + + public DescriptorSetLayout(LogicalDevice device, SetLayoutBinding... bindings) { + this.device = device; + this.bindings = bindings; + try (MemoryStack stack = MemoryStack.stackPush()) { + VkDescriptorSetLayoutBinding.Buffer layoutBindings = VkDescriptorSetLayoutBinding.calloc(bindings.length, stack); + for (SetLayoutBinding b : bindings) { + b.fillLayoutBinding(layoutBindings.get()); + } + layoutBindings.flip(); + VkDescriptorSetLayoutCreateInfo create = VkDescriptorSetLayoutCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO) + .pBindings(layoutBindings); + LongBuffer idBuf = stack.mallocLong(1); + check(vkCreateDescriptorSetLayout(device.getNativeObject(), create, null, idBuf), + "Failed to create descriptor set layout."); + id = idBuf.get(0); + } + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + } + + @Override + public Long getNativeObject() { + return id; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> vkDestroyDescriptorSetLayout(device.getNativeObject(), id, null); + } + + @Override + public void prematureNativeDestruction() {} + + @Override + public NativeReference getNativeReference() { + return ref; + } + + public SetLayoutBinding[] getBindings() { + return bindings; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetWriter.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetWriter.java new file mode 100644 index 0000000000..22e2e24f0e --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetWriter.java @@ -0,0 +1,39 @@ +package com.jme3.vulkan.descriptors; + +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkWriteDescriptorSet; + +public class DescriptorSetWriter { + + private final int type, binding, arrayElement, descriptorCount; + + public DescriptorSetWriter(int type, int binding, int arrayElement, int descriptorCount) { + this.type = type; + this.binding = binding; + this.arrayElement = arrayElement; + this.descriptorCount = descriptorCount; + } + + public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { + write.descriptorType(type).dstBinding(binding) + .dstArrayElement(arrayElement) + .descriptorCount(descriptorCount); + } + + public int getType() { + return type; + } + + public int getBinding() { + return binding; + } + + public int getArrayElement() { + return arrayElement; + } + + public int getDescriptorCount() { + return descriptorCount; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/ImageDescriptor.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/ImageDescriptor.java new file mode 100644 index 0000000000..f426c707cc --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/ImageDescriptor.java @@ -0,0 +1,42 @@ +package com.jme3.vulkan.descriptors; + +import com.jme3.vulkan.images.ImageView; +import com.jme3.vulkan.images.Sampler; +import com.jme3.vulkan.images.Texture; +import org.lwjgl.vulkan.VkDescriptorImageInfo; + +public class ImageDescriptor { + + private final ImageView view; + private final Sampler sampler; + private final int layout; + + public ImageDescriptor(Texture texture, int layout) { + this(texture.getImage(), texture, layout); + } + + public ImageDescriptor(ImageView view, Sampler sampler, int layout) { + this.view = view; + this.sampler = sampler; + this.layout = layout; + } + + public void fillDescriptorInfo(VkDescriptorImageInfo info) { + info.imageView(view.getNativeObject()) + .sampler(sampler.getNativeObject()) + .imageLayout(layout); + } + + public ImageView getView() { + return view; + } + + public Sampler getSampler() { + return sampler; + } + + public int getLayout() { + return layout; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/ImageSetWriter.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/ImageSetWriter.java new file mode 100644 index 0000000000..10001fcde4 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/ImageSetWriter.java @@ -0,0 +1,32 @@ +package com.jme3.vulkan.descriptors; + +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VK10; +import org.lwjgl.vulkan.VkDescriptorImageInfo; +import org.lwjgl.vulkan.VkWriteDescriptorSet; + +public class ImageSetWriter extends DescriptorSetWriter { + + private final ImageDescriptor[] descriptors; + + public ImageSetWriter(int type, int binding, int arrayElement, ImageDescriptor... descriptors) { + super(type, binding, arrayElement, descriptors.length); + this.descriptors = descriptors; + } + + @Override + public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { + super.populateWrite(stack, write); + VkDescriptorImageInfo.Buffer info = VkDescriptorImageInfo.calloc(descriptors.length, stack); + for (ImageDescriptor d : descriptors) { + d.fillDescriptorInfo(info.get()); + } + info.flip(); + write.pImageInfo(info); + } + + public static ImageSetWriter combinedImageSampler(int binding, int arrayElement, ImageDescriptor... descriptors) { + return new ImageSetWriter(VK10.VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, binding, arrayElement, descriptors); + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/PoolSize.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/PoolSize.java new file mode 100644 index 0000000000..e31b5f1afe --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/PoolSize.java @@ -0,0 +1,43 @@ +package com.jme3.vulkan.descriptors; + +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkDescriptorPoolSize; + +import static org.lwjgl.vulkan.VK10.*; + +public class PoolSize { + + private final int type; + private final int size; + + public PoolSize(int type, int size) { + this.type = type; + this.size = size; + } + + public int getType() { + return type; + } + + public int getSize() { + return size; + } + + public static PoolSize uniformBuffers(int size) { + return new PoolSize(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, size); + } + + public static PoolSize combinedImageSamplers(int size) { + return new PoolSize(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, size); + } + + public static VkDescriptorPoolSize.Buffer aggregate(MemoryStack stack, PoolSize... sizes) { + VkDescriptorPoolSize.Buffer buffer = VkDescriptorPoolSize.calloc(sizes.length, stack); + for (PoolSize poolSize : sizes) { + buffer.get().set(poolSize.type, poolSize.size); + } + buffer.flip(); + return buffer; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/SetLayoutBinding.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/SetLayoutBinding.java new file mode 100644 index 0000000000..dbb20001dc --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/SetLayoutBinding.java @@ -0,0 +1,50 @@ +package com.jme3.vulkan.descriptors; + +import org.lwjgl.vulkan.VK10; +import org.lwjgl.vulkan.VkDescriptorSetLayoutBinding; + +public class SetLayoutBinding { + + private final int type, binding, descriptors, stages; + + public SetLayoutBinding(int type, int binding, int descriptors, int stages) { + this.type = type; + this.binding = binding; + this.descriptors = descriptors; + this.stages = stages; + } + + @SuppressWarnings("DataFlowIssue") + public void fillLayoutBinding(VkDescriptorSetLayoutBinding layoutBinding) { + layoutBinding.descriptorType(type) + .binding(binding) + .descriptorCount(descriptors) + .stageFlags(stages) + .pImmutableSamplers(null); + } + + public int getType() { + return type; + } + + public int getBinding() { + return binding; + } + + public int getDescriptors() { + return descriptors; + } + + public int getStages() { + return stages; + } + + public static SetLayoutBinding uniformBuffer(int binding, int descriptors, int stages) { + return new SetLayoutBinding(VK10.VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, binding, descriptors, stages); + } + + public static SetLayoutBinding combinedImageSampler(int binding, int descriptors, int stages) { + return new SetLayoutBinding(VK10.VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, binding, descriptors, stages); + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/BufferUsageFlags.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/BufferUsageFlags.java new file mode 100644 index 0000000000..364875bbe9 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/BufferUsageFlags.java @@ -0,0 +1,38 @@ +package com.jme3.vulkan.flags; + +import static org.lwjgl.vulkan.VK10.*; + +public class BufferUsageFlags { + + private int usageFlags; + + public BufferUsageFlags vertexBuffer() { + usageFlags |= VK_BUFFER_USAGE_VERTEX_BUFFER_BIT; + return this; + } + + public BufferUsageFlags indexBuffer() { + usageFlags |= VK_BUFFER_USAGE_INDEX_BUFFER_BIT; + return this; + } + + public BufferUsageFlags transferSrc() { + usageFlags |= VK_BUFFER_USAGE_TRANSFER_SRC_BIT; + return this; + } + + public BufferUsageFlags transferDst() { + usageFlags |= VK_BUFFER_USAGE_TRANSFER_DST_BIT; + return this; + } + + public BufferUsageFlags uniformBuffer() { + usageFlags |= VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT; + return this; + } + + public int getUsageFlags() { + return usageFlags; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/ImageUsageFlags.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/ImageUsageFlags.java new file mode 100644 index 0000000000..e85f1271e4 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/ImageUsageFlags.java @@ -0,0 +1,28 @@ +package com.jme3.vulkan.flags; + +import static org.lwjgl.vulkan.VK10.*; + +public class ImageUsageFlags { + + private int usageFlags; + + public ImageUsageFlags transferSrc() { + usageFlags |= VK_IMAGE_USAGE_TRANSFER_SRC_BIT; + return this; + } + + public ImageUsageFlags transferDst() { + usageFlags |= VK_IMAGE_USAGE_TRANSFER_DST_BIT; + return this; + } + + public ImageUsageFlags sampled() { + usageFlags |= VK_IMAGE_USAGE_SAMPLED_BIT; + return this; + } + + public int getUsageFlags() { + return usageFlags; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/MemoryFlags.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/MemoryFlags.java new file mode 100644 index 0000000000..ade8e39d3d --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/MemoryFlags.java @@ -0,0 +1,38 @@ +package com.jme3.vulkan.flags; + +import static org.lwjgl.vulkan.VK10.*; + +public class MemoryFlags { + + private int memFlags = 0; + + public MemoryFlags hostVisible() { + memFlags |= VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; + return this; + } + + public MemoryFlags hostCoherent() { + memFlags |= VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; + return this; + } + + public MemoryFlags hostCached() { + memFlags |= VK_MEMORY_PROPERTY_HOST_CACHED_BIT; + return this; + } + + public MemoryFlags deviceLocal() { + memFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; + return this; + } + + public MemoryFlags lazilyAllocated() { + memFlags |= VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT; + return this; + } + + public int getMemoryFlags() { + return memFlags; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java new file mode 100644 index 0000000000..f7ca4dd6ec --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java @@ -0,0 +1,143 @@ +package com.jme3.vulkan.images; + +import com.jme3.renderer.vulkan.VulkanUtils; +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.CommandBuffer; +import com.jme3.vulkan.LogicalDevice; +import com.jme3.vulkan.buffers.MemoryRegion; +import com.jme3.vulkan.flags.ImageUsageFlags; +import com.jme3.vulkan.flags.MemoryFlags; +import com.jme3.vulkan.flags.BufferUsageFlags; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkImageCreateInfo; +import org.lwjgl.vulkan.VkImageMemoryBarrier; +import org.lwjgl.vulkan.VkImageViewCreateInfo; +import org.lwjgl.vulkan.VkMemoryRequirements; + +import java.nio.LongBuffer; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.vulkan.VK10.*; + +public class GpuImage implements Image { + + private final LogicalDevice device; + private final NativeReference ref; + private final long id; + private final MemoryRegion memory; + private final int type, width, height, depth, format; + + public GpuImage(LogicalDevice device, int width, int height, int format, ImageUsageFlags usage, MemoryFlags mem) { + this(device, VK_IMAGE_TYPE_2D, width, height, 1, format, usage, mem); + } + + public GpuImage(LogicalDevice device, int type, int width, int height, int depth, int format, ImageUsageFlags usage, MemoryFlags mem) { + this.device = device; + this.type = type; + this.width = width; + this.height = height; + this.depth = depth; + this.format = format; + try (MemoryStack stack = MemoryStack.stackPush()) { + VkImageCreateInfo create = VkImageCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO) + .imageType(type) + .mipLevels(1) + .arrayLayers(1) + .format(format) + .tiling(VK_IMAGE_TILING_OPTIMAL) + .initialLayout(VK_IMAGE_LAYOUT_UNDEFINED) + .usage(usage.getUsageFlags()) + .samples(VK_SAMPLE_COUNT_1_BIT) + .sharingMode(VK_SHARING_MODE_EXCLUSIVE); + create.extent().width(width).height(height).depth(depth); + LongBuffer idBuf = stack.mallocLong(1); + check(vkCreateImage(device.getNativeObject(), create, null, idBuf), + "Failed to create image."); + id = idBuf.get(0); + VkMemoryRequirements memReq = VkMemoryRequirements.malloc(stack); + vkGetImageMemoryRequirements(device.getNativeObject(), id, memReq); + memory = new MemoryRegion(device, memReq.size(), device.getPhysicalDevice().findMemoryType( + stack, memReq.memoryTypeBits(), mem.getMemoryFlags())); + memory.bind(this, 0); + } + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + } + + @Override + public ImageView createView(VkImageViewCreateInfo create) { + return new ImageView(this, create); + } + + @Override + public LogicalDevice getDevice() { + return device; + } + + @Override + public int getType() { + return type; + } + + @Override + public int getWidth() { + return width; + } + + @Override + public int getHeight() { + return height; + } + + @Override + public int getDepth() { + return depth; + } + + @Override + public int getFormat() { + return format; + } + + @Override + public Long getNativeObject() { + return id; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> vkDestroyImage(device.getNativeObject(), id, null); + } + + @Override + public void prematureNativeDestruction() {} + + @Override + public NativeReference getNativeReference() { + return ref; + } + + public void transitionLayout(CommandBuffer commands, int srcLayout, int dstLayout) { + try (MemoryStack stack = MemoryStack.stackPush()) { + int[] args = VulkanUtils.getTransferArguments(srcLayout, dstLayout); + VkImageMemoryBarrier.Buffer barrier = VkImageMemoryBarrier.calloc(1, stack) + .sType(VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER) + .oldLayout(srcLayout) + .newLayout(dstLayout) + .srcQueueFamilyIndex(VK_QUEUE_FAMILY_IGNORED) + .dstQueueFamilyIndex(VK_QUEUE_FAMILY_IGNORED) // for transfering queue ownership + .image(id) + .srcAccessMask(args[0]) + .dstAccessMask(args[1]); + barrier.subresourceRange().aspectMask(VK_IMAGE_ASPECT_COLOR_BIT) + .baseMipLevel(0) + .levelCount(1) + .baseArrayLayer(0) + .layerCount(1); + vkCmdPipelineBarrier(commands.getBuffer(), args[2], args[3], 0, null, null, barrier); + } + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Image.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Image.java new file mode 100644 index 0000000000..94b4350ed8 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Image.java @@ -0,0 +1,46 @@ +package com.jme3.vulkan.images; + +import com.jme3.util.natives.Native; +import com.jme3.vulkan.LogicalDevice; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkImageViewCreateInfo; + +import static org.lwjgl.vulkan.VK10.*; + +public interface Image extends Native { + + ImageView createView(VkImageViewCreateInfo create); + + LogicalDevice getDevice(); + + int getType(); + + int getWidth(); + + int getHeight(); + + int getDepth(); + + int getFormat(); + + default ImageView createView(int type, int aspects, int baseMip, int mipCount, int baseLayer, int layerCount) { + try (MemoryStack stack = MemoryStack.stackPush()) { + VkImageViewCreateInfo create = VkImageViewCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO) + .image(getNativeObject()) + .viewType(type) + .format(getFormat()); + create.components().r(VK_COMPONENT_SWIZZLE_IDENTITY) + .g(VK_COMPONENT_SWIZZLE_IDENTITY) + .b(VK_COMPONENT_SWIZZLE_IDENTITY) + .a(VK_COMPONENT_SWIZZLE_IDENTITY); + create.subresourceRange().aspectMask(VK_IMAGE_ASPECT_COLOR_BIT) + .baseMipLevel(baseMip) + .levelCount(mipCount) + .baseArrayLayer(baseLayer) + .layerCount(layerCount); + return createView(create); + } + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ImageView.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/ImageView.java similarity index 87% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/ImageView.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/ImageView.java index 9b9e6bbc9c..5084a8841f 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ImageView.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/ImageView.java @@ -1,9 +1,8 @@ -package com.jme3.vulkan; +package com.jme3.vulkan.images; import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; import org.lwjgl.system.MemoryStack; -import org.lwjgl.system.MemoryUtil; import org.lwjgl.vulkan.VK10; import org.lwjgl.vulkan.VkImageViewCreateInfo; @@ -13,13 +12,13 @@ public class ImageView implements Native { private final Image image; private final NativeReference ref; - private long id; + private final long id; public ImageView(Image image, VkImageViewCreateInfo create) { this.image = image; create.sType(VK10.VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO); create.image(image.getNativeObject()); - System.out.println("image ID: " + image.getNativeObject()); + System.out.println("creating imageView: " + toString()); try (MemoryStack stack = MemoryStack.stackPush()) { LongBuffer idBuf = stack.mallocLong(1); VK10.vkCreateImageView(image.getDevice().getNativeObject(), create, null, idBuf); @@ -37,8 +36,8 @@ public Long getNativeObject() { @Override public Runnable createNativeDestroyer() { return () -> { + System.out.println("destroying imageView: " + toString()); VK10.vkDestroyImageView(image.getDevice().getNativeObject(), id, null); - id = VK10.VK_NULL_HANDLE; }; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Sampler.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Sampler.java new file mode 100644 index 0000000000..c06d7220d8 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Sampler.java @@ -0,0 +1,69 @@ +package com.jme3.vulkan.images; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.LogicalDevice; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkPhysicalDeviceProperties; +import org.lwjgl.vulkan.VkSamplerCreateInfo; + +import java.nio.LongBuffer; + +import static org.lwjgl.vulkan.VK10.*; + +public class Sampler implements Native { + + private final LogicalDevice device; + private final NativeReference ref; + private final long id; + + public Sampler(LogicalDevice device, int min, int mag, int edgeMode, int mipmapMode) { + this.device = device; + try (MemoryStack stack = MemoryStack.stackPush()) { + VkPhysicalDeviceProperties props = device.getPhysicalDevice().getProperties(stack); + VkSamplerCreateInfo create = VkSamplerCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO) + .minFilter(min) + .magFilter(mag) + .addressModeU(edgeMode) + .addressModeV(edgeMode) + .addressModeW(edgeMode) + .anisotropyEnable(true) + .maxAnisotropy(props.limits().maxSamplerAnisotropy()) + .borderColor(VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK) + .unnormalizedCoordinates(false) // use (0, 1) sampler coordinates + .compareEnable(false) + .compareOp(VK_COMPARE_OP_ALWAYS) + .mipmapMode(mipmapMode) + .mipLodBias(0f) + .minLod(0f) + .maxLod(0f); + LongBuffer idBuf = stack.mallocLong(1); + vkCreateSampler(device.getNativeObject(), create, null, idBuf); + id = idBuf.get(0); + } + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + } + + @Override + public Long getNativeObject() { + return id; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> vkDestroySampler(device.getNativeObject(), id, null); + } + + @Override + public void prematureNativeDestruction() { + + } + + @Override + public NativeReference getNativeReference() { + return null; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Texture.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Texture.java new file mode 100644 index 0000000000..4a65f2ab3d --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Texture.java @@ -0,0 +1,18 @@ +package com.jme3.vulkan.images; + +import com.jme3.vulkan.LogicalDevice; + +public class Texture extends Sampler { + + private final ImageView image; + + public Texture(LogicalDevice device, ImageView image, int min, int mag, int edgeMode, int mipmapMode) { + super(device, min, mag, edgeMode, mipmapMode); + this.image = image; + } + + public ImageView getImage() { + return image; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java new file mode 100644 index 0000000000..8489807485 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java @@ -0,0 +1,199 @@ +package com.jme3.vulkan.images; + +import com.jme3.asset.*; +import com.jme3.texture.Image; +import com.jme3.util.BufferUtils; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.awt.image.DataBuffer; +import java.awt.image.DataBufferByte; +import java.awt.image.DataBufferUShort; +import java.io.BufferedInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.nio.ByteBuffer; + +import static org.lwjgl.vulkan.VK10.*; + +public class VulkanImageLoader implements AssetLoader { + + @Override + public Object load(AssetInfo info) throws IOException { + if (ImageIO.getImageReadersBySuffix(info.getKey().getExtension()) != null) { + boolean flip = ((Key)info.getKey()).isFlip(); + try (InputStream stream = info.openStream(); BufferedInputStream bin = new BufferedInputStream(stream)) { + ImageData img = load(bin, flip); + if (img == null){ + throw new AssetLoadException("The given image cannot be loaded " + info.getKey()); + } + return img; + } + } + throw new AssetLoadException("Image extension " + info.getKey().getExtension() + " is not supported"); + } + + public ImageData load(InputStream in, boolean flip) throws IOException { + ImageIO.setUseCache(false); + BufferedImage img = ImageIO.read(in); + if (img == null){ + return null; + } + return load(img, flip); + } + + public ImageData load(BufferedImage img, boolean flipY) { + int width = img.getWidth(); + int height = img.getHeight(); + byte[] data = (byte[])extractImageData(img); + switch (img.getType()) { + case BufferedImage.TYPE_4BYTE_ABGR: { // most common in PNG images w/ alpha + if (flipY) { + flipImage(data, width, height, 32); + } + ByteBuffer buffer = BufferUtils.createByteBuffer(width * height * 4); + buffer.put(data); + return new ImageData(buffer, width, height, VK_FORMAT_A8B8G8R8_SRGB_PACK32); + } + case BufferedImage.TYPE_3BYTE_BGR: { // most common in JPEG images + if (flipY) { + flipImage(data, width, height, 24); + } + ByteBuffer buffer = BufferUtils.createByteBuffer(width * height * 3); + buffer.put(data); + return new ImageData(buffer, width, height, VK_FORMAT_B8G8R8_SRGB); + } + case BufferedImage.TYPE_BYTE_GRAY: { // grayscale fonts + if (flipY) { + flipImage(data, width, height, 8); + } + ByteBuffer buffer = BufferUtils.createByteBuffer(width * height); + buffer.put(data); + return new ImageData(buffer, width, height, VK_FORMAT_R8_SRGB); + } + } + if (img.getTransparency() == Transparency.OPAQUE){ + ByteBuffer buffer = BufferUtils.createByteBuffer(img.getWidth() * img.getHeight() * 4); + for (int y = 0; y < height; y++) { + for (int x = 0; x < width; x++) { + int ny = y; + if (flipY) { + ny = height - y - 1; + } + int rgb = img.getRGB(x, ny); + byte r = (byte) ((rgb & 0x00FF0000) >> 16); + byte g = (byte) ((rgb & 0x0000FF00) >> 8); + byte b = (byte) ((rgb & 0x000000FF)); + byte a = Byte.MAX_VALUE; + buffer.put(r).put(g).put(b).put(a); + } + } + buffer.flip(); + return new ImageData(buffer, width, height, VK_FORMAT_R8G8B8A8_SRGB); + } else { + ByteBuffer buffer = BufferUtils.createByteBuffer(img.getWidth() * img.getHeight() * 4); + for (int y = 0; y < height; y++){ + for (int x = 0; x < width; x++){ + int ny = y; + if (flipY) { + ny = height - y - 1; + } + int rgb = img.getRGB(x,ny); + byte a = (byte) ((rgb & 0xFF000000) >> 24); + byte r = (byte) ((rgb & 0x00FF0000) >> 16); + byte g = (byte) ((rgb & 0x0000FF00) >> 8); + byte b = (byte) ((rgb & 0x000000FF)); + buffer.put(r).put(g).put(b).put(a); + } + } + buffer.flip(); + return new ImageData(buffer, width, height, VK_FORMAT_R8G8B8A8_SRGB); + } + } + + private Object extractImageData(BufferedImage img) { + DataBuffer buf = img.getRaster().getDataBuffer(); + switch (buf.getDataType()) { + case DataBuffer.TYPE_BYTE: { + DataBufferByte byteBuf = (DataBufferByte) buf; + return byteBuf.getData(); + } + case DataBuffer.TYPE_USHORT: { + DataBufferUShort shortBuf = (DataBufferUShort) buf; + return shortBuf.getData(); + } + default: throw new UnsupportedOperationException("Image data type not supported: " + buf.getDataType()); + } + } + + private void flipImage(byte[] img, int width, int height, int bpp) { + int scSz = (width * bpp) / 8; + byte[] sln = new byte[scSz]; + for (int y1 = 0; y1 < height / 2; y1++) { + int y2 = height - y1 - 1; + System.arraycopy(img, y1 * scSz, sln, 0, scSz); + System.arraycopy(img, y2 * scSz, img, y1 * scSz, scSz); + System.arraycopy(sln, 0, img, y2 * scSz, scSz); + } + } + + public static Key key(String name) { + return new Key(name); + } + + public static class Key extends AssetKey { + + private boolean flip; + + public Key(String name) { + this(name, false); + } + + public Key(String name, boolean flip) { + super(name); + this.flip = flip; + } + + public void setFlip(boolean flip) { + this.flip = flip; + } + + public boolean isFlip() { + return flip; + } + + } + + public static class ImageData { + + private final ByteBuffer buffer; + private final int width, height; + private final int format; + + public ImageData(ByteBuffer buffer, int width, int height, int format) { + this.buffer = buffer; + this.width = width; + this.height = height; + this.format = format; + } + + public ByteBuffer getBuffer() { + return buffer; + } + + public int getWidth() { + return width; + } + + public int getHeight() { + return height; + } + + public int getFormat() { + return format; + } + + } + +} diff --git a/jme3-testdata/src/main/resources/Shaders/VulkanFragTest.glsl b/jme3-testdata/src/main/resources/Shaders/VulkanFragTest.glsl index 13009da8fe..945951f055 100644 --- a/jme3-testdata/src/main/resources/Shaders/VulkanFragTest.glsl +++ b/jme3-testdata/src/main/resources/Shaders/VulkanFragTest.glsl @@ -1,9 +1,12 @@ #version 450 layout(location = 0) in vec3 fragColor; +layout(location = 1) in vec2 texCoord; layout(location = 0) out vec4 outColor; +layout(binding = 1) uniform sampler2D colorTexture; + void main() { - outColor = vec4(fragColor, 1.0); + outColor = texture(colorTexture, texCoord) * vec4(fragColor, 1.0); } \ No newline at end of file diff --git a/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl b/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl index 804b6dacd0..a3b97794ef 100644 --- a/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl +++ b/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl @@ -2,10 +2,17 @@ layout (location = 0) in vec2 inPosition; layout (location = 1) in vec3 inColor; +layout (location = 2) in vec2 inTexCoord; layout (location = 0) out vec3 fragColor; +layout (location = 1) out vec2 texCoord; + +layout (binding = 0) uniform UniformBufferObject { + mat4 worldViewProjectionMatrix; +} ubo; void main() { - gl_Position = vec4(inPosition, 0.0, 1.0); + gl_Position = ubo.worldViewProjectionMatrix * vec4(inPosition, 0.0, 1.0); fragColor = inColor; + texCoord = inTexCoord; } \ No newline at end of file From 8e7ff36d42e4f6544bafeb819266c9f907ab3c56 Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Fri, 1 Aug 2025 11:10:32 -0400 Subject: [PATCH 16/37] added depth testing; added enums for image properties --- .../com/jme3/renderer/vulkan/VulkanUtils.java | 12 -- .../jme3test/vulkan/VulkanHelperTest.java | 89 +++++++++--- .../com/jme3/vulkan/GraphicsPipeline.java | 8 ++ .../java/com/jme3/vulkan/MeshDescription.java | 8 +- .../java/com/jme3/vulkan/PhysicalDevice.java | 7 +- .../main/java/com/jme3/vulkan/RenderPass.java | 5 +- .../com/jme3/vulkan/RenderStateToVulkan.java | 14 ++ .../main/java/com/jme3/vulkan/Swapchain.java | 23 ++-- .../jme3/vulkan/flags/ImageUsageFlags.java | 5 + .../java/com/jme3/vulkan/images/GpuImage.java | 43 ++++-- .../java/com/jme3/vulkan/images/Image.java | 128 +++++++++++++++++- .../jme3/vulkan/images/VulkanImageLoader.java | 19 ++- .../resources/Shaders/VulkanVertTest.glsl | 4 +- 13 files changed, 287 insertions(+), 78 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/renderer/vulkan/VulkanUtils.java b/jme3-core/src/main/java/com/jme3/renderer/vulkan/VulkanUtils.java index 535f5f9d93..c251de6b5a 100644 --- a/jme3-core/src/main/java/com/jme3/renderer/vulkan/VulkanUtils.java +++ b/jme3-core/src/main/java/com/jme3/renderer/vulkan/VulkanUtils.java @@ -148,18 +148,6 @@ public static LongBuffer accumulate(MemoryStack stack, Native... natives) return buf; } - public static int[] getTransferArguments(int srcLayout, int dstLayout) { - // output array format: {srcAccessMask, dstAccessMask, srcStage, dstStage} - if (srcLayout == VK_IMAGE_LAYOUT_UNDEFINED && dstLayout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL) { - return new int[] {0, VK_ACCESS_TRANSFER_WRITE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT}; - } else if (srcLayout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL && dstLayout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) { - return new int[] {VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_SHADER_READ_BIT, - VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT}; - } else { - throw new UnsupportedOperationException("Unsupported layer transitions."); - } - } - public static class NativeIterator implements Iterable, Iterator { private final PointerBuffer pointers; diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java index 09eda177fe..b145d7a396 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java @@ -6,6 +6,7 @@ import com.jme3.math.Quaternion; import com.jme3.math.Transform; import com.jme3.math.Vector3f; +import com.jme3.opencl.CommandQueue; import com.jme3.renderer.vulkan.VulkanUtils; import com.jme3.shaderc.ShaderType; import com.jme3.shaderc.ShadercLoader; @@ -62,15 +63,31 @@ public class VulkanHelperTest extends SimpleApplication implements SwapchainUpda private VulkanLogger logger; + // mesh private final FloatBuffer vertexData = BufferUtils.createFloatBuffer( - -0.5f, -0.5f, 1f, 0f, 0f, 1f, 0f, - 0.5f, -0.5f, 0f, 1f, 0f, 0f, 0f, - 0.5f, 0.5f, 0f, 0f, 1f, 0f, 1f, - -0.5f, 0.5f, 1f, 1f, 1f, 1f, 1f); - private final IntBuffer indexData = BufferUtils.createIntBuffer(0, 1, 2, 2, 3, 0); + -0.5f, -0.5f, 0f, 1f, 0f, 0f, 1f, 0f, + 0.5f, -0.5f, 0f, 0f, 1f, 0f, 0f, 0f, + 0.5f, 0.5f, 0f, 0f, 0f, 1f, 0f, 1f, + -0.5f, 0.5f, 0f, 1f, 1f, 1f, 1f, 1f, + + -0.5f, -0.5f, -0.5f, 1f, 0f, 0f, 1f, 0f, + 0.5f, -0.5f, -0.5f, 0f, 1f, 0f, 0f, 0f, + 0.5f, 0.5f, -0.5f, 0f, 0f, 1f, 0f, 1f, + -0.5f, 0.5f, -0.5f, 1f, 1f, 1f, 1f, 1f + ); + private final IntBuffer indexData = BufferUtils.createIntBuffer( + 0, 1, 2, 2, 3, 0, + 4, 5, 6, 6, 7, 4); + + // geometry private final Transform modelTransform = new Transform(); + + // material private Texture texture; + // framebuffer + private ImageView depthView; + public static void main(String[] args) { VulkanHelperTest app = new VulkanHelperTest(); AppSettings settings = new AppSettings(true); @@ -145,6 +162,23 @@ public void simpleInitApp() { descriptorPool = new DescriptorPool(device, 2, PoolSize.uniformBuffers(2), PoolSize.combinedImageSamplers(2)); + CommandPool transferPool = new CommandPool(device, queues.getGraphicsQueue(), true, false); + + // depth texture + Image.Format depthFormat = device.getPhysicalDevice().findSupportedFormat( + VK_IMAGE_TILING_OPTIMAL, + VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, + Image.Format.Depth32SFloat, Image.Format.Depth32SFloat_Stencil8UInt, Image.Format.Depth24UNorm_Stencil8UInt); + GpuImage depthImage = new GpuImage(device, swapchain.getExtent().x, swapchain.getExtent().y, depthFormat, + Image.Tiling.Optimal, new ImageUsageFlags().depthStencilAttachment(), new MemoryFlags().deviceLocal()); + depthView = depthImage.createView(VK_IMAGE_VIEW_TYPE_2D, VK_IMAGE_ASPECT_DEPTH_BIT, 0, 1, 0, 1); + CommandBuffer commands = transferPool.allocateOneTimeCommandBuffer(); + commands.begin(); + depthImage.transitionLayout(commands, Image.Layout.Undefined, Image.Layout.DepthStencilAttachmentOptimal); + commands.end(); + commands.submit(null, null, null); + commands.getPool().getQueue().waitIdle(); + // pipeline pipelineLayout = new PipelineLayout(device, descriptorLayout); vertModule = new ShaderModule(device, assetManager.loadAsset(ShadercLoader.key( @@ -153,37 +187,48 @@ public void simpleInitApp() { "Shaders/VulkanFragTest.glsl", ShaderType.Fragment)), "main"); try (RenderPassBuilder pass = new RenderPassBuilder()) { int color = pass.createAttachment(a -> a - .format(swapchain.getFormat()) + .format(swapchain.getFormat().getVkEnum()) .samples(VK_SAMPLE_COUNT_1_BIT) .loadOp(VK_ATTACHMENT_LOAD_OP_CLEAR) .storeOp(VK_ATTACHMENT_STORE_OP_STORE) .stencilLoadOp(VK_ATTACHMENT_LOAD_OP_DONT_CARE) .stencilStoreOp(VK_ATTACHMENT_STORE_OP_DONT_CARE) - .initialLayout(VK_IMAGE_LAYOUT_UNDEFINED) - .finalLayout(KHRSwapchain.VK_IMAGE_LAYOUT_PRESENT_SRC_KHR)); + .initialLayout(Image.Layout.Undefined.getVkEnum()) + .finalLayout(Image.Layout.PresentSrc.getVkEnum())); + int depth = pass.createAttachment(a -> a + .format(depthFormat.getVkEnum()) + .samples(VK_SAMPLE_COUNT_1_BIT) + .loadOp(VK_ATTACHMENT_LOAD_OP_CLEAR) + .storeOp(VK_ATTACHMENT_STORE_OP_DONT_CARE) + .stencilLoadOp(VK_ATTACHMENT_LOAD_OP_DONT_CARE) + .stencilStoreOp(VK_ATTACHMENT_STORE_OP_DONT_CARE) + .initialLayout(Image.Layout.Undefined.getVkEnum()) + .finalLayout(Image.Layout.DepthStencilAttachmentOptimal.getVkEnum())); int subpass = pass.createSubpass(s -> { - VkAttachmentReference.Buffer ref = VkAttachmentReference.calloc(1, pass.getStack()) + VkAttachmentReference.Buffer colorRef = VkAttachmentReference.calloc(1, pass.getStack()) .attachment(color) - .layout(VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL); + .layout(Image.Layout.ColorAttachmentOptimal.getVkEnum()); + VkAttachmentReference depthRef = VkAttachmentReference.calloc(pass.getStack()) + .attachment(depth) + .layout(Image.Layout.DepthStencilAttachmentOptimal.getVkEnum()); s.pipelineBindPoint(VK_PIPELINE_BIND_POINT_GRAPHICS) .colorAttachmentCount(1) - .pColorAttachments(ref); + .pColorAttachments(colorRef) + .pDepthStencilAttachment(depthRef); }); pass.createDependency() .srcSubpass(VK_SUBPASS_EXTERNAL) .dstSubpass(subpass) - .srcStageMask(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT) + .srcStageMask(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT) .srcAccessMask(subpass) - .dstStageMask(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT) - .dstAccessMask(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT); + .dstStageMask(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT) + .dstAccessMask(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT); renderPass = pass.build(device); } - swapchain.createFrameBuffers(renderPass); + swapchain.createFrameBuffers(renderPass, depthView); pipeline = new GraphicsPipeline(device, pipelineLayout, renderPass, new RenderState(), vertModule, fragModule, new MeshDescription()); graphicsPool = new CommandPool(device, queues.getGraphicsQueue(), false, true); - CommandPool transferPool = new CommandPool(device, queues.getGraphicsQueue(), true, false); - // vertex buffers try (MemoryStack stack = MemoryStack.stackPush()) { // cpu-accessible memory is not usually fast for the gpu to access, but @@ -203,6 +248,7 @@ public void simpleInitApp() { indexBuffer.freeStagingBuffer(); } + // material color texture GpuImage image = loadImage("Common/Textures/MissingTexture.png", transferPool); texture = new Texture(device, image.createView(VK_IMAGE_VIEW_TYPE_2D, VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1), VK_FILTER_LINEAR, VK_FILTER_LINEAR, VK_SAMPLER_ADDRESS_MODE_REPEAT, VK_SAMPLER_MIPMAP_MODE_LINEAR); @@ -227,7 +273,7 @@ public boolean swapchainOutOfDate(Swapchain swapchain, int imageAcquireCode) { long window = ((LwjglVulkanContext)context).getWindowHandle(); try (SimpleSwapchainSupport support = new SimpleSwapchainSupport(device.getPhysicalDevice(), surface, window)) { swapchain.reload(support); - swapchain.createFrameBuffers(renderPass); + swapchain.createFrameBuffers(renderPass, depthView); } return true; } @@ -254,10 +300,11 @@ private GpuImage loadImage(String file, CommandPool transferPool) { new BufferUsageFlags().transferSrc(), new MemoryFlags().hostVisible().hostCoherent(), false); staging.copy(stack, data.getBuffer()); GpuImage image = new GpuImage(device, data.getWidth(), data.getHeight(), data.getFormat(), - new ImageUsageFlags().transferDst().sampled(), new MemoryFlags().deviceLocal()); + Image.Tiling.Optimal, new ImageUsageFlags().transferDst().sampled(), + new MemoryFlags().deviceLocal()); CommandBuffer commands = transferPool.allocateOneTimeCommandBuffer(); commands.begin(); - image.transitionLayout(commands, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL); + image.transitionLayout(commands, Image.Layout.Undefined, Image.Layout.TransferDstOptimal); VkBufferImageCopy.Buffer region = VkBufferImageCopy.calloc(1, stack) .bufferOffset(0) .bufferRowLength(0) // padding bytes @@ -270,7 +317,7 @@ private GpuImage loadImage(String file, CommandPool transferPool) { region.imageExtent().set(data.getWidth(), data.getHeight(), 1); vkCmdCopyBufferToImage(commands.getBuffer(), staging.getNativeObject(), image.getNativeObject(), VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, region); - image.transitionLayout(commands, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); + image.transitionLayout(commands, Image.Layout.TransferDstOptimal, Image.Layout.ShaderReadOnlyOptimal); commands.end(); commands.submit(null, null, null); transferPool.getQueue().waitIdle(); diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java index cfdf8987bc..4cd7989613 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java @@ -53,6 +53,13 @@ public GraphicsPipeline(LogicalDevice device, PipelineLayout layout, RenderPass .sType(VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO) .pViewports(viewport) .pScissors(scissor); + VkPipelineDepthStencilStateCreateInfo depthStencil = VkPipelineDepthStencilStateCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO) + .depthTestEnable(state.isDepthTest()) + .depthWriteEnable(state.isDepthWrite()) + .depthCompareOp(RenderStateToVulkan.depthFunc(state.getDepthFunc())) + .depthBoundsTestEnable(false) + .stencilTestEnable(false); VkPipelineRasterizationStateCreateInfo raster = VkPipelineRasterizationStateCreateInfo.calloc(stack) .sType(VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO) .depthClampEnable(false) @@ -89,6 +96,7 @@ public GraphicsPipeline(LogicalDevice device, PipelineLayout layout, RenderPass .pVertexInputState(vertInput) .pInputAssemblyState(assembly) .pViewportState(vpState) + .pDepthStencilState(depthStencil) .pRasterizationState(raster) .pMultisampleState(multisample) .pColorBlendState(blend) diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MeshDescription.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MeshDescription.java index 6367a77a03..a0df1e72ea 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MeshDescription.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MeshDescription.java @@ -17,22 +17,22 @@ public MeshDescription() { // for each vertex buffer on the mesh bindings = VkVertexInputBindingDescription.calloc(1) .binding(0) - .stride(Float.BYTES * 7) // bytes per vertex + .stride(Float.BYTES * 8) // bytes per vertex .inputRate(VK_VERTEX_INPUT_RATE_VERTEX); // for each attribute in each vertex buffer attributes = VkVertexInputAttributeDescription.calloc(3); attributes.get(0).binding(0) .location(0) - .format(VK_FORMAT_R32G32_SFLOAT) + .format(VK_FORMAT_R32G32B32_SFLOAT) .offset(0); attributes.get(1).binding(0) .location(1) .format(VK_FORMAT_R32G32B32_SFLOAT) - .offset(Float.BYTES * 2); + .offset(Float.BYTES * 3); attributes.get(2).binding(0) .location(2) .format(VK_FORMAT_R32G32_SFLOAT) - .offset(Float.BYTES * 5); + .offset(Float.BYTES * 6); ref = Native.get().register(this); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java index f75c1e3f89..f56d022128 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java @@ -1,5 +1,6 @@ package com.jme3.vulkan; +import com.jme3.vulkan.images.Image; import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.*; @@ -92,10 +93,10 @@ public int findMemoryType(MemoryStack stack, int types, int flags) { throw new NullPointerException("Suitable memory type not found."); } - public int findSupportedFormat(int tiling, int features, int... candidates) { + public Image.Format findSupportedFormat(int tiling, int features, Image.Format... candidates) { VkFormatProperties props = VkFormatProperties.create(); - for (int f : candidates) { - vkGetPhysicalDeviceFormatProperties(device, f, props); + for (Image.Format f : candidates) { + vkGetPhysicalDeviceFormatProperties(device, f.getVkEnum(), props); if ((tiling == VK_IMAGE_TILING_LINEAR && (props.linearTilingFeatures() & features) == features) || (tiling == VK_IMAGE_TILING_OPTIMAL && (props.optimalTilingFeatures() & features) == features)) { return f; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPass.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPass.java index e5a6e61a1b..b7fbb83917 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPass.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPass.java @@ -53,8 +53,9 @@ public NativeReference getNativeReference() { public void begin(CommandBuffer cmd, FrameBuffer fbo) { try (MemoryStack stack = MemoryStack.stackPush()) { - VkClearValue.Buffer clear = VkClearValue.calloc(1, stack); - clear.color().float32(stack.floats(0f, 0f, 0f, 1f)); + VkClearValue.Buffer clear = VkClearValue.calloc(2, stack); + clear.get(0).color().float32(stack.floats(0f, 0f, 0f, 1f)); + clear.get(1).depthStencil().set(1.0f, 0); VkRenderPassBeginInfo begin = VkRenderPassBeginInfo.calloc(stack) .sType(VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO) .renderPass(id) diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderStateToVulkan.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderStateToVulkan.java index 932fddd4d3..9c177c74b0 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderStateToVulkan.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderStateToVulkan.java @@ -9,6 +9,20 @@ private static RuntimeException unrecognized(Object state) { return new UnsupportedOperationException("Unrecognized: " + state); } + public static int depthFunc(TestFunction func) { + switch (func) { + case Always: return VK_COMPARE_OP_ALWAYS; + case Equal: return VK_COMPARE_OP_EQUAL; + case Greater: return VK_COMPARE_OP_GREATER; + case Less: return VK_COMPARE_OP_LESS; + case LessOrEqual: return VK_COMPARE_OP_LESS_OR_EQUAL; + case GreaterOrEqual: return VK_COMPARE_OP_GREATER_OR_EQUAL; + case Never: return VK_COMPARE_OP_NEVER; + case NotEqual: return VK_COMPARE_OP_NOT_EQUAL; + default: throw unrecognized(func); + } + } + public static int blendEquation(BlendEquation eq) { switch (eq) { case Add: return VK_BLEND_OP_ADD; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java index e03c8f6d6c..df1156bd70 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java @@ -23,7 +23,7 @@ public class Swapchain implements Native { private final List images = new ArrayList<>(); private SwapchainUpdater updater; private Extent2 extent; - private int format; + private Image.Format format; private long id = VK_NULL_HANDLE; public Swapchain(LogicalDevice device, Surface surface, SwapchainSupport support) { @@ -65,14 +65,14 @@ public void reload(SwapchainSupport support) { KHRSurface.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( device.getPhysicalDevice().getDevice(), surface.getNativeObject(), caps); VkSurfaceFormatKHR fmt = support.selectFormat(); - format = fmt.format(); + format = Image.Format.vkEnum(fmt.format()); VkExtent2D ext = support.selectExtent(); extent = new Extent2(ext); VkSwapchainCreateInfoKHR create = VkSwapchainCreateInfoKHR.calloc(stack) .sType(KHRSwapchain.VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR) .surface(surface.getNativeObject()) .minImageCount(support.selectImageCount()) - .imageFormat(format) + .imageFormat(format.getVkEnum()) .imageColorSpace(fmt.colorSpace()) .imageExtent(ext) .imageArrayLayers(1) @@ -106,9 +106,9 @@ public void reload(SwapchainSupport support) { ref.refresh(); // refresh the native destroyer } - public void createFrameBuffers(RenderPass compat) { + public void createFrameBuffers(RenderPass compat, ImageView depthStencil) { for (SwapchainImage img : images) { - img.createFrameBuffer(compat); + img.createFrameBuffer(compat, depthStencil); } } @@ -154,7 +154,7 @@ public Extent2 getExtent() { return extent; } - public int getFormat() { + public Image.Format getFormat() { return format; } @@ -205,10 +205,15 @@ public int getDepth() { } @Override - public int getFormat() { + public Image.Format getFormat() { return format; } + @Override + public Image.Tiling getTiling() { + return Tiling.Optimal; + } + @Override public Long getNativeObject() { return id; @@ -227,8 +232,8 @@ public NativeReference getNativeReference() { return ref; } - public void createFrameBuffer(RenderPass compat) { - this.frameBuffer = new FrameBuffer(getDevice(), compat, extent.x, extent.y, 1, view); + public void createFrameBuffer(RenderPass compat, ImageView depthStencil) { + this.frameBuffer = new FrameBuffer(getDevice(), compat, extent.x, extent.y, 1, view, depthStencil); } public FrameBuffer getFrameBuffer() { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/ImageUsageFlags.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/ImageUsageFlags.java index e85f1271e4..8ed82c59e8 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/ImageUsageFlags.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/ImageUsageFlags.java @@ -21,6 +21,11 @@ public ImageUsageFlags sampled() { return this; } + public ImageUsageFlags depthStencilAttachment() { + usageFlags |= VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT; + return this; + } + public int getUsageFlags() { return usageFlags; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java index f7ca4dd6ec..820323a1c0 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java @@ -26,27 +26,30 @@ public class GpuImage implements Image { private final NativeReference ref; private final long id; private final MemoryRegion memory; - private final int type, width, height, depth, format; + private final int type, width, height, depth; + private final Image.Format format; + private final Image.Tiling tiling; - public GpuImage(LogicalDevice device, int width, int height, int format, ImageUsageFlags usage, MemoryFlags mem) { - this(device, VK_IMAGE_TYPE_2D, width, height, 1, format, usage, mem); + public GpuImage(LogicalDevice device, int width, int height, Image.Format format, Image.Tiling tiling, ImageUsageFlags usage, MemoryFlags mem) { + this(device, VK_IMAGE_TYPE_2D, width, height, 1, format, tiling, usage, mem); } - public GpuImage(LogicalDevice device, int type, int width, int height, int depth, int format, ImageUsageFlags usage, MemoryFlags mem) { + public GpuImage(LogicalDevice device, int type, int width, int height, int depth, Image.Format format, Image.Tiling tiling, ImageUsageFlags usage, MemoryFlags mem) { this.device = device; this.type = type; this.width = width; this.height = height; this.depth = depth; this.format = format; + this.tiling = tiling; try (MemoryStack stack = MemoryStack.stackPush()) { VkImageCreateInfo create = VkImageCreateInfo.calloc(stack) .sType(VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO) .imageType(type) .mipLevels(1) .arrayLayers(1) - .format(format) - .tiling(VK_IMAGE_TILING_OPTIMAL) + .format(format.getVkEnum()) + .tiling(tiling.getVkEnum()) .initialLayout(VK_IMAGE_LAYOUT_UNDEFINED) .usage(usage.getUsageFlags()) .samples(VK_SAMPLE_COUNT_1_BIT) @@ -97,10 +100,15 @@ public int getDepth() { } @Override - public int getFormat() { + public Image.Format getFormat() { return format; } + @Override + public Image.Tiling getTiling() { + return tiling; + } + @Override public Long getNativeObject() { return id; @@ -119,23 +127,34 @@ public NativeReference getNativeReference() { return ref; } - public void transitionLayout(CommandBuffer commands, int srcLayout, int dstLayout) { + public void transitionLayout(CommandBuffer commands, Image.Layout srcLayout, Image.Layout dstLayout) { try (MemoryStack stack = MemoryStack.stackPush()) { - int[] args = VulkanUtils.getTransferArguments(srcLayout, dstLayout); + int[] args = Image.Layout.getTransferArguments(srcLayout, dstLayout); VkImageMemoryBarrier.Buffer barrier = VkImageMemoryBarrier.calloc(1, stack) .sType(VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER) - .oldLayout(srcLayout) - .newLayout(dstLayout) + .oldLayout(srcLayout.getVkEnum()) + .newLayout(dstLayout.getVkEnum()) .srcQueueFamilyIndex(VK_QUEUE_FAMILY_IGNORED) .dstQueueFamilyIndex(VK_QUEUE_FAMILY_IGNORED) // for transfering queue ownership .image(id) .srcAccessMask(args[0]) .dstAccessMask(args[1]); - barrier.subresourceRange().aspectMask(VK_IMAGE_ASPECT_COLOR_BIT) + barrier.subresourceRange() .baseMipLevel(0) .levelCount(1) .baseArrayLayer(0) .layerCount(1); + int aspect = 0; + if (format.isColor()) { + aspect |= VK_IMAGE_ASPECT_COLOR_BIT; + } + if (format.isDepth()) { + aspect |= VK_IMAGE_ASPECT_DEPTH_BIT; + } + if (format.isStencil()) { + aspect |= VK_IMAGE_ASPECT_STENCIL_BIT; + } + barrier.subresourceRange().aspectMask(aspect); vkCmdPipelineBarrier(commands.getBuffer(), args[2], args[3], 0, null, null, barrier); } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Image.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Image.java index 94b4350ed8..7cafbcd3db 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Image.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Image.java @@ -3,12 +3,132 @@ import com.jme3.util.natives.Native; import com.jme3.vulkan.LogicalDevice; import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.KHRSwapchain; import org.lwjgl.vulkan.VkImageViewCreateInfo; import static org.lwjgl.vulkan.VK10.*; public interface Image extends Native { + enum Format { + + RGBA32SFloat(VK_FORMAT_R32G32B32A32_SFLOAT, 32 * 4, true, false, false), + RGBA8_SRGB(VK_FORMAT_R8G8B8A8_SRGB, 32, true, false, false), + R8_SRGB(VK_FORMAT_R8_SRGB, 8, true, false, false), + BGR8_SRGB(VK_FORMAT_B8G8R8_SRGB, 24, true, false, false), + ABGR8_SRGB(VK_FORMAT_A8B8G8R8_SRGB_PACK32, 32, true, false, false), + B8G8R8A8_SRGB(VK_FORMAT_B8G8R8A8_SRGB, 32, true, false, false), + + Depth32SFloat(VK_FORMAT_D32_SFLOAT, 32, false, true, false), + Depth32SFloat_Stencil8UInt(VK_FORMAT_D32_SFLOAT_S8_UINT, 40, false, true, true), + Depth24UNorm_Stencil8UInt(VK_FORMAT_D24_UNORM_S8_UINT, 32, false, true, true), + Depth16UNorm(VK_FORMAT_D16_UNORM, 16, false, true, false), + Depth16UNorm_Stencil8UInt(VK_FORMAT_D16_UNORM_S8_UINT, 24, false, true, true); + + private final int vkEnum, bits; + private final boolean color, depth, stencil; + + Format(int vkEnum, int bits, boolean color, boolean depth, boolean stencil) { + this.vkEnum = vkEnum; + this.bits = bits; + this.color = color; + this.depth = depth; + this.stencil = stencil; + } + + public int getVkEnum() { + return vkEnum; + } + + public int getBits() { + return bits; + } + + public boolean isColor() { + return color; + } + + public boolean isDepth() { + return depth; + } + + public boolean isStencil() { + return stencil; + } + + public static Format vkEnum(int vkEnum) { + for (Format f : Format.values()) { + if (f.vkEnum == vkEnum) { + return f; + } + } + throw new UnsupportedOperationException("Format " + vkEnum + " is not supported."); + } + + } + + enum Layout { + + Undefined(VK_IMAGE_LAYOUT_UNDEFINED), + General(VK_IMAGE_LAYOUT_GENERAL), + PreInitialized(VK_IMAGE_LAYOUT_PREINITIALIZED), + ColorAttachmentOptimal(VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL), + DepthStencilAttachmentOptimal(VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL), + DepthStencilReadOnlyOptimal(VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL), + TransferSrcOptimal(VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL), + TransferDstOptimal(VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL), + ShaderReadOnlyOptimal(VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL), + PresentSrc(KHRSwapchain.VK_IMAGE_LAYOUT_PRESENT_SRC_KHR); + + private final int vkEnum; + + Layout(int vkEnum) { + this.vkEnum = vkEnum; + } + + public int getVkEnum() { + return vkEnum; + } + + public static int[] getTransferArguments(Layout srcLayout, Layout dstLayout) { + // output array format: {srcAccessMask, dstAccessMask, srcStage, dstStage} + switch (srcLayout) { + case Undefined: switch (dstLayout) { + case TransferDstOptimal: return new int[] { + 0, VK_ACCESS_TRANSFER_WRITE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, + VK_PIPELINE_STAGE_TRANSFER_BIT}; + case DepthStencilAttachmentOptimal: return new int[] { + 0, VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, + VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT}; + } break; + case TransferDstOptimal: switch (dstLayout) { + case ShaderReadOnlyOptimal: return new int[] { + VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_SHADER_READ_BIT, + VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT}; + } break; + } + throw new UnsupportedOperationException("Unsupported layout transition: " + srcLayout + " to " + dstLayout); + } + + } + + enum Tiling { + + Optimal(VK_IMAGE_TILING_OPTIMAL), + Linear(VK_IMAGE_TILING_LINEAR); + + private final int vkEnum; + + Tiling(int vkEnum) { + this.vkEnum = vkEnum; + } + + public int getVkEnum() { + return vkEnum; + } + + } + ImageView createView(VkImageViewCreateInfo create); LogicalDevice getDevice(); @@ -21,7 +141,9 @@ public interface Image extends Native { int getDepth(); - int getFormat(); + Format getFormat(); + + Tiling getTiling(); default ImageView createView(int type, int aspects, int baseMip, int mipCount, int baseLayer, int layerCount) { try (MemoryStack stack = MemoryStack.stackPush()) { @@ -29,12 +151,12 @@ default ImageView createView(int type, int aspects, int baseMip, int mipCount, i .sType(VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO) .image(getNativeObject()) .viewType(type) - .format(getFormat()); + .format(getFormat().getVkEnum()); create.components().r(VK_COMPONENT_SWIZZLE_IDENTITY) .g(VK_COMPONENT_SWIZZLE_IDENTITY) .b(VK_COMPONENT_SWIZZLE_IDENTITY) .a(VK_COMPONENT_SWIZZLE_IDENTITY); - create.subresourceRange().aspectMask(VK_IMAGE_ASPECT_COLOR_BIT) + create.subresourceRange().aspectMask(aspects) .baseMipLevel(baseMip) .levelCount(mipCount) .baseArrayLayer(baseLayer) diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java index 8489807485..7e579bcf24 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java @@ -1,7 +1,6 @@ package com.jme3.vulkan.images; import com.jme3.asset.*; -import com.jme3.texture.Image; import com.jme3.util.BufferUtils; import javax.imageio.ImageIO; @@ -54,7 +53,7 @@ public ImageData load(BufferedImage img, boolean flipY) { } ByteBuffer buffer = BufferUtils.createByteBuffer(width * height * 4); buffer.put(data); - return new ImageData(buffer, width, height, VK_FORMAT_A8B8G8R8_SRGB_PACK32); + return new ImageData(buffer, width, height, Image.Format.ABGR8_SRGB); } case BufferedImage.TYPE_3BYTE_BGR: { // most common in JPEG images if (flipY) { @@ -62,7 +61,7 @@ public ImageData load(BufferedImage img, boolean flipY) { } ByteBuffer buffer = BufferUtils.createByteBuffer(width * height * 3); buffer.put(data); - return new ImageData(buffer, width, height, VK_FORMAT_B8G8R8_SRGB); + return new ImageData(buffer, width, height, Image.Format.BGR8_SRGB); } case BufferedImage.TYPE_BYTE_GRAY: { // grayscale fonts if (flipY) { @@ -70,10 +69,10 @@ public ImageData load(BufferedImage img, boolean flipY) { } ByteBuffer buffer = BufferUtils.createByteBuffer(width * height); buffer.put(data); - return new ImageData(buffer, width, height, VK_FORMAT_R8_SRGB); + return new ImageData(buffer, width, height, Image.Format.R8_SRGB); } } - if (img.getTransparency() == Transparency.OPAQUE){ + if (img.getTransparency() == Transparency.OPAQUE) { ByteBuffer buffer = BufferUtils.createByteBuffer(img.getWidth() * img.getHeight() * 4); for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { @@ -90,7 +89,7 @@ public ImageData load(BufferedImage img, boolean flipY) { } } buffer.flip(); - return new ImageData(buffer, width, height, VK_FORMAT_R8G8B8A8_SRGB); + return new ImageData(buffer, width, height, Image.Format.RGBA8_SRGB); } else { ByteBuffer buffer = BufferUtils.createByteBuffer(img.getWidth() * img.getHeight() * 4); for (int y = 0; y < height; y++){ @@ -108,7 +107,7 @@ public ImageData load(BufferedImage img, boolean flipY) { } } buffer.flip(); - return new ImageData(buffer, width, height, VK_FORMAT_R8G8B8A8_SRGB); + return new ImageData(buffer, width, height, Image.Format.RGBA8_SRGB); } } @@ -169,9 +168,9 @@ public static class ImageData { private final ByteBuffer buffer; private final int width, height; - private final int format; + private final Image.Format format; - public ImageData(ByteBuffer buffer, int width, int height, int format) { + public ImageData(ByteBuffer buffer, int width, int height, Image.Format format) { this.buffer = buffer; this.width = width; this.height = height; @@ -190,7 +189,7 @@ public int getHeight() { return height; } - public int getFormat() { + public Image.Format getFormat() { return format; } diff --git a/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl b/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl index a3b97794ef..39ce3e72bb 100644 --- a/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl +++ b/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl @@ -1,6 +1,6 @@ #version 450 -layout (location = 0) in vec2 inPosition; +layout (location = 0) in vec3 inPosition; layout (location = 1) in vec3 inColor; layout (location = 2) in vec2 inTexCoord; @@ -12,7 +12,7 @@ layout (binding = 0) uniform UniformBufferObject { } ubo; void main() { - gl_Position = ubo.worldViewProjectionMatrix * vec4(inPosition, 0.0, 1.0); + gl_Position = ubo.worldViewProjectionMatrix * vec4(inPosition, 1.0); fragColor = inColor; texCoord = inTexCoord; } \ No newline at end of file From beba5fe509e00975e1e8b248f073e1ba9feb822b Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Fri, 1 Aug 2025 11:29:06 -0400 Subject: [PATCH 17/37] added depth testing; added enums for image properties --- .../jme3test/vulkan/VulkanHelperTest.java | 39 ++++++++++--------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java index b145d7a396..c407f470aa 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java @@ -6,7 +6,6 @@ import com.jme3.math.Quaternion; import com.jme3.math.Transform; import com.jme3.math.Vector3f; -import com.jme3.opencl.CommandQueue; import com.jme3.renderer.vulkan.VulkanUtils; import com.jme3.shaderc.ShaderType; import com.jme3.shaderc.ShadercLoader; @@ -25,7 +24,6 @@ import org.lwjgl.PointerBuffer; import org.lwjgl.glfw.GLFW; import org.lwjgl.system.MemoryStack; -import org.lwjgl.system.MemoryUtil; import org.lwjgl.vulkan.*; import java.nio.FloatBuffer; @@ -35,9 +33,6 @@ import java.util.logging.Level; import static com.jme3.renderer.vulkan.VulkanUtils.*; -import static org.lwjgl.system.MemoryUtil.NULL; -import static org.lwjgl.vulkan.EXTDebugUtils.*; -import static org.lwjgl.vulkan.EXTDebugUtils.VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT; import static org.lwjgl.vulkan.VK13.*; public class VulkanHelperTest extends SimpleApplication implements SwapchainUpdater { @@ -165,19 +160,7 @@ public void simpleInitApp() { CommandPool transferPool = new CommandPool(device, queues.getGraphicsQueue(), true, false); // depth texture - Image.Format depthFormat = device.getPhysicalDevice().findSupportedFormat( - VK_IMAGE_TILING_OPTIMAL, - VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, - Image.Format.Depth32SFloat, Image.Format.Depth32SFloat_Stencil8UInt, Image.Format.Depth24UNorm_Stencil8UInt); - GpuImage depthImage = new GpuImage(device, swapchain.getExtent().x, swapchain.getExtent().y, depthFormat, - Image.Tiling.Optimal, new ImageUsageFlags().depthStencilAttachment(), new MemoryFlags().deviceLocal()); - depthView = depthImage.createView(VK_IMAGE_VIEW_TYPE_2D, VK_IMAGE_ASPECT_DEPTH_BIT, 0, 1, 0, 1); - CommandBuffer commands = transferPool.allocateOneTimeCommandBuffer(); - commands.begin(); - depthImage.transitionLayout(commands, Image.Layout.Undefined, Image.Layout.DepthStencilAttachmentOptimal); - commands.end(); - commands.submit(null, null, null); - commands.getPool().getQueue().waitIdle(); + depthView = createDepthAttachment(transferPool); // pipeline pipelineLayout = new PipelineLayout(device, descriptorLayout); @@ -196,7 +179,7 @@ public void simpleInitApp() { .initialLayout(Image.Layout.Undefined.getVkEnum()) .finalLayout(Image.Layout.PresentSrc.getVkEnum())); int depth = pass.createAttachment(a -> a - .format(depthFormat.getVkEnum()) + .format(depthView.getImage().getFormat().getVkEnum()) .samples(VK_SAMPLE_COUNT_1_BIT) .loadOp(VK_ATTACHMENT_LOAD_OP_CLEAR) .storeOp(VK_ATTACHMENT_STORE_OP_DONT_CARE) @@ -273,6 +256,7 @@ public boolean swapchainOutOfDate(Swapchain swapchain, int imageAcquireCode) { long window = ((LwjglVulkanContext)context).getWindowHandle(); try (SimpleSwapchainSupport support = new SimpleSwapchainSupport(device.getPhysicalDevice(), surface, window)) { swapchain.reload(support); + depthView = createDepthAttachment(new CommandPool(device, queues.getGraphicsQueue(), true, false)); swapchain.createFrameBuffers(renderPass, depthView); } return true; @@ -293,6 +277,23 @@ public void simpleUpdate(float tpf) { renderer.render(tpf); } + private ImageView createDepthAttachment(CommandPool pool) { + Image.Format depthFormat = device.getPhysicalDevice().findSupportedFormat( + VK_IMAGE_TILING_OPTIMAL, + VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, + Image.Format.Depth32SFloat, Image.Format.Depth32SFloat_Stencil8UInt, Image.Format.Depth24UNorm_Stencil8UInt); + GpuImage image = new GpuImage(device, swapchain.getExtent().x, swapchain.getExtent().y, depthFormat, + Image.Tiling.Optimal, new ImageUsageFlags().depthStencilAttachment(), new MemoryFlags().deviceLocal()); + ImageView view = image.createView(VK_IMAGE_VIEW_TYPE_2D, VK_IMAGE_ASPECT_DEPTH_BIT, 0, 1, 0, 1); + CommandBuffer commands = pool.allocateOneTimeCommandBuffer(); + commands.begin(); + image.transitionLayout(commands, Image.Layout.Undefined, Image.Layout.DepthStencilAttachmentOptimal); + commands.end(); + commands.submit(null, null, null); + commands.getPool().getQueue().waitIdle(); + return view; + } + private GpuImage loadImage(String file, CommandPool transferPool) { try (MemoryStack stack = MemoryStack.stackPush()) { VulkanImageLoader.ImageData data = assetManager.loadAsset(VulkanImageLoader.key(file)); From 4e31f0da7c80f53e741bd9a5951ae57c4bc8fff4 Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Sun, 3 Aug 2025 07:53:34 -0400 Subject: [PATCH 18/37] migrated instance, device, surface, and swapchain to new builder architecture --- .../java/com/jme3/util/natives/Native.java | 7 +- .../jme3/util/natives/NativeReference.java | 4 +- .../jme3test/vulkan/VulkanHelperTest.java | 89 +++--- .../main/java/jme3test/vulkan/VulkanTest.java | 14 +- .../java/com/jme3/vulkan/CommandPool.java | 2 +- .../src/main/java/com/jme3/vulkan/Fence.java | 2 +- .../java/com/jme3/vulkan/FrameBuffer.java | 1 + .../com/jme3/vulkan/GraphicsPipeline.java | 2 +- .../java/com/jme3/vulkan/InstanceBuilder.java | 150 ---------- .../java/com/jme3/vulkan/LogicalDevice.java | 69 ----- .../java/com/jme3/vulkan/PhysicalDevice.java | 162 ----------- .../java/com/jme3/vulkan/PipelineLayout.java | 1 + .../src/main/java/com/jme3/vulkan/Queue.java | 5 +- .../java/com/jme3/vulkan/QueueFamilies.java | 2 + .../main/java/com/jme3/vulkan/RenderPass.java | 2 +- .../com/jme3/vulkan/RenderPassBuilder.java | 2 +- .../main/java/com/jme3/vulkan/Semaphore.java | 1 + .../java/com/jme3/vulkan/ShaderModule.java | 1 + .../main/java/com/jme3/vulkan/Surface.java | 13 +- .../main/java/com/jme3/vulkan/Swapchain.java | 265 +++++++++++++----- .../java/com/jme3/vulkan/VulkanInstance.java | 132 +++++++-- .../com/jme3/vulkan/buffers/GpuBuffer.java | 4 +- .../com/jme3/vulkan/buffers/MemoryRegion.java | 4 +- .../jme3/vulkan/buffers/PersistentBuffer.java | 3 +- .../jme3/vulkan/buffers/StageableBuffer.java | 1 + .../vulkan/descriptors/DescriptorPool.java | 2 +- .../vulkan/descriptors/DescriptorSet.java | 2 +- .../descriptors/DescriptorSetLayout.java | 2 +- .../DeviceFilter.java} | 13 +- .../jme3/vulkan/devices/LogicalDevice.java | 192 +++++++++++++ .../jme3/vulkan/devices/PhysicalDevice.java | 106 +++++++ .../java/com/jme3/vulkan/images/GpuImage.java | 6 +- .../java/com/jme3/vulkan/images/Image.java | 2 +- .../java/com/jme3/vulkan/images/Sampler.java | 2 +- .../java/com/jme3/vulkan/images/Texture.java | 2 +- 35 files changed, 678 insertions(+), 589 deletions(-) delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/InstanceBuilder.java delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/LogicalDevice.java delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/{DeviceEvaluator.java => devices/DeviceFilter.java} (86%) create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/LogicalDevice.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java diff --git a/jme3-core/src/main/java/com/jme3/util/natives/Native.java b/jme3-core/src/main/java/com/jme3/util/natives/Native.java index 9ba9f8775c..1e6fd2b035 100644 --- a/jme3-core/src/main/java/com/jme3/util/natives/Native.java +++ b/jme3-core/src/main/java/com/jme3/util/natives/Native.java @@ -2,7 +2,7 @@ import org.lwjgl.system.MemoryUtil; -public interface Native extends AutoCloseable { +public interface Native { T getNativeObject(); @@ -12,11 +12,6 @@ public interface Native extends AutoCloseable { NativeReference getNativeReference(); - @Override - default void close() { - getNativeReference().destroy(); - } - static void set(NativeManager manager) { BasicNativeManager.setGlobalInstance(manager); } diff --git a/jme3-core/src/main/java/com/jme3/util/natives/NativeReference.java b/jme3-core/src/main/java/com/jme3/util/natives/NativeReference.java index 98abbcc7dd..f699c81b39 100644 --- a/jme3-core/src/main/java/com/jme3/util/natives/NativeReference.java +++ b/jme3-core/src/main/java/com/jme3/util/natives/NativeReference.java @@ -4,10 +4,10 @@ public interface NativeReference { void destroy(); + void refresh(); + void addDependent(NativeReference reference); boolean isDestroyed(); - void refresh(); - } diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java index c407f470aa..c3022f3d97 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java @@ -6,7 +6,6 @@ import com.jme3.math.Quaternion; import com.jme3.math.Transform; import com.jme3.math.Vector3f; -import com.jme3.renderer.vulkan.VulkanUtils; import com.jme3.shaderc.ShaderType; import com.jme3.shaderc.ShadercLoader; import com.jme3.system.AppSettings; @@ -17,11 +16,11 @@ import com.jme3.vulkan.Queue; import com.jme3.vulkan.buffers.*; import com.jme3.vulkan.descriptors.*; +import com.jme3.vulkan.devices.*; import com.jme3.vulkan.flags.ImageUsageFlags; import com.jme3.vulkan.flags.MemoryFlags; import com.jme3.vulkan.flags.BufferUsageFlags; import com.jme3.vulkan.images.*; -import org.lwjgl.PointerBuffer; import org.lwjgl.glfw.GLFW; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.*; @@ -39,7 +38,7 @@ public class VulkanHelperTest extends SimpleApplication implements SwapchainUpda private VulkanInstance instance; private Surface surface; - private LogicalDevice device; + private LogicalDevice device; private SimpleQueueFamilies queues; private Swapchain swapchain; private ShaderModule vertModule, fragModule; @@ -54,8 +53,6 @@ public class VulkanHelperTest extends SimpleApplication implements SwapchainUpda private boolean swapchainResizeFlag = false; private boolean applicationStopped = false; - private final Collection deviceExtensions = new ArrayList<>(); - private VulkanLogger logger; // mesh @@ -106,49 +103,41 @@ public void simpleInitApp() { flyCam.setMoveSpeed(5f); flyCam.setDragToRotate(true); - deviceExtensions.add(KHRSwapchain.VK_KHR_SWAPCHAIN_EXTENSION_NAME); long window = ((LwjglVulkanContext)context).getWindowHandle(); - try (InstanceBuilder inst = new InstanceBuilder(VK13.VK_API_VERSION_1_3)) { - - // build instance - inst.addGlfwExtensions(); - inst.addDebugExtension(); - inst.addLunarGLayer(); - inst.setApplicationName(VulkanHelperTest.class.getSimpleName()); - inst.setApplicationVersion(1, 0, 0); - instance = inst.build(); - - // debug callbacks - logger = new VulkanLogger(instance, Level.SEVERE); - - // surface - surface = new Surface(instance, window); - - // physical device - PhysicalDevice physDevice = PhysicalDevice.getSuitableDevice( - instance, Arrays.asList( - surface, - DeviceEvaluator.extensions(deviceExtensions), - DeviceEvaluator.swapchain(surface), - DeviceEvaluator.anisotropy() - ), - () -> new SimpleQueueFamilies(surface)); - - // queue families - queues = physDevice.getQueueFamilies(); - - // logical device - PointerBuffer deviceExts = VulkanUtils.toPointers(inst.getStack(), deviceExtensions, inst.getStack()::UTF8); - device = new LogicalDevice(physDevice, deviceExts, inst.getLayers()); - - // create queues - physDevice.getQueueFamilies().createQueues(device); - - // swapchain - try (SimpleSwapchainSupport support = new SimpleSwapchainSupport(physDevice, surface, window)) { - swapchain = new Swapchain(device, surface, support); - } + instance = new VulkanInstance(VK_API_VERSION_1_3); + try (VulkanInstance.Builder i = instance.build()) { + i.addGlfwExtensions(); + i.addDebugExtension(); + i.addLunarGLayer(); + i.setApplicationName(VulkanHelperTest.class.getSimpleName()); + i.setApplicationVersion(1, 0, 0); + } + + // debug callbacks + logger = new VulkanLogger(instance, Level.SEVERE); + + // surface + surface = new Surface(instance, window); + + // logical device + device = new LogicalDevice<>(instance); + try (LogicalDevice.Builder d = device.build(id -> new SimplePhysicalDevice(instance, surface, id))) { + d.addFilter(surface); + d.addFilter(DeviceFilter.swapchain(surface)); + d.addCriticalExtension(KHRSwapchain.VK_KHR_SWAPCHAIN_EXTENSION_NAME); + d.addFeature(DeviceFeature.anisotropy(1f, true)); + } + + // swapchain + swapchain = new Swapchain(device, surface); + try (Swapchain.Builder s = swapchain.build()) { + s.addQueue(device.getPhysicalDevice().getGraphics()); + s.addQueue(device.getPhysicalDevice().getPresent()); + s.selectFormat(Image.Format.B8G8R8A8_SRGB.getVkEnum(), KHRSurface.VK_COLOR_SPACE_SRGB_NONLINEAR_KHR); + s.selectMode(Swapchain.PresentMode.Mailbox); + s.selectExtentByWindow(); + s.selectImageCount(2); } descriptorLayout = new DescriptorSetLayout(device, @@ -415,7 +404,7 @@ public boolean populate(PhysicalDevice device, VkQueueFamilyProperties.Buffer pr graphicsIndex = i; } else if (presentIndex == null) { KHRSurface.vkGetPhysicalDeviceSurfaceSupportKHR( - device.getDevice(), i, surface.getNativeObject(), ibuf); + device.getPhysicalDevice(), i, surface.getNativeObject(), ibuf); if (ibuf.get(0) == VK13.VK_TRUE) { presentIndex = i; } @@ -484,13 +473,13 @@ private static class SimpleSwapchainSupport implements SwapchainSupport, AutoClo public SimpleSwapchainSupport(PhysicalDevice device, Surface surface, long window) { stack = MemoryStack.stackPush(); caps = VkSurfaceCapabilitiesKHR.malloc(stack); - KHRSurface.vkGetPhysicalDeviceSurfaceCapabilitiesKHR(device.getDevice(), surface.getNativeObject(), caps); + KHRSurface.vkGetPhysicalDeviceSurfaceCapabilitiesKHR(device.getPhysicalDevice(), surface.getNativeObject(), caps); formats = enumerateBuffer(stack, n -> VkSurfaceFormatKHR.malloc(n, stack), (count, buffer) -> KHRSurface.vkGetPhysicalDeviceSurfaceFormatsKHR( - device.getDevice(), surface.getNativeObject(), count, buffer)); + device.getPhysicalDevice(), surface.getNativeObject(), count, buffer)); modes = enumerateBuffer(stack, stack::mallocInt, (count, buffer) -> KHRSurface.vkGetPhysicalDeviceSurfacePresentModesKHR( - device.getDevice(), surface.getNativeObject(), count, buffer)); + device.getPhysicalDevice(), surface.getNativeObject(), count, buffer)); this.window = window; } diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java index b41eb05cca..601b8ca048 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java @@ -1,28 +1,22 @@ package jme3test.vulkan; import com.jme3.app.SimpleApplication; -import com.jme3.asset.AssetInfo; -import com.jme3.asset.AssetKey; -import com.jme3.asset.AssetLoader; import com.jme3.shaderc.ShaderType; import com.jme3.shaderc.ShadercLoader; import com.jme3.system.AppSettings; import com.jme3.util.natives.Native; -import com.jme3.vulkan.DeviceEvaluator; +import com.jme3.vulkan.devices.DeviceFilter; import com.jme3.system.vulkan.LwjglVulkanContext; import com.jme3.vulkan.Fence; import com.jme3.vulkan.Semaphore; import com.jme3.vulkan.VulkanRenderManager; -import jme3tools.shader.ShaderDebug; import org.lwjgl.BufferUtils; import org.lwjgl.PointerBuffer; import org.lwjgl.glfw.GLFW; import org.lwjgl.glfw.GLFWVulkan; import org.lwjgl.system.MemoryStack; -import org.lwjgl.util.shaderc.Shaderc; import org.lwjgl.vulkan.*; -import java.io.*; import java.nio.ByteBuffer; import java.nio.IntBuffer; import java.nio.LongBuffer; @@ -49,7 +43,7 @@ public class VulkanTest extends SimpleApplication { private final Collection instanceExtensions = new ArrayList<>(); private final Collection deviceExtensions = new ArrayList<>(); private final List layers = new ArrayList<>(); - private final Collection deviceEvaluators = new ArrayList<>(); + private final Collection deviceFilters = new ArrayList<>(); private final VkDebugUtilsMessengerCallbackEXT debugCallback = new VulkanDebugCallback(Level.SEVERE); private LwjglVulkanContext vulkanContext; private Swapchain swapchain; @@ -259,11 +253,11 @@ private Float evaluateDevice(PhysicalDevice device, long surface) { if (!new SwapchainSupport(stack, device.getDevice(), surface).isSupported()) { return null; } - if (deviceEvaluators.isEmpty()) { + if (deviceFilters.isEmpty()) { return 0f; } float score = 0f; - for (DeviceEvaluator e : deviceEvaluators) { + for (DeviceFilter e : deviceFilters) { //Float s = e.evaluateDevice(device.getDevice()); Float s = 0f; if (s == null) { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandPool.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandPool.java index 0242a2e0bc..042f3bb500 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandPool.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandPool.java @@ -2,8 +2,8 @@ import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.devices.LogicalDevice; import org.lwjgl.system.MemoryStack; -import org.lwjgl.system.MemoryUtil; import org.lwjgl.vulkan.VkCommandPoolCreateInfo; import java.nio.LongBuffer; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Fence.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Fence.java index d5a0e0270d..3e4c945e37 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Fence.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Fence.java @@ -2,8 +2,8 @@ import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.devices.LogicalDevice; import org.lwjgl.system.MemoryStack; -import org.lwjgl.vulkan.VkDevice; import org.lwjgl.vulkan.VkFenceCreateInfo; import java.util.concurrent.TimeUnit; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/FrameBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/FrameBuffer.java index fb0e6d0d91..cf520c51b5 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/FrameBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/FrameBuffer.java @@ -2,6 +2,7 @@ import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.devices.LogicalDevice; import com.jme3.vulkan.images.ImageView; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkFramebufferCreateInfo; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java index 4cd7989613..f9567c458d 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java @@ -3,8 +3,8 @@ import com.jme3.material.RenderState; import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.devices.LogicalDevice; import org.lwjgl.system.MemoryStack; -import org.lwjgl.system.MemoryUtil; import org.lwjgl.vulkan.*; import java.nio.LongBuffer; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/InstanceBuilder.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/InstanceBuilder.java deleted file mode 100644 index 7446748874..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/InstanceBuilder.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.jme3.vulkan; - -import com.jme3.system.JmeVersion; -import org.lwjgl.PointerBuffer; -import org.lwjgl.glfw.GLFWVulkan; -import org.lwjgl.system.MemoryStack; -import org.lwjgl.vulkan.EXTDebugUtils; -import org.lwjgl.vulkan.VK10; -import org.lwjgl.vulkan.VkApplicationInfo; -import org.lwjgl.vulkan.VkInstanceCreateInfo; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Objects; - -import static org.lwjgl.vulkan.VK10.*; - -public class InstanceBuilder implements AutoCloseable { - - public static final String LUNARG_LAYER = "VK_LAYER_KHRONOS_validation"; - - private final MemoryStack stack; - private final VkApplicationInfo info; - private final Collection extPointers = new ArrayList<>(); - private final Collection extensions = new ArrayList<>(); - private final Collection layers = new ArrayList<>(); - - public InstanceBuilder() { - this(VK_API_VERSION_1_0); - } - - public InstanceBuilder(int vulkanApi) { - stack = MemoryStack.stackPush(); - String[] ver = JmeVersion.VERSION_NUMBER.split("\\.", 3); - info = VkApplicationInfo.calloc(stack).sType(VK_STRUCTURE_TYPE_APPLICATION_INFO) - .pEngineName(stack.UTF8("jMonkeyEngine")) - .engineVersion(VK_MAKE_VERSION( - Integer.parseInt(ver[0]), - Integer.parseInt(ver[1]), - Integer.parseInt(ver[2]))) - .apiVersion(vulkanApi); - } - - @Override - public void close() { - stack.pop(); - } - - public VulkanInstance build() { - return new VulkanInstance(info, getExtensions(), getLayers()); - } - - public void setApplicationName(String name) { - info.pApplicationName(stack.UTF8(name)); - } - - public void setApplicationVersion(int major, int minor, int patch) { - info.applicationVersion(VK_MAKE_VERSION(major, minor, patch)); - } - - public void addGlfwExtensions() { - addExtensions(Objects.requireNonNull(GLFWVulkan.glfwGetRequiredInstanceExtensions())); - } - - public void addDebugExtension() { - addExtension(EXTDebugUtils.VK_EXT_DEBUG_UTILS_EXTENSION_NAME); - } - - public void addLunarGLayer() { - addLayer(LUNARG_LAYER); - } - - public void addExtensions(PointerBuffer exts) { - extPointers.add(exts); - } - - public void addExtension(String ext) { - extensions.add(ext); - } - - public void addLayer(String layer) { - layers.add(layer); - } - - public VkApplicationInfo getInfo() { - return info; - } - - public PointerBuffer getExtensions() { - return getExtensions(stack.mallocPointer(getNumExtensions())); - } - - public PointerBuffer getExtensions(PointerBuffer exts) { - for (PointerBuffer ptr : extPointers) { - for (int i = 0; i < ptr.limit(); i++) { - if (exts.hasRemaining()) { - exts.put(ptr.get(i)); - } else return exts.rewind(); - } - } - for (String e : extensions) { - if (exts.hasRemaining()) { - exts.put(stack.UTF8(e)); - } else break; - } - return exts.rewind(); - } - - public Collection getUnnamedExtensions() { - return extPointers; - } - - public Collection getNamedExtensions() { - return extensions; - } - - public int getNumExtensions() { - int size = extensions.size(); - for (PointerBuffer exts : extPointers) { - size += exts.limit(); - } - return size; - } - - public PointerBuffer getLayers() { - return getLayers(stack.mallocPointer(layers.size())); - } - - public PointerBuffer getLayers(PointerBuffer lyrs) { - for (String l : layers) { - if (lyrs.hasRemaining()) { - lyrs.put(stack.UTF8(l)); - } - } - return lyrs.rewind(); - } - - public Collection getNamedLayers() { - return layers; - } - - public int getNumLayers() { - return layers.size(); - } - - public MemoryStack getStack() { - return stack; - } - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/LogicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/LogicalDevice.java deleted file mode 100644 index 362e42395b..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/LogicalDevice.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.jme3.vulkan; - -import com.jme3.util.natives.Native; -import com.jme3.util.natives.NativeReference; -import org.lwjgl.PointerBuffer; -import org.lwjgl.system.MemoryStack; -import org.lwjgl.vulkan.VkDevice; -import org.lwjgl.vulkan.VkDeviceCreateInfo; - -import static com.jme3.renderer.vulkan.VulkanUtils.*; -import static org.lwjgl.vulkan.VK10.*; - -public class LogicalDevice implements Native { - - private final PhysicalDevice physical; - private final NativeReference ref; - private VkDevice device; - - public LogicalDevice(PhysicalDevice physical, PointerBuffer extensions, PointerBuffer layers) { - this.physical = physical; - try (MemoryStack stack = MemoryStack.stackPush()) { - VkDeviceCreateInfo create = VkDeviceCreateInfo.calloc(stack) - .sType(VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO) - .pQueueCreateInfos(physical.getQueueFamilies().createLogicalBuffers(stack)) - .pEnabledFeatures(physical.getFeatures(stack).samplerAnisotropy(true)); - if (extensions != null) { - create.ppEnabledExtensionNames(extensions); - } - if (layers != null) { - create.ppEnabledLayerNames(layers); - } - PointerBuffer ptr = stack.mallocPointer(1); - check(vkCreateDevice(physical.getDevice(), create, null, ptr), - "Failed to create logical device."); - device = new VkDevice(ptr.get(0), physical.getDevice(), create); - } - ref = Native.get().register(this); - physical.getInstance().getNativeReference().addDependent(ref); - } - - @Override - public VkDevice getNativeObject() { - return device; - } - - @Override - public Runnable createNativeDestroyer() { - return () -> vkDestroyDevice(device, null); - } - - @Override - public void prematureNativeDestruction() { - device = null; - } - - @Override - public NativeReference getNativeReference() { - return ref; - } - - public PhysicalDevice getPhysicalDevice() { - return physical; - } - - public void waitIdle() { - vkDeviceWaitIdle(device); - } - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java deleted file mode 100644 index f56d022128..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PhysicalDevice.java +++ /dev/null @@ -1,162 +0,0 @@ -package com.jme3.vulkan; - -import com.jme3.vulkan.images.Image; -import org.lwjgl.PointerBuffer; -import org.lwjgl.system.MemoryStack; -import org.lwjgl.vulkan.*; - -import java.nio.ByteBuffer; -import java.nio.IntBuffer; -import java.util.Collection; -import java.util.function.Supplier; - -import static com.jme3.renderer.vulkan.VulkanUtils.*; -import static org.lwjgl.vulkan.VK10.*; - -public class PhysicalDevice { - - private final VulkanInstance instance; - private final VkPhysicalDevice device; - private final T queues; - private final VkQueueFamilyProperties.Buffer queueProperties; - - public PhysicalDevice(VulkanInstance instance, T queues, long id) { - this.instance = instance; - this.device = new VkPhysicalDevice(id, instance.getNativeObject()); - this.queues = queues; - try (MemoryStack stack = MemoryStack.stackPush()) { - this.queueProperties = enumerateBuffer(stack, n -> VkQueueFamilyProperties.calloc(n, stack), - (count, buffer) -> vkGetPhysicalDeviceQueueFamilyProperties(device, count, buffer)); - this.queues.populate(this, getQueueFamilyProperties()); - } - } - - public Float evaluate(Collection evaluators) { - if (evaluators.isEmpty()) { - return 0f; - } - float score = 0f; - for (DeviceEvaluator e : evaluators) { - Float s = e.evaluateDevice(this); - if (s == null) return null; - score += s; - } - return score; - } - - public VulkanInstance getInstance() { - return instance; - } - - public VkPhysicalDevice getDevice() { - return device; - } - - public T getQueueFamilies() { - return queues; - } - - public VkQueueFamilyProperties.Buffer getQueueFamilyProperties() { - return queueProperties; - } - - public VkPhysicalDeviceProperties getProperties(MemoryStack stack) { - VkPhysicalDeviceProperties props = VkPhysicalDeviceProperties.malloc(stack); - vkGetPhysicalDeviceProperties(device, props); - return props; - } - - public VkPhysicalDeviceFeatures getFeatures(MemoryStack stack) { - VkPhysicalDeviceFeatures features = VkPhysicalDeviceFeatures.malloc(stack); - vkGetPhysicalDeviceFeatures(device, features); - return features; - } - - public VkExtensionProperties.Buffer getExtensions(MemoryStack stack) { - return enumerateBuffer(stack, n -> VkExtensionProperties.malloc(n, stack), (count, buffer) -> - vkEnumerateDeviceExtensionProperties(device, (ByteBuffer)null, count, buffer)); - } - - public VkPhysicalDeviceMemoryProperties getMemory(MemoryStack stack) { - VkPhysicalDeviceMemoryProperties mem = VkPhysicalDeviceMemoryProperties.malloc(stack); - vkGetPhysicalDeviceMemoryProperties(device, mem); - return mem; - } - - public int findMemoryType(MemoryStack stack, int types, int flags) { - VkPhysicalDeviceMemoryProperties mem = getMemory(stack); - for (int i = 0; i < mem.memoryTypeCount(); i++) { - if ((types & (1 << i)) != 0 && (mem.memoryTypes().get(i).propertyFlags() & flags) != 0) { - return i; - } - } - throw new NullPointerException("Suitable memory type not found."); - } - - public Image.Format findSupportedFormat(int tiling, int features, Image.Format... candidates) { - VkFormatProperties props = VkFormatProperties.create(); - for (Image.Format f : candidates) { - vkGetPhysicalDeviceFormatProperties(device, f.getVkEnum(), props); - if ((tiling == VK_IMAGE_TILING_LINEAR && (props.linearTilingFeatures() & features) == features) - || (tiling == VK_IMAGE_TILING_OPTIMAL && (props.optimalTilingFeatures() & features) == features)) { - return f; - } - } - throw new NullPointerException("Failed to find supported format."); - } - - public int findMemoryType(int filter, int properties) { - try (MemoryStack stack = MemoryStack.stackPush()) { - VkPhysicalDeviceMemoryProperties memProps = VkPhysicalDeviceMemoryProperties.malloc(stack); - vkGetPhysicalDeviceMemoryProperties(device, memProps); - for (int i = 0; i < memProps.memoryTypeCount(); i++) { - if ((filter & (1 << i)) != 0 && (memProps.memoryTypes(i).propertyFlags() & properties) == properties) { - return i; - } - } - throw new NullPointerException("Failed to find suitable memory type."); - } - } - - public boolean querySwapchainSupport(Surface surface) { - try (MemoryStack stack = MemoryStack.stackPush()) { - IntBuffer count = stack.mallocInt(1); - KHRSurface.vkGetPhysicalDeviceSurfaceFormatsKHR(device, surface.getNativeObject(), count, null); - if (count.get(0) <= 0) { - return false; - } - KHRSurface.vkGetPhysicalDeviceSurfacePresentModesKHR(device, surface.getNativeObject(), count, null); - int n = count.get(0); - return n > 0; - } - } - - @SuppressWarnings("unchecked") - public static PhysicalDevice getSuitableDevice(VulkanInstance instance, - Collection evaluators, - Supplier queueFactory) { - try (MemoryStack stack = MemoryStack.stackPush()) { - System.out.println("Get physical device from instance: " + instance); - PointerBuffer devices = enumerateBuffer(stack, stack::mallocPointer, - (count, buffer) -> check(vkEnumeratePhysicalDevices(instance.getNativeObject(), count, buffer), - "Failed to enumerate physical devices.")); - PhysicalDevice device = null; - float score = -1f; - for (PhysicalDevice d : iteratePointers(devices, ptr -> new PhysicalDevice(instance, queueFactory.get(), ptr))) { - if (!d.queues.isComplete()) { - continue; - } - Float s = d.evaluate(evaluators); - if (s != null && (device == null || s > score)) { - device = d; - score = s; - } - } - if (device == null) { - throw new NullPointerException("Failed to find suitable physical device."); - } - return device; - } - } - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java index 83a5ceea93..bc1b0c581c 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java @@ -4,6 +4,7 @@ import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; import com.jme3.vulkan.descriptors.DescriptorSetLayout; +import com.jme3.vulkan.devices.LogicalDevice; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkPipelineLayoutCreateInfo; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Queue.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Queue.java index a8ca8563b0..33ff537bc1 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Queue.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Queue.java @@ -1,6 +1,7 @@ package com.jme3.vulkan; import com.jme3.renderer.vulkan.VulkanUtils; +import com.jme3.vulkan.devices.LogicalDevice; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkQueue; import org.lwjgl.vulkan.VkSubmitInfo; @@ -10,11 +11,11 @@ public class Queue { - private final LogicalDevice device; + private final LogicalDevice device; private final VkQueue queue; private final int familyIndex, queueIndex; - public Queue(LogicalDevice device, int familyIndex, int queueIndex) { + public Queue(LogicalDevice device, int familyIndex, int queueIndex) { this.device = device; this.familyIndex = familyIndex; this.queueIndex = queueIndex; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/QueueFamilies.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/QueueFamilies.java index 73948fe46f..d0e8c960c0 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/QueueFamilies.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/QueueFamilies.java @@ -1,5 +1,7 @@ package com.jme3.vulkan; +import com.jme3.vulkan.devices.LogicalDevice; +import com.jme3.vulkan.devices.PhysicalDevice; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkDeviceQueueCreateInfo; import org.lwjgl.vulkan.VkQueueFamilyProperties; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPass.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPass.java index b7fbb83917..c35050fd49 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPass.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPass.java @@ -2,8 +2,8 @@ import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.devices.LogicalDevice; import org.lwjgl.system.MemoryStack; -import org.lwjgl.system.MemoryUtil; import org.lwjgl.vulkan.VkClearValue; import org.lwjgl.vulkan.VkRenderPassBeginInfo; import org.lwjgl.vulkan.VkRenderPassCreateInfo; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPassBuilder.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPassBuilder.java index 3be74d53bf..2c95d8908f 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPassBuilder.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPassBuilder.java @@ -1,8 +1,8 @@ package com.jme3.vulkan; import com.jme3.renderer.vulkan.VulkanUtils; +import com.jme3.vulkan.devices.LogicalDevice; import org.lwjgl.system.MemoryStack; -import org.lwjgl.system.Struct; import org.lwjgl.vulkan.*; import java.util.ArrayList; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Semaphore.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Semaphore.java index 27488eb934..dd8792fc24 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Semaphore.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Semaphore.java @@ -2,6 +2,7 @@ import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.devices.LogicalDevice; import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryUtil; import org.lwjgl.vulkan.VkSemaphoreCreateInfo; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ShaderModule.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ShaderModule.java index 5810266f90..9214cff188 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ShaderModule.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ShaderModule.java @@ -2,6 +2,7 @@ import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.devices.LogicalDevice; import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryUtil; import org.lwjgl.vulkan.VkShaderModuleCreateInfo; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Surface.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Surface.java index c92a01ad1c..b253f61505 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Surface.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Surface.java @@ -1,8 +1,9 @@ package com.jme3.vulkan; -import com.jme3.renderer.vulkan.VulkanUtils; import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.devices.DeviceFilter; +import com.jme3.vulkan.devices.PhysicalDevice; import org.lwjgl.glfw.GLFWVulkan; import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryUtil; @@ -12,7 +13,7 @@ import static com.jme3.renderer.vulkan.VulkanUtils.*; -public class Surface implements Native, DeviceEvaluator { +public class Surface implements Native, DeviceFilter { private final VulkanInstance instance; private final NativeReference ref; @@ -35,12 +36,12 @@ public Surface(VulkanInstance instance, long window) { public Float evaluateDevice(PhysicalDevice device) { try (MemoryStack stack = MemoryStack.stackPush()) { IntBuffer count = stack.mallocInt(1); - KHRSurface.vkGetPhysicalDeviceSurfaceFormatsKHR(device.getDevice(), id, count, null); + KHRSurface.vkGetPhysicalDeviceSurfaceFormatsKHR(device.getPhysicalDevice(), id, count, null); if (count.get(0) == 0) { System.out.println("Reject device by surface support (formats)"); return null; } - KHRSurface.vkGetPhysicalDeviceSurfacePresentModesKHR(device.getDevice(), id, count, null); + KHRSurface.vkGetPhysicalDeviceSurfacePresentModesKHR(device.getPhysicalDevice(), id, count, null); if (count.get(0) == 0) { System.out.println("Reject device by surface support (present modes)"); return null; @@ -69,4 +70,8 @@ public NativeReference getNativeReference() { return ref; } + public long getWindowHandle() { + return window; + } + } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java index df1156bd70..106f59537c 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java @@ -2,8 +2,10 @@ import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.devices.LogicalDevice; import com.jme3.vulkan.images.Image; import com.jme3.vulkan.images.ImageView; +import org.lwjgl.glfw.GLFW; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.*; @@ -15,95 +17,46 @@ import static com.jme3.renderer.vulkan.VulkanUtils.*; import static org.lwjgl.vulkan.VK10.*; -public class Swapchain implements Native { +public class Swapchain extends VulkanObject { - private final LogicalDevice device; + public enum PresentMode { + + FirstInFirstOut(KHRSurface.VK_PRESENT_MODE_FIFO_KHR), + FirstInFirstOutRelaxed(KHRSurface.VK_PRESENT_MODE_FIFO_RELAXED_KHR), + Immediate(KHRSurface.VK_PRESENT_MODE_IMMEDIATE_KHR), + Mailbox(KHRSurface.VK_PRESENT_MODE_MAILBOX_KHR); + + private final int vkEnum; + + PresentMode(int vkEnum) { + this.vkEnum = vkEnum; + } + + public int getVkEnum() { + return vkEnum; + } + + } + + private final LogicalDevice device; private final Surface surface; - private final NativeReference ref; private final List images = new ArrayList<>(); private SwapchainUpdater updater; private Extent2 extent; private Image.Format format; - private long id = VK_NULL_HANDLE; - public Swapchain(LogicalDevice device, Surface surface, SwapchainSupport support) { + public Swapchain(LogicalDevice device, Surface surface) { this.device = device; this.surface = surface; + this.object = VK_NULL_HANDLE; ref = Native.get().register(this); device.getNativeReference().addDependent(ref); surface.getNativeReference().addDependent(ref); - reload(support); - } - - @Override - public Long getNativeObject() { - return id; } @Override public Runnable createNativeDestroyer() { - return () -> KHRSwapchain.vkDestroySwapchainKHR(device.getNativeObject(), id, null); - } - - @Override - public void prematureNativeDestruction() {} - - @Override - public NativeReference getNativeReference() { - return null; - } - - public void reload(SwapchainSupport support) { - assert support.isSupported() : "Swapchain for device is not supported."; - if (id != VK_NULL_HANDLE) { - createNativeDestroyer().run(); - id = VK_NULL_HANDLE; - } - images.clear(); - try (MemoryStack stack = MemoryStack.stackPush()) { - VkSurfaceCapabilitiesKHR caps = VkSurfaceCapabilitiesKHR.calloc(stack); - KHRSurface.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( - device.getPhysicalDevice().getDevice(), surface.getNativeObject(), caps); - VkSurfaceFormatKHR fmt = support.selectFormat(); - format = Image.Format.vkEnum(fmt.format()); - VkExtent2D ext = support.selectExtent(); - extent = new Extent2(ext); - VkSwapchainCreateInfoKHR create = VkSwapchainCreateInfoKHR.calloc(stack) - .sType(KHRSwapchain.VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR) - .surface(surface.getNativeObject()) - .minImageCount(support.selectImageCount()) - .imageFormat(format.getVkEnum()) - .imageColorSpace(fmt.colorSpace()) - .imageExtent(ext) - .imageArrayLayers(1) - .imageUsage(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT) - .preTransform(caps.currentTransform()) - .compositeAlpha(KHRSurface.VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR) - .presentMode(support.selectMode()) - .clipped(true) - .oldSwapchain(VK_NULL_HANDLE); - IntBuffer concurrent = device.getPhysicalDevice().getQueueFamilies().getSwapchainConcurrentBuffers(stack); - if (concurrent != null) { - create.imageSharingMode(VK_SHARING_MODE_CONCURRENT) - .queueFamilyIndexCount(concurrent.limit()) - .pQueueFamilyIndices(concurrent); - } else { - create.imageSharingMode(VK_SHARING_MODE_EXCLUSIVE); - } - LongBuffer ptr = stack.mallocLong(1); - check(KHRSwapchain.vkCreateSwapchainKHR(device.getNativeObject(), create, null, ptr), - "Failed to create swapchain."); - id = ptr.get(0); - System.out.println("swapchain handle: " + id); - LongBuffer imgs = enumerateBuffer(stack, stack::mallocLong, (c, b) -> - check(KHRSwapchain.vkGetSwapchainImagesKHR(device.getNativeObject(), id, c, b), - "Failed to get swapchain images.")); - Objects.requireNonNull(imgs, "Swapchain contains no images."); - for (int i = 0; i < imgs.limit(); i++) { - images.add(new SwapchainImage(device, imgs.get(i))); - } - } - ref.refresh(); // refresh the native destroyer + return () -> KHRSwapchain.vkDestroySwapchainKHR(device.getNativeObject(), object, null); } public void createFrameBuffers(RenderPass compat, ImageView depthStencil) { @@ -115,7 +68,7 @@ public void createFrameBuffers(RenderPass compat, ImageView depthStencil) { public SwapchainImage acquireNextImage(SwapchainUpdater updater, Semaphore semaphore, Fence fence, long timeout) { try (MemoryStack stack = MemoryStack.stackPush()) { IntBuffer i = stack.mallocInt(1); - int code = KHRSwapchain.vkAcquireNextImageKHR(device.getNativeObject(), id, + int code = KHRSwapchain.vkAcquireNextImageKHR(device.getNativeObject(), object, TimeUnit.MILLISECONDS.toNanos(timeout), Native.getId(semaphore), Native.getId(fence), i); if (updater.swapchainOutOfDate(this, code)) { return null; @@ -129,7 +82,7 @@ public void present(Queue presentQueue, SwapchainImage image, Semaphore wait) { VkPresentInfoKHR info = VkPresentInfoKHR.calloc(stack) .sType(KHRSwapchain.VK_STRUCTURE_TYPE_PRESENT_INFO_KHR) .swapchainCount(1) - .pSwapchains(stack.longs(id)) + .pSwapchains(stack.longs(object)) .pImageIndices(stack.ints(images.indexOf(image))); if (wait != null) { info.pWaitSemaphores(stack.longs(wait.getNativeObject())); @@ -158,6 +111,10 @@ public Image.Format getFormat() { return format; } + public Builder build() { + return new Builder(); + } + public class SwapchainImage implements Image { private final LogicalDevice device; @@ -242,4 +199,162 @@ public FrameBuffer getFrameBuffer() { } + public class Builder extends VulkanObject.Builder { + + private final VkSurfaceCapabilitiesKHR caps; + private final VkSurfaceFormatKHR.Buffer formats; + private final IntBuffer modes; + private final Collection queues = new ArrayList<>(); + + private VkSurfaceFormatKHR selectedFormat; + private VkExtent2D selectedExtent; + private PresentMode selectedMode; + private Integer selectedImageCount; + + private Swapchain base; + + public Builder() { + caps = VkSurfaceCapabilitiesKHR.malloc(stack); + KHRSurface.vkGetPhysicalDeviceSurfaceCapabilitiesKHR(device.getPhysicalDevice().getPhysicalDevice(), surface.getNativeObject(), caps); + formats = enumerateBuffer(stack, n -> VkSurfaceFormatKHR.malloc(n, stack), (count, buffer) + -> KHRSurface.vkGetPhysicalDeviceSurfaceFormatsKHR(device.getPhysicalDevice().getPhysicalDevice(), + surface.getNativeObject(), count, buffer)); + modes = enumerateBuffer(stack, stack::mallocInt, (count, buffer) -> + KHRSurface.vkGetPhysicalDeviceSurfacePresentModesKHR(device.getPhysicalDevice().getPhysicalDevice(), + surface.getNativeObject(), count, buffer)); + if (formats == null || modes == null) { + throw new UnsupportedOperationException("Swapchains are not supported by the device."); + } + } + + @Override + protected void build() { + if (selectedFormat == null) { + throw new IllegalStateException("Format not selected."); + } + if (selectedMode == null) { + throw new IllegalStateException("Mode not selected."); + } + if (selectedExtent == null) { + selectExtentByWindow(); + } + if (selectedImageCount == null) { + throw new IllegalStateException("Image count not selected."); + } + if (object != VK_NULL_HANDLE) { + createNativeDestroyer().run(); + object = VK_NULL_HANDLE; + } + VkSurfaceCapabilitiesKHR caps = VkSurfaceCapabilitiesKHR.calloc(stack); + KHRSurface.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( + device.getPhysicalDevice().getPhysicalDevice(), surface.getNativeObject(), caps); + format = Image.Format.vkEnum(selectedFormat.format()); + extent = new Extent2(selectedExtent); + VkSwapchainCreateInfoKHR create = VkSwapchainCreateInfoKHR.calloc(stack) + .sType(KHRSwapchain.VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR) + .surface(surface.getNativeObject()) + .minImageCount(selectedImageCount) + .imageFormat(format.getVkEnum()) + .imageColorSpace(selectedFormat.colorSpace()) + .imageExtent(selectedExtent) + .imageArrayLayers(1) + .imageUsage(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT) + .preTransform(caps.currentTransform()) + .compositeAlpha(KHRSurface.VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR) + .presentMode(selectedMode.getVkEnum()) + .clipped(true); + if (base != null) { + create.oldSwapchain(base.getNativeObject()); + } else { + create.oldSwapchain(VK_NULL_HANDLE); + } + if (queues.size() > 1) { + IntBuffer concurrent = stack.mallocInt(queues.size()); + for (Queue q : queues) { + concurrent.put(q.getFamilyIndex()); + } + concurrent.flip(); + create.imageSharingMode(VK_SHARING_MODE_CONCURRENT) + .queueFamilyIndexCount(queues.size()) + .pQueueFamilyIndices(concurrent); + } else { + create.imageSharingMode(VK_SHARING_MODE_EXCLUSIVE); + } + LongBuffer ptr = stack.mallocLong(1); + check(KHRSwapchain.vkCreateSwapchainKHR(device.getNativeObject(), create, null, ptr), + "Failed to create swapchain."); + object = ptr.get(0); + System.out.println("swapchain handle: " + object); + LongBuffer imgs = enumerateBuffer(stack, stack::mallocLong, (c, b) -> + check(KHRSwapchain.vkGetSwapchainImagesKHR(device.getNativeObject(), object, c, b), + "Failed to get swapchain images.")); + Objects.requireNonNull(imgs, "Swapchain contains no images."); + for (int i = 0; i < imgs.limit(); i++) { + images.add(new SwapchainImage(device, imgs.get(i))); + } + ref.refresh(); + } + + public void setBaseSwapchain(Swapchain base) { + this.base = base; + } + + public void addQueue(Queue queue) { + queues.add(queue); + } + + public VkSurfaceFormatKHR selectFormat(int... preferredFormats) { + for (VkSurfaceFormatKHR f : formats) { + for (int i = 0; i < preferredFormats.length; i += 2) { + if (f.format() == preferredFormats[i] && f.colorSpace() == preferredFormats[i + 1]) { + return (selectedFormat = f); + } + } + } + return (selectedFormat = formats.get(0)); + } + + public PresentMode selectMode(PresentMode... preferredModes) { + for (PresentMode m : preferredModes) { + for (int i = 0; i < modes.limit(); i++) { + if (modes.get(i) == m.getVkEnum()) { + return (selectedMode = m); + } + } + } + return (selectedMode = PresentMode.FirstInFirstOut); + } + + public VkExtent2D selectExtentByWindow() { + if (caps.currentExtent().width() != UINT32_MAX) { + return (selectedExtent = caps.currentExtent()); + } + IntBuffer width = stack.mallocInt(1); + IntBuffer height = stack.mallocInt(1); + GLFW.glfwGetFramebufferSize(surface.getWindowHandle(), width, height); + selectedExtent = VkExtent2D.malloc(stack); + selectedExtent.width(Math.min(Math.max(width.get(0), caps.minImageExtent().width()), caps.maxImageExtent().width())); + selectedExtent.height(Math.min(Math.max(width.get(0), caps.minImageExtent().height()), caps.maxImageExtent().height())); + return selectedExtent; + } + + public int selectImageCount(int preferredCount) { + if (preferredCount < caps.minImageCount()) { + preferredCount = caps.minImageCount(); + } else if (caps.maxImageCount() > 0 && preferredCount > caps.maxImageCount()) { + preferredCount = caps.maxImageCount(); + } + return (selectedImageCount = preferredCount); + } + + public int getMinImageCount() { + return caps.minImageCount(); + } + + public int getMaxImageCount() { + return caps.maxImageCount(); + } + + } + } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanInstance.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanInstance.java index 1f97c48591..9308da126a 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanInstance.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanInstance.java @@ -1,60 +1,130 @@ package com.jme3.vulkan; +import com.jme3.system.JmeVersion; import com.jme3.util.natives.Native; -import com.jme3.util.natives.NativeReference; import org.lwjgl.PointerBuffer; +import org.lwjgl.glfw.GLFWVulkan; import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryUtil; +import org.lwjgl.vulkan.EXTDebugUtils; import org.lwjgl.vulkan.VkApplicationInfo; import org.lwjgl.vulkan.VkInstance; import org.lwjgl.vulkan.VkInstanceCreateInfo; +import java.util.*; + import static com.jme3.renderer.vulkan.VulkanUtils.*; import static org.lwjgl.vulkan.VK10.*; -public class VulkanInstance implements Native { +public class VulkanInstance extends VulkanObject { - private final NativeReference ref; - private VkInstance instance; + public static final String ENGINE_NAME = "jMonkeyEngine"; + public static final String LUNARG_LAYER = "VK_LAYER_KHRONOS_validation"; - public VulkanInstance(VkApplicationInfo appInfo, PointerBuffer extensions, PointerBuffer layers) { - try (MemoryStack stack = MemoryStack.stackPush()) { - VkInstanceCreateInfo create = VkInstanceCreateInfo.calloc(stack) - .sType(VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO) - .pApplicationInfo(appInfo) - .ppEnabledExtensionNames(extensions); - if (layers != null) { - create.ppEnabledLayerNames(layers); - } - PointerBuffer ptr = stack.mallocPointer(1); - check(vkCreateInstance(create, null, ptr), "Failed to create instance."); - instance = new VkInstance(ptr.get(0), create); - } - ref = Native.get().register(this); - } + private final Set extensions = new HashSet<>(); + private final Set layers = new HashSet<>(); + private String appName = "Unnamed App"; + private int appVersion = VK_MAKE_VERSION(0, 0, 0); + private int apiVersion; - public Surface createGlfwSurface(long window) { - return new Surface(this, window); + public VulkanInstance() { + this(VK_API_VERSION_1_0); } - @Override - public VkInstance getNativeObject() { - return instance; + public VulkanInstance(int apiVersion) { + this.apiVersion = apiVersion; } @Override public Runnable createNativeDestroyer() { - return () -> vkDestroyInstance(instance, null); + return () -> vkDestroyInstance(object, null); } - @Override - public void prematureNativeDestruction() { - instance = null; + public Set getExtensions() { + return extensions; } - @Override - public NativeReference getNativeReference() { - return ref; + public Set getLayers() { + return layers; + } + + public Builder build() { + return new Builder(); + } + + public class Builder extends VulkanObject.Builder { + + @Override + protected void build() { + String[] ver = JmeVersion.VERSION_NUMBER.split("\\.", 3); + VkApplicationInfo info = VkApplicationInfo.calloc(stack) + .apiVersion(apiVersion) + .pEngineName(stack.UTF8(ENGINE_NAME)) + .engineVersion(VK_MAKE_VERSION( + Integer.parseInt(ver[0]), + Integer.parseInt(ver[1]), + Integer.parseInt(ver[2]))) + .pApplicationName(stack.UTF8(appName)) + .applicationVersion(appVersion); + VkInstanceCreateInfo create = VkInstanceCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO) + .pApplicationInfo(info); + if (!extensions.isEmpty()) { + PointerBuffer exts = stack.mallocPointer(extensions.size()); + for (String e : extensions) { + exts.put(stack.UTF8(e)); + } + create.ppEnabledExtensionNames(exts.flip()); + } + if (!layers.isEmpty()) { + PointerBuffer lyrs = stack.mallocPointer(layers.size()); + for (String l : layers) { + lyrs.put(stack.UTF8(l)); + } + create.ppEnabledLayerNames(lyrs.flip()); + } + PointerBuffer ptr = stack.mallocPointer(1); + check(vkCreateInstance(create, null, ptr), "Failed to create instance."); + object = new VkInstance(ptr.get(0), create); + ref = Native.get().register(VulkanInstance.this); + } + + public void setApplicationName(String name) { + VulkanInstance.this.appName = name; + } + + public void setApplicationVersion(int major, int minor, int patch) { + VulkanInstance.this.appVersion = VK_MAKE_VERSION(major, minor, patch); + } + + public void setApiVersion(int version) { + VulkanInstance.this.apiVersion = version; + } + + public void addGlfwExtensions() { + PointerBuffer exts = Objects.requireNonNull(GLFWVulkan.glfwGetRequiredInstanceExtensions(), + "Vulkan extensions for GLFW are not available."); + for (int i = 0; i < exts.limit(); i++) { + extensions.add(MemoryUtil.memUTF8(exts.get(i))); + } + } + + public void addDebugExtension() { + extensions.add(EXTDebugUtils.VK_EXT_DEBUG_UTILS_EXTENSION_NAME); + } + + public void addLunarGLayer() { + layers.add(LUNARG_LAYER); + } + + public void addExtension(String ext) { + extensions.add(ext); + } + + public void addLayer(String layer) { + layers.add(layer); + } + } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java index d5c930e421..25f5deacb1 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java @@ -4,7 +4,7 @@ import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; import com.jme3.vulkan.CommandBuffer; -import com.jme3.vulkan.LogicalDevice; +import com.jme3.vulkan.devices.LogicalDevice; import com.jme3.vulkan.flags.MemoryFlags; import com.jme3.vulkan.flags.BufferUsageFlags; import org.lwjgl.PointerBuffer; @@ -42,7 +42,7 @@ public GpuBuffer(LogicalDevice device, int size, BufferUsageFlags usage, MemoryF id = idBuf.get(0); VkMemoryRequirements bufferMem = VkMemoryRequirements.malloc(stack); vkGetBufferMemoryRequirements(device.getNativeObject(), id, bufferMem); - memory = new MemoryRegion(device, bufferMem.size(), device.getPhysicalDevice().findMemoryType( + memory = new MemoryRegion(device, bufferMem.size(), device.getPhysicalDevice().findSupportedMemoryType( stack, bufferMem.memoryTypeBits(), mem.getMemoryFlags())); memory.bind(this, 0); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/MemoryRegion.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/MemoryRegion.java index 01f905c386..4b33cd7935 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/MemoryRegion.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/MemoryRegion.java @@ -2,16 +2,14 @@ import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; -import com.jme3.vulkan.LogicalDevice; +import com.jme3.vulkan.devices.LogicalDevice; import com.jme3.vulkan.images.Image; import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; -import org.lwjgl.system.MemoryUtil; import org.lwjgl.vulkan.VkMemoryAllocateInfo; import java.nio.*; import java.util.concurrent.atomic.AtomicBoolean; -import java.util.function.Consumer; import static com.jme3.renderer.vulkan.VulkanUtils.*; import static org.lwjgl.vulkan.VK10.*; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/PersistentBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/PersistentBuffer.java index 5a0932fdb0..496f91194c 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/PersistentBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/PersistentBuffer.java @@ -1,9 +1,8 @@ package com.jme3.vulkan.buffers; -import com.jme3.vulkan.LogicalDevice; +import com.jme3.vulkan.devices.LogicalDevice; import com.jme3.vulkan.flags.MemoryFlags; import com.jme3.vulkan.flags.BufferUsageFlags; -import org.lwjgl.BufferUtils; import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java index 49877649b5..8d5476c711 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java @@ -1,6 +1,7 @@ package com.jme3.vulkan.buffers; import com.jme3.vulkan.*; +import com.jme3.vulkan.devices.LogicalDevice; import com.jme3.vulkan.flags.MemoryFlags; import com.jme3.vulkan.flags.BufferUsageFlags; import org.lwjgl.PointerBuffer; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorPool.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorPool.java index c9b9bc87b2..22a17be89c 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorPool.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorPool.java @@ -3,7 +3,7 @@ import com.jme3.renderer.vulkan.VulkanUtils; import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; -import com.jme3.vulkan.LogicalDevice; +import com.jme3.vulkan.devices.LogicalDevice; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.*; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java index a7e685c841..4ac9ed11f9 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java @@ -1,6 +1,6 @@ package com.jme3.vulkan.descriptors; -import com.jme3.vulkan.LogicalDevice; +import com.jme3.vulkan.devices.LogicalDevice; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkWriteDescriptorSet; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetLayout.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetLayout.java index a9a28c08e4..5a3ad95f3c 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetLayout.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetLayout.java @@ -2,7 +2,7 @@ import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; -import com.jme3.vulkan.LogicalDevice; +import com.jme3.vulkan.devices.LogicalDevice; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkDescriptorSetLayoutBinding; import org.lwjgl.vulkan.VkDescriptorSetLayoutCreateInfo; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/DeviceEvaluator.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceFilter.java similarity index 86% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/DeviceEvaluator.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceFilter.java index 673a534257..b1beb5b95a 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/DeviceEvaluator.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceFilter.java @@ -1,12 +1,13 @@ -package com.jme3.vulkan; +package com.jme3.vulkan.devices; +import com.jme3.vulkan.Surface; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkExtensionProperties; import java.util.Arrays; import java.util.Collection; -public interface DeviceEvaluator { +public interface DeviceFilter { Float evaluateDevice(PhysicalDevice device); @@ -26,7 +27,7 @@ static DeviceAnisotropySupport anisotropy() { return new DeviceAnisotropySupport(); } - class DeviceExtensionSupport implements DeviceEvaluator { + class DeviceExtensionSupport implements DeviceFilter { private final Collection extensions; @@ -37,7 +38,7 @@ public DeviceExtensionSupport(Collection extensions) { @Override public Float evaluateDevice(PhysicalDevice device) { try (MemoryStack stack = MemoryStack.stackPush()) { - VkExtensionProperties.Buffer exts = device.getExtensions(stack); + VkExtensionProperties.Buffer exts = device.getExtensionProperties(stack); if (extensions.stream().allMatch(e -> exts.stream().anyMatch( p -> p.extensionNameString().equals(e)))) { return 0f; @@ -48,7 +49,7 @@ public Float evaluateDevice(PhysicalDevice device) { } - class DeviceSwapchainSupport implements DeviceEvaluator { + class DeviceSwapchainSupport implements DeviceFilter { private final Surface surface; @@ -66,7 +67,7 @@ public Float evaluateDevice(PhysicalDevice device) { } - class DeviceAnisotropySupport implements DeviceEvaluator { + class DeviceAnisotropySupport implements DeviceFilter { @Override public Float evaluateDevice(PhysicalDevice device) { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/LogicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/LogicalDevice.java new file mode 100644 index 0000000000..765a092879 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/LogicalDevice.java @@ -0,0 +1,192 @@ +package com.jme3.vulkan.devices; + +import com.jme3.util.natives.Native; +import com.jme3.vulkan.Surface; +import com.jme3.vulkan.VulkanInstance; +import com.jme3.vulkan.VulkanObject; +import org.lwjgl.PointerBuffer; +import org.lwjgl.vulkan.*; + +import java.util.*; +import java.util.function.Function; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.vulkan.VK10.*; + +public class LogicalDevice extends VulkanObject { + + private final VulkanInstance instance; + private final Set enabledExtensions = new HashSet<>(); + private final VkPhysicalDeviceFeatures enabledFeatures = VkPhysicalDeviceFeatures.calloc(); + private T physical; + + public LogicalDevice(VulkanInstance instance) { + this.instance = instance; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> { + vkDestroyDevice(object, null); + enabledFeatures.free(); + }; + } + + public void waitIdle() { + vkDeviceWaitIdle(object); + } + + public T getPhysicalDevice() { + return physical; + } + + public Set getEnabledExtensions() { + return Collections.unmodifiableSet(enabledExtensions); + } + + public VkPhysicalDeviceFeatures getEnabledFeatures() { + return enabledFeatures; + } + + public Builder build(Function deviceFactory) { + return new Builder(deviceFactory); + } + + public class Builder extends VulkanObject.Builder { + + private final Function deviceFactory; + private final Set extensions = new HashSet<>(); + private final Collection features = new ArrayList<>(); + private final Collection filters = new ArrayList<>(); + private boolean enableAllFeatures = false; + + public Builder(Function deviceFactory) { + this.deviceFactory = deviceFactory; + } + + @Override + protected void build() { + findSuitablePhysicalDevice(); + VkPhysicalDeviceFeatures supportedFeatures = physical.getFeatures(stack); + if (enableAllFeatures) { + enabledFeatures.set(supportedFeatures); + } else for (DeviceFeature f : features) { + if (DeviceWeights.isSuccess(f.evaluateFeatureSupport(supportedFeatures))) { + f.enableFeature(enabledFeatures); + } + } + VkDeviceCreateInfo create = VkDeviceCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO) + .pQueueCreateInfos(physical.createQueueFamilyInfo(stack)) + .pEnabledFeatures(enabledFeatures); + if (!extensions.isEmpty()) { + PointerBuffer exts = stack.mallocPointer(extensions.size()); + for (DeviceExtension e : extensions) { + enabledExtensions.add(e.getName()); + exts.put(stack.UTF8(e.getName())); + } + create.ppEnabledExtensionNames(exts.flip()); + } + Set layers = physical.getInstance().getLayers(); + if (!layers.isEmpty()) { + PointerBuffer lyrs = stack.mallocPointer(layers.size()); + for (String l : layers) { + lyrs.put(stack.UTF8(l)); + } + create.ppEnabledLayerNames(lyrs.flip()); + } + PointerBuffer ptr = stack.mallocPointer(1); + check(vkCreateDevice(physical.getPhysicalDevice(), create, null, ptr), + "Failed to create logical device."); + object = new VkDevice(ptr.get(0), physical.getPhysicalDevice(), create); + ref = Native.get().register(LogicalDevice.this); + physical.getInstance().getNativeReference().addDependent(ref); + physical.createQueues(LogicalDevice.this); + } + + private void findSuitablePhysicalDevice() { + PointerBuffer devices = enumerateBuffer(stack, stack::mallocPointer, + (count, buffer) -> check( + vkEnumeratePhysicalDevices(instance.getNativeObject(), count, buffer), + "Failed to enumerate physical devices.")); + physical = null; + float topWeight = Float.NEGATIVE_INFINITY; + deviceLoop: for (T d : iteratePointers(devices, deviceFactory::apply)) { + float deviceWeight = 0f; + // extensions + VkExtensionProperties.Buffer supportedExts = d.getExtensionProperties(stack); + Set extSet = new HashSet<>(); + supportedExts.stream().forEach(e -> extSet.add(e.extensionNameString())); + for (DeviceExtension ext : extensions) { + Float weight = ext.evaluate(extSet); + if (weight == null) { + continue deviceLoop; + } + deviceWeight += weight; + } + // features + VkPhysicalDeviceFeatures ftrs = d.getFeatures(stack); + for (DeviceFeature f : features) { + Float weight = f.evaluateFeatureSupport(ftrs); + if (DeviceWeights.isRejection(weight)) { + continue deviceLoop; + } + deviceWeight += weight; + } + // miscellaneous filters + for (DeviceFilter f : filters) { + Float weight = f.evaluateDevice(d); + if (weight == null) { + continue deviceLoop; + } + deviceWeight += weight; + } + // compare + if (deviceWeight > topWeight) { + physical = d; + topWeight = deviceWeight; + } + } + if (physical == null) { + throw new NullPointerException("Failed to find suitable physical device."); + } + } + + public void addExtension(DeviceExtension extension) { + extensions.add(extension); + } + + public void addCriticalExtension(String name) { + addExtension(DeviceExtension.critical(name)); + } + + public void addOptionalExtension(String name, float successWeight) { + addExtension(DeviceExtension.optional(name, successWeight)); + } + + public void addFeature(DeviceFeature feature) { + features.add(feature); + } + + public void addFilter(DeviceFilter filter) { + filters.add(filter); + } + + public void setEnableAllFeatures(boolean enableAllFeatures) { + this.enableAllFeatures = enableAllFeatures; + } + + } + + private static class EvaluatedDevice { + + public final T device; + public final Collection features = new ArrayList<>(); + + private EvaluatedDevice(T device) { + this.device = device; + } + + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java new file mode 100644 index 0000000000..2aceb6dea8 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java @@ -0,0 +1,106 @@ +package com.jme3.vulkan.devices; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.Surface; +import com.jme3.vulkan.VulkanInstance; +import com.jme3.vulkan.images.Image; +import org.lwjgl.PointerBuffer; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.*; + +import java.nio.ByteBuffer; +import java.nio.IntBuffer; +import java.util.Collection; +import java.util.function.Function; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.vulkan.VK10.*; + +public abstract class PhysicalDevice { + + private final VulkanInstance instance; + private final VkPhysicalDevice physicalDevice; + + public PhysicalDevice(VulkanInstance instance, long id) { + this.instance = instance; + this.physicalDevice = new VkPhysicalDevice(id, instance.getNativeObject()); + } + + protected abstract boolean populateQueueFamilyIndices(); + + protected abstract VkDeviceQueueCreateInfo.Buffer createQueueFamilyInfo(MemoryStack stack); + + protected abstract void createQueues(LogicalDevice device); + + public VulkanInstance getInstance() { + return instance; + } + + public VkPhysicalDevice getPhysicalDevice() { + return physicalDevice; + } + + public VkQueueFamilyProperties.Buffer getQueueFamilyProperties(MemoryStack stack) { + return enumerateBuffer(stack, n -> VkQueueFamilyProperties.calloc(n, stack), (count, buffer) + -> vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, count, buffer)); + } + + public VkPhysicalDeviceProperties getProperties(MemoryStack stack) { + VkPhysicalDeviceProperties props = VkPhysicalDeviceProperties.malloc(stack); + vkGetPhysicalDeviceProperties(physicalDevice, props); + return props; + } + + public VkPhysicalDeviceFeatures getFeatures(MemoryStack stack) { + VkPhysicalDeviceFeatures features = VkPhysicalDeviceFeatures.malloc(stack); + vkGetPhysicalDeviceFeatures(physicalDevice, features); + return features; + } + + public VkExtensionProperties.Buffer getExtensionProperties(MemoryStack stack) { + return enumerateBuffer(stack, n -> VkExtensionProperties.malloc(n, stack), (count, buffer) -> + vkEnumerateDeviceExtensionProperties(physicalDevice, (ByteBuffer)null, count, buffer)); + } + + public VkPhysicalDeviceMemoryProperties getMemoryProperties(MemoryStack stack) { + VkPhysicalDeviceMemoryProperties mem = VkPhysicalDeviceMemoryProperties.malloc(stack); + vkGetPhysicalDeviceMemoryProperties(physicalDevice, mem); + return mem; + } + + public int findSupportedMemoryType(MemoryStack stack, int types, int flags) { + VkPhysicalDeviceMemoryProperties mem = getMemoryProperties(stack); + for (int i = 0; i < mem.memoryTypeCount(); i++) { + if ((types & (1 << i)) != 0 && (mem.memoryTypes().get(i).propertyFlags() & flags) != 0) { + return i; + } + } + throw new NullPointerException("Suitable memory type not found."); + } + + public Image.Format findSupportedFormat(int tiling, int features, Image.Format... candidates) { + VkFormatProperties props = VkFormatProperties.create(); + for (Image.Format f : candidates) { + vkGetPhysicalDeviceFormatProperties(physicalDevice, f.getVkEnum(), props); + if ((tiling == VK_IMAGE_TILING_LINEAR && (props.linearTilingFeatures() & features) == features) + || (tiling == VK_IMAGE_TILING_OPTIMAL && (props.optimalTilingFeatures() & features) == features)) { + return f; + } + } + throw new NullPointerException("Failed to find supported format."); + } + + public boolean querySwapchainSupport(Surface surface) { + try (MemoryStack stack = MemoryStack.stackPush()) { + IntBuffer count = stack.mallocInt(1); + KHRSurface.vkGetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface.getNativeObject(), count, null); + if (count.get(0) <= 0) { + return false; + } + KHRSurface.vkGetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface.getNativeObject(), count, null); + return count.get(0) > 0; + } + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java index 820323a1c0..5306f7453c 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java @@ -1,14 +1,12 @@ package com.jme3.vulkan.images; -import com.jme3.renderer.vulkan.VulkanUtils; import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; import com.jme3.vulkan.CommandBuffer; -import com.jme3.vulkan.LogicalDevice; +import com.jme3.vulkan.devices.LogicalDevice; import com.jme3.vulkan.buffers.MemoryRegion; import com.jme3.vulkan.flags.ImageUsageFlags; import com.jme3.vulkan.flags.MemoryFlags; -import com.jme3.vulkan.flags.BufferUsageFlags; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkImageCreateInfo; import org.lwjgl.vulkan.VkImageMemoryBarrier; @@ -61,7 +59,7 @@ public GpuImage(LogicalDevice device, int type, int width, int height, int depth id = idBuf.get(0); VkMemoryRequirements memReq = VkMemoryRequirements.malloc(stack); vkGetImageMemoryRequirements(device.getNativeObject(), id, memReq); - memory = new MemoryRegion(device, memReq.size(), device.getPhysicalDevice().findMemoryType( + memory = new MemoryRegion(device, memReq.size(), device.getPhysicalDevice().findSupportedMemoryType( stack, memReq.memoryTypeBits(), mem.getMemoryFlags())); memory.bind(this, 0); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Image.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Image.java index 7cafbcd3db..f55023dea1 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Image.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Image.java @@ -1,7 +1,7 @@ package com.jme3.vulkan.images; import com.jme3.util.natives.Native; -import com.jme3.vulkan.LogicalDevice; +import com.jme3.vulkan.devices.LogicalDevice; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.KHRSwapchain; import org.lwjgl.vulkan.VkImageViewCreateInfo; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Sampler.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Sampler.java index c06d7220d8..b710f78d85 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Sampler.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Sampler.java @@ -2,7 +2,7 @@ import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; -import com.jme3.vulkan.LogicalDevice; +import com.jme3.vulkan.devices.LogicalDevice; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkPhysicalDeviceProperties; import org.lwjgl.vulkan.VkSamplerCreateInfo; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Texture.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Texture.java index 4a65f2ab3d..dea4ffb66c 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Texture.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Texture.java @@ -1,6 +1,6 @@ package com.jme3.vulkan.images; -import com.jme3.vulkan.LogicalDevice; +import com.jme3.vulkan.devices.LogicalDevice; public class Texture extends Sampler { From 5f7d1ecbf46a39d5f34b9cd056d119fed7555c25 Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Sun, 3 Aug 2025 07:53:49 -0400 Subject: [PATCH 19/37] migrated instance, device, surface, and swapchain to new builder architecture --- .../com/jme3/vulkan/SimplePhysicalDevice.java | 82 +++++++++++++++++++ .../java/com/jme3/vulkan/VulkanObject.java | 39 +++++++++ .../jme3/vulkan/app/VulkanApplication.java | 18 ++++ .../jme3/vulkan/devices/DeviceExtension.java | 65 +++++++++++++++ .../jme3/vulkan/devices/DeviceFeature.java | 24 ++++++ .../jme3/vulkan/devices/DeviceProperty.java | 13 +++ .../jme3/vulkan/devices/DeviceWeights.java | 49 +++++++++++ 7 files changed, 290 insertions(+) create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/SimplePhysicalDevice.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanObject.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/app/VulkanApplication.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceExtension.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceFeature.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceProperty.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceWeights.java diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/SimplePhysicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/SimplePhysicalDevice.java new file mode 100644 index 0000000000..cbcec8b492 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/SimplePhysicalDevice.java @@ -0,0 +1,82 @@ +package com.jme3.vulkan; + +import com.jme3.vulkan.devices.LogicalDevice; +import com.jme3.vulkan.devices.PhysicalDevice; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.KHRSurface; +import org.lwjgl.vulkan.VK13; +import org.lwjgl.vulkan.VkDeviceQueueCreateInfo; +import org.lwjgl.vulkan.VkQueueFamilyProperties; + +import java.nio.IntBuffer; + +public class SimplePhysicalDevice extends PhysicalDevice { + + private final Surface surface; + private Integer graphicsIndex, presentIndex; + private Queue graphics, present; + + public SimplePhysicalDevice(VulkanInstance instance, Surface surface, long id) { + super(instance, id); + this.surface = surface; + } + + @Override + protected boolean populateQueueFamilyIndices() { + try (MemoryStack stack = MemoryStack.stackPush()) { + VkQueueFamilyProperties.Buffer properties = getQueueFamilyProperties(stack); + IntBuffer ibuf = stack.callocInt(1); + for (int i = 0; i < properties.limit(); i++) { + VkQueueFamilyProperties props = properties.get(i); + if (graphicsIndex == null && (props.queueFlags() & VK13.VK_QUEUE_GRAPHICS_BIT) > 0) { + graphicsIndex = i; + } else if (presentIndex == null) { + KHRSurface.vkGetPhysicalDeviceSurfaceSupportKHR( + getPhysicalDevice(), i, surface.getNativeObject(), ibuf); + if (ibuf.get(0) == VK13.VK_TRUE) { + presentIndex = i; + } + } + if (graphicsIndex != null && presentIndex != null) { + return true; + } + } + } + return false; + } + + @Override + protected VkDeviceQueueCreateInfo.Buffer createQueueFamilyInfo(MemoryStack stack) { + VkDeviceQueueCreateInfo.Buffer create = VkDeviceQueueCreateInfo.calloc(2, stack); // one element for each queue + create.get(0).sType(VK13.VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO) + .queueFamilyIndex(graphicsIndex) + .pQueuePriorities(stack.floats(1f)); + create.get(1).sType(VK13.VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO) + .queueFamilyIndex(presentIndex) + .pQueuePriorities(stack.floats(1f)); + return create; + } + + @Override + protected void createQueues(LogicalDevice device) { + graphics = new Queue(device, graphicsIndex, 0); + present = new Queue(device, presentIndex, 0); + } + + public Integer getGraphicsIndex() { + return graphicsIndex; + } + + public Integer getPresentIndex() { + return presentIndex; + } + + public Queue getGraphics() { + return graphics; + } + + public Queue getPresent() { + return present; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanObject.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanObject.java new file mode 100644 index 0000000000..67add85eb2 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanObject.java @@ -0,0 +1,39 @@ +package com.jme3.vulkan; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import org.lwjgl.system.MemoryStack; + +public abstract class VulkanObject implements Native { + + protected T object; + protected NativeReference ref; + + @Override + public T getNativeObject() { + return object; + } + + @Override + public void prematureNativeDestruction() {} + + @Override + public NativeReference getNativeReference() { + return ref; + } + + public static abstract class Builder implements AutoCloseable { + + protected final MemoryStack stack = MemoryStack.stackPush(); + + @Override + public void close() { + build(); + stack.pop(); + } + + protected abstract void build(); + + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/app/VulkanApplication.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/app/VulkanApplication.java new file mode 100644 index 0000000000..9d32f9623c --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/app/VulkanApplication.java @@ -0,0 +1,18 @@ +package com.jme3.vulkan.app; + +import com.jme3.app.SimpleApplication; +import com.jme3.vulkan.VulkanInstance; +import org.lwjgl.system.MemoryStack; + +public class VulkanApplication extends SimpleApplication { + + protected VulkanInstance instance; + + @Override + public void simpleInitApp() { + try (MemoryStack stack = MemoryStack.stackPush()) { + + } + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceExtension.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceExtension.java new file mode 100644 index 0000000000..35eca346d3 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceExtension.java @@ -0,0 +1,65 @@ +package com.jme3.vulkan.devices; + +import java.util.Objects; +import java.util.Set; + +public class DeviceExtension { + + private final String name; + private final Float success, fail; + + public DeviceExtension(String name) { + this(name, 1f, null); + } + + public DeviceExtension(String name, Float success) { + this(name, success, null); + } + + public DeviceExtension(String name, Float success, Float fail) { + this.name = name; + this.success = success; + this.fail = fail; + } + + public Float evaluate(Set extensions) { + return extensions.contains(name) ? success : fail; + } + + public String getName() { + return name; + } + + public Float getSuccessWeight() { + return success; + } + + public Float getFailWeight() { + return fail; + } + + public boolean isRejectOnFailure() { + return fail == null; + } + + @Override + public boolean equals(Object o) { + if (o == null || getClass() != o.getClass()) return false; + DeviceExtension that = (DeviceExtension) o; + return Objects.equals(name, that.name); + } + + @Override + public int hashCode() { + return Objects.hashCode(name); + } + + public static DeviceExtension critical(String name) { + return new DeviceExtension(name, 1f, null); + } + + public static DeviceExtension optional(String name, float successWeight) { + return new DeviceExtension(name, successWeight); + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceFeature.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceFeature.java new file mode 100644 index 0000000000..886c2ccf5f --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceFeature.java @@ -0,0 +1,24 @@ +package com.jme3.vulkan.devices; + +import org.lwjgl.vulkan.VkPhysicalDeviceFeatures; + +public interface DeviceFeature { + + void enableFeature(VkPhysicalDeviceFeatures features); + + Float evaluateFeatureSupport(VkPhysicalDeviceFeatures features); + + static DeviceFeature anisotropy(Float pass, boolean rejectOnFail) { + return new DeviceFeature() { + @Override + public void enableFeature(VkPhysicalDeviceFeatures features) { + features.samplerAnisotropy(true); + } + @Override + public Float evaluateFeatureSupport(VkPhysicalDeviceFeatures features) { + return features.samplerAnisotropy() ? pass : (rejectOnFail ? null : 0f); + } + }; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceProperty.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceProperty.java new file mode 100644 index 0000000000..f2919af8ae --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceProperty.java @@ -0,0 +1,13 @@ +package com.jme3.vulkan.devices; + +import org.lwjgl.vulkan.VkPhysicalDeviceProperties; + +public interface DeviceProperty { + + Float evaluateDeviceProperties(VkPhysicalDeviceProperties properties); + + static DeviceProperty maxAnisotropy(float threshold) { + return p -> p.limits().maxSamplerAnisotropy() >= threshold ? 0f : null; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceWeights.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceWeights.java new file mode 100644 index 0000000000..155322c3dd --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceWeights.java @@ -0,0 +1,49 @@ +package com.jme3.vulkan.devices; + +public class DeviceWeights { + + public static final Float SUCCESS = 1f; + public static final Float FAILURE = -1f; + public static final Float REJECTION = null; + + public static Float success(float weight) { + return weight; + } + + public static Float failure(float weight) { + return -weight; + } + + public static Float successOrReject(boolean success) { + return successOrReject(success, SUCCESS); + } + + public static Float successOrReject(boolean success, float weight) { + return success ? Float.valueOf(weight) : REJECTION; + } + + public static Float successOrFail(boolean success) { + return successOrFail(success, SUCCESS, FAILURE); + } + + public static Float successOrFail(boolean success, float weight) { + return success ? weight : -weight; + } + + public static Float successOrFail(boolean success, float successWeight, float failWeight) { + return success ? successWeight : -failWeight; + } + + public static boolean isSuccess(Float weight) { + return weight != null && weight >= 0f; + } + + public static boolean isFailure(Float weight) { + return weight == null || weight < 0f; + } + + public static boolean isRejection(Float weight) { + return weight == null; + } + +} From c4738eeedb265c63793b7fe651ba2b5d8def3623 Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Tue, 5 Aug 2025 21:26:29 -0400 Subject: [PATCH 20/37] successfully abstracted all vulkan components --- .../jme3test/vulkan/VulkanHelperTest.java | 394 ++++-------------- .../main/java/com/jme3/vulkan/Attachment.java | 54 --- .../java/com/jme3/vulkan/CommandPool.java | 6 +- .../src/main/java/com/jme3/vulkan/Fence.java | 6 +- .../com/jme3/vulkan/GraphicsPipeline.java | 145 ------- .../java/com/jme3/vulkan/MeshDescription.java | 63 +-- .../java/com/jme3/vulkan/PipelineLayout.java | 4 +- .../src/main/java/com/jme3/vulkan/Queue.java | 8 +- .../main/java/com/jme3/vulkan/RenderPass.java | 75 ---- .../com/jme3/vulkan/RenderPassBuilder.java | 76 ---- .../main/java/com/jme3/vulkan/Semaphore.java | 4 +- .../java/com/jme3/vulkan/ShaderModule.java | 4 +- .../com/jme3/vulkan/SwapchainSupport.java | 18 - .../java/com/jme3/vulkan/VulkanLogger.java | 3 +- .../com/jme3/vulkan/buffers/GpuBuffer.java | 4 +- .../com/jme3/vulkan/buffers/MemoryRegion.java | 4 +- .../vulkan/descriptors/BufferSetWriter.java | 9 +- .../vulkan/descriptors/DescriptorPool.java | 4 +- .../vulkan/descriptors/DescriptorSet.java | 4 +- .../descriptors/DescriptorSetLayout.java | 4 +- .../com/jme3/vulkan/descriptors/PoolSize.java | 4 + .../vulkan/descriptors/SetLayoutBinding.java | 11 +- .../com/jme3/vulkan/devices/DeviceFilter.java | 2 +- .../GeneralPhysicalDevice.java} | 45 +- .../jme3/vulkan/devices/LogicalDevice.java | 69 +-- .../jme3/vulkan/devices/PhysicalDevice.java | 7 +- .../java/com/jme3/vulkan/images/GpuImage.java | 8 +- .../java/com/jme3/vulkan/images/Image.java | 37 +- .../java/com/jme3/vulkan/images/Sampler.java | 10 +- .../jme3/vulkan/images/VulkanImageLoader.java | 80 +++- .../java/com/jme3/vulkan/pass/Attachment.java | 118 ++++++ .../jme3/vulkan/pass/AttachmentReference.java | 49 +++ .../java/com/jme3/vulkan/pass/RenderPass.java | 251 +++++++++++ .../java/com/jme3/vulkan/pass/Subpass.java | 196 +++++++++ .../jme3/vulkan/pass/SubpassDependency.java | 97 +++++ .../vulkan/pipelines/ComputePipeline.java | 47 +++ .../vulkan/{ => pipelines}/FrameBuffer.java | 7 +- .../vulkan/pipelines/GraphicsPipeline.java | 142 +++++++ .../com/jme3/vulkan/pipelines/Pipeline.java | 43 ++ .../vulkan/pipelines/PipelineBindPoint.java | 20 + .../states/ColorBlendAttachment.java | 62 +++ .../pipelines/states/ColorBlendState.java | 45 ++ .../pipelines/states/DepthStencilState.java | 46 ++ .../vulkan/pipelines/states/DynamicState.java | 61 +++ .../pipelines/states/InputAssemblyState.java | 28 ++ .../pipelines/states/MultisampleState.java | 29 ++ .../pipelines/states/PipelineState.java | 10 + .../pipelines/states/RasterizationState.java | 60 +++ .../pipelines/states/VertexInputState.java | 30 ++ .../pipelines/states/ViewportState.java | 88 ++++ .../jme3/vulkan/{ => surface}/Surface.java | 3 +- .../jme3/vulkan/{ => surface}/Swapchain.java | 30 +- .../{ => surface}/SwapchainUpdater.java | 2 +- 53 files changed, 1774 insertions(+), 852 deletions(-) delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/Attachment.java delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPass.java delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPassBuilder.java delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/SwapchainSupport.java rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/{SimplePhysicalDevice.java => devices/GeneralPhysicalDevice.java} (64%) create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/Attachment.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/AttachmentReference.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/RenderPass.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/Subpass.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/SubpassDependency.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/ComputePipeline.java rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/{ => pipelines}/FrameBuffer.java (90%) create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/GraphicsPipeline.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/Pipeline.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/PipelineBindPoint.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/ColorBlendAttachment.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/ColorBlendState.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/DepthStencilState.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/DynamicState.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/InputAssemblyState.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/MultisampleState.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/PipelineState.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/RasterizationState.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/VertexInputState.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/ViewportState.java rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/{ => surface}/Surface.java (97%) rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/{ => surface}/Swapchain.java (92%) rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/{ => surface}/SwapchainUpdater.java (77%) diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java index c3022f3d97..dab04643f5 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java @@ -13,7 +13,6 @@ import com.jme3.util.BufferUtils; import com.jme3.util.natives.Native; import com.jme3.vulkan.*; -import com.jme3.vulkan.Queue; import com.jme3.vulkan.buffers.*; import com.jme3.vulkan.descriptors.*; import com.jme3.vulkan.devices.*; @@ -21,25 +20,31 @@ import com.jme3.vulkan.flags.MemoryFlags; import com.jme3.vulkan.flags.BufferUsageFlags; import com.jme3.vulkan.images.*; -import org.lwjgl.glfw.GLFW; +import com.jme3.vulkan.pass.Attachment; +import com.jme3.vulkan.pass.Subpass; +import com.jme3.vulkan.pipelines.GraphicsPipeline; +import com.jme3.vulkan.pass.RenderPass; +import com.jme3.vulkan.pipelines.PipelineBindPoint; +import com.jme3.vulkan.pipelines.states.ColorBlendAttachment; +import com.jme3.vulkan.pipelines.states.DynamicState; +import com.jme3.vulkan.surface.Surface; +import com.jme3.vulkan.surface.Swapchain; +import com.jme3.vulkan.surface.SwapchainUpdater; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.*; import java.nio.FloatBuffer; import java.nio.IntBuffer; -import java.util.*; import java.util.function.Consumer; import java.util.logging.Level; -import static com.jme3.renderer.vulkan.VulkanUtils.*; import static org.lwjgl.vulkan.VK13.*; public class VulkanHelperTest extends SimpleApplication implements SwapchainUpdater { private VulkanInstance instance; private Surface surface; - private LogicalDevice device; - private SimpleQueueFamilies queues; + private LogicalDevice device; private Swapchain swapchain; private ShaderModule vertModule, fragModule; private PipelineLayout pipelineLayout; @@ -122,18 +127,19 @@ public void simpleInitApp() { // logical device device = new LogicalDevice<>(instance); - try (LogicalDevice.Builder d = device.build(id -> new SimplePhysicalDevice(instance, surface, id))) { + try (LogicalDevice.Builder d = device.build(id -> new GeneralPhysicalDevice(instance, surface, id))) { d.addFilter(surface); d.addFilter(DeviceFilter.swapchain(surface)); d.addCriticalExtension(KHRSwapchain.VK_KHR_SWAPCHAIN_EXTENSION_NAME); d.addFeature(DeviceFeature.anisotropy(1f, true)); } + GeneralPhysicalDevice physDevice = device.getPhysicalDevice(); // swapchain swapchain = new Swapchain(device, surface); try (Swapchain.Builder s = swapchain.build()) { - s.addQueue(device.getPhysicalDevice().getGraphics()); - s.addQueue(device.getPhysicalDevice().getPresent()); + s.addQueue(physDevice.getGraphics()); + s.addQueue(physDevice.getPresent()); s.selectFormat(Image.Format.B8G8R8A8_SRGB.getVkEnum(), KHRSurface.VK_COLOR_SPACE_SRGB_NONLINEAR_KHR); s.selectMode(Swapchain.PresentMode.Mailbox); s.selectExtentByWindow(); @@ -143,10 +149,12 @@ public void simpleInitApp() { descriptorLayout = new DescriptorSetLayout(device, SetLayoutBinding.uniformBuffer(0, 1, VK_SHADER_STAGE_VERTEX_BIT), SetLayoutBinding.combinedImageSampler(1, 1, VK_SHADER_STAGE_FRAGMENT_BIT)); - descriptorPool = new DescriptorPool(device, 2, - PoolSize.uniformBuffers(2), PoolSize.combinedImageSamplers(2)); + descriptorPool = new DescriptorPool(device, 3, + PoolSize.uniformBuffers(3), + PoolSize.storageBuffers(4), + PoolSize.combinedImageSamplers(2)); - CommandPool transferPool = new CommandPool(device, queues.getGraphicsQueue(), true, false); + CommandPool transferPool = new CommandPool(device, physDevice.getGraphics(), true, false); // depth texture depthView = createDepthAttachment(transferPool); @@ -157,49 +165,46 @@ public void simpleInitApp() { "Shaders/VulkanVertTest.glsl", ShaderType.Vertex)), "main"); fragModule = new ShaderModule(device, assetManager.loadAsset(ShadercLoader.key( "Shaders/VulkanFragTest.glsl", ShaderType.Fragment)), "main"); - try (RenderPassBuilder pass = new RenderPassBuilder()) { - int color = pass.createAttachment(a -> a - .format(swapchain.getFormat().getVkEnum()) - .samples(VK_SAMPLE_COUNT_1_BIT) - .loadOp(VK_ATTACHMENT_LOAD_OP_CLEAR) - .storeOp(VK_ATTACHMENT_STORE_OP_STORE) - .stencilLoadOp(VK_ATTACHMENT_LOAD_OP_DONT_CARE) - .stencilStoreOp(VK_ATTACHMENT_STORE_OP_DONT_CARE) - .initialLayout(Image.Layout.Undefined.getVkEnum()) - .finalLayout(Image.Layout.PresentSrc.getVkEnum())); - int depth = pass.createAttachment(a -> a - .format(depthView.getImage().getFormat().getVkEnum()) - .samples(VK_SAMPLE_COUNT_1_BIT) - .loadOp(VK_ATTACHMENT_LOAD_OP_CLEAR) - .storeOp(VK_ATTACHMENT_STORE_OP_DONT_CARE) - .stencilLoadOp(VK_ATTACHMENT_LOAD_OP_DONT_CARE) - .stencilStoreOp(VK_ATTACHMENT_STORE_OP_DONT_CARE) - .initialLayout(Image.Layout.Undefined.getVkEnum()) - .finalLayout(Image.Layout.DepthStencilAttachmentOptimal.getVkEnum())); - int subpass = pass.createSubpass(s -> { - VkAttachmentReference.Buffer colorRef = VkAttachmentReference.calloc(1, pass.getStack()) - .attachment(color) - .layout(Image.Layout.ColorAttachmentOptimal.getVkEnum()); - VkAttachmentReference depthRef = VkAttachmentReference.calloc(pass.getStack()) - .attachment(depth) - .layout(Image.Layout.DepthStencilAttachmentOptimal.getVkEnum()); - s.pipelineBindPoint(VK_PIPELINE_BIND_POINT_GRAPHICS) - .colorAttachmentCount(1) - .pColorAttachments(colorRef) - .pDepthStencilAttachment(depthRef); + renderPass = new RenderPass(device); + try (RenderPass.Builder p = renderPass.build()) { + Attachment color = p.createAttachment(swapchain.getFormat(), VK_SAMPLE_COUNT_1_BIT, a -> { + a.setLoad(Image.Load.Clear); + a.setStore(Image.Store.Store); + a.setStencilLoad(Image.Load.DontCare); + a.setStencilStore(Image.Store.DontCare); + a.setInitialLayout(Image.Layout.Undefined); + a.setFinalLayout(Image.Layout.PresentSrc); + }); + Attachment depth = p.createAttachment(depthView.getImage().getFormat(), VK_SAMPLE_COUNT_1_BIT, a -> { + a.setLoad(Image.Load.Clear); + a.setStore(Image.Store.DontCare); + a.setStencilLoad(Image.Load.DontCare); + a.setStencilStore(Image.Store.DontCare); + a.setInitialLayout(Image.Layout.Undefined); + a.setFinalLayout(Image.Layout.DepthStencilAttachmentOptimal); + }); + Subpass subpass = p.createSubpass(PipelineBindPoint.Graphics, s -> { + s.addColorAttachment(color.createReference(Image.Layout.ColorAttachmentOptimal)); + s.setDepthStencilAttachment(depth.createReference(Image.Layout.DepthStencilAttachmentOptimal)); + }); + p.createDependency(null, subpass, d -> { + d.setSrcStageMask(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT); + d.setSrcAccessMask(subpass.getPosition()); + d.setDstStageMask(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT); + d.setDstAccessMask(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT); }); - pass.createDependency() - .srcSubpass(VK_SUBPASS_EXTERNAL) - .dstSubpass(subpass) - .srcStageMask(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT) - .srcAccessMask(subpass) - .dstStageMask(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT) - .dstAccessMask(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT); - renderPass = pass.build(device); } swapchain.createFrameBuffers(renderPass, depthView); - pipeline = new GraphicsPipeline(device, pipelineLayout, renderPass, new RenderState(), vertModule, fragModule, new MeshDescription()); - graphicsPool = new CommandPool(device, queues.getGraphicsQueue(), false, true); + pipeline = new GraphicsPipeline(device, pipelineLayout, renderPass, 0, new TestCaseMeshDescription()); + try (GraphicsPipeline.Builder p = pipeline.build()) { + p.addStage(vertModule, VK_SHADER_STAGE_VERTEX_BIT); + p.addStage(fragModule, VK_SHADER_STAGE_FRAGMENT_BIT); + p.getViewportState().addViewport(); + p.getViewportState().addScissor(); + p.getColorBlend().addAttachment(new ColorBlendAttachment()); + p.getDynamicState().addTypes(DynamicState.Type.ViewPort, DynamicState.Type.Scissor); + } + graphicsPool = new CommandPool(device, physDevice.getGraphics(), false, true); // vertex buffers try (MemoryStack stack = MemoryStack.stackPush()) { @@ -221,7 +226,7 @@ public void simpleInitApp() { } // material color texture - GpuImage image = loadImage("Common/Textures/MissingTexture.png", transferPool); + GpuImage image = assetManager.loadAsset(VulkanImageLoader.key(transferPool, "Common/Textures/MissingTexture.png")); texture = new Texture(device, image.createView(VK_IMAGE_VIEW_TYPE_2D, VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1), VK_FILTER_LINEAR, VK_FILTER_LINEAR, VK_SAMPLER_ADDRESS_MODE_REPEAT, VK_SAMPLER_MIPMAP_MODE_LINEAR); @@ -242,12 +247,16 @@ public boolean swapchainOutOfDate(Swapchain swapchain, int imageAcquireCode) { if (swapchainResizeFlag || imageAcquireCode == KHRSwapchain.VK_ERROR_OUT_OF_DATE_KHR || imageAcquireCode == KHRSwapchain.VK_SUBOPTIMAL_KHR) { swapchainResizeFlag = false; - long window = ((LwjglVulkanContext)context).getWindowHandle(); - try (SimpleSwapchainSupport support = new SimpleSwapchainSupport(device.getPhysicalDevice(), surface, window)) { - swapchain.reload(support); - depthView = createDepthAttachment(new CommandPool(device, queues.getGraphicsQueue(), true, false)); - swapchain.createFrameBuffers(renderPass, depthView); + try (Swapchain.Builder s = swapchain.build()) { + s.addQueue(device.getPhysicalDevice().getGraphics()); + s.addQueue(device.getPhysicalDevice().getPresent()); + s.selectFormat(Image.Format.B8G8R8A8_SRGB.getVkEnum(), KHRSurface.VK_COLOR_SPACE_SRGB_NONLINEAR_KHR); + s.selectMode(Swapchain.PresentMode.Mailbox); + s.selectExtentByWindow(); + s.selectImageCount(2); } + depthView = createDepthAttachment(new CommandPool(device, device.getPhysicalDevice().getGraphics(), true, false)); + swapchain.createFrameBuffers(renderPass, depthView); return true; } if (imageAcquireCode != VK_SUCCESS) { @@ -283,38 +292,6 @@ private ImageView createDepthAttachment(CommandPool pool) { return view; } - private GpuImage loadImage(String file, CommandPool transferPool) { - try (MemoryStack stack = MemoryStack.stackPush()) { - VulkanImageLoader.ImageData data = assetManager.loadAsset(VulkanImageLoader.key(file)); - GpuBuffer staging = new GpuBuffer(device, data.getBuffer().limit(), - new BufferUsageFlags().transferSrc(), new MemoryFlags().hostVisible().hostCoherent(), false); - staging.copy(stack, data.getBuffer()); - GpuImage image = new GpuImage(device, data.getWidth(), data.getHeight(), data.getFormat(), - Image.Tiling.Optimal, new ImageUsageFlags().transferDst().sampled(), - new MemoryFlags().deviceLocal()); - CommandBuffer commands = transferPool.allocateOneTimeCommandBuffer(); - commands.begin(); - image.transitionLayout(commands, Image.Layout.Undefined, Image.Layout.TransferDstOptimal); - VkBufferImageCopy.Buffer region = VkBufferImageCopy.calloc(1, stack) - .bufferOffset(0) - .bufferRowLength(0) // padding bytes - .bufferImageHeight(0); // padding bytes - region.imageSubresource().aspectMask(VK_IMAGE_ASPECT_COLOR_BIT) - .mipLevel(0) - .baseArrayLayer(0) - .layerCount(1); - region.imageOffset().set(0, 0, 0); - region.imageExtent().set(data.getWidth(), data.getHeight(), 1); - vkCmdCopyBufferToImage(commands.getBuffer(), staging.getNativeObject(), - image.getNativeObject(), VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, region); - image.transitionLayout(commands, Image.Layout.TransferDstOptimal, Image.Layout.ShaderReadOnlyOptimal); - commands.end(); - commands.submit(null, null, null); - transferPool.getQueue().waitIdle(); - return image; - } - } - private class Frame implements Consumer { private final CommandBuffer graphicsCommands = graphicsPool.allocateCommandBuffer(); @@ -335,14 +312,12 @@ public Frame() { @Override public void accept(Float tpf) { - if (applicationStopped) { - return; - } + + // render manager + if (applicationStopped) return; inFlight.block(5000); - if (applicationStopped) { - return; - } - Swapchain.SwapchainImage image = swapchain.acquireNextImage(VulkanHelperTest.this, imageAvailable, null, 5000); + if (applicationStopped) return; + Swapchain.PresentImage image = swapchain.acquireNextImage(VulkanHelperTest.this, imageAvailable, null, 5000); if (image == null) { return; // no image available: skip rendering this frame } @@ -350,17 +325,23 @@ public void accept(Float tpf) { renderManager.setCamera(cam, false); graphicsCommands.reset(); graphicsCommands.begin(); + + // material renderPass.begin(graphicsCommands, image.getFrameBuffer()); pipeline.bind(graphicsCommands); try (MemoryStack stack = MemoryStack.stackPush()) { + + // geometry modelTransform.getRotation().multLocal(new Quaternion().fromAngleAxis(tpf, Vector3f.UNIT_Y)); cam.getViewProjectionMatrix().mult(modelTransform.toTransformMatrix()) + + // material .fillFloatBuffer(uniforms.mapFloats(stack, 0, 16, 0), true); - vkCmdBindDescriptorSets(graphicsCommands.getBuffer(), VK_PIPELINE_BIND_POINT_GRAPHICS, + vkCmdBindDescriptorSets(graphicsCommands.getBuffer(), pipeline.getBindPoint().getVkEnum(), pipelineLayout.getNativeObject(), 0, stack.longs(descriptorSet.getId()), null); uniforms.unmap(); - vkCmdBindVertexBuffers(graphicsCommands.getBuffer(), 0, stack.longs(vertexBuffer.getNativeObject()), stack.longs(0)); - vkCmdBindIndexBuffer(graphicsCommands.getBuffer(), indexBuffer.getNativeObject(), 0, VK_INDEX_TYPE_UINT32); + + // viewport VkViewport.Buffer vp = VkViewport.calloc(1, stack) .x(0f).y(0f) .width(swapchain.getExtent().getX()) @@ -371,215 +352,22 @@ public void accept(Float tpf) { scissor.offset().set(0, 0); scissor.extent(swapchain.getExtent().toStruct(stack)); vkCmdSetScissor(graphicsCommands.getBuffer(), 0, scissor); - } - vkCmdDrawIndexed(graphicsCommands.getBuffer(), indexData.limit(), 1, 0, 0, 0); - vkCmdEndRenderPass(graphicsCommands.getBuffer()); - graphicsCommands.end(); - graphicsCommands.submit(imageAvailable, renderFinished, inFlight); - swapchain.present(queues.getPresentQueue(), image, renderFinished); - } - - } - - private static class SimpleQueueFamilies implements QueueFamilies { - - public static final int NUM_QUEUES = 2; - - private final Surface surface; - private Integer graphicsIndex = null; - private Integer presentIndex = null; - private Queue graphics, present; - - public SimpleQueueFamilies(Surface surface) { - this.surface = surface; - } - - @Override - public boolean populate(PhysicalDevice device, VkQueueFamilyProperties.Buffer properties) { - try (MemoryStack stack = MemoryStack.stackPush()) { - IntBuffer ibuf = stack.callocInt(1); - for (int i = 0; i < properties.limit(); i++) { - VkQueueFamilyProperties props = properties.get(i); - if (graphicsIndex == null && (props.queueFlags() & VK13.VK_QUEUE_GRAPHICS_BIT) > 0) { - graphicsIndex = i; - } else if (presentIndex == null) { - KHRSurface.vkGetPhysicalDeviceSurfaceSupportKHR( - device.getPhysicalDevice(), i, surface.getNativeObject(), ibuf); - if (ibuf.get(0) == VK13.VK_TRUE) { - presentIndex = i; - } - } - if (isComplete()) { - return true; - } - } - } - return false; - } - - @Override - public VkDeviceQueueCreateInfo.Buffer createLogicalBuffers(MemoryStack stack) { - System.out.println("selected queues: " + graphicsIndex + ", " + presentIndex); - VkDeviceQueueCreateInfo.Buffer create = VkDeviceQueueCreateInfo.calloc(NUM_QUEUES, stack); - create.get(0).sType(VK13.VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO) - .queueFamilyIndex(graphicsIndex) - .pQueuePriorities(stack.floats(1f)); - create.get(1).sType(VK13.VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO) - .queueFamilyIndex(presentIndex) - .pQueuePriorities(stack.floats(1f)); - return create; - } - - @Override - public void createQueues(LogicalDevice device) { - graphics = new Queue(device, graphicsIndex, 0); - present = new Queue(device, presentIndex, 0); - } - - @Override - public boolean isComplete() { - return graphicsIndex != null && presentIndex != null; - } - - @Override - public IntBuffer getSwapchainConcurrentBuffers(MemoryStack stack) { - if (Objects.equals(graphicsIndex, presentIndex)) { - return null; - } - IntBuffer buf = stack.mallocInt(NUM_QUEUES); - buf.put(0, graphicsIndex); - buf.put(1, presentIndex); - return buf; - } - - public Queue getGraphicsQueue() { - return graphics; - } - - public Queue getPresentQueue() { - return present; - } - - } - - private static class SimpleSwapchainSupport implements SwapchainSupport, AutoCloseable { - - private final MemoryStack stack; - private final VkSurfaceCapabilitiesKHR caps; - private final VkSurfaceFormatKHR.Buffer formats; - private final IntBuffer modes; - private final long window; - - public SimpleSwapchainSupport(PhysicalDevice device, Surface surface, long window) { - stack = MemoryStack.stackPush(); - caps = VkSurfaceCapabilitiesKHR.malloc(stack); - KHRSurface.vkGetPhysicalDeviceSurfaceCapabilitiesKHR(device.getPhysicalDevice(), surface.getNativeObject(), caps); - formats = enumerateBuffer(stack, n -> VkSurfaceFormatKHR.malloc(n, stack), - (count, buffer) -> KHRSurface.vkGetPhysicalDeviceSurfaceFormatsKHR( - device.getPhysicalDevice(), surface.getNativeObject(), count, buffer)); - modes = enumerateBuffer(stack, stack::mallocInt, - (count, buffer) -> KHRSurface.vkGetPhysicalDeviceSurfacePresentModesKHR( - device.getPhysicalDevice(), surface.getNativeObject(), count, buffer)); - this.window = window; - } - - @Override - public void close() { - stack.pop(); - } - @Override - public VkSurfaceFormatKHR selectFormat() { - return formats.stream() - .filter(f -> f.format() == VK_FORMAT_B8G8R8A8_SRGB) - .filter(f -> f.colorSpace() == KHRSurface.VK_COLOR_SPACE_SRGB_NONLINEAR_KHR) - .findAny().orElse(formats.get(0)); - } + // mesh + vkCmdBindVertexBuffers(graphicsCommands.getBuffer(), 0, stack.longs(vertexBuffer.getNativeObject()), stack.longs(0)); + vkCmdBindIndexBuffer(graphicsCommands.getBuffer(), indexBuffer.getNativeObject(), 0, VK_INDEX_TYPE_UINT32); + vkCmdDrawIndexed(graphicsCommands.getBuffer(), indexData.limit(), 1, 0, 0, 0); - @Override - public int selectMode() { - for (int i = 0; i < modes.limit(); i++) { - if (modes.get(i) == KHRSurface.VK_PRESENT_MODE_MAILBOX_KHR) { - return modes.get(i); - } } - return KHRSurface.VK_PRESENT_MODE_FIFO_KHR; - } - @Override - public VkExtent2D selectExtent() { - if (caps.currentExtent().width() != UINT32_MAX) { - return caps.currentExtent(); - } - IntBuffer width = stack.mallocInt(1); - IntBuffer height = stack.mallocInt(1); - GLFW.glfwGetFramebufferSize(window, width, height); - VkExtent2D ext = VkExtent2D.malloc(stack); - ext.width(Math.min(Math.max(width.get(0), caps.minImageExtent().width()), caps.maxImageExtent().width())); - ext.height(Math.min(Math.max(width.get(0), caps.minImageExtent().height()), caps.maxImageExtent().height())); - return ext; - } + // material + renderPass.end(graphicsCommands); - @Override - public int selectImageCount() { - int n = caps.minImageCount() + 1; - return caps.minImageCount() > 0 ? Math.min(n, caps.minImageCount()) : n; - } - - @Override - public boolean isSupported() { - return formats != null && modes != null; - } - - public VkSurfaceCapabilitiesKHR getCaps() { - return caps; - } - - public VkSurfaceFormatKHR.Buffer getFormats() { - return formats; - } - - public IntBuffer getModes() { - return modes; - } - - } - - private static class VulkanDebugCallback extends VkDebugUtilsMessengerCallbackEXT { - - private final Level exceptionThreshold; - - public VulkanDebugCallback(Level exceptionThreshold) { - this.exceptionThreshold = exceptionThreshold; - } - - @Override - public int invoke(int messageSeverity, int messageTypes, long pCallbackData, long pUserData) { - try (VkDebugUtilsMessengerCallbackDataEXT data = VkDebugUtilsMessengerCallbackDataEXT.create(pCallbackData)) { - //LOG.log(getLoggingLevel(messageSeverity), data.pMessageString()); - Level lvl = getLoggingLevel(messageSeverity); - if (exceptionThreshold != null && lvl.intValue() >= exceptionThreshold.intValue()) { - throw new RuntimeException(lvl.getName() + ": " + data.pMessageString()); - } else { - System.err.println(lvl.getName() + " " + data.pMessageString()); - } - } - return VK_FALSE; // always return false, true is only really used for testing validation layers - } + // render manager + graphicsCommands.end(); + graphicsCommands.submit(imageAvailable, renderFinished, inFlight); + swapchain.present(device.getPhysicalDevice().getPresent(), image, renderFinished); - public Level getLoggingLevel(int messageSeverity) { - switch (messageSeverity) { - case EXTDebugUtils.VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT: - return Level.SEVERE; - case EXTDebugUtils.VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT: - return Level.WARNING; - case EXTDebugUtils.VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT: - return Level.INFO; - case EXTDebugUtils.VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT: - return Level.FINE; - default: throw new UnsupportedOperationException("Unsupported severity bit: " - + Integer.numberOfTrailingZeros(Integer.highestOneBit(messageSeverity))); - } } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Attachment.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Attachment.java deleted file mode 100644 index 73689892db..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Attachment.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.jme3.vulkan; - -import com.jme3.util.natives.Native; -import com.jme3.util.natives.NativeReference; -import org.lwjgl.vulkan.VkAttachmentDescription; -import org.lwjgl.vulkan.VkAttachmentReference; - -import static org.lwjgl.vulkan.VK10.*; - -public class Attachment implements Native { - - private final NativeReference ref; - private VkAttachmentDescription description; - private VkAttachmentReference reference; - - public Attachment(int format, int samples, int finalLayout) { - description = VkAttachmentDescription.create() - .format(format) - .samples(samples) - .loadOp(VK_ATTACHMENT_LOAD_OP_CLEAR) - .storeOp(VK_ATTACHMENT_STORE_OP_STORE) - .stencilLoadOp(VK_ATTACHMENT_LOAD_OP_CLEAR) - .stencilLoadOp(VK_ATTACHMENT_STORE_OP_STORE) - .initialLayout(VK_IMAGE_LAYOUT_UNDEFINED) - .finalLayout(finalLayout); - reference = VkAttachmentReference.create(); - ref = Native.get().register(this); - } - - @Override - public VkAttachmentDescription getNativeObject() { - return description; - } - - @Override - public Runnable createNativeDestroyer() { - return description::free; - } - - @Override - public void prematureNativeDestruction() { - description = null; - } - - @Override - public NativeReference getNativeReference() { - return null; - } - - public VkAttachmentDescription getDescription() { - return description; - } - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandPool.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandPool.java index 042f3bb500..1062f4038e 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandPool.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandPool.java @@ -13,12 +13,12 @@ public class CommandPool implements Native { - private final LogicalDevice device; + private final LogicalDevice device; private final Queue queue; private final NativeReference ref; private long id; - public CommandPool(LogicalDevice device, Queue queue, boolean isTransient, boolean reset) { + public CommandPool(LogicalDevice device, Queue queue, boolean isTransient, boolean reset) { this.device = device; this.queue = queue; try (MemoryStack stack = MemoryStack.stackPush()) { @@ -65,7 +65,7 @@ public OneTimeCommandBuffer allocateOneTimeCommandBuffer() { return new OneTimeCommandBuffer(this); } - public LogicalDevice getDevice() { + public LogicalDevice getDevice() { return device; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Fence.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Fence.java index 3e4c945e37..567787f769 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Fence.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Fence.java @@ -14,15 +14,15 @@ public class Fence implements Native { - private final LogicalDevice device; + private final LogicalDevice device; private final NativeReference ref; private long id; - public Fence(LogicalDevice device) { + public Fence(LogicalDevice device) { this(device, false); } - public Fence(LogicalDevice device, boolean signal) { + public Fence(LogicalDevice device, boolean signal) { this.device = device; try (MemoryStack stack = MemoryStack.stackPush()) { VkFenceCreateInfo create = VkFenceCreateInfo.calloc(stack) diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java deleted file mode 100644 index f9567c458d..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/GraphicsPipeline.java +++ /dev/null @@ -1,145 +0,0 @@ -package com.jme3.vulkan; - -import com.jme3.material.RenderState; -import com.jme3.util.natives.Native; -import com.jme3.util.natives.NativeReference; -import com.jme3.vulkan.devices.LogicalDevice; -import org.lwjgl.system.MemoryStack; -import org.lwjgl.vulkan.*; - -import java.nio.LongBuffer; - -import static com.jme3.renderer.vulkan.VulkanUtils.check; -import static org.lwjgl.vulkan.VK10.*; -import static org.lwjgl.vulkan.VK10.VK_NULL_HANDLE; - -public class GraphicsPipeline implements Native { - - private final LogicalDevice device; - private final NativeReference ref; - private long id; - - public GraphicsPipeline(LogicalDevice device, PipelineLayout layout, RenderPass compat, RenderState state, ShaderModule vert, ShaderModule frag, MeshDescription mesh) { - this.device = device; - try (MemoryStack stack = MemoryStack.stackPush()) { - VkPipelineShaderStageCreateInfo.Buffer stages = VkPipelineShaderStageCreateInfo.calloc(2, stack); - stages.get(0).sType(VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO) - .stage(VK_SHADER_STAGE_VERTEX_BIT) - .module(vert.getNativeObject()) - .pName(stack.UTF8(vert.getEntryPoint())); // function initially called in the shader - stages.get(1).sType(VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO) - .stage(VK_SHADER_STAGE_FRAGMENT_BIT) - .module(frag.getNativeObject()) - .pName(stack.UTF8(frag.getEntryPoint())); - VkPipelineDynamicStateCreateInfo dynamic = VkPipelineDynamicStateCreateInfo.calloc(stack) - .sType(VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO) - .pDynamicStates(stack.ints(VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR)); - VkPipelineVertexInputStateCreateInfo vertInput = VkPipelineVertexInputStateCreateInfo.calloc(stack) - .sType(VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO) - .pVertexBindingDescriptions(mesh.getBindings()) - .pVertexAttributeDescriptions(mesh.getAttributes()); - VkPipelineInputAssemblyStateCreateInfo assembly = VkPipelineInputAssemblyStateCreateInfo.calloc(stack) - .sType(VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO) - .topology(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST) - .primitiveRestartEnable(false); - VkViewport.Buffer viewport = VkViewport.calloc(1, stack) - .x(0f).y(0f) - .width(1024).height(1024) // todo: ensure passing random values here is acceptable - .minDepth(0f).maxDepth(1f); - VkRect2D.Buffer scissor = VkRect2D.calloc(1, stack); - scissor.offset().set(0, 0); - scissor.extent().width(1024).height(1024); // todo: ensure passing random values here is acceptable - VkPipelineViewportStateCreateInfo vpState = VkPipelineViewportStateCreateInfo.calloc(stack) - .sType(VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO) - .pViewports(viewport) - .pScissors(scissor); - VkPipelineDepthStencilStateCreateInfo depthStencil = VkPipelineDepthStencilStateCreateInfo.calloc(stack) - .sType(VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO) - .depthTestEnable(state.isDepthTest()) - .depthWriteEnable(state.isDepthWrite()) - .depthCompareOp(RenderStateToVulkan.depthFunc(state.getDepthFunc())) - .depthBoundsTestEnable(false) - .stencilTestEnable(false); - VkPipelineRasterizationStateCreateInfo raster = VkPipelineRasterizationStateCreateInfo.calloc(stack) - .sType(VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO) - .depthClampEnable(false) - .rasterizerDiscardEnable(false) - .polygonMode(VK_POLYGON_MODE_FILL) - .lineWidth(1f) - .cullMode(RenderStateToVulkan.faceCull(state.getFaceCullMode())) - .frontFace(VK_FRONT_FACE_CLOCKWISE) - .cullMode(VK_CULL_MODE_NONE) - .depthBiasEnable(false); - VkPipelineMultisampleStateCreateInfo multisample = VkPipelineMultisampleStateCreateInfo.calloc(stack) - .sType(VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO) - .sampleShadingEnable(false) - .rasterizationSamples(VK_SAMPLE_COUNT_1_BIT); - // todo: configure depth and stencil buffers - VkPipelineColorBlendAttachmentState.Buffer blendAtt = VkPipelineColorBlendAttachmentState.calloc(1, stack) - .colorWriteMask(VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT) - .blendEnable(state.getBlendMode() != RenderState.BlendMode.Off) - .srcColorBlendFactor(VK_BLEND_FACTOR_ONE) // todo: control with render state - .dstColorBlendFactor(VK_BLEND_FACTOR_ZERO) - .colorBlendOp(RenderStateToVulkan.blendEquation(state.getBlendEquation())) - .srcAlphaBlendFactor(VK_BLEND_FACTOR_ONE) - .srcAlphaBlendFactor(VK_BLEND_FACTOR_ZERO) - .alphaBlendOp(RenderStateToVulkan.blendEquationAlpha(state.getBlendEquationAlpha(), state.getBlendEquation())); - VkPipelineColorBlendStateCreateInfo blend = VkPipelineColorBlendStateCreateInfo.calloc(stack) - .sType(VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO) - .logicOpEnable(false) - .logicOp(VK_LOGIC_OP_COPY) - .pAttachments(blendAtt); - VkGraphicsPipelineCreateInfo.Buffer pipeline = VkGraphicsPipelineCreateInfo.calloc(1, stack) - .sType(VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO) - .stageCount(2) - .pStages(stages) - .pVertexInputState(vertInput) - .pInputAssemblyState(assembly) - .pViewportState(vpState) - .pDepthStencilState(depthStencil) - .pRasterizationState(raster) - .pMultisampleState(multisample) - .pColorBlendState(blend) - .pDynamicState(dynamic) - .layout(layout.getNativeObject()) - .renderPass(compat.getNativeObject()) - .subpass(0) - .basePipelineHandle(VK_NULL_HANDLE) - .basePipelineIndex(-1); - System.out.println("render pass: " + compat.getNativeObject()); - LongBuffer idBuf = stack.mallocLong(1); - check(vkCreateGraphicsPipelines(device.getNativeObject(), VK_NULL_HANDLE, pipeline, null, idBuf), - "Failed to create graphics pipeline"); - id = idBuf.get(0); - } - ref = Native.get().register(this); - device.getNativeReference().addDependent(ref); - } - - @Override - public Long getNativeObject() { - return id; - } - - @Override - public Runnable createNativeDestroyer() { - return () -> { - vkDestroyPipeline(device.getNativeObject(), id, null); - }; - } - - @Override - public void prematureNativeDestruction() { - id = VK_NULL_HANDLE; - } - - @Override - public NativeReference getNativeReference() { - return ref; - } - - public void bind(CommandBuffer cmd) { - vkCmdBindPipeline(cmd.getBuffer(), VK_PIPELINE_BIND_POINT_GRAPHICS, id); - } - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MeshDescription.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MeshDescription.java index a0df1e72ea..e1a90bc3e7 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MeshDescription.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MeshDescription.java @@ -1,68 +1,13 @@ package com.jme3.vulkan; -import com.jme3.util.natives.Native; -import com.jme3.util.natives.NativeReference; +import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkVertexInputAttributeDescription; import org.lwjgl.vulkan.VkVertexInputBindingDescription; -import static org.lwjgl.vulkan.VK10.*; +public interface MeshDescription { -public class MeshDescription implements Native { + VkVertexInputBindingDescription.Buffer getBindings(MemoryStack stack); - private final VkVertexInputBindingDescription.Buffer bindings; - private final VkVertexInputAttributeDescription.Buffer attributes; - private final NativeReference ref; - - public MeshDescription() { - // for each vertex buffer on the mesh - bindings = VkVertexInputBindingDescription.calloc(1) - .binding(0) - .stride(Float.BYTES * 8) // bytes per vertex - .inputRate(VK_VERTEX_INPUT_RATE_VERTEX); - // for each attribute in each vertex buffer - attributes = VkVertexInputAttributeDescription.calloc(3); - attributes.get(0).binding(0) - .location(0) - .format(VK_FORMAT_R32G32B32_SFLOAT) - .offset(0); - attributes.get(1).binding(0) - .location(1) - .format(VK_FORMAT_R32G32B32_SFLOAT) - .offset(Float.BYTES * 3); - attributes.get(2).binding(0) - .location(2) - .format(VK_FORMAT_R32G32_SFLOAT) - .offset(Float.BYTES * 6); - ref = Native.get().register(this); - } - - @Override - public Object getNativeObject() { - return null; - } - - @Override - public Runnable createNativeDestroyer() { - return () -> { - bindings.free(); - attributes.free(); - }; - } - - @Override - public void prematureNativeDestruction() {} - - @Override - public NativeReference getNativeReference() { - return ref; - } - - public VkVertexInputBindingDescription.Buffer getBindings() { - return bindings; - } - - public VkVertexInputAttributeDescription.Buffer getAttributes() { - return attributes; - } + VkVertexInputAttributeDescription.Buffer getAttributes(MemoryStack stack); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java index bc1b0c581c..d91aedf86a 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java @@ -15,12 +15,12 @@ public class PipelineLayout implements Native { - private final LogicalDevice device; + private final LogicalDevice device; private final NativeReference ref; private final DescriptorSetLayout[] layouts; private final long id; - public PipelineLayout(LogicalDevice device, DescriptorSetLayout... layouts) { + public PipelineLayout(LogicalDevice device, DescriptorSetLayout... layouts) { this.device = device; this.layouts = layouts; try (MemoryStack stack = MemoryStack.stackPush()) { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Queue.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Queue.java index 33ff537bc1..6571dc530f 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Queue.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Queue.java @@ -1,7 +1,7 @@ package com.jme3.vulkan; -import com.jme3.renderer.vulkan.VulkanUtils; import com.jme3.vulkan.devices.LogicalDevice; +import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkQueue; import org.lwjgl.vulkan.VkSubmitInfo; @@ -20,9 +20,9 @@ public Queue(LogicalDevice device, int familyIndex, int queueIndex) { this.familyIndex = familyIndex; this.queueIndex = queueIndex; try (MemoryStack stack = MemoryStack.stackPush()) { - queue = new VkQueue(VulkanUtils.getPointer(stack, - ptr -> vkGetDeviceQueue(device.getNativeObject(), familyIndex, queueIndex, ptr)), - device.getNativeObject()); + PointerBuffer ptr = stack.mallocPointer(1); + vkGetDeviceQueue(device.getNativeObject(), familyIndex, queueIndex, ptr); + queue = new VkQueue(ptr.get(0), device.getNativeObject()); } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPass.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPass.java deleted file mode 100644 index c35050fd49..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPass.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.jme3.vulkan; - -import com.jme3.util.natives.Native; -import com.jme3.util.natives.NativeReference; -import com.jme3.vulkan.devices.LogicalDevice; -import org.lwjgl.system.MemoryStack; -import org.lwjgl.vulkan.VkClearValue; -import org.lwjgl.vulkan.VkRenderPassBeginInfo; -import org.lwjgl.vulkan.VkRenderPassCreateInfo; - -import java.nio.LongBuffer; - -import static com.jme3.renderer.vulkan.VulkanUtils.*; -import static org.lwjgl.vulkan.VK10.*; - -public class RenderPass implements Native { - - private final LogicalDevice device; - private final NativeReference ref; - private long id; - - public RenderPass(LogicalDevice device, VkRenderPassCreateInfo create) { - this.device = device; - try (MemoryStack stack = MemoryStack.stackPush()) { - LongBuffer idBuf = stack.mallocLong(1); - check(vkCreateRenderPass(device.getNativeObject(), create, null, idBuf), "Failed to create render pass."); - id = idBuf.get(0); - } - ref = Native.get().register(this); - device.getNativeReference().addDependent(ref); - } - - @Override - public Long getNativeObject() { - return id; - } - - @Override - public Runnable createNativeDestroyer() { - return () -> { - vkDestroyRenderPass(device.getNativeObject(), id, null); - id = VK_NULL_HANDLE; - }; - } - - @Override - public void prematureNativeDestruction() {} - - @Override - public NativeReference getNativeReference() { - return ref; - } - - public void begin(CommandBuffer cmd, FrameBuffer fbo) { - try (MemoryStack stack = MemoryStack.stackPush()) { - VkClearValue.Buffer clear = VkClearValue.calloc(2, stack); - clear.get(0).color().float32(stack.floats(0f, 0f, 0f, 1f)); - clear.get(1).depthStencil().set(1.0f, 0); - VkRenderPassBeginInfo begin = VkRenderPassBeginInfo.calloc(stack) - .sType(VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO) - .renderPass(id) - .framebuffer(fbo.getNativeObject()) - .clearValueCount(clear.limit()) - .pClearValues(clear); - begin.renderArea().offset().set(0, 0); - begin.renderArea().extent().width(fbo.getWidth()).height(fbo.getHeight()); - vkCmdBeginRenderPass(cmd.getBuffer(), begin, VK_SUBPASS_CONTENTS_INLINE); - } - } - - public LogicalDevice getDevice() { - return device; - } - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPassBuilder.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPassBuilder.java deleted file mode 100644 index 2c95d8908f..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderPassBuilder.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.jme3.vulkan; - -import com.jme3.renderer.vulkan.VulkanUtils; -import com.jme3.vulkan.devices.LogicalDevice; -import org.lwjgl.system.MemoryStack; -import org.lwjgl.vulkan.*; - -import java.util.ArrayList; -import java.util.List; -import java.util.function.Consumer; - -import static org.lwjgl.vulkan.VK10.*; - -public class RenderPassBuilder implements AutoCloseable { - - private final MemoryStack stack = MemoryStack.stackPush(); - private final List attachments = new ArrayList<>(); - private final List subpasses = new ArrayList<>(); - private final List dependencies = new ArrayList<>(); - - @Override - public void close() { - attachments.clear(); - subpasses.clear(); - dependencies.clear(); - stack.pop(); - } - - public RenderPass build(LogicalDevice device) { - VkAttachmentDescription.Buffer attBuf = VulkanUtils.accumulate(attachments, n -> VkAttachmentDescription.malloc(n, stack)); - VkSubpassDescription.Buffer subBuf = VulkanUtils.accumulate(subpasses, n -> VkSubpassDescription.malloc(n, stack)); - VkSubpassDependency.Buffer depBuf = VulkanUtils.accumulate(dependencies, n -> VkSubpassDependency.malloc(n, stack)); - VkRenderPassCreateInfo create = VkRenderPassCreateInfo.calloc(stack) - .sType(VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO) - .pAttachments(attBuf) - .pSubpasses(subBuf) - .pDependencies(depBuf); - return new RenderPass(device, create); - } - - public int createAttachment(Consumer config) { - VkAttachmentDescription a = VkAttachmentDescription.calloc(stack); - config.accept(a); - return addAttachment(a); - } - - public int createSubpass(Consumer config) { - VkSubpassDescription s = VkSubpassDescription.calloc(stack); - config.accept(s); - return addSubpass(s); - } - - public VkSubpassDependency createDependency() { - return addDependency(VkSubpassDependency.calloc(stack)); - } - - public int addAttachment(VkAttachmentDescription attachment) { - attachments.add(attachment); - return attachments.size() - 1; - } - - public int addSubpass(VkSubpassDescription subpass) { - subpasses.add(subpass); - return subpasses.size() - 1; - } - - public VkSubpassDependency addDependency(VkSubpassDependency dependency) { - dependencies.add(dependency); - return dependency; - } - - public MemoryStack getStack() { - return stack; - } - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Semaphore.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Semaphore.java index dd8792fc24..57f50196f6 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Semaphore.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Semaphore.java @@ -14,11 +14,11 @@ public class Semaphore implements Native { - private final LogicalDevice device; + private final LogicalDevice device; private final NativeReference ref; private long id; - public Semaphore(LogicalDevice device) { + public Semaphore(LogicalDevice device) { this.device = device; try (MemoryStack stack = MemoryStack.stackPush()) { VkSemaphoreCreateInfo create = VkSemaphoreCreateInfo.calloc(stack) diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ShaderModule.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ShaderModule.java index 9214cff188..8b17e70813 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ShaderModule.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ShaderModule.java @@ -14,12 +14,12 @@ public class ShaderModule implements Native { - private final LogicalDevice device; + private final LogicalDevice device; private final NativeReference ref; private final String entryPoint; private long id; - public ShaderModule(LogicalDevice device, ByteBuffer code, String entryPoint) { + public ShaderModule(LogicalDevice device, ByteBuffer code, String entryPoint) { this.device = device; this.entryPoint = entryPoint; try (MemoryStack stack = MemoryStack.stackPush()) { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/SwapchainSupport.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/SwapchainSupport.java deleted file mode 100644 index 33275aa453..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/SwapchainSupport.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.jme3.vulkan; - -import org.lwjgl.vulkan.VkExtent2D; -import org.lwjgl.vulkan.VkSurfaceFormatKHR; - -public interface SwapchainSupport { - - VkSurfaceFormatKHR selectFormat(); - - VkExtent2D selectExtent(); - - int selectMode(); - - int selectImageCount(); - - boolean isSupported(); - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanLogger.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanLogger.java index 611ea2fdcd..a11fed7644 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanLogger.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/VulkanLogger.java @@ -54,10 +54,9 @@ public VulkanLogger(VulkanInstance instance, Level exceptionThreshold) { public int message(int messageSeverity, int messageTypes, long pCallbackData, long pUserData) { VkDebugUtilsMessengerCallbackDataEXT data = VkDebugUtilsMessengerCallbackDataEXT.create(pCallbackData); Level lvl = getLoggingLevel(messageSeverity); + System.err.println(lvl.getName() + " " + data.pMessageString()); if (exceptionThreshold != null && lvl.intValue() >= exceptionThreshold.intValue()) { throw new RuntimeException(lvl.getName() + ": " + data.pMessageString()); - } else { - System.err.println(lvl.getName() + " " + data.pMessageString()); } return VK_FALSE; // always return false, true is only really used for testing validation layers } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java index 25f5deacb1..f68f1c2b3e 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java @@ -21,13 +21,13 @@ public class GpuBuffer implements Native { - private final LogicalDevice device; + private final LogicalDevice device; private final NativeReference ref; private final int size; private final long id; protected final MemoryRegion memory; - public GpuBuffer(LogicalDevice device, int size, BufferUsageFlags usage, MemoryFlags mem, boolean concurrent) { + public GpuBuffer(LogicalDevice device, int size, BufferUsageFlags usage, MemoryFlags mem, boolean concurrent) { this.device = device; this.size = size; try (MemoryStack stack = MemoryStack.stackPush()) { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/MemoryRegion.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/MemoryRegion.java index 4b33cd7935..eedabe8441 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/MemoryRegion.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/MemoryRegion.java @@ -16,13 +16,13 @@ public class MemoryRegion implements Native { - private final LogicalDevice device; + private final LogicalDevice device; private final NativeReference ref; private final long id; private final long size; private final AtomicBoolean mapped = new AtomicBoolean(false); - public MemoryRegion(LogicalDevice device, long size, int typeIndex) { + public MemoryRegion(LogicalDevice device, long size, int typeIndex) { this.device = device; this.size = size; try (MemoryStack stack = MemoryStack.stackPush()) { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BufferSetWriter.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BufferSetWriter.java index 188b780fed..101aee971b 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BufferSetWriter.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BufferSetWriter.java @@ -1,10 +1,11 @@ package com.jme3.vulkan.descriptors; import org.lwjgl.system.MemoryStack; -import org.lwjgl.vulkan.VK10; import org.lwjgl.vulkan.VkDescriptorBufferInfo; import org.lwjgl.vulkan.VkWriteDescriptorSet; +import static org.lwjgl.vulkan.VK10.*; + public class BufferSetWriter extends DescriptorSetWriter { private final BufferDescriptor[] descriptors; @@ -26,7 +27,11 @@ public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { } public static BufferSetWriter uniformBuffers(int binding, int arrayElement, BufferDescriptor... descriptors) { - return new BufferSetWriter(VK10.VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, binding, arrayElement, descriptors); + return new BufferSetWriter(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, binding, arrayElement, descriptors); + } + + public static BufferSetWriter storageBuffers(int binding, int arrayElement, BufferDescriptor... descriptors) { + return new BufferSetWriter(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, binding, arrayElement, descriptors); } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorPool.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorPool.java index 22a17be89c..79de4a574e 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorPool.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorPool.java @@ -14,11 +14,11 @@ public class DescriptorPool implements Native { - private final LogicalDevice device; + private final LogicalDevice device; private final NativeReference ref; private final long id; - public DescriptorPool(LogicalDevice device, int sets, PoolSize... sizes) { + public DescriptorPool(LogicalDevice device, int sets, PoolSize... sizes) { this.device = device; try (MemoryStack stack = MemoryStack.stackPush()) { VkDescriptorPoolCreateInfo create = VkDescriptorPoolCreateInfo.calloc(stack) diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java index 4ac9ed11f9..d68efa483e 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java @@ -8,12 +8,12 @@ public class DescriptorSet { - private final LogicalDevice device; + private final LogicalDevice device; private final DescriptorPool pool; private final DescriptorSetLayout layout; private final long id; - public DescriptorSet(LogicalDevice device, DescriptorPool pool, DescriptorSetLayout layout, long id) { + public DescriptorSet(LogicalDevice device, DescriptorPool pool, DescriptorSetLayout layout, long id) { this.device = device; this.pool = pool; this.layout = layout; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetLayout.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetLayout.java index 5a3ad95f3c..321bb5f298 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetLayout.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetLayout.java @@ -14,12 +14,12 @@ public class DescriptorSetLayout implements Native { - private final LogicalDevice device; + private final LogicalDevice device; private final NativeReference ref; private final SetLayoutBinding[] bindings; private final long id; - public DescriptorSetLayout(LogicalDevice device, SetLayoutBinding... bindings) { + public DescriptorSetLayout(LogicalDevice device, SetLayoutBinding... bindings) { this.device = device; this.bindings = bindings; try (MemoryStack stack = MemoryStack.stackPush()) { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/PoolSize.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/PoolSize.java index e31b5f1afe..36838d5a88 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/PoolSize.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/PoolSize.java @@ -27,6 +27,10 @@ public static PoolSize uniformBuffers(int size) { return new PoolSize(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, size); } + public static PoolSize storageBuffers(int size) { + return new PoolSize(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, size); + } + public static PoolSize combinedImageSamplers(int size) { return new PoolSize(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, size); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/SetLayoutBinding.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/SetLayoutBinding.java index dbb20001dc..520e153467 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/SetLayoutBinding.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/SetLayoutBinding.java @@ -1,8 +1,9 @@ package com.jme3.vulkan.descriptors; -import org.lwjgl.vulkan.VK10; import org.lwjgl.vulkan.VkDescriptorSetLayoutBinding; +import static org.lwjgl.vulkan.VK10.*; + public class SetLayoutBinding { private final int type, binding, descriptors, stages; @@ -40,11 +41,15 @@ public int getStages() { } public static SetLayoutBinding uniformBuffer(int binding, int descriptors, int stages) { - return new SetLayoutBinding(VK10.VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, binding, descriptors, stages); + return new SetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, binding, descriptors, stages); + } + + public static SetLayoutBinding storageBuffer(int binding, int descriptors, int stages) { + return new SetLayoutBinding(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, binding, descriptors, stages); } public static SetLayoutBinding combinedImageSampler(int binding, int descriptors, int stages) { - return new SetLayoutBinding(VK10.VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, binding, descriptors, stages); + return new SetLayoutBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, binding, descriptors, stages); } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceFilter.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceFilter.java index b1beb5b95a..a59a15b69c 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceFilter.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceFilter.java @@ -1,6 +1,6 @@ package com.jme3.vulkan.devices; -import com.jme3.vulkan.Surface; +import com.jme3.vulkan.surface.Surface; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkExtensionProperties; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/SimplePhysicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GeneralPhysicalDevice.java similarity index 64% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/SimplePhysicalDevice.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GeneralPhysicalDevice.java index cbcec8b492..e13a30fbce 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/SimplePhysicalDevice.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GeneralPhysicalDevice.java @@ -1,22 +1,24 @@ -package com.jme3.vulkan; +package com.jme3.vulkan.devices; -import com.jme3.vulkan.devices.LogicalDevice; -import com.jme3.vulkan.devices.PhysicalDevice; +import com.jme3.vulkan.Queue; +import com.jme3.vulkan.VulkanInstance; +import com.jme3.vulkan.surface.Surface; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.KHRSurface; -import org.lwjgl.vulkan.VK13; import org.lwjgl.vulkan.VkDeviceQueueCreateInfo; import org.lwjgl.vulkan.VkQueueFamilyProperties; import java.nio.IntBuffer; -public class SimplePhysicalDevice extends PhysicalDevice { +import static org.lwjgl.vulkan.VK10.*; + +public class GeneralPhysicalDevice extends PhysicalDevice { private final Surface surface; private Integer graphicsIndex, presentIndex; private Queue graphics, present; - public SimplePhysicalDevice(VulkanInstance instance, Surface surface, long id) { + public GeneralPhysicalDevice(VulkanInstance instance, Surface surface, long id) { super(instance, id); this.surface = surface; } @@ -28,30 +30,31 @@ protected boolean populateQueueFamilyIndices() { IntBuffer ibuf = stack.callocInt(1); for (int i = 0; i < properties.limit(); i++) { VkQueueFamilyProperties props = properties.get(i); - if (graphicsIndex == null && (props.queueFlags() & VK13.VK_QUEUE_GRAPHICS_BIT) > 0) { + int flags = props.queueFlags(); + if (graphicsIndex == null && (flags & VK_QUEUE_GRAPHICS_BIT) > 0) { graphicsIndex = i; } else if (presentIndex == null) { - KHRSurface.vkGetPhysicalDeviceSurfaceSupportKHR( - getPhysicalDevice(), i, surface.getNativeObject(), ibuf); - if (ibuf.get(0) == VK13.VK_TRUE) { + KHRSurface.vkGetPhysicalDeviceSurfaceSupportKHR(getPhysicalDevice(), + i, surface.getNativeObject(), ibuf); + if (ibuf.get(0) == VK_TRUE) { presentIndex = i; } } - if (graphicsIndex != null && presentIndex != null) { + if (allQueuesAvailable()) { return true; } } } - return false; + return allQueuesAvailable(); } @Override protected VkDeviceQueueCreateInfo.Buffer createQueueFamilyInfo(MemoryStack stack) { - VkDeviceQueueCreateInfo.Buffer create = VkDeviceQueueCreateInfo.calloc(2, stack); // one element for each queue - create.get(0).sType(VK13.VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO) + VkDeviceQueueCreateInfo.Buffer create = VkDeviceQueueCreateInfo.calloc(2, stack); + create.get(0).sType(VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO) .queueFamilyIndex(graphicsIndex) .pQueuePriorities(stack.floats(1f)); - create.get(1).sType(VK13.VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO) + create.get(1).sType(VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO) .queueFamilyIndex(presentIndex) .pQueuePriorities(stack.floats(1f)); return create; @@ -63,6 +66,10 @@ protected void createQueues(LogicalDevice device) { present = new Queue(device, presentIndex, 0); } + public boolean allQueuesAvailable() { + return graphicsIndex != null && presentIndex != null; + } + public Integer getGraphicsIndex() { return graphicsIndex; } @@ -71,6 +78,10 @@ public Integer getPresentIndex() { return presentIndex; } + public Integer getComputeIndex() { + return graphicsIndex; + } + public Queue getGraphics() { return graphics; } @@ -79,4 +90,8 @@ public Queue getPresent() { return present; } + public Queue getCompute() { + return graphics; + } + } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/LogicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/LogicalDevice.java index 765a092879..f399405995 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/LogicalDevice.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/LogicalDevice.java @@ -1,10 +1,10 @@ package com.jme3.vulkan.devices; import com.jme3.util.natives.Native; -import com.jme3.vulkan.Surface; import com.jme3.vulkan.VulkanInstance; import com.jme3.vulkan.VulkanObject; import org.lwjgl.PointerBuffer; +import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.*; import java.util.*; @@ -112,39 +112,46 @@ private void findSuitablePhysicalDevice() { physical = null; float topWeight = Float.NEGATIVE_INFINITY; deviceLoop: for (T d : iteratePointers(devices, deviceFactory::apply)) { - float deviceWeight = 0f; - // extensions - VkExtensionProperties.Buffer supportedExts = d.getExtensionProperties(stack); - Set extSet = new HashSet<>(); - supportedExts.stream().forEach(e -> extSet.add(e.extensionNameString())); - for (DeviceExtension ext : extensions) { - Float weight = ext.evaluate(extSet); - if (weight == null) { - continue deviceLoop; - } - deviceWeight += weight; + if (!d.populateQueueFamilyIndices()) { + continue; } - // features - VkPhysicalDeviceFeatures ftrs = d.getFeatures(stack); - for (DeviceFeature f : features) { - Float weight = f.evaluateFeatureSupport(ftrs); - if (DeviceWeights.isRejection(weight)) { - continue deviceLoop; + // attempting to evaluate all devices with only one memory stack + // results in an out of memory error + try (MemoryStack stack = MemoryStack.stackPush()) { + float deviceWeight = 0f; + // extensions + VkExtensionProperties.Buffer supportedExts = d.getExtensionProperties(stack); + Set extSet = new HashSet<>(); + supportedExts.stream().forEach(e -> extSet.add(e.extensionNameString())); + for (DeviceExtension ext : extensions) { + Float weight = ext.evaluate(extSet); + if (weight == null) { + continue deviceLoop; + } + deviceWeight += weight; } - deviceWeight += weight; - } - // miscellaneous filters - for (DeviceFilter f : filters) { - Float weight = f.evaluateDevice(d); - if (weight == null) { - continue deviceLoop; + // features + VkPhysicalDeviceFeatures ftrs = d.getFeatures(stack); + for (DeviceFeature f : features) { + Float weight = f.evaluateFeatureSupport(ftrs); + if (weight == null) { + continue deviceLoop; + } + deviceWeight += weight; + } + // miscellaneous filters + for (DeviceFilter f : filters) { + Float weight = f.evaluateDevice(d); + if (weight == null) { + continue deviceLoop; + } + deviceWeight += weight; + } + // compare + if (deviceWeight > topWeight) { + physical = d; + topWeight = deviceWeight; } - deviceWeight += weight; - } - // compare - if (deviceWeight > topWeight) { - physical = d; - topWeight = deviceWeight; } } if (physical == null) { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java index 2aceb6dea8..0cbdfb002c 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java @@ -1,18 +1,13 @@ package com.jme3.vulkan.devices; -import com.jme3.util.natives.Native; -import com.jme3.util.natives.NativeReference; -import com.jme3.vulkan.Surface; +import com.jme3.vulkan.surface.Surface; import com.jme3.vulkan.VulkanInstance; import com.jme3.vulkan.images.Image; -import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.*; import java.nio.ByteBuffer; import java.nio.IntBuffer; -import java.util.Collection; -import java.util.function.Function; import static com.jme3.renderer.vulkan.VulkanUtils.*; import static org.lwjgl.vulkan.VK10.*; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java index 5306f7453c..dfa3239f16 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java @@ -20,7 +20,7 @@ public class GpuImage implements Image { - private final LogicalDevice device; + private final LogicalDevice device; private final NativeReference ref; private final long id; private final MemoryRegion memory; @@ -28,11 +28,11 @@ public class GpuImage implements Image { private final Image.Format format; private final Image.Tiling tiling; - public GpuImage(LogicalDevice device, int width, int height, Image.Format format, Image.Tiling tiling, ImageUsageFlags usage, MemoryFlags mem) { + public GpuImage(LogicalDevice device, int width, int height, Image.Format format, Image.Tiling tiling, ImageUsageFlags usage, MemoryFlags mem) { this(device, VK_IMAGE_TYPE_2D, width, height, 1, format, tiling, usage, mem); } - public GpuImage(LogicalDevice device, int type, int width, int height, int depth, Image.Format format, Image.Tiling tiling, ImageUsageFlags usage, MemoryFlags mem) { + public GpuImage(LogicalDevice device, int type, int width, int height, int depth, Image.Format format, Image.Tiling tiling, ImageUsageFlags usage, MemoryFlags mem) { this.device = device; this.type = type; this.width = width; @@ -73,7 +73,7 @@ public ImageView createView(VkImageViewCreateInfo create) { } @Override - public LogicalDevice getDevice() { + public LogicalDevice getDevice() { return device; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Image.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Image.java index f55023dea1..15785a63c9 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Image.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Image.java @@ -129,9 +129,44 @@ public int getVkEnum() { } + enum Load { + + Clear(VK_ATTACHMENT_LOAD_OP_CLEAR), + Load(VK_ATTACHMENT_LOAD_OP_LOAD), + DontCare(VK_ATTACHMENT_LOAD_OP_DONT_CARE); + + private final int vkEnum; + + Load(int vkEnum) { + this.vkEnum = vkEnum; + } + + public int getVkEnum() { + return vkEnum; + } + + } + + enum Store { + + Store(VK_ATTACHMENT_STORE_OP_STORE), + DontCare(VK_ATTACHMENT_STORE_OP_DONT_CARE); + + private final int vkEnum; + + Store(int vkEnum) { + this.vkEnum = vkEnum; + } + + public int getVkEnum() { + return vkEnum; + } + + } + ImageView createView(VkImageViewCreateInfo create); - LogicalDevice getDevice(); + LogicalDevice getDevice(); int getType(); diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Sampler.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Sampler.java index b710f78d85..7d5a379418 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Sampler.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/Sampler.java @@ -13,11 +13,11 @@ public class Sampler implements Native { - private final LogicalDevice device; + private final LogicalDevice device; private final NativeReference ref; private final long id; - public Sampler(LogicalDevice device, int min, int mag, int edgeMode, int mipmapMode) { + public Sampler(LogicalDevice device, int min, int mag, int edgeMode, int mipmapMode) { this.device = device; try (MemoryStack stack = MemoryStack.stackPush()) { VkPhysicalDeviceProperties props = device.getPhysicalDevice().getProperties(stack); @@ -57,13 +57,11 @@ public Runnable createNativeDestroyer() { } @Override - public void prematureNativeDestruction() { - - } + public void prematureNativeDestruction() {} @Override public NativeReference getNativeReference() { - return null; + return ref; } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java index 7e579bcf24..153596eca9 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java @@ -2,6 +2,14 @@ import com.jme3.asset.*; import com.jme3.util.BufferUtils; +import com.jme3.vulkan.CommandBuffer; +import com.jme3.vulkan.CommandPool; +import com.jme3.vulkan.buffers.GpuBuffer; +import com.jme3.vulkan.flags.BufferUsageFlags; +import com.jme3.vulkan.flags.ImageUsageFlags; +import com.jme3.vulkan.flags.MemoryFlags; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkBufferImageCopy; import javax.imageio.ImageIO; import java.awt.*; @@ -23,14 +31,17 @@ public Object load(AssetInfo info) throws IOException { if (ImageIO.getImageReadersBySuffix(info.getKey().getExtension()) != null) { boolean flip = ((Key)info.getKey()).isFlip(); try (InputStream stream = info.openStream(); BufferedInputStream bin = new BufferedInputStream(stream)) { - ImageData img = load(bin, flip); - if (img == null){ + ImageData data = load(bin, flip); + if (data == null) { throw new AssetLoadException("The given image cannot be loaded " + info.getKey()); } - return img; + if (info.getKey() instanceof ImageKey) { + return loadGpuImage(((ImageKey)info.getKey()).getPool(), data); + } + return data; } } - throw new AssetLoadException("Image extension " + info.getKey().getExtension() + " is not supported"); + throw new AssetLoadException("Image extension " + info.getKey().getExtension() + " is not supported."); } public ImageData load(InputStream in, boolean flip) throws IOException { @@ -137,11 +148,46 @@ private void flipImage(byte[] img, int width, int height, int bpp) { } } - public static Key key(String name) { - return new Key(name); + private GpuImage loadGpuImage(CommandPool transferPool, ImageData data) { + try (MemoryStack stack = MemoryStack.stackPush()) { + GpuBuffer staging = new GpuBuffer(transferPool.getDevice(), data.getBuffer().limit(), + new BufferUsageFlags().transferSrc(), new MemoryFlags().hostVisible().hostCoherent(), false); + staging.copy(stack, data.getBuffer()); + GpuImage image = new GpuImage(transferPool.getDevice(), data.getWidth(), data.getHeight(), data.getFormat(), + Image.Tiling.Optimal, new ImageUsageFlags().transferDst().sampled(), + new MemoryFlags().deviceLocal()); + CommandBuffer commands = transferPool.allocateOneTimeCommandBuffer(); + commands.begin(); + image.transitionLayout(commands, Image.Layout.Undefined, Image.Layout.TransferDstOptimal); + VkBufferImageCopy.Buffer region = VkBufferImageCopy.calloc(1, stack) + .bufferOffset(0) + .bufferRowLength(0) // padding bytes + .bufferImageHeight(0); // padding bytes + region.imageSubresource().aspectMask(VK_IMAGE_ASPECT_COLOR_BIT) + .mipLevel(0) + .baseArrayLayer(0) + .layerCount(1); + region.imageOffset().set(0, 0, 0); + region.imageExtent().set(data.getWidth(), data.getHeight(), 1); + vkCmdCopyBufferToImage(commands.getBuffer(), staging.getNativeObject(), + image.getNativeObject(), VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, region); + image.transitionLayout(commands, Image.Layout.TransferDstOptimal, Image.Layout.ShaderReadOnlyOptimal); + commands.end(); + commands.submit(null, null, null); + transferPool.getQueue().waitIdle(); + return image; + } } - public static class Key extends AssetKey { + public static Key key(String name) { + return new Key<>(name); + } + + public static ImageKey key(CommandPool pool, String name) { + return new ImageKey(pool, name); + } + + public static class Key extends AssetKey { private boolean flip; @@ -164,6 +210,26 @@ public boolean isFlip() { } + public static class ImageKey extends Key { + + private final CommandPool pool; + + public ImageKey(CommandPool pool, String name) { + super(name); + this.pool = pool; + } + + public ImageKey(CommandPool pool, String name, boolean flip) { + super(name, flip); + this.pool = pool; + } + + public CommandPool getPool() { + return pool; + } + + } + public static class ImageData { private final ByteBuffer buffer; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/Attachment.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/Attachment.java new file mode 100644 index 0000000000..a269eac314 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/Attachment.java @@ -0,0 +1,118 @@ +package com.jme3.vulkan.pass; + +import com.jme3.vulkan.images.Image; +import org.lwjgl.vulkan.VkAttachmentDescription; + +/** + * Immutable definition for render pass attachments. + */ +public class Attachment { + + private final int position; + private final Image.Format format; + private final int samples; + private Image.Load load = Image.Load.Clear; + private Image.Store store = Image.Store.Store; + private Image.Load stencilLoad = Image.Load.DontCare; + private Image.Store stencilStore = Image.Store.DontCare; + private Image.Layout initialLayout = Image.Layout.Undefined; + private Image.Layout finalLayout = Image.Layout.General; + + protected Attachment(int position, Image.Format format, int samples) { + this.position = position; + this.format = format; + this.samples = samples; + } + + protected Attachment(int position, Attachment base) { + this.position = position; + this.format = base.format; + this.samples = base.samples; + this.load = base.load; + this.store = base.store; + this.stencilLoad = base.stencilLoad; + this.stencilStore = base.stencilStore; + this.initialLayout = base.initialLayout; + this.finalLayout = base.finalLayout; + } + + public AttachmentReference createReference(Image.Layout layout) { + return new AttachmentReference(this, layout); + } + + public void fillStruct(VkAttachmentDescription struct) { + struct.format(format.getVkEnum()) + .samples(samples) + .loadOp(load.getVkEnum()) + .storeOp(store.getVkEnum()) + .stencilLoadOp(stencilLoad.getVkEnum()) + .stencilStoreOp(stencilStore.getVkEnum()) + .initialLayout(initialLayout.getVkEnum()) + .finalLayout(finalLayout.getVkEnum()); + } + + public void setLoad(Image.Load load) { + this.load = load; + } + + public void setStencilLoad(Image.Load stencilLoad) { + this.stencilLoad = stencilLoad; + } + + public void setStore(Image.Store store) { + this.store = store; + } + + public void setStencilStore(Image.Store stencilStore) { + this.stencilStore = stencilStore; + } + + public void setInitialLayout(Image.Layout initialLayout) { + this.initialLayout = initialLayout; + } + + public void setFinalLayout(Image.Layout finalLayout) { + this.finalLayout = finalLayout; + } + + public int getPosition() { + return position; + } + + public Image.Format getFormat() { + return format; + } + + public int getSamples() { + return samples; + } + + public Image.Load getLoad() { + return load; + } + + public Image.Load getStencilLoad() { + return stencilLoad; + } + + public Image.Store getStore() { + return store; + } + + public Image.Store getStencilStore() { + return stencilStore; + } + + public Image.Layout getInitialLayout() { + return initialLayout; + } + + public Image.Layout getFinalLayout() { + return finalLayout; + } + + public boolean isCompatible(Attachment a) { + return position == a.position && format == a.format && samples == a.samples; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/AttachmentReference.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/AttachmentReference.java new file mode 100644 index 0000000000..097be3efd1 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/AttachmentReference.java @@ -0,0 +1,49 @@ +package com.jme3.vulkan.pass; + +import com.jme3.vulkan.images.Image; +import org.lwjgl.vulkan.VK10; +import org.lwjgl.vulkan.VkAttachmentReference; + +/** + * Immutable reference to an {@link Attachment}. + */ +public class AttachmentReference { + + private final Attachment attachment; + private final Image.Layout layout; + + protected AttachmentReference(Attachment attachment, Image.Layout layout) { + this.attachment = attachment; + this.layout = layout; + } + + public void fillStruct(VkAttachmentReference struct) { + struct.attachment(getAttachmentPosition()) + .layout(layout.getVkEnum()); + } + + public Attachment getAttachment() { + return attachment; + } + + public Image.Layout getLayout() { + return layout; + } + + public int getAttachmentPosition() { + return attachment != null ? attachment.getPosition() : VK10.VK_ATTACHMENT_UNUSED; + } + + public boolean isUnused() { + return attachment == null; + } + + public boolean isCompatible(AttachmentReference ref) { + return isUnused() == ref.isUnused() && (isUnused() || attachment.isCompatible(ref.attachment)) && layout == ref.layout; + } + + public static AttachmentReference unused(Image.Layout layout) { + return new AttachmentReference(null, layout); + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/RenderPass.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/RenderPass.java new file mode 100644 index 0000000000..d009355fe2 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/RenderPass.java @@ -0,0 +1,251 @@ +package com.jme3.vulkan.pass; + +import com.jme3.util.natives.Native; +import com.jme3.vulkan.CommandBuffer; +import com.jme3.vulkan.VulkanObject; +import com.jme3.vulkan.devices.LogicalDevice; +import com.jme3.vulkan.images.Image; +import com.jme3.vulkan.pipelines.FrameBuffer; +import com.jme3.vulkan.pipelines.PipelineBindPoint; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.*; + +import java.nio.LongBuffer; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.function.Consumer; + +import static com.jme3.renderer.vulkan.VulkanUtils.*; +import static org.lwjgl.vulkan.VK10.*; + +public class RenderPass extends VulkanObject { + + private final LogicalDevice device; + private final List attachments = new ArrayList<>(); + private final List subpasses = new ArrayList<>(); + private final List dependencies = new ArrayList<>(); + private boolean built = false; + + public RenderPass(LogicalDevice device) { + this.device = device; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> vkDestroyRenderPass(device.getNativeObject(), object, null); + } + + public void begin(CommandBuffer cmd, FrameBuffer fbo) { + begin(cmd, fbo, true); + } + + public void begin(CommandBuffer cmd, FrameBuffer fbo, boolean inline) { + try (MemoryStack stack = MemoryStack.stackPush()) { + VkClearValue.Buffer clear = VkClearValue.calloc(2, stack); + clear.get(0).color().float32(stack.floats(0f, 0f, 0f, 1f)); + clear.get(1).depthStencil().set(1.0f, 0); + VkRenderPassBeginInfo begin = VkRenderPassBeginInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO) + .renderPass(object) + .framebuffer(fbo.getNativeObject()) + .clearValueCount(clear.limit()) + .pClearValues(clear); + begin.renderArea().offset().set(0, 0); + begin.renderArea().extent().width(fbo.getWidth()).height(fbo.getHeight()); + vkCmdBeginRenderPass(cmd.getBuffer(), begin, inline ? VK_SUBPASS_CONTENTS_INLINE : VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS); + } + } + + public void nextSubpass(CommandBuffer cmd) { + nextSubpass(cmd, true); + } + + public void nextSubpass(CommandBuffer cmd, boolean inline) { + vkCmdNextSubpass(cmd.getBuffer(), inline ? VK_SUBPASS_CONTENTS_INLINE : VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS); + } + + public void end(CommandBuffer cmd) { + vkCmdEndRenderPass(cmd.getBuffer()); + } + + public LogicalDevice getDevice() { + return device; + } + + public boolean isCompatible(RenderPass pass) { + if (this == pass) { + return true; + } + if (attachments.size() != pass.attachments.size()) { + return false; + } + if (subpasses.size() != pass.subpasses.size()) { + return false; + } + if (dependencies.size() != pass.dependencies.size()) { + return false; + } + for (int i = 0; i < attachments.size(); i++) { + if (!attachments.get(i).isCompatible(pass.attachments.get(i))) { + return false; + } + } + for (int i = 0; i < subpasses.size(); i++) { + if (!subpasses.get(i).isCompatible(pass.subpasses.get(i))) { + return false; + } + } + for (int i = 0; i < dependencies.size(); i++) { + if (!dependencies.get(i).isCompatible(pass.dependencies.get(i))) { + return false; + } + } + return true; + } + + public Builder build() { + if (built) { + throw new IllegalStateException("Render pass has already been built or is being built."); + } + built = true; + return new Builder(); + } + + public Builder buildCopyOf(RenderPass base) { + return new Builder(base); + } + + public class Builder extends VulkanObject.Builder { + + public Builder() {} + + public Builder(RenderPass base) { + for (Attachment a : base.attachments) { + attachments.add(new Attachment(attachments.size(), a)); + } + for (Subpass s : base.subpasses) { + subpasses.add(new Subpass(subpasses.size(), s, attachments)); + } + for (SubpassDependency d : base.dependencies) { + dependencies.add(new SubpassDependency(d, subpasses)); + } + } + + @Override + protected void build() { + VkRenderPassCreateInfo create = VkRenderPassCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO); + if (!attachments.isEmpty()) { + VkAttachmentDescription.Buffer buf = VkAttachmentDescription.calloc(attachments.size(), stack); + for (Attachment a : attachments) { + a.fillStruct(buf.get()); + } + create.pAttachments(buf.flip()); + } + if (!subpasses.isEmpty()) { + VkSubpassDescription.Buffer buf = VkSubpassDescription.calloc(subpasses.size(), stack); + for (Subpass s : subpasses) { + s.fillStruct(stack, buf.get()); + } + create.pSubpasses(buf.flip()); + } + if (!dependencies.isEmpty()) { + VkSubpassDependency.Buffer buf = VkSubpassDependency.calloc(dependencies.size(), stack); + for (SubpassDependency d : dependencies) { + d.fillStruct(buf.get()); + } + create.pDependencies(buf.flip()); + } + LongBuffer idBuf = stack.mallocLong(1); + check(vkCreateRenderPass(device.getNativeObject(), create, null, idBuf), "Failed to create render pass."); + object = idBuf.get(0); + ref = Native.get().register(RenderPass.this); + device.getNativeReference().addDependent(ref); + } + + public Attachment createAttachment(Image.Format format, int samples) { + Attachment a = new Attachment(attachments.size(), format, samples); + attachments.add(a); + return a; + } + + public Attachment createAttachment(Image.Format format, int samples, Consumer config) { + Attachment a = createAttachment(format, samples); + config.accept(a); + return a; + } + + public Attachment getAttachment(int i) { + return attachments.get(i); + } + + public Attachment getAttachment(int i, Consumer config) { + Attachment a = getAttachment(i); + config.accept(a); + return a; + } + + public List getAttachments() { + return Collections.unmodifiableList(attachments); + } + + public Subpass createSubpass(PipelineBindPoint bindPoint) { + Subpass p = new Subpass(subpasses.size(), bindPoint); + subpasses.add(p); + return p; + } + + public Subpass createSubpass(PipelineBindPoint bindPoint, Consumer config) { + Subpass p = createSubpass(bindPoint); + config.accept(p); + return p; + } + + public Subpass getSubpass(int i) { + return subpasses.get(i); + } + + public Subpass getSubpass(int i, Consumer config) { + Subpass p = getSubpass(i); + config.accept(p); + return p; + } + + public List getSubpasses() { + return Collections.unmodifiableList(subpasses); + } + + public SubpassDependency createDependency(Subpass src, Subpass dst) { + SubpassDependency d = new SubpassDependency(src, dst); + dependencies.add(d); + return d; + } + + public SubpassDependency createDependency(Subpass src, Subpass dst, Consumer config) { + SubpassDependency d = createDependency(src, dst); + config.accept(d); + return d; + } + + public SubpassDependency getDependency(int i) { + return dependencies.get(i); + } + + public SubpassDependency getDependency(int i, Consumer config) { + SubpassDependency d = getDependency(i); + config.accept(d); + return d; + } + + public List getDependencies() { + return Collections.unmodifiableList(dependencies); + } + + public MemoryStack getStack() { + return stack; + } + + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/Subpass.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/Subpass.java new file mode 100644 index 0000000000..0b56913472 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/Subpass.java @@ -0,0 +1,196 @@ +package com.jme3.vulkan.pass; + +import com.jme3.vulkan.pipelines.PipelineBindPoint; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VK10; +import org.lwjgl.vulkan.VkAttachmentReference; +import org.lwjgl.vulkan.VkSubpassDescription; + +import java.nio.IntBuffer; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * Immutable definition of a subpass within a render pass. + */ +public class Subpass { + + private final int position; + private final PipelineBindPoint bindPoint; + private final List color = new ArrayList<>(); + private final List input = new ArrayList<>(); + private final List resolve = new ArrayList<>(); + private final List preserve = new ArrayList<>(); + private AttachmentReference depthStencil; + + protected Subpass(int position, PipelineBindPoint bindPoint) { + this.position = position; + this.bindPoint = bindPoint; + } + + protected Subpass(int position, Subpass base, List attachments) { + this.position = position; + this.bindPoint = base.bindPoint; + transferRefs(base.color, color, attachments); + transferRefs(base.input, input, attachments); + transferRefs(base.resolve, resolve, attachments); + transferRefs(base.preserve, preserve, attachments); + if (base.depthStencil != null) { + if (!base.depthStencil.isUnused()) { + depthStencil = attachments.get(base.depthStencil.getAttachment().getPosition()) + .createReference(base.depthStencil.getLayout()); + } else { + depthStencil = AttachmentReference.unused(base.depthStencil.getLayout()); + } + } + } + + private void transferRefs(List srcRefs, List dstRefs, List attachments) { + for (AttachmentReference r : srcRefs) { + if (!r.isUnused()) { + dstRefs.add(attachments.get(r.getAttachment().getPosition()).createReference(r.getLayout())); + } else { + dstRefs.add(AttachmentReference.unused(r.getLayout())); + } + } + } + + public void fillStruct(MemoryStack stack, VkSubpassDescription struct) { + struct.pipelineBindPoint(bindPoint.getVkEnum()); + if (!color.isEmpty()) { + struct.colorAttachmentCount(color.size()); + struct.pColorAttachments(getColorReferences(stack)); + } + if (depthStencil != null) { + struct.pDepthStencilAttachment(getDepthStencil(stack)); + } + if (!input.isEmpty()) { + struct.pInputAttachments(getInputReferences(stack)); + } + if (!resolve.isEmpty()) { + struct.pResolveAttachments(getResolveReferences(stack)); + } + if (!preserve.isEmpty()) { + struct.pPreserveAttachments(getPreserveIndices(stack)); + } + } + + public void addColorAttachment(AttachmentReference ref) { + color.add(ref); + } + + public void addInputAttachment(AttachmentReference ref) { + input.add(ref); + } + + public void addResolveAttachment(AttachmentReference ref) { + resolve.add(ref); + } + + public void addPreserveAttachment(AttachmentReference ref) { + resolve.add(ref); + } + + public void setDepthStencilAttachment(AttachmentReference depthStencil) { + this.depthStencil = depthStencil; + } + + public AttachmentReference getDepthStencil() { + return depthStencil; + } + + public List getColor() { + return color; + } + + public List getInput() { + return input; + } + + public List getResolve() { + return resolve; + } + + public List getPreserve() { + return preserve; + } + + public VkAttachmentReference getDepthStencil(MemoryStack stack) { + VkAttachmentReference ref = VkAttachmentReference.calloc(stack); + depthStencil.fillStruct(ref); + return ref; + } + + private VkAttachmentReference.Buffer getReferenceBuffer(MemoryStack stack, Collection refs) { + VkAttachmentReference.Buffer att = VkAttachmentReference.calloc(color.size(), stack); + for (AttachmentReference ref : refs) { + ref.fillStruct(att.get()); + } + return att.flip(); + } + + public VkAttachmentReference.Buffer getColorReferences(MemoryStack stack) { + return getReferenceBuffer(stack, color); + } + + public VkAttachmentReference.Buffer getInputReferences(MemoryStack stack) { + return getReferenceBuffer(stack, input); + } + + public VkAttachmentReference.Buffer getResolveReferences(MemoryStack stack) { + return getReferenceBuffer(stack, resolve); + } + + public IntBuffer getPreserveIndices(MemoryStack stack) { + IntBuffer indices = stack.mallocInt(preserve.size()); + for (AttachmentReference ref : preserve) { + indices.put(ref.getAttachmentPosition()); + } + indices.flip(); + return indices; + } + + public int getPosition() { + return position; + } + + public PipelineBindPoint getBindPoint() { + return bindPoint; + } + + public boolean hasDepthStencil() { + return depthStencil != null; + } + + public boolean isCompatible(Subpass pass) { + return bindPoint == pass.bindPoint + && hasDepthStencil() == pass.hasDepthStencil() + && (!hasDepthStencil() || depthStencil.isCompatible(pass.depthStencil)) + && compareReferenceLists(color, pass.color) + && compareReferenceLists(input, pass.input) + && compareReferenceLists(resolve, pass.resolve) + && compareReferenceLists(preserve, pass.preserve); + } + + private boolean compareReferenceLists(List list1, List list2) { + int lower = Math.min(list1.size(), list2.size()); + int higher = Math.max(list1.size(), list2.size()); + for (int i = 0; i < lower; i++) { + if (!list1.get(i).isCompatible(list2.get(i))) { + return false; + } + } + for (int i = lower; i < higher; i++) { + if (i < list1.size()) { + if (!list1.get(i).isUnused()) { + return false; + } + } else if (!list2.get(i).isUnused()) { + return false; + } + } + return true; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/SubpassDependency.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/SubpassDependency.java new file mode 100644 index 0000000000..5a498643c3 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/SubpassDependency.java @@ -0,0 +1,97 @@ +package com.jme3.vulkan.pass; + +import org.lwjgl.vulkan.VK10; +import org.lwjgl.vulkan.VkSubpassDependency; + +import java.util.List; + +/** + * Immutable definition of a render pass dependency. + */ +public class SubpassDependency { + + private final Subpass srcSubpass, dstSubpass; + private int srcStageMask, srcAccessMask; + private int dstStageMask, dstAccessMask; + + protected SubpassDependency(Subpass srcSubpass, Subpass dstSubpass) { + this.srcSubpass = srcSubpass; + this.dstSubpass = dstSubpass; + } + + protected SubpassDependency(SubpassDependency base, List subpasses) { + srcSubpass = base.srcSubpass != null ? subpasses.get(base.srcSubpass.getPosition()) : null; + dstSubpass = base.dstSubpass != null ? subpasses.get(base.dstSubpass.getPosition()) : null; + this.srcStageMask = base.srcStageMask; + this.srcAccessMask = base.srcAccessMask; + this.dstStageMask = base.dstStageMask; + this.dstAccessMask = base.dstAccessMask; + } + + public void fillStruct(VkSubpassDependency struct) { + struct.srcSubpass(srcSubpass != null ? srcSubpass.getPosition() : VK10.VK_SUBPASS_EXTERNAL) + .dstSubpass(dstSubpass != null ? dstSubpass.getPosition() : VK10.VK_SUBPASS_EXTERNAL) + .srcStageMask(srcStageMask) + .srcAccessMask(srcAccessMask) + .dstStageMask(dstStageMask) + .dstAccessMask(dstAccessMask); + } + + public void setSrcStageMask(int srcStageMask) { + this.srcStageMask = srcStageMask; + } + + public void setSrcAccessMask(int srcAccessMask) { + this.srcAccessMask = srcAccessMask; + } + + public void setDstStageMask(int dstStageMask) { + this.dstStageMask = dstStageMask; + } + + public void setDstAccessMask(int dstAccessMask) { + this.dstAccessMask = dstAccessMask; + } + + public Subpass getSrcSubpass() { + return srcSubpass; + } + + public Subpass getDstSubpass() { + return dstSubpass; + } + + public int getSrcStageMask() { + return srcStageMask; + } + + public int getSrcAccessMask() { + return srcAccessMask; + } + + public int getDstStageMask() { + return dstStageMask; + } + + public int getDstAccessMask() { + return dstAccessMask; + } + + public boolean isSourceExternal() { + return srcSubpass == null; + } + + public boolean isDestinationExternal() { + return dstSubpass == null; + } + + public boolean isCompatible(SubpassDependency dependency) { + return srcSubpass.getPosition() == dependency.srcSubpass.getPosition() + && dstSubpass.getPosition() == dependency.dstSubpass.getPosition() + && srcStageMask == dependency.srcStageMask + && srcAccessMask == dependency.srcAccessMask + && dstStageMask == dependency.dstStageMask + && dstAccessMask == dependency.dstAccessMask; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/ComputePipeline.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/ComputePipeline.java new file mode 100644 index 0000000000..aa1bce0d78 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/ComputePipeline.java @@ -0,0 +1,47 @@ +package com.jme3.vulkan.pipelines; + +import com.jme3.util.natives.Native; +import com.jme3.vulkan.PipelineLayout; +import com.jme3.vulkan.ShaderModule; +import com.jme3.vulkan.devices.LogicalDevice; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkComputePipelineCreateInfo; +import org.lwjgl.vulkan.VkPipelineShaderStageCreateInfo; + +import java.nio.LongBuffer; + +import static org.lwjgl.vulkan.VK10.*; +import static org.lwjgl.vulkan.VK10.VK_NULL_HANDLE; + +public class ComputePipeline extends Pipeline { + + private final ShaderModule shader; + + public ComputePipeline(LogicalDevice device, PipelineBindPoint bindPoint, PipelineLayout layout, ShaderModule shader) { + super(device, bindPoint, layout); + this.shader = shader; + try (MemoryStack stack = MemoryStack.stackPush()) { + VkPipelineShaderStageCreateInfo stage = VkPipelineShaderStageCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO) + .stage(VK_SHADER_STAGE_COMPUTE_BIT) + .module(shader.getNativeObject()) + .pName(stack.UTF8(shader.getEntryPoint())); + VkComputePipelineCreateInfo.Buffer pipeline = VkComputePipelineCreateInfo.calloc(1, stack) + .sType(VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO) + .stage(stage) + .layout(layout.getNativeObject()) + .basePipelineHandle(VK_NULL_HANDLE) + .basePipelineIndex(-1); + LongBuffer idBuf = stack.mallocLong(1); + vkCreateComputePipelines(device.getNativeObject(), VK_NULL_HANDLE, pipeline, null, idBuf); + object = idBuf.get(0); + } + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + } + + public ShaderModule getShader() { + return shader; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/FrameBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/FrameBuffer.java similarity index 90% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/FrameBuffer.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/FrameBuffer.java index cf520c51b5..416d2bfe18 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/FrameBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/FrameBuffer.java @@ -1,9 +1,10 @@ -package com.jme3.vulkan; +package com.jme3.vulkan.pipelines; import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; import com.jme3.vulkan.devices.LogicalDevice; import com.jme3.vulkan.images.ImageView; +import com.jme3.vulkan.pass.RenderPass; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkFramebufferCreateInfo; @@ -14,13 +15,13 @@ public class FrameBuffer implements Native { - private final LogicalDevice device; + private final LogicalDevice device; private final NativeReference ref; private final int width, height, layers; private final ImageView[] attachments; private long id; - public FrameBuffer(LogicalDevice device, RenderPass compat, int width, int height, int layers, ImageView... attachments) { + public FrameBuffer(LogicalDevice device, RenderPass compat, int width, int height, int layers, ImageView... attachments) { this.device = device; this.width = width; this.height = height; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/GraphicsPipeline.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/GraphicsPipeline.java new file mode 100644 index 0000000000..0f53f9d8a9 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/GraphicsPipeline.java @@ -0,0 +1,142 @@ +package com.jme3.vulkan.pipelines; + +import com.jme3.util.natives.Native; +import com.jme3.vulkan.*; +import com.jme3.vulkan.devices.LogicalDevice; +import com.jme3.vulkan.pass.RenderPass; +import com.jme3.vulkan.pipelines.states.*; +import org.lwjgl.vulkan.*; + +import java.nio.LongBuffer; +import java.util.ArrayList; +import java.util.Collection; + +import static com.jme3.renderer.vulkan.VulkanUtils.check; +import static org.lwjgl.vulkan.VK10.*; +import static org.lwjgl.vulkan.VK10.VK_NULL_HANDLE; + +public class GraphicsPipeline extends Pipeline { + + private final RenderPass compat; + private final int subpassIndex; + private final MeshDescription mesh; + + public GraphicsPipeline(LogicalDevice device, PipelineLayout layout, RenderPass compat, int subpassIndex, MeshDescription mesh) { + super(device, PipelineBindPoint.Graphics, layout); + this.compat = compat; + this.subpassIndex = subpassIndex; + this.mesh = mesh; + } + + public Builder build() { + return new Builder(); + } + + public class Builder extends VulkanObject.Builder { + + private final Collection stages = new ArrayList<>(); + private final DynamicState dynamic = new DynamicState(); + private final VertexInputState vertexInput = new VertexInputState(mesh); + private final InputAssemblyState inputAssembly = new InputAssemblyState(); + private final ViewportState viewport = new ViewportState(); + private final DepthStencilState depthStencil = new DepthStencilState(); + private final RasterizationState rasterization = new RasterizationState(); + private final MultisampleState multisample = new MultisampleState(); + private final ColorBlendState colorBlend = new ColorBlendState(); + + @Override + protected void build() { + VkPipelineShaderStageCreateInfo.Buffer stageBuf = VkPipelineShaderStageCreateInfo.calloc(stages.size(), stack); + for (ShaderStage s : stages) { + stageBuf.get().sType(VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO) + .stage(s.stages) + .module(s.module.getNativeObject()) + .pName(stack.UTF8(s.module.getEntryPoint())); + } + stageBuf.flip(); + VkGraphicsPipelineCreateInfo.Buffer pipeline = VkGraphicsPipelineCreateInfo.calloc(1, stack) + .sType(VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO) + .stageCount(stageBuf.limit()) + .pStages(stageBuf) + .pVertexInputState(vertexInput.toStruct(stack)) + .pInputAssemblyState(inputAssembly.toStruct(stack)) + .pViewportState(viewport.toStruct(stack)) + .pDepthStencilState(depthStencil.toStruct(stack)) + .pRasterizationState(rasterization.toStruct(stack)) + .pMultisampleState(multisample.toStruct(stack)) + .pColorBlendState(colorBlend.toStruct(stack)) + .pDynamicState(dynamic.toStruct(stack)) + .layout(layout.getNativeObject()) + .renderPass(compat.getNativeObject()) + .subpass(subpassIndex) + .basePipelineHandle(VK_NULL_HANDLE) + .basePipelineIndex(-1); + System.out.println("render pass: " + compat.getNativeObject()); + LongBuffer idBuf = stack.mallocLong(1); + // todo: look into pipeline caching + check(vkCreateGraphicsPipelines(device.getNativeObject(), VK_NULL_HANDLE, pipeline, null, idBuf), + "Failed to create graphics pipeline"); + object = idBuf.get(0); + ref = Native.get().register(GraphicsPipeline.this); + device.getNativeReference().addDependent(ref); + } + + public void addStage(ShaderModule module, int stages) { + this.stages.add(new ShaderStage(module, stages)); + } + + public DynamicState getDynamicState() { + return dynamic; + } + + public VertexInputState getVertexInput() { + return vertexInput; + } + + public InputAssemblyState getInputAssembly() { + return inputAssembly; + } + + public ViewportState getViewportState() { + return viewport; + } + + public DepthStencilState getDepthStencil() { + return depthStencil; + } + + public RasterizationState getRasterization() { + return rasterization; + } + + public MultisampleState getMultisample() { + return multisample; + } + + public ColorBlendState getColorBlend() { + return colorBlend; + } + + } + + public static class ShaderStage { + + private final ShaderModule module; + private final int stages; + + public ShaderStage(ShaderModule module, int stages) { + this.module = module; + this.stages = stages; + } + + public ShaderModule getModule() { + return module; + } + + public int getStages() { + return stages; + } + + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/Pipeline.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/Pipeline.java new file mode 100644 index 0000000000..b362a7b8e9 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/Pipeline.java @@ -0,0 +1,43 @@ +package com.jme3.vulkan.pipelines; + +import com.jme3.vulkan.CommandBuffer; +import com.jme3.vulkan.PipelineLayout; +import com.jme3.vulkan.VulkanObject; +import com.jme3.vulkan.devices.LogicalDevice; + +import static org.lwjgl.vulkan.VK10.*; + +public class Pipeline extends VulkanObject { + + protected final LogicalDevice device; + protected final PipelineBindPoint bindPoint; + protected final PipelineLayout layout; + + public Pipeline(LogicalDevice device, PipelineBindPoint bindPoint, PipelineLayout layout) { + this.device = device; + this.bindPoint = bindPoint; + this.layout = layout; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> vkDestroyPipeline(device.getNativeObject(), object, null); + } + + public void bind(CommandBuffer cmd) { + vkCmdBindPipeline(cmd.getBuffer(), bindPoint.getVkEnum(), object); + } + + public LogicalDevice getDevice() { + return device; + } + + public PipelineBindPoint getBindPoint() { + return bindPoint; + } + + public PipelineLayout getLayout() { + return layout; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/PipelineBindPoint.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/PipelineBindPoint.java new file mode 100644 index 0000000000..3307e56118 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/PipelineBindPoint.java @@ -0,0 +1,20 @@ +package com.jme3.vulkan.pipelines; + +import static org.lwjgl.vulkan.VK10.*; + +public enum PipelineBindPoint { + + Graphics(VK_PIPELINE_BIND_POINT_GRAPHICS), + Compute(VK_PIPELINE_BIND_POINT_COMPUTE); + + private final int vkEnum; + + PipelineBindPoint(int vkEnum) { + this.vkEnum = vkEnum; + } + + public int getVkEnum() { + return vkEnum; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/ColorBlendAttachment.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/ColorBlendAttachment.java new file mode 100644 index 0000000000..d7541e84c0 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/ColorBlendAttachment.java @@ -0,0 +1,62 @@ +package com.jme3.vulkan.pipelines.states; + +import org.lwjgl.vulkan.VkPipelineColorBlendAttachmentState; + +import static org.lwjgl.vulkan.VK10.*; + +public class ColorBlendAttachment { + + private int colorWriteMask = VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT + | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT; + private boolean blend = false; + private int srcColorBlendFactor = VK_BLEND_FACTOR_ONE; + private int dstColorBlendFactor = VK_BLEND_FACTOR_ZERO; + private int colorBlendOp = VK_BLEND_OP_ADD; + private int srcAlphaBlendFactor = VK_BLEND_FACTOR_ONE; + private int dstAlphaBlendFactor = VK_BLEND_FACTOR_ZERO; + private int alphaBlendOp = VK_BLEND_OP_ADD; + + public void writeToStruct(VkPipelineColorBlendAttachmentState struct) { + struct.colorWriteMask(colorWriteMask) + .blendEnable(blend) + .srcColorBlendFactor(srcColorBlendFactor) + .dstColorBlendFactor(dstColorBlendFactor) + .colorBlendOp(colorBlendOp) + .srcAlphaBlendFactor(srcAlphaBlendFactor) + .dstAlphaBlendFactor(dstAlphaBlendFactor) + .alphaBlendOp(alphaBlendOp); + } + + public void setColorWriteMask(int colorWriteMask) { + this.colorWriteMask = colorWriteMask; + } + + public void setBlend(boolean blend) { + this.blend = blend; + } + + public void setSrcColorBlendFactor(int srcColorBlendFactor) { + this.srcColorBlendFactor = srcColorBlendFactor; + } + + public void setDstColorBlendFactor(int dstColorBlendFactor) { + this.dstColorBlendFactor = dstColorBlendFactor; + } + + public void setColorBlendOp(int colorBlendOp) { + this.colorBlendOp = colorBlendOp; + } + + public void setSrcAlphaBlendFactor(int srcAlphaBlendFactor) { + this.srcAlphaBlendFactor = srcAlphaBlendFactor; + } + + public void setDstAlphaBlendFactor(int dstAlphaBlendFactor) { + this.dstAlphaBlendFactor = dstAlphaBlendFactor; + } + + public void setAlphaBlendOp(int alphaBlendOp) { + this.alphaBlendOp = alphaBlendOp; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/ColorBlendState.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/ColorBlendState.java new file mode 100644 index 0000000000..904753d2fd --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/ColorBlendState.java @@ -0,0 +1,45 @@ +package com.jme3.vulkan.pipelines.states; + +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkPipelineColorBlendAttachmentState; +import org.lwjgl.vulkan.VkPipelineColorBlendStateCreateInfo; + +import java.util.ArrayList; +import java.util.List; + +import static org.lwjgl.vulkan.VK10.VK_LOGIC_OP_COPY; +import static org.lwjgl.vulkan.VK10.VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO; + +public class ColorBlendState implements PipelineState { + + private final List attachments = new ArrayList<>(); + private boolean logicEnabled = false; + private int logic = VK_LOGIC_OP_COPY; + + @Override + public VkPipelineColorBlendStateCreateInfo toStruct(MemoryStack stack) { + VkPipelineColorBlendAttachmentState.Buffer attBuf = VkPipelineColorBlendAttachmentState.calloc(attachments.size(), stack); + for (ColorBlendAttachment a : attachments) { + a.writeToStruct(attBuf.get()); + } + attBuf.flip(); + return VkPipelineColorBlendStateCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO) + .logicOpEnable(logicEnabled) + .logicOp(logic) + .pAttachments(attBuf); + } + + public void addAttachment(ColorBlendAttachment attachment) { + this.attachments.add(attachment); + } + + public void setLogicEnabled(boolean logicEnabled) { + this.logicEnabled = logicEnabled; + } + + public void setLogic(int logic) { + this.logic = logic; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/DepthStencilState.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/DepthStencilState.java new file mode 100644 index 0000000000..8e9ec2a5e7 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/DepthStencilState.java @@ -0,0 +1,46 @@ +package com.jme3.vulkan.pipelines.states; + +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VK10; +import org.lwjgl.vulkan.VkPipelineDepthStencilStateCreateInfo; + +public class DepthStencilState implements PipelineState { + + private boolean depthTest = true; + private boolean depthWrite = true; + private boolean depthBoundsTest = false; + private boolean stencilTest = false; + private int depthCompare = VK10.VK_COMPARE_OP_LESS_OR_EQUAL; + + @Override + public VkPipelineDepthStencilStateCreateInfo toStruct(MemoryStack stack) { + return VkPipelineDepthStencilStateCreateInfo.calloc(stack) + .sType(VK10.VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO) + .depthTestEnable(depthTest) + .depthWriteEnable(depthWrite) + .depthBoundsTestEnable(depthBoundsTest) + .stencilTestEnable(stencilTest) + .depthCompareOp(depthCompare); + } + + public void setDepthTest(boolean depthTest) { + this.depthTest = depthTest; + } + + public void setDepthWrite(boolean depthWrite) { + this.depthWrite = depthWrite; + } + + public void setDepthBoundsTest(boolean depthBoundsTest) { + this.depthBoundsTest = depthBoundsTest; + } + + public void setStencilTest(boolean stencilTest) { + this.stencilTest = stencilTest; + } + + public void setDepthCompare(int depthCompare) { + this.depthCompare = depthCompare; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/DynamicState.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/DynamicState.java new file mode 100644 index 0000000000..1f12488608 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/DynamicState.java @@ -0,0 +1,61 @@ +package com.jme3.vulkan.pipelines.states; + +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkPipelineDynamicStateCreateInfo; + +import java.nio.IntBuffer; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +import static org.lwjgl.vulkan.VK10.*; + +public class DynamicState implements PipelineState { + + public enum Type { + + ViewPort(VK_DYNAMIC_STATE_VIEWPORT), + Scissor(VK_DYNAMIC_STATE_SCISSOR), + BlendConstants(VK_DYNAMIC_STATE_BLEND_CONSTANTS), + DepthBias(VK_DYNAMIC_STATE_DEPTH_BIAS), + DepthBounds(VK_DYNAMIC_STATE_DEPTH_BOUNDS), + LineWidth(VK_DYNAMIC_STATE_LINE_WIDTH), + StencilCompareMask(VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK), + StencilReference(VK_DYNAMIC_STATE_STENCIL_REFERENCE), + StencilWriteMask(VK_DYNAMIC_STATE_STENCIL_WRITE_MASK); + + private final int vkEnum; + + Type(int vkEnum) { + this.vkEnum = vkEnum; + } + + public int getVkEnum() { + return vkEnum; + } + + } + + private final Set states = new HashSet<>(); + + public DynamicState(Type... types) { + addTypes(types); + } + + @Override + public VkPipelineDynamicStateCreateInfo toStruct(MemoryStack stack) { + IntBuffer stateBuf = stack.mallocInt(states.size()); + for (Type t : states) { + stateBuf.put(t.getVkEnum()); + } + stateBuf.flip(); + return VkPipelineDynamicStateCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO) + .pDynamicStates(stateBuf); + } + + public void addTypes(Type... types) { + states.addAll(Arrays.asList(types)); + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/InputAssemblyState.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/InputAssemblyState.java new file mode 100644 index 0000000000..bff57a22d9 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/InputAssemblyState.java @@ -0,0 +1,28 @@ +package com.jme3.vulkan.pipelines.states; + +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VK10; +import org.lwjgl.vulkan.VkPipelineInputAssemblyStateCreateInfo; + +public class InputAssemblyState implements PipelineState { + + private int topology = VK10.VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST; + private boolean primitiveRestart = false; + + @Override + public VkPipelineInputAssemblyStateCreateInfo toStruct(MemoryStack stack) { + return VkPipelineInputAssemblyStateCreateInfo.calloc(stack) + .sType(VK10.VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO) + .topology(topology) + .primitiveRestartEnable(primitiveRestart); + } + + public void setTopology(int topology) { + this.topology = topology; + } + + public void setPrimitiveRestart(boolean primitiveRestart) { + this.primitiveRestart = primitiveRestart; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/MultisampleState.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/MultisampleState.java new file mode 100644 index 0000000000..e6f069dc8b --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/MultisampleState.java @@ -0,0 +1,29 @@ +package com.jme3.vulkan.pipelines.states; + +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkPipelineMultisampleStateCreateInfo; + +import static org.lwjgl.vulkan.VK10.*; + +public class MultisampleState implements PipelineState { + + private int rasterizationSamples = VK_SAMPLE_COUNT_1_BIT; + private boolean sampleShading = false; + + @Override + public VkPipelineMultisampleStateCreateInfo toStruct(MemoryStack stack) { + return VkPipelineMultisampleStateCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO) + .sampleShadingEnable(sampleShading) + .rasterizationSamples(rasterizationSamples); + } + + public void setRasterizationSamples(int rasterizationSamples) { + this.rasterizationSamples = rasterizationSamples; + } + + public void setSampleShading(boolean sampleShading) { + this.sampleShading = sampleShading; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/PipelineState.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/PipelineState.java new file mode 100644 index 0000000000..aade269037 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/PipelineState.java @@ -0,0 +1,10 @@ +package com.jme3.vulkan.pipelines.states; + +import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.Struct; + +public interface PipelineState { + + T toStruct(MemoryStack stack); + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/RasterizationState.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/RasterizationState.java new file mode 100644 index 0000000000..441d290d99 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/RasterizationState.java @@ -0,0 +1,60 @@ +package com.jme3.vulkan.pipelines.states; + +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkPipelineRasterizationStateCreateInfo; + +import static org.lwjgl.vulkan.VK10.*; + +public class RasterizationState implements PipelineState { + + private int polygonMode = VK_POLYGON_MODE_FILL; + private int cullMode = VK_CULL_MODE_BACK_BIT; + private int frontFace = VK_FRONT_FACE_CLOCKWISE; + private float lineWidth = 1f; + private boolean depthClamp = false; + private boolean rasterizerDiscard = false; + private boolean depthBias = false; + + @Override + public VkPipelineRasterizationStateCreateInfo toStruct(MemoryStack stack) { + return VkPipelineRasterizationStateCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO) + .depthClampEnable(depthClamp) + .rasterizerDiscardEnable(rasterizerDiscard) + .polygonMode(VK_POLYGON_MODE_FILL) + .lineWidth(lineWidth) + .cullMode(cullMode) + .frontFace(frontFace) + .cullMode(cullMode) + .depthBiasEnable(depthBias); + } + + public void setPolygonMode(int polygonMode) { + this.polygonMode = polygonMode; + } + + public void setCullMode(int cullMode) { + this.cullMode = cullMode; + } + + public void setFrontFace(int frontFace) { + this.frontFace = frontFace; + } + + public void setLineWidth(float lineWidth) { + this.lineWidth = lineWidth; + } + + public void setDepthClamp(boolean depthClamp) { + this.depthClamp = depthClamp; + } + + public void setRasterizerDiscard(boolean rasterizerDiscard) { + this.rasterizerDiscard = rasterizerDiscard; + } + + public void setDepthBias(boolean depthBias) { + this.depthBias = depthBias; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/VertexInputState.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/VertexInputState.java new file mode 100644 index 0000000000..a650b5b71a --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/VertexInputState.java @@ -0,0 +1,30 @@ +package com.jme3.vulkan.pipelines.states; + +import com.jme3.vulkan.MeshDescription; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VK10; +import org.lwjgl.vulkan.VkPipelineVertexInputStateCreateInfo; + +import java.util.Objects; + +public class VertexInputState implements PipelineState { + + private MeshDescription mesh; + + public VertexInputState(MeshDescription mesh) { + setMesh(mesh); + } + + @Override + public VkPipelineVertexInputStateCreateInfo toStruct(MemoryStack stack) { + return VkPipelineVertexInputStateCreateInfo.calloc(stack) + .sType(VK10.VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO) + .pVertexBindingDescriptions(mesh.getBindings(stack)) + .pVertexAttributeDescriptions(mesh.getAttributes(stack)); + } + + public void setMesh(MeshDescription mesh) { + this.mesh = Objects.requireNonNull(mesh, "Mesh description cannot be null."); + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/ViewportState.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/ViewportState.java new file mode 100644 index 0000000000..9dbf6388b8 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/ViewportState.java @@ -0,0 +1,88 @@ +package com.jme3.vulkan.pipelines.states; + +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkExtent2D; +import org.lwjgl.vulkan.VkPipelineViewportStateCreateInfo; +import org.lwjgl.vulkan.VkRect2D; +import org.lwjgl.vulkan.VkViewport; + +import java.util.ArrayList; +import java.util.List; + +import static org.lwjgl.vulkan.VK10.VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO; + +public class ViewportState implements PipelineState { + + private final List viewports = new ArrayList<>(); + private final List scissors = new ArrayList<>(); + + @Override + public VkPipelineViewportStateCreateInfo toStruct(MemoryStack stack) { + VkViewport.Buffer vpBuf = VkViewport.calloc(viewports.size(), stack); + for (ViewportInfo v : viewports) { + vpBuf.get().x(v.x).y(v.y).width(v.w).height(v.h).minDepth(v.min).maxDepth(v.max); + } + vpBuf.flip(); + VkRect2D.Buffer scissorBuf = VkRect2D.calloc(scissors.size(), stack); + for (ScissorInfo s : scissors) { + VkRect2D e = scissorBuf.get(); + e.offset().set(s.x, s.y); + e.extent().set(s.w, s.h); + } + scissorBuf.flip(); + return VkPipelineViewportStateCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO) + .pViewports(vpBuf) + .pScissors(scissorBuf); + } + + public void addViewport() { + viewports.add(new ViewportInfo(0f, 0f, 128f, 128f, 0f, 1f)); + } + + public void addViewport(float x, float y, float w, float h) { + viewports.add(new ViewportInfo(x, y, w, h, 0f, 1f)); + } + + public void addViewport(float x, float y, float w, float h, float minDepth, float maxDepth) { + viewports.add(new ViewportInfo(x, y, w, h, minDepth, maxDepth)); + } + + public void addScissor() { + scissors.add(new ScissorInfo(0, 0, 128, 128)); + } + + public void addScissor(int x, int y, int w, int h) { + scissors.add(new ScissorInfo(x, y, w, h)); + } + + private static class ViewportInfo { + + private final float x, y, w, h; + private final float min, max; + + public ViewportInfo(float x, float y, float w, float h, float min, float max) { + this.x = x; + this.y = y; + this.w = w; + this.h = h; + this.min = min; + this.max = max; + } + + } + + private static class ScissorInfo { + + private final int x, y, w, h; + + public ScissorInfo(int x, int y, int w, int h) { + this.x = x; + this.y = y; + this.w = w; + this.h = h; + } + + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Surface.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/Surface.java similarity index 97% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/Surface.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/Surface.java index b253f61505..ba5c8e4633 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Surface.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/Surface.java @@ -1,7 +1,8 @@ -package com.jme3.vulkan; +package com.jme3.vulkan.surface; import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.VulkanInstance; import com.jme3.vulkan.devices.DeviceFilter; import com.jme3.vulkan.devices.PhysicalDevice; import org.lwjgl.glfw.GLFWVulkan; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/Swapchain.java similarity index 92% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/Swapchain.java index 106f59537c..b5a109f4c6 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Swapchain.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/Swapchain.java @@ -1,10 +1,14 @@ -package com.jme3.vulkan; +package com.jme3.vulkan.surface; import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.*; +import com.jme3.vulkan.Queue; import com.jme3.vulkan.devices.LogicalDevice; import com.jme3.vulkan.images.Image; import com.jme3.vulkan.images.ImageView; +import com.jme3.vulkan.pipelines.FrameBuffer; +import com.jme3.vulkan.pass.RenderPass; import org.lwjgl.glfw.GLFW; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.*; @@ -40,7 +44,7 @@ public int getVkEnum() { private final LogicalDevice device; private final Surface surface; - private final List images = new ArrayList<>(); + private final List images = new ArrayList<>(); private SwapchainUpdater updater; private Extent2 extent; private Image.Format format; @@ -60,12 +64,12 @@ public Runnable createNativeDestroyer() { } public void createFrameBuffers(RenderPass compat, ImageView depthStencil) { - for (SwapchainImage img : images) { + for (PresentImage img : images) { img.createFrameBuffer(compat, depthStencil); } } - public SwapchainImage acquireNextImage(SwapchainUpdater updater, Semaphore semaphore, Fence fence, long timeout) { + public PresentImage acquireNextImage(SwapchainUpdater updater, Semaphore semaphore, Fence fence, long timeout) { try (MemoryStack stack = MemoryStack.stackPush()) { IntBuffer i = stack.mallocInt(1); int code = KHRSwapchain.vkAcquireNextImageKHR(device.getNativeObject(), object, @@ -77,7 +81,7 @@ public SwapchainImage acquireNextImage(SwapchainUpdater updater, Semaphore semap } } - public void present(Queue presentQueue, SwapchainImage image, Semaphore wait) { + public void present(com.jme3.vulkan.Queue presentQueue, PresentImage image, Semaphore wait) { try (MemoryStack stack = MemoryStack.stackPush()) { VkPresentInfoKHR info = VkPresentInfoKHR.calloc(stack) .sType(KHRSwapchain.VK_STRUCTURE_TYPE_PRESENT_INFO_KHR) @@ -99,7 +103,7 @@ public Surface getSurface() { return surface; } - public List getImages() { + public List getImages() { return Collections.unmodifiableList(images); } @@ -115,15 +119,15 @@ public Builder build() { return new Builder(); } - public class SwapchainImage implements Image { + public class PresentImage implements Image { - private final LogicalDevice device; + private final LogicalDevice device; private final NativeReference ref; private final long id; private final ImageView view; private FrameBuffer frameBuffer; - private SwapchainImage(LogicalDevice device, long id) { + private PresentImage(LogicalDevice device, long id) { this.device = device; this.id = id; ref = Native.get().register(this); @@ -137,7 +141,7 @@ public ImageView createView(VkImageViewCreateInfo create) { } @Override - public LogicalDevice getDevice() { + public LogicalDevice getDevice() { return device; } @@ -204,7 +208,7 @@ public class Builder extends VulkanObject.Builder { private final VkSurfaceCapabilitiesKHR caps; private final VkSurfaceFormatKHR.Buffer formats; private final IntBuffer modes; - private final Collection queues = new ArrayList<>(); + private final Collection queues = new ArrayList<>(); private VkSurfaceFormatKHR selectedFormat; private VkExtent2D selectedExtent; @@ -270,7 +274,7 @@ protected void build() { } if (queues.size() > 1) { IntBuffer concurrent = stack.mallocInt(queues.size()); - for (Queue q : queues) { + for (com.jme3.vulkan.Queue q : queues) { concurrent.put(q.getFamilyIndex()); } concurrent.flip(); @@ -290,7 +294,7 @@ protected void build() { "Failed to get swapchain images.")); Objects.requireNonNull(imgs, "Swapchain contains no images."); for (int i = 0; i < imgs.limit(); i++) { - images.add(new SwapchainImage(device, imgs.get(i))); + images.add(new PresentImage(device, imgs.get(i))); } ref.refresh(); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/SwapchainUpdater.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/SwapchainUpdater.java similarity index 77% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/SwapchainUpdater.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/SwapchainUpdater.java index 80b7622154..42f019a6b6 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/SwapchainUpdater.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/SwapchainUpdater.java @@ -1,4 +1,4 @@ -package com.jme3.vulkan; +package com.jme3.vulkan.surface; public interface SwapchainUpdater { From e0efc4076c5120e47334a77e2e77db23cb48c32b Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Wed, 6 Aug 2025 16:56:24 -0400 Subject: [PATCH 21/37] successfully abstracted all vulkan components --- .../jme3/vulkan/TestCaseMeshDescription.java | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/TestCaseMeshDescription.java diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/TestCaseMeshDescription.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/TestCaseMeshDescription.java new file mode 100644 index 0000000000..62f2f146c9 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/TestCaseMeshDescription.java @@ -0,0 +1,71 @@ +package com.jme3.vulkan; + +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkVertexInputAttributeDescription; +import org.lwjgl.vulkan.VkVertexInputBindingDescription; + +import static org.lwjgl.vulkan.VK10.*; + +public class TestCaseMeshDescription implements Native, MeshDescription { + + private final VkVertexInputBindingDescription.Buffer bindings; + private final VkVertexInputAttributeDescription.Buffer attributes; + private final NativeReference ref; + + public TestCaseMeshDescription() { + // for each vertex buffer on the mesh + bindings = VkVertexInputBindingDescription.calloc(1) + .binding(0) + .stride(Float.BYTES * 8) // bytes per vertex + .inputRate(VK_VERTEX_INPUT_RATE_VERTEX); + // for each attribute in each vertex buffer + attributes = VkVertexInputAttributeDescription.calloc(3); + attributes.get(0).binding(0) + .location(0) + .format(VK_FORMAT_R32G32B32_SFLOAT) + .offset(0); + attributes.get(1).binding(0) + .location(1) + .format(VK_FORMAT_R32G32B32_SFLOAT) + .offset(Float.BYTES * 3); + attributes.get(2).binding(0) + .location(2) + .format(VK_FORMAT_R32G32_SFLOAT) + .offset(Float.BYTES * 6); + ref = Native.get().register(this); + } + + @Override + public Object getNativeObject() { + return null; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> { + bindings.free(); + attributes.free(); + }; + } + + @Override + public void prematureNativeDestruction() {} + + @Override + public NativeReference getNativeReference() { + return ref; + } + + @Override + public VkVertexInputBindingDescription.Buffer getBindings(MemoryStack stack) { + return bindings; + } + + @Override + public VkVertexInputAttributeDescription.Buffer getAttributes(MemoryStack stack) { + return attributes; + } + +} From 0c035ab4b2a5e4d52ddb7d2fa7b005057b81b098 Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Sat, 9 Aug 2025 09:53:09 -0400 Subject: [PATCH 22/37] organized files --- .../jme3test/vulkan/VulkanHelperTest.java | 12 ++++- .../main/java/jme3test/vulkan/VulkanTest.java | 4 +- .../java/com/jme3/vulkan/MemoryBarrier.java | 4 -- .../jme3/vulkan/TestCaseMeshDescription.java | 1 + .../src/main/java/com/jme3/vulkan/Vertex.java | 25 ---------- .../com/jme3/vulkan/buffers/GpuBuffer.java | 2 +- .../jme3/vulkan/buffers/StageableBuffer.java | 5 +- .../vulkan/{ => commands}/CommandBuffer.java | 6 +-- .../vulkan/{ => commands}/CommandPool.java | 2 +- .../{ => commands}/OneTimeCommandBuffer.java | 4 +- .../com/jme3/vulkan/{ => commands}/Queue.java | 3 +- .../vulkan/{ => commands}/QueueFamilies.java | 2 +- .../vulkan/descriptors/ImageDescriptor.java | 11 +++-- .../jme3/vulkan/devices/DeviceWeights.java | 49 ------------------- .../vulkan/devices/GeneralPhysicalDevice.java | 2 +- .../jme3/vulkan/devices/LogicalDevice.java | 2 +- .../java/com/jme3/vulkan/images/GpuImage.java | 2 +- .../jme3/vulkan/images/VulkanImageLoader.java | 4 +- .../main/java/com/jme3/vulkan/mesh/Mesh.java | 41 ++++++++++++++++ .../vulkan/{ => mesh}/MeshDescription.java | 2 +- .../java/com/jme3/vulkan/pass/RenderPass.java | 2 +- .../vulkan/pipelines/ComputePipeline.java | 3 +- .../vulkan/pipelines/GraphicsPipeline.java | 2 + .../com/jme3/vulkan/pipelines/Pipeline.java | 3 +- .../{ => pipelines}/PipelineLayout.java | 2 +- .../pipelines/states/VertexInputState.java | 2 +- .../vulkan/{ => shader}/ShaderModule.java | 2 +- .../com/jme3/vulkan/surface/Swapchain.java | 10 ++-- .../com/jme3/vulkan/{ => sync}/Fence.java | 2 +- .../com/jme3/vulkan/{ => sync}/Semaphore.java | 2 +- 30 files changed, 97 insertions(+), 116 deletions(-) delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/MemoryBarrier.java delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/Vertex.java rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/{ => commands}/CommandBuffer.java (96%) rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/{ => commands}/CommandPool.java (98%) rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/{ => commands}/OneTimeCommandBuffer.java (95%) rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/{ => commands}/Queue.java (95%) rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/{ => commands}/QueueFamilies.java (94%) delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceWeights.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/mesh/Mesh.java rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/{ => mesh}/MeshDescription.java (92%) rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/{ => pipelines}/PipelineLayout.java (98%) rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/{ => shader}/ShaderModule.java (98%) rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/{ => sync}/Fence.java (98%) rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/{ => sync}/Semaphore.java (98%) diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java index dab04643f5..2f031af6cb 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java @@ -2,7 +2,6 @@ import com.jme3.app.FlyCamAppState; import com.jme3.app.SimpleApplication; -import com.jme3.material.RenderState; import com.jme3.math.Quaternion; import com.jme3.math.Transform; import com.jme3.math.Vector3f; @@ -14,6 +13,8 @@ import com.jme3.util.natives.Native; import com.jme3.vulkan.*; import com.jme3.vulkan.buffers.*; +import com.jme3.vulkan.commands.CommandBuffer; +import com.jme3.vulkan.commands.CommandPool; import com.jme3.vulkan.descriptors.*; import com.jme3.vulkan.devices.*; import com.jme3.vulkan.flags.ImageUsageFlags; @@ -25,11 +26,15 @@ import com.jme3.vulkan.pipelines.GraphicsPipeline; import com.jme3.vulkan.pass.RenderPass; import com.jme3.vulkan.pipelines.PipelineBindPoint; +import com.jme3.vulkan.pipelines.PipelineLayout; import com.jme3.vulkan.pipelines.states.ColorBlendAttachment; import com.jme3.vulkan.pipelines.states.DynamicState; +import com.jme3.vulkan.shader.ShaderModule; import com.jme3.vulkan.surface.Surface; import com.jme3.vulkan.surface.Swapchain; import com.jme3.vulkan.surface.SwapchainUpdater; +import com.jme3.vulkan.sync.Fence; +import com.jme3.vulkan.sync.Semaphore; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.*; @@ -294,10 +299,13 @@ private ImageView createDepthAttachment(CommandPool pool) { private class Frame implements Consumer { + // render manager private final CommandBuffer graphicsCommands = graphicsPool.allocateCommandBuffer(); private final Semaphore imageAvailable = new Semaphore(device); private final Semaphore renderFinished = new Semaphore(device); private final Fence inFlight = new Fence(device, true); + + // material private final GpuBuffer uniforms; private final DescriptorSet descriptorSet; @@ -307,7 +315,7 @@ public Frame() { new MemoryFlags().hostVisible().hostCoherent(), false); descriptorSet = descriptorPool.allocateSets(descriptorLayout)[0]; descriptorSet.write(BufferSetWriter.uniformBuffers(0, 0, new BufferDescriptor(uniforms)), - ImageSetWriter.combinedImageSampler(1, 0, new ImageDescriptor(texture, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL))); + ImageSetWriter.combinedImageSampler(1, 0, new ImageDescriptor(texture, Image.Layout.ShaderReadOnlyOptimal))); } @Override diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java index 601b8ca048..0722616497 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanTest.java @@ -7,8 +7,8 @@ import com.jme3.util.natives.Native; import com.jme3.vulkan.devices.DeviceFilter; import com.jme3.system.vulkan.LwjglVulkanContext; -import com.jme3.vulkan.Fence; -import com.jme3.vulkan.Semaphore; +import com.jme3.vulkan.sync.Fence; +import com.jme3.vulkan.sync.Semaphore; import com.jme3.vulkan.VulkanRenderManager; import org.lwjgl.BufferUtils; import org.lwjgl.PointerBuffer; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MemoryBarrier.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MemoryBarrier.java deleted file mode 100644 index c7322df3db..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MemoryBarrier.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.jme3.vulkan; - -public class MemoryBarrier { -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/TestCaseMeshDescription.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/TestCaseMeshDescription.java index 62f2f146c9..5395f6013b 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/TestCaseMeshDescription.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/TestCaseMeshDescription.java @@ -2,6 +2,7 @@ import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.mesh.MeshDescription; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkVertexInputAttributeDescription; import org.lwjgl.vulkan.VkVertexInputBindingDescription; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Vertex.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Vertex.java deleted file mode 100644 index 237992d248..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Vertex.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.jme3.vulkan; - -import org.lwjgl.system.Struct; - -import java.nio.ByteBuffer; - -public class Vertex extends Struct { - - // todo: experiment with implementing Structs - - protected Vertex(long address, ByteBuffer container) { - super(address, container); - } - - @Override - protected Vertex create(long l, ByteBuffer byteBuffer) { - return null; - } - - @Override - public int sizeof() { - return 0; - } - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java index f68f1c2b3e..2964505f4f 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java @@ -3,7 +3,7 @@ import com.jme3.renderer.vulkan.VulkanUtils; import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; -import com.jme3.vulkan.CommandBuffer; +import com.jme3.vulkan.commands.CommandBuffer; import com.jme3.vulkan.devices.LogicalDevice; import com.jme3.vulkan.flags.MemoryFlags; import com.jme3.vulkan.flags.BufferUsageFlags; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java index 8d5476c711..1815cefe7a 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java @@ -1,9 +1,12 @@ package com.jme3.vulkan.buffers; -import com.jme3.vulkan.*; +import com.jme3.vulkan.commands.CommandBuffer; +import com.jme3.vulkan.commands.CommandPool; import com.jme3.vulkan.devices.LogicalDevice; import com.jme3.vulkan.flags.MemoryFlags; import com.jme3.vulkan.flags.BufferUsageFlags; +import com.jme3.vulkan.sync.Fence; +import com.jme3.vulkan.sync.Semaphore; import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandBuffer.java similarity index 96% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandBuffer.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandBuffer.java index 6014e59a56..f4442d115e 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandBuffer.java @@ -1,9 +1,9 @@ -package com.jme3.vulkan; +package com.jme3.vulkan.commands; -import org.lwjgl.BufferUtils; +import com.jme3.vulkan.sync.Fence; +import com.jme3.vulkan.sync.Semaphore; import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; -import org.lwjgl.system.MemoryUtil; import org.lwjgl.vulkan.VkCommandBuffer; import org.lwjgl.vulkan.VkCommandBufferAllocateInfo; import org.lwjgl.vulkan.VkCommandBufferBeginInfo; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandPool.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandPool.java similarity index 98% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandPool.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandPool.java index 1062f4038e..1bd64f5de4 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/CommandPool.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandPool.java @@ -1,4 +1,4 @@ -package com.jme3.vulkan; +package com.jme3.vulkan.commands; import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/OneTimeCommandBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/OneTimeCommandBuffer.java similarity index 95% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/OneTimeCommandBuffer.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/OneTimeCommandBuffer.java index a060a2371a..7201f7c2b9 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/OneTimeCommandBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/OneTimeCommandBuffer.java @@ -1,5 +1,7 @@ -package com.jme3.vulkan; +package com.jme3.vulkan.commands; +import com.jme3.vulkan.sync.Fence; +import com.jme3.vulkan.sync.Semaphore; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkCommandBufferBeginInfo; import org.lwjgl.vulkan.VkSubmitInfo; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Queue.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/Queue.java similarity index 95% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/Queue.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/Queue.java index 6571dc530f..da4be2d3f6 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Queue.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/Queue.java @@ -1,5 +1,6 @@ -package com.jme3.vulkan; +package com.jme3.vulkan.commands; +import com.jme3.vulkan.sync.Fence; import com.jme3.vulkan.devices.LogicalDevice; import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/QueueFamilies.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/QueueFamilies.java similarity index 94% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/QueueFamilies.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/QueueFamilies.java index d0e8c960c0..0290b5d5b3 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/QueueFamilies.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/QueueFamilies.java @@ -1,4 +1,4 @@ -package com.jme3.vulkan; +package com.jme3.vulkan.commands; import com.jme3.vulkan.devices.LogicalDevice; import com.jme3.vulkan.devices.PhysicalDevice; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/ImageDescriptor.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/ImageDescriptor.java index f426c707cc..5bad3c9000 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/ImageDescriptor.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/ImageDescriptor.java @@ -1,5 +1,6 @@ package com.jme3.vulkan.descriptors; +import com.jme3.vulkan.images.Image; import com.jme3.vulkan.images.ImageView; import com.jme3.vulkan.images.Sampler; import com.jme3.vulkan.images.Texture; @@ -9,13 +10,13 @@ public class ImageDescriptor { private final ImageView view; private final Sampler sampler; - private final int layout; + private final Image.Layout layout; - public ImageDescriptor(Texture texture, int layout) { + public ImageDescriptor(Texture texture, Image.Layout layout) { this(texture.getImage(), texture, layout); } - public ImageDescriptor(ImageView view, Sampler sampler, int layout) { + public ImageDescriptor(ImageView view, Sampler sampler, Image.Layout layout) { this.view = view; this.sampler = sampler; this.layout = layout; @@ -24,7 +25,7 @@ public ImageDescriptor(ImageView view, Sampler sampler, int layout) { public void fillDescriptorInfo(VkDescriptorImageInfo info) { info.imageView(view.getNativeObject()) .sampler(sampler.getNativeObject()) - .imageLayout(layout); + .imageLayout(layout.getVkEnum()); } public ImageView getView() { @@ -35,7 +36,7 @@ public Sampler getSampler() { return sampler; } - public int getLayout() { + public Image.Layout getLayout() { return layout; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceWeights.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceWeights.java deleted file mode 100644 index 155322c3dd..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/DeviceWeights.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.jme3.vulkan.devices; - -public class DeviceWeights { - - public static final Float SUCCESS = 1f; - public static final Float FAILURE = -1f; - public static final Float REJECTION = null; - - public static Float success(float weight) { - return weight; - } - - public static Float failure(float weight) { - return -weight; - } - - public static Float successOrReject(boolean success) { - return successOrReject(success, SUCCESS); - } - - public static Float successOrReject(boolean success, float weight) { - return success ? Float.valueOf(weight) : REJECTION; - } - - public static Float successOrFail(boolean success) { - return successOrFail(success, SUCCESS, FAILURE); - } - - public static Float successOrFail(boolean success, float weight) { - return success ? weight : -weight; - } - - public static Float successOrFail(boolean success, float successWeight, float failWeight) { - return success ? successWeight : -failWeight; - } - - public static boolean isSuccess(Float weight) { - return weight != null && weight >= 0f; - } - - public static boolean isFailure(Float weight) { - return weight == null || weight < 0f; - } - - public static boolean isRejection(Float weight) { - return weight == null; - } - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GeneralPhysicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GeneralPhysicalDevice.java index e13a30fbce..b55ea166f9 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GeneralPhysicalDevice.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GeneralPhysicalDevice.java @@ -1,6 +1,6 @@ package com.jme3.vulkan.devices; -import com.jme3.vulkan.Queue; +import com.jme3.vulkan.commands.Queue; import com.jme3.vulkan.VulkanInstance; import com.jme3.vulkan.surface.Surface; import org.lwjgl.system.MemoryStack; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/LogicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/LogicalDevice.java index f399405995..3de7445ffb 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/LogicalDevice.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/LogicalDevice.java @@ -71,7 +71,7 @@ protected void build() { if (enableAllFeatures) { enabledFeatures.set(supportedFeatures); } else for (DeviceFeature f : features) { - if (DeviceWeights.isSuccess(f.evaluateFeatureSupport(supportedFeatures))) { + if (f.evaluateFeatureSupport(supportedFeatures) != null) { f.enableFeature(enabledFeatures); } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java index dfa3239f16..2b65529ede 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java @@ -2,7 +2,7 @@ import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; -import com.jme3.vulkan.CommandBuffer; +import com.jme3.vulkan.commands.CommandBuffer; import com.jme3.vulkan.devices.LogicalDevice; import com.jme3.vulkan.buffers.MemoryRegion; import com.jme3.vulkan.flags.ImageUsageFlags; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java index 153596eca9..c3ef56b3af 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java @@ -2,8 +2,8 @@ import com.jme3.asset.*; import com.jme3.util.BufferUtils; -import com.jme3.vulkan.CommandBuffer; -import com.jme3.vulkan.CommandPool; +import com.jme3.vulkan.commands.CommandBuffer; +import com.jme3.vulkan.commands.CommandPool; import com.jme3.vulkan.buffers.GpuBuffer; import com.jme3.vulkan.flags.BufferUsageFlags; import com.jme3.vulkan.flags.ImageUsageFlags; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/mesh/Mesh.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/mesh/Mesh.java new file mode 100644 index 0000000000..973bb325f4 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/mesh/Mesh.java @@ -0,0 +1,41 @@ +package com.jme3.vulkan.mesh; + +import com.jme3.vulkan.buffers.GpuBuffer; +import com.jme3.vulkan.commands.CommandBuffer; +import org.lwjgl.system.MemoryStack; + +import java.nio.LongBuffer; +import java.util.ArrayList; +import java.util.List; + +import static org.lwjgl.vulkan.VK10.*; + +public class Mesh { + + private GpuBuffer indexBuffer; + private final List vertexBuffers = new ArrayList<>(); + + public Mesh() { + + } + + public void bindVertexBuffers(CommandBuffer cmd) { + try (MemoryStack stack = MemoryStack.stackPush()) { + LongBuffer vertBufs = stack.mallocLong(vertexBuffers.size()); + LongBuffer offsets = stack.mallocLong(vertexBuffers.size()); + for (GpuBuffer v : vertexBuffers) { + vertBufs.put(v.getNativeObject()); + offsets.put(0); + } + vertBufs.flip(); + offsets.flip(); + vkCmdBindVertexBuffers(cmd.getBuffer(), 0, vertBufs, offsets); + vkCmdBindIndexBuffer(cmd.getBuffer(), indexBuffer.getNativeObject(), 0, VK_INDEX_TYPE_UINT32); + } + } + + public void draw(CommandBuffer cmd) { + vkCmdDrawIndexed(cmd.getBuffer(), indexBuffer.size() / Integer.BYTES, 1, 0, 0, 0); + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MeshDescription.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/mesh/MeshDescription.java similarity index 92% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/MeshDescription.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/mesh/MeshDescription.java index e1a90bc3e7..9b0023980a 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/MeshDescription.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/mesh/MeshDescription.java @@ -1,4 +1,4 @@ -package com.jme3.vulkan; +package com.jme3.vulkan.mesh; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkVertexInputAttributeDescription; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/RenderPass.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/RenderPass.java index d009355fe2..8361f22385 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/RenderPass.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/RenderPass.java @@ -1,7 +1,7 @@ package com.jme3.vulkan.pass; import com.jme3.util.natives.Native; -import com.jme3.vulkan.CommandBuffer; +import com.jme3.vulkan.commands.CommandBuffer; import com.jme3.vulkan.VulkanObject; import com.jme3.vulkan.devices.LogicalDevice; import com.jme3.vulkan.images.Image; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/ComputePipeline.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/ComputePipeline.java index aa1bce0d78..e6d6e5df9e 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/ComputePipeline.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/ComputePipeline.java @@ -1,8 +1,7 @@ package com.jme3.vulkan.pipelines; import com.jme3.util.natives.Native; -import com.jme3.vulkan.PipelineLayout; -import com.jme3.vulkan.ShaderModule; +import com.jme3.vulkan.shader.ShaderModule; import com.jme3.vulkan.devices.LogicalDevice; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkComputePipelineCreateInfo; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/GraphicsPipeline.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/GraphicsPipeline.java index 0f53f9d8a9..bdf5a9c36a 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/GraphicsPipeline.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/GraphicsPipeline.java @@ -3,8 +3,10 @@ import com.jme3.util.natives.Native; import com.jme3.vulkan.*; import com.jme3.vulkan.devices.LogicalDevice; +import com.jme3.vulkan.mesh.MeshDescription; import com.jme3.vulkan.pass.RenderPass; import com.jme3.vulkan.pipelines.states.*; +import com.jme3.vulkan.shader.ShaderModule; import org.lwjgl.vulkan.*; import java.nio.LongBuffer; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/Pipeline.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/Pipeline.java index b362a7b8e9..6f3e88f884 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/Pipeline.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/Pipeline.java @@ -1,7 +1,6 @@ package com.jme3.vulkan.pipelines; -import com.jme3.vulkan.CommandBuffer; -import com.jme3.vulkan.PipelineLayout; +import com.jme3.vulkan.commands.CommandBuffer; import com.jme3.vulkan.VulkanObject; import com.jme3.vulkan.devices.LogicalDevice; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/PipelineLayout.java similarity index 98% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/PipelineLayout.java index d91aedf86a..99fb221206 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/PipelineLayout.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/PipelineLayout.java @@ -1,4 +1,4 @@ -package com.jme3.vulkan; +package com.jme3.vulkan.pipelines; import com.jme3.renderer.vulkan.VulkanUtils; import com.jme3.util.natives.Native; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/VertexInputState.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/VertexInputState.java index a650b5b71a..2b781c7677 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/VertexInputState.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/states/VertexInputState.java @@ -1,6 +1,6 @@ package com.jme3.vulkan.pipelines.states; -import com.jme3.vulkan.MeshDescription; +import com.jme3.vulkan.mesh.MeshDescription; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VK10; import org.lwjgl.vulkan.VkPipelineVertexInputStateCreateInfo; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ShaderModule.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/ShaderModule.java similarity index 98% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/ShaderModule.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/ShaderModule.java index 8b17e70813..3c1e9fb6b4 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/ShaderModule.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/ShaderModule.java @@ -1,4 +1,4 @@ -package com.jme3.vulkan; +package com.jme3.vulkan.shader; import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/Swapchain.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/Swapchain.java index b5a109f4c6..6ec8dc140a 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/Swapchain.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/Swapchain.java @@ -3,12 +3,14 @@ import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; import com.jme3.vulkan.*; -import com.jme3.vulkan.Queue; +import com.jme3.vulkan.commands.Queue; import com.jme3.vulkan.devices.LogicalDevice; import com.jme3.vulkan.images.Image; import com.jme3.vulkan.images.ImageView; import com.jme3.vulkan.pipelines.FrameBuffer; import com.jme3.vulkan.pass.RenderPass; +import com.jme3.vulkan.sync.Fence; +import com.jme3.vulkan.sync.Semaphore; import org.lwjgl.glfw.GLFW; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.*; @@ -81,7 +83,7 @@ public PresentImage acquireNextImage(SwapchainUpdater updater, Semaphore semapho } } - public void present(com.jme3.vulkan.Queue presentQueue, PresentImage image, Semaphore wait) { + public void present(Queue presentQueue, PresentImage image, Semaphore wait) { try (MemoryStack stack = MemoryStack.stackPush()) { VkPresentInfoKHR info = VkPresentInfoKHR.calloc(stack) .sType(KHRSwapchain.VK_STRUCTURE_TYPE_PRESENT_INFO_KHR) @@ -208,7 +210,7 @@ public class Builder extends VulkanObject.Builder { private final VkSurfaceCapabilitiesKHR caps; private final VkSurfaceFormatKHR.Buffer formats; private final IntBuffer modes; - private final Collection queues = new ArrayList<>(); + private final Collection queues = new ArrayList<>(); private VkSurfaceFormatKHR selectedFormat; private VkExtent2D selectedExtent; @@ -274,7 +276,7 @@ protected void build() { } if (queues.size() > 1) { IntBuffer concurrent = stack.mallocInt(queues.size()); - for (com.jme3.vulkan.Queue q : queues) { + for (Queue q : queues) { concurrent.put(q.getFamilyIndex()); } concurrent.flip(); diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Fence.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/Fence.java similarity index 98% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/Fence.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/Fence.java index 567787f769..b9b88146be 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Fence.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/Fence.java @@ -1,4 +1,4 @@ -package com.jme3.vulkan; +package com.jme3.vulkan.sync; import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Semaphore.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/Semaphore.java similarity index 98% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/Semaphore.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/Semaphore.java index 57f50196f6..25cfdff5be 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Semaphore.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/Semaphore.java @@ -1,4 +1,4 @@ -package com.jme3.vulkan; +package com.jme3.vulkan.sync; import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; From 6a3171c6346b4b20868ad3d23f63beade805aa29 Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Sat, 9 Aug 2025 16:05:59 -0400 Subject: [PATCH 23/37] added MemorySize for clarity in allocating buffer sizes --- .../jme3test/vulkan/VulkanHelperTest.java | 7 +-- .../com/jme3/vulkan/buffers/GpuBuffer.java | 12 ++--- .../com/jme3/vulkan/buffers/MemorySize.java | 51 +++++++++++++++++++ .../jme3/vulkan/buffers/PersistentBuffer.java | 4 +- .../jme3/vulkan/buffers/StageableBuffer.java | 4 +- .../java/com/jme3/vulkan/shader/Material.java | 7 +++ 6 files changed, 72 insertions(+), 13 deletions(-) create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/MemorySize.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/Material.java diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java index 2f031af6cb..2835d1d911 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java @@ -217,13 +217,13 @@ public void simpleInitApp() { // the cpu cannot directly access fast gpu memory. The solution is to // copy cpu-side data to a mutual staging buffer, then have the gpu copy // that data to faster memory. Hence, why we do two copy operations here. - vertexBuffer = new StageableBuffer(device, vertexData.capacity() * Float.BYTES, + vertexBuffer = new StageableBuffer(device, MemorySize.floats(vertexData.capacity()), new BufferUsageFlags().vertexBuffer(), new MemoryFlags().deviceLocal(), false); vertexBuffer.copy(stack, vertexData); // copy data to staging buffer vertexBuffer.transfer(transferPool); // transfer staged data to vertex buffer vertexBuffer.freeStagingBuffer(); // index buffer - indexBuffer = new StageableBuffer(device, indexData.capacity() * Integer.BYTES, + indexBuffer = new StageableBuffer(device, MemorySize.ints(indexData.capacity()), new BufferUsageFlags().indexBuffer(), new MemoryFlags().deviceLocal(), false); indexBuffer.copy(stack, indexData); indexBuffer.transfer(transferPool); @@ -310,7 +310,8 @@ private class Frame implements Consumer { private final DescriptorSet descriptorSet; public Frame() { - uniforms = new PersistentBuffer(device, 16 * Float.BYTES, + // using a persistent buffer because we will be writing to the buffer very often + uniforms = new PersistentBuffer(device, MemorySize.floats(16), new BufferUsageFlags().uniformBuffer(), new MemoryFlags().hostVisible().hostCoherent(), false); descriptorSet = descriptorPool.allocateSets(descriptorLayout)[0]; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java index 2964505f4f..f9e308b914 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java @@ -23,17 +23,17 @@ public class GpuBuffer implements Native { private final LogicalDevice device; private final NativeReference ref; - private final int size; + private final MemorySize size; private final long id; protected final MemoryRegion memory; - public GpuBuffer(LogicalDevice device, int size, BufferUsageFlags usage, MemoryFlags mem, boolean concurrent) { + public GpuBuffer(LogicalDevice device, MemorySize size, BufferUsageFlags usage, MemoryFlags mem, boolean concurrent) { this.device = device; this.size = size; try (MemoryStack stack = MemoryStack.stackPush()) { VkBufferCreateInfo create = VkBufferCreateInfo.calloc(stack) .sType(VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO) - .size(size) // size in bytes + .size(size.getBytes()) .usage(usage.getUsageFlags()) .sharingMode(VulkanUtils.sharingMode(concurrent)); LongBuffer idBuf = stack.mallocLong(1); @@ -70,7 +70,7 @@ public NativeReference getNativeReference() { } private void verifyBufferSize(Buffer buffer, long bytesPerElement) { - if (buffer.limit() * bytesPerElement > size) { + if (buffer.limit() * bytesPerElement > size.getBytes()) { throw new BufferOverflowException(); } } @@ -155,8 +155,8 @@ public void freeMemory() { memory.getNativeReference().destroy(); } - public int size() { - return size; // size in bytes + public MemorySize size() { + return size; } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/MemorySize.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/MemorySize.java new file mode 100644 index 0000000000..20d64c22e0 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/MemorySize.java @@ -0,0 +1,51 @@ +package com.jme3.vulkan.buffers; + +public class MemorySize { + + private final int elements; + private final int bytesPerElement; + private final int bytes; + + public MemorySize(int elements, int bytesPerElement) { + this.elements = elements; + this.bytesPerElement = bytesPerElement; + this.bytes = this.elements * this.bytesPerElement; + } + + public int getElements() { + return elements; + } + + public int getBytesPerElement() { + return bytesPerElement; + } + + public int getBytes() { + return bytes; + } + + public static MemorySize bytes(int elements) { + return new MemorySize(elements, 1); + } + + public static MemorySize shorts(int elements) { + return new MemorySize(elements, Short.BYTES); + } + + public static MemorySize ints(int elements) { + return new MemorySize(elements, Integer.BYTES); + } + + public static MemorySize floats(int elements) { + return new MemorySize(elements, Float.BYTES); + } + + public static MemorySize doubles(int elements) { + return new MemorySize(elements, Double.BYTES); + } + + public static MemorySize longs(int elements) { + return new MemorySize(elements, Long.BYTES); + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/PersistentBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/PersistentBuffer.java index 496f91194c..9906cd952d 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/PersistentBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/PersistentBuffer.java @@ -10,10 +10,10 @@ public class PersistentBuffer extends GpuBuffer { private final long address; - public PersistentBuffer(LogicalDevice device, int size, BufferUsageFlags usage, MemoryFlags mem, boolean concurrent) { + public PersistentBuffer(LogicalDevice device, MemorySize size, BufferUsageFlags usage, MemoryFlags mem, boolean concurrent) { super(device, size, usage, mem, concurrent); try (MemoryStack stack = MemoryStack.stackPush()) { - address = memory.map(stack, 0, size, 0).get(0); + address = memory.map(stack, 0, size.getBytes(), 0).get(0); } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java index 1815cefe7a..451ecac6f1 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java @@ -14,7 +14,7 @@ public class StageableBuffer extends GpuBuffer { private final GpuBuffer stage; - public StageableBuffer(LogicalDevice device, int size, BufferUsageFlags usage, MemoryFlags mem, boolean concurrent) { + public StageableBuffer(LogicalDevice device, MemorySize size, BufferUsageFlags usage, MemoryFlags mem, boolean concurrent) { super(device, size, usage.transferDst(), mem, concurrent); stage = new GpuBuffer(device, size, new BufferUsageFlags().transferSrc(), new MemoryFlags().hostVisible().hostCoherent(), concurrent); @@ -47,7 +47,7 @@ public void transfer(CommandPool transferPool, Semaphore wait, Semaphore signal, } CommandBuffer commands = transferPool.allocateOneTimeCommandBuffer(); try (MemoryStack stack = MemoryStack.stackPush()) { - recordCopy(stack, commands, stage, 0, 0, size()); + recordCopy(stack, commands, stage, 0, 0, size().getBytes()); } commands.submit(wait, signal, fence); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/Material.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/Material.java new file mode 100644 index 0000000000..63bf9e8166 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/Material.java @@ -0,0 +1,7 @@ +package com.jme3.vulkan.shader; + +public class Material { + + + +} From bcb70141f00a48898b7a14cd6df7bbfe280a85dd Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Tue, 12 Aug 2025 21:20:22 -0400 Subject: [PATCH 24/37] managed to create acceptable prototype material system (still much to be done) --- .../vulkan/VkGLCompatibilityTest.java | 32 ++++++ .../jme3test/vulkan/VulkanHelperTest.java | 21 ++-- .../vulkan/descriptors/BufferDescriptor.java | 2 +- .../vulkan/descriptors/BufferSetWriter.java | 14 +-- .../jme3/vulkan/descriptors/Descriptor.java | 43 +++---- .../vulkan/descriptors/DescriptorPool.java | 2 + .../vulkan/descriptors/DescriptorSet.java | 50 ++++++++- .../descriptors/DescriptorSetWriter.java | 33 +----- .../vulkan/descriptors/ImageSetWriter.java | 9 +- .../com/jme3/vulkan/descriptors/PoolSize.java | 20 +--- .../vulkan/descriptors/SetLayoutBinding.java | 21 +--- .../jme3/vulkan/material/BufferUniform.java | 25 +++++ .../vulkan/material/ExampleUniformBuffer.java | 49 ++++++++ .../com/jme3/vulkan/material/Material.java | 106 ++++++++++++++++++ .../com/jme3/vulkan/material/Uniform.java | 85 ++++++++++++++ .../vulkan/pipelines/GraphicsPipeline.java | 8 ++ .../com/jme3/vulkan/pipelines/Pipeline.java | 2 +- .../java/com/jme3/vulkan/shader/Material.java | 7 -- .../com/jme3/vulkan/shader/ShaderModule.java | 2 + .../jme3/vulkan/shader/UniformTestStruct.java | 99 ++++++++++++++++ .../resources/Shaders/VulkanFragTest.glsl | 2 +- .../resources/Shaders/VulkanVertTest.glsl | 28 ++++- .../resources/Shaders/VulkanVertTest.j4md | 19 ++++ 23 files changed, 554 insertions(+), 125 deletions(-) create mode 100644 jme3-examples/src/main/java/jme3test/vulkan/VkGLCompatibilityTest.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/BufferUniform.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/ExampleUniformBuffer.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Uniform.java delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/Material.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/UniformTestStruct.java create mode 100644 jme3-testdata/src/main/resources/Shaders/VulkanVertTest.j4md diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VkGLCompatibilityTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VkGLCompatibilityTest.java new file mode 100644 index 0000000000..7109080075 --- /dev/null +++ b/jme3-examples/src/main/java/jme3test/vulkan/VkGLCompatibilityTest.java @@ -0,0 +1,32 @@ +package jme3test.vulkan; + +import com.jme3.app.FlyCamAppState; +import com.jme3.app.SimpleApplication; +import com.jme3.system.AppSettings; +import com.jme3.system.vulkan.LwjglVulkanContext; + +public class VkGLCompatibilityTest extends SimpleApplication { + + public static void main(String[] args) { + VulkanHelperTest app = new VulkanHelperTest(); + AppSettings settings = new AppSettings(true); + settings.setWidth(768); + settings.setHeight(768); + settings.setRenderer("CUSTOM" + LwjglVulkanContext.class.getName()); + app.setSettings(settings); + app.setShowSettings(false); + app.start(); + } + + public VkGLCompatibilityTest() { + super(new FlyCamAppState()); + } + + @Override + public void simpleInitApp() { + + Material material; + + } + +} diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java index 2835d1d911..72c3560c60 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java @@ -151,13 +151,17 @@ public void simpleInitApp() { s.selectImageCount(2); } + // Describes the layout of a descriptor set. The descriptor set + // will represent two uniforms: a uniform buffer at binding 0 + // requiring 1 descriptor, and an image sampler at binding 1 + // requiring 1 descriptor. descriptorLayout = new DescriptorSetLayout(device, - SetLayoutBinding.uniformBuffer(0, 1, VK_SHADER_STAGE_VERTEX_BIT), - SetLayoutBinding.combinedImageSampler(1, 1, VK_SHADER_STAGE_FRAGMENT_BIT)); + new SetLayoutBinding(Descriptor.UniformBuffer, 0, 1, VK_SHADER_STAGE_VERTEX_BIT), + new SetLayoutBinding(Descriptor.CombinedImageSampler, 1, 1, VK_SHADER_STAGE_FRAGMENT_BIT)); descriptorPool = new DescriptorPool(device, 3, - PoolSize.uniformBuffers(3), - PoolSize.storageBuffers(4), - PoolSize.combinedImageSamplers(2)); + new PoolSize(Descriptor.UniformBuffer, 3), + new PoolSize(Descriptor.StorageBuffer, 4), + new PoolSize(Descriptor.CombinedImageSampler, 2)); CommandPool transferPool = new CommandPool(device, physDevice.getGraphics(), true, false); @@ -315,8 +319,9 @@ public Frame() { new BufferUsageFlags().uniformBuffer(), new MemoryFlags().hostVisible().hostCoherent(), false); descriptorSet = descriptorPool.allocateSets(descriptorLayout)[0]; - descriptorSet.write(BufferSetWriter.uniformBuffers(0, 0, new BufferDescriptor(uniforms)), - ImageSetWriter.combinedImageSampler(1, 0, new ImageDescriptor(texture, Image.Layout.ShaderReadOnlyOptimal))); + descriptorSet.write( + new BufferSetWriter(Descriptor.UniformBuffer, 0, 0, new BufferDescriptor(uniforms)), + new ImageSetWriter(Descriptor.CombinedImageSampler, 1, 0, new ImageDescriptor(texture, Image.Layout.ShaderReadOnlyOptimal))); } @Override @@ -346,9 +351,9 @@ public void accept(Float tpf) { // material .fillFloatBuffer(uniforms.mapFloats(stack, 0, 16, 0), true); + uniforms.unmap(); vkCmdBindDescriptorSets(graphicsCommands.getBuffer(), pipeline.getBindPoint().getVkEnum(), pipelineLayout.getNativeObject(), 0, stack.longs(descriptorSet.getId()), null); - uniforms.unmap(); // viewport VkViewport.Buffer vp = VkViewport.calloc(1, stack) diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BufferDescriptor.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BufferDescriptor.java index 46457084a0..89e413e35e 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BufferDescriptor.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BufferDescriptor.java @@ -9,7 +9,7 @@ public class BufferDescriptor { private final long offset, range; public BufferDescriptor(GpuBuffer buffer) { - this(buffer, 0, buffer.size()); + this(buffer, 0, buffer.size().getBytes()); } public BufferDescriptor(GpuBuffer buffer, long offset, long range) { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BufferSetWriter.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BufferSetWriter.java index 101aee971b..f0b27d7d61 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BufferSetWriter.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BufferSetWriter.java @@ -4,13 +4,11 @@ import org.lwjgl.vulkan.VkDescriptorBufferInfo; import org.lwjgl.vulkan.VkWriteDescriptorSet; -import static org.lwjgl.vulkan.VK10.*; - -public class BufferSetWriter extends DescriptorSetWriter { +public class BufferSetWriter extends BaseDescriptorWriter { private final BufferDescriptor[] descriptors; - public BufferSetWriter(int type, int binding, int arrayElement, BufferDescriptor... descriptors) { + public BufferSetWriter(Descriptor type, int binding, int arrayElement, BufferDescriptor... descriptors) { super(type, binding, arrayElement, descriptors.length); this.descriptors = descriptors; } @@ -26,12 +24,4 @@ public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { write.pBufferInfo(info); } - public static BufferSetWriter uniformBuffers(int binding, int arrayElement, BufferDescriptor... descriptors) { - return new BufferSetWriter(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, binding, arrayElement, descriptors); - } - - public static BufferSetWriter storageBuffers(int binding, int arrayElement, BufferDescriptor... descriptors) { - return new BufferSetWriter(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, binding, arrayElement, descriptors); - } - } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/Descriptor.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/Descriptor.java index 17c99aa15b..415fd7f701 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/Descriptor.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/Descriptor.java @@ -1,28 +1,29 @@ package com.jme3.vulkan.descriptors; -import com.jme3.util.natives.Native; -import com.jme3.util.natives.NativeReference; - -public class Descriptor implements Native { - - @Override - public Long getNativeObject() { - return 0L; - } - - @Override - public Runnable createNativeDestroyer() { - return null; - } - - @Override - public void prematureNativeDestruction() { - +import static org.lwjgl.vulkan.VK10.*; + +public enum Descriptor { + + UniformBuffer(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER), + UniformBufferDynamic(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC), + StorageBuffer(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER), + StorageBufferDynamic(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC), + CombinedImageSampler(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER), + Sampler(VK_DESCRIPTOR_TYPE_SAMPLER), + SampledImage(VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE), + InputAttachment(VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT), + StorageImage(VK_DESCRIPTOR_TYPE_STORAGE_IMAGE), + StorageTexelBuffer(VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER), + UniformTexelBuffer(VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER); + + private final int vkEnum; + + Descriptor(int vkEnum) { + this.vkEnum = vkEnum; } - @Override - public NativeReference getNativeReference() { - return null; + public int getVkEnum() { + return vkEnum; } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorPool.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorPool.java index 79de4a574e..e17daa2ba3 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorPool.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorPool.java @@ -75,4 +75,6 @@ public void reset() { vkResetDescriptorPool(device.getNativeObject(), id, 0); } + + } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java index d68efa483e..c13db183de 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java @@ -1,9 +1,16 @@ package com.jme3.vulkan.descriptors; +import com.jme3.util.natives.Native; +import com.jme3.vulkan.VulkanObject; import com.jme3.vulkan.devices.LogicalDevice; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkWriteDescriptorSet; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + import static org.lwjgl.vulkan.VK10.*; public class DescriptorSet { @@ -12,6 +19,7 @@ public class DescriptorSet { private final DescriptorPool pool; private final DescriptorSetLayout layout; private final long id; + private final Collection writers = new ArrayList<>(); public DescriptorSet(LogicalDevice device, DescriptorPool pool, DescriptorSetLayout layout, long id) { this.device = device; @@ -20,11 +28,36 @@ public DescriptorSet(LogicalDevice device, DescriptorPool pool, DescriptorSet this.id = id; } + public void update() { + try (MemoryStack stack = MemoryStack.stackPush()) { + int updating = 0; + for (DescriptorSetWriter w : writers) { + if (w.isUpdateNeeded()) { + updating++; + } + } + if (updating > 0) { + VkWriteDescriptorSet.Buffer write = VkWriteDescriptorSet.calloc(updating, stack); + for (DescriptorSetWriter w : writers) { + if (w.isUpdateNeeded()) { + w.populateWrite(stack, write.get() + .sType(VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET) + .dstSet(id)); + } + } + write.flip(); + vkUpdateDescriptorSets(device.getNativeObject(), write, null); + } + } + } + public void write(DescriptorSetWriter... writers) { try (MemoryStack stack = MemoryStack.stackPush()) { VkWriteDescriptorSet.Buffer write = VkWriteDescriptorSet.calloc(writers.length, stack); for (DescriptorSetWriter w : writers) { - w.populateWrite(stack, write.get().sType(VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET).dstSet(id)); + w.populateWrite(stack, write.get() + .sType(VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET) + .dstSet(id)); } write.flip(); vkUpdateDescriptorSets(device.getNativeObject(), write, null); @@ -32,6 +65,9 @@ public void write(DescriptorSetWriter... writers) { } public void free() { + if (pool.getNativeReference().isDestroyed()) { + return; + } try (MemoryStack stack = MemoryStack.stackPush()) { vkFreeDescriptorSets(device.getNativeObject(), pool.getNativeObject(), stack.longs(id)); } @@ -41,4 +77,16 @@ public long getId() { return id; } + public LogicalDevice getDevice() { + return device; + } + + public DescriptorPool getPool() { + return pool; + } + + public DescriptorSetLayout getLayout() { + return layout; + } + } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetWriter.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetWriter.java index 22e2e24f0e..032a2375ab 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetWriter.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetWriter.java @@ -3,37 +3,10 @@ import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkWriteDescriptorSet; -public class DescriptorSetWriter { +public interface DescriptorSetWriter { - private final int type, binding, arrayElement, descriptorCount; + void populateWrite(MemoryStack stack, VkWriteDescriptorSet write); - public DescriptorSetWriter(int type, int binding, int arrayElement, int descriptorCount) { - this.type = type; - this.binding = binding; - this.arrayElement = arrayElement; - this.descriptorCount = descriptorCount; - } - - public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { - write.descriptorType(type).dstBinding(binding) - .dstArrayElement(arrayElement) - .descriptorCount(descriptorCount); - } - - public int getType() { - return type; - } - - public int getBinding() { - return binding; - } - - public int getArrayElement() { - return arrayElement; - } - - public int getDescriptorCount() { - return descriptorCount; - } + boolean isUpdateNeeded(); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/ImageSetWriter.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/ImageSetWriter.java index 10001fcde4..b3d7d0c789 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/ImageSetWriter.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/ImageSetWriter.java @@ -1,15 +1,14 @@ package com.jme3.vulkan.descriptors; import org.lwjgl.system.MemoryStack; -import org.lwjgl.vulkan.VK10; import org.lwjgl.vulkan.VkDescriptorImageInfo; import org.lwjgl.vulkan.VkWriteDescriptorSet; -public class ImageSetWriter extends DescriptorSetWriter { +public class ImageSetWriter extends BaseDescriptorWriter { private final ImageDescriptor[] descriptors; - public ImageSetWriter(int type, int binding, int arrayElement, ImageDescriptor... descriptors) { + public ImageSetWriter(Descriptor type, int binding, int arrayElement, ImageDescriptor... descriptors) { super(type, binding, arrayElement, descriptors.length); this.descriptors = descriptors; } @@ -25,8 +24,4 @@ public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { write.pImageInfo(info); } - public static ImageSetWriter combinedImageSampler(int binding, int arrayElement, ImageDescriptor... descriptors) { - return new ImageSetWriter(VK10.VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, binding, arrayElement, descriptors); - } - } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/PoolSize.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/PoolSize.java index 36838d5a88..11d2a4d036 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/PoolSize.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/PoolSize.java @@ -7,15 +7,15 @@ public class PoolSize { - private final int type; + private final Descriptor type; private final int size; - public PoolSize(int type, int size) { + public PoolSize(Descriptor type, int size) { this.type = type; this.size = size; } - public int getType() { + public Descriptor getType() { return type; } @@ -23,22 +23,10 @@ public int getSize() { return size; } - public static PoolSize uniformBuffers(int size) { - return new PoolSize(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, size); - } - - public static PoolSize storageBuffers(int size) { - return new PoolSize(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, size); - } - - public static PoolSize combinedImageSamplers(int size) { - return new PoolSize(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, size); - } - public static VkDescriptorPoolSize.Buffer aggregate(MemoryStack stack, PoolSize... sizes) { VkDescriptorPoolSize.Buffer buffer = VkDescriptorPoolSize.calloc(sizes.length, stack); for (PoolSize poolSize : sizes) { - buffer.get().set(poolSize.type, poolSize.size); + buffer.get().set(poolSize.type.getVkEnum(), poolSize.size); } buffer.flip(); return buffer; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/SetLayoutBinding.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/SetLayoutBinding.java index 520e153467..a3c395e256 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/SetLayoutBinding.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/SetLayoutBinding.java @@ -6,9 +6,10 @@ public class SetLayoutBinding { - private final int type, binding, descriptors, stages; + private final Descriptor type; + private final int binding, descriptors, stages; - public SetLayoutBinding(int type, int binding, int descriptors, int stages) { + public SetLayoutBinding(Descriptor type, int binding, int descriptors, int stages) { this.type = type; this.binding = binding; this.descriptors = descriptors; @@ -17,14 +18,14 @@ public SetLayoutBinding(int type, int binding, int descriptors, int stages) { @SuppressWarnings("DataFlowIssue") public void fillLayoutBinding(VkDescriptorSetLayoutBinding layoutBinding) { - layoutBinding.descriptorType(type) + layoutBinding.descriptorType(type.getVkEnum()) .binding(binding) .descriptorCount(descriptors) .stageFlags(stages) .pImmutableSamplers(null); } - public int getType() { + public Descriptor getType() { return type; } @@ -40,16 +41,4 @@ public int getStages() { return stages; } - public static SetLayoutBinding uniformBuffer(int binding, int descriptors, int stages) { - return new SetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, binding, descriptors, stages); - } - - public static SetLayoutBinding storageBuffer(int binding, int descriptors, int stages) { - return new SetLayoutBinding(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, binding, descriptors, stages); - } - - public static SetLayoutBinding combinedImageSampler(int binding, int descriptors, int stages) { - return new SetLayoutBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, binding, descriptors, stages); - } - } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/BufferUniform.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/BufferUniform.java new file mode 100644 index 0000000000..8035126e44 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/BufferUniform.java @@ -0,0 +1,25 @@ +package com.jme3.vulkan.material; + +import com.jme3.vulkan.buffers.GpuBuffer; +import com.jme3.vulkan.descriptors.Descriptor; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkDescriptorBufferInfo; +import org.lwjgl.vulkan.VkWriteDescriptorSet; + +public class BufferUniform extends Uniform { + + public BufferUniform(String name, Descriptor type, int setIndex, int bindingIndex) { + super(name, type, setIndex, bindingIndex); + } + + @Override + public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { + super.populateWrite(stack, write); + VkDescriptorBufferInfo.Buffer info = VkDescriptorBufferInfo.calloc(1, stack) + .buffer(value.getNativeObject()) + .offset(0L) + .range(value.size().getBytes()); + write.pBufferInfo(info); + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/ExampleUniformBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/ExampleUniformBuffer.java new file mode 100644 index 0000000000..1eaf6e2409 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/ExampleUniformBuffer.java @@ -0,0 +1,49 @@ +package com.jme3.vulkan.material; + +import com.jme3.vulkan.buffers.GpuBuffer; +import com.jme3.vulkan.descriptors.Descriptor; +import com.jme3.vulkan.descriptors.DescriptorSetWriter; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkDescriptorBufferInfo; +import org.lwjgl.vulkan.VkWriteDescriptorSet; + +public class ExampleUniformBuffer implements DescriptorSetWriter { + + private final int binding; + private GpuBuffer buffer; + private boolean updateFlag = true; + + public ExampleUniformBuffer(int binding, GpuBuffer buffer) { + this.binding = binding; + this.buffer = buffer; + } + + @Override + public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { + VkDescriptorBufferInfo.Buffer descriptors = VkDescriptorBufferInfo.calloc(1, stack) + .buffer(buffer.getNativeObject()) + .offset(0) + .range(buffer.size().getBytes()); + write.descriptorType(Descriptor.UniformBuffer.getVkEnum()) + .dstBinding(binding) + .dstArrayElement(0) // todo: make configurable? + .descriptorCount(descriptors.limit()) + .pBufferInfo(descriptors); + updateFlag = false; + } + + @Override + public boolean isUpdateNeeded() { + return updateFlag; + } + + public void setBuffer(GpuBuffer buffer) { + this.buffer = buffer; + this.updateFlag = true; + } + + public GpuBuffer getBuffer() { + return buffer; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java new file mode 100644 index 0000000000..4aa0e97035 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java @@ -0,0 +1,106 @@ +package com.jme3.vulkan.material; + +import com.jme3.util.IntMap; +import com.jme3.vulkan.commands.CommandBuffer; +import com.jme3.vulkan.descriptors.*; +import com.jme3.vulkan.pipelines.Pipeline; +import org.lwjgl.system.MemoryStack; + +import java.nio.LongBuffer; +import java.util.*; + +import static org.lwjgl.vulkan.VK10.*; + +/** + * Relates shader uniform values to sets and bindings. + */ +public class Material { + + private final Pipeline pipeline; + private final DescriptorSet[] sets; + private final Map> uniforms = new HashMap<>(); + + public Material(Pipeline pipeline, DescriptorPool pool, Collection> uniforms) { + this.pipeline = pipeline; + for (Uniform u : uniforms) { + if (this.uniforms.put(u.getName(), u) != null) { + throw new IllegalArgumentException("Duplicate uniform name: " + u.getName()); + } + } + this.sets = allocateSets(pipeline, pool, uniforms); + } + + private DescriptorSet[] allocateSets(Pipeline pipeline, DescriptorPool pool, Collection> uniforms) { + // group uniforms by set index + IntMap>> uniformsBySet = new IntMap<>(); + for (Uniform u : uniforms) { + List> set = uniformsBySet.get(u.getSetIndex()); + if (set == null) { + set = new ArrayList<>(); + uniformsBySet.put(u.getSetIndex(), set); + } + set.add(u); + } + // there must be enough layouts for all sets to have a different layout + if (uniformsBySet.size() > pipeline.getLayout().getDescriptorSetLayouts().length) { + throw new IllegalArgumentException("Pipeline layout does not contain enough descriptor set layouts."); + } + List availableLayouts = new LinkedList<>( + Arrays.asList(pipeline.getLayout().getDescriptorSetLayouts())); + List matchedLayouts = new ArrayList<>(uniformsBySet.size()); + // for each set definition, find a set layout that matches the definition + setLoop: for (IntMap.Entry>> set : uniformsBySet) { + // Search for a layout that is compatible with the set definition + layoutLoop: for (Iterator it = availableLayouts.iterator(); it.hasNext();) { + DescriptorSetLayout layout = it.next(); + requiredLoop: for (Uniform u : set.getValue()) { + // find a layout binding that matches the requirement + for (SetLayoutBinding available : layout.getBindings()) { + if (u.isBindingCompatible(available)) { + // Assign this binding to the uniform. + // todo: figure out a safer way to do this + u.setBinding(available); + continue requiredLoop; + } + } + // Layout does not contain a binding at the requested index. + // Layout is incompatible, try the next layout. + continue layoutLoop; + } + // Layout is compatible with the set definition + matchedLayouts.add(layout); + it.remove(); + continue setLoop; + } + // No layout is available that is compatible with the set definition + throw new IllegalArgumentException("Set layout required by material is not supported by the pipeline."); + } + if (matchedLayouts.size() != uniformsBySet.size()) { + // Not every set definition found a compatible layout. This error + // should technically be reported by a previous error, but it + // doesn't hurt to be totally sure. + throw new IllegalArgumentException("Material requirements are not compatible with pipeline."); + } + return pool.allocateSets(matchedLayouts.toArray(new DescriptorSetLayout[0])); + } + + public void bind(CommandBuffer cmd) { + for (DescriptorSet set : sets) { + set.update(); // write updates to the set + } + try (MemoryStack stack = MemoryStack.stackPush()) { + LongBuffer setBuf = stack.mallocLong(sets.length); + for (DescriptorSet s : sets) { + setBuf.put(s.getId()); + } + setBuf.flip(); + vkCmdBindDescriptorSets(cmd.getBuffer(), pipeline.getBindPoint().getVkEnum(), + pipeline.getLayout().getNativeObject(), 0, setBuf, null); + } + } + + public Uniform get(String name) { + return uniforms.get(name); + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Uniform.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Uniform.java new file mode 100644 index 0000000000..2f44daf544 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Uniform.java @@ -0,0 +1,85 @@ +package com.jme3.vulkan.material; + +import com.jme3.vulkan.descriptors.Descriptor; +import com.jme3.vulkan.descriptors.DescriptorSetWriter; +import com.jme3.vulkan.descriptors.SetLayoutBinding; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkWriteDescriptorSet; + +public abstract class Uniform implements DescriptorSetWriter { + + private final String name; + private final Descriptor type; + private final int setIndex; + private final int bindingIndex; + private SetLayoutBinding binding; + private boolean updateFlag = true; + protected T value; + + public Uniform(String name, Descriptor type, int setIndex, int bindingIndex) { + this.name = name; + this.type = type; + this.setIndex = setIndex; + this.bindingIndex = bindingIndex; + } + + @Override + public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { + write.descriptorType(type.getVkEnum()) + .dstBinding(binding.getBinding()) + .dstArrayElement(0) + .descriptorCount(1); + } + + @Override + public boolean isUpdateNeeded() { + return updateFlag; + } + + public boolean isBindingCompatible(SetLayoutBinding binding) { + return binding.getType() == type && binding.getBinding() == bindingIndex; + } + + public void setBinding(SetLayoutBinding binding) { + if (!isBindingCompatible(binding)) { + throw new IllegalArgumentException("Incompatible binding provided."); + } + this.binding = binding; + } + + public void setValue(T value) { + if (this.value != value) { + setUpdateNeeded(); + } + this.value = value; + } + + public void setUpdateNeeded() { + updateFlag = true; + } + + public String getName() { + return name; + } + + public Descriptor getType() { + return type; + } + + public SetLayoutBinding getBinding() { + return binding; + } + + public int getSetIndex() { + return setIndex; + } + + public int getBindingIndex() { + return bindingIndex; + } + + public T getValue() { + return value; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/GraphicsPipeline.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/GraphicsPipeline.java index bdf5a9c36a..d4a9eddc2b 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/GraphicsPipeline.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/GraphicsPipeline.java @@ -30,6 +30,14 @@ public GraphicsPipeline(LogicalDevice device, PipelineLayout layout, RenderPa this.mesh = mesh; } + public RenderPass getCompat() { + return compat; + } + + public int getSubpassIndex() { + return subpassIndex; + } + public Builder build() { return new Builder(); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/Pipeline.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/Pipeline.java index 6f3e88f884..3e0ec6ce30 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/Pipeline.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/Pipeline.java @@ -6,7 +6,7 @@ import static org.lwjgl.vulkan.VK10.*; -public class Pipeline extends VulkanObject { +public abstract class Pipeline extends VulkanObject { protected final LogicalDevice device; protected final PipelineBindPoint bindPoint; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/Material.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/Material.java deleted file mode 100644 index 63bf9e8166..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/Material.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.jme3.vulkan.shader; - -public class Material { - - - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/ShaderModule.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/ShaderModule.java index 3c1e9fb6b4..aa488b4c23 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/ShaderModule.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/ShaderModule.java @@ -8,6 +8,8 @@ import org.lwjgl.vulkan.VkShaderModuleCreateInfo; import java.nio.ByteBuffer; +import java.util.HashMap; +import java.util.Map; import static com.jme3.renderer.vulkan.VulkanUtils.*; import static org.lwjgl.vulkan.VK10.*; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/UniformTestStruct.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/UniformTestStruct.java new file mode 100644 index 0000000000..40bd2fa536 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/UniformTestStruct.java @@ -0,0 +1,99 @@ +package com.jme3.vulkan.shader; + +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.system.NativeResource; +import org.lwjgl.system.Struct; +import org.lwjgl.system.StructBuffer; + +import java.nio.ByteBuffer; + +public class UniformTestStruct extends Struct { + + public static final int SIZEOF; + public static final int ALIGNOF; + + public static final int X, Y, Z, W; + + static { + Layout layout = __struct( + __member(Float.BYTES), + __member(Float.BYTES), + __member(Float.BYTES), + __member(Float.BYTES) + ); + SIZEOF = layout.getSize(); + ALIGNOF = layout.getAlignment(); + X = layout.offsetof(0); + Y = layout.offsetof(1); + Z = layout.offsetof(2); + W = layout.offsetof(3); + } + + public UniformTestStruct(ByteBuffer container) { + this(MemoryUtil.memAddress(container), __checkContainer(container, SIZEOF)); + } + + protected UniformTestStruct(long address, ByteBuffer container) { + super(address, container); + } + + @Override + protected UniformTestStruct create(long address, ByteBuffer container) { + return new UniformTestStruct(address, container); + } + + @Override + public int sizeof() { + return SIZEOF; + } + + public float x() { + return nx(address()); + } + + public void x(float x) { + nx(address(), x); + } + + public static float nx(long struct) { + return MemoryUtil.memGetFloat(struct + X); + } + + public static void nx(long struct, float x) { + MemoryUtil.memPutFloat(struct + X, x); + } + + public static UniformTestStruct calloc() { + return new UniformTestStruct(MemoryUtil.nmemCallocChecked(1, SIZEOF), null); + } + + public static class Buffer extends StructBuffer implements NativeResource { + + private static final UniformTestStruct FACTORY = new UniformTestStruct(-1L, null); + + protected Buffer(ByteBuffer container, int remaining) { + super(container, remaining); + } + + protected Buffer(long address, ByteBuffer container, int mark, int position, int limit, int capacity) { + super(address, container, mark, position, limit, capacity); + } + + @Override + protected UniformTestStruct getElementFactory() { + return null; + } + + @Override + protected Buffer self() { + return this; + } + + @Override + protected Buffer create(long address, ByteBuffer container, int mark, int position, int limit, int capacity) { + return new Buffer(address, container, mark, position, limit, capacity); + } + + } + +} diff --git a/jme3-testdata/src/main/resources/Shaders/VulkanFragTest.glsl b/jme3-testdata/src/main/resources/Shaders/VulkanFragTest.glsl index 945951f055..0055166028 100644 --- a/jme3-testdata/src/main/resources/Shaders/VulkanFragTest.glsl +++ b/jme3-testdata/src/main/resources/Shaders/VulkanFragTest.glsl @@ -5,7 +5,7 @@ layout(location = 1) in vec2 texCoord; layout(location = 0) out vec4 outColor; -layout(binding = 1) uniform sampler2D colorTexture; +layout(set = 0, binding = 1) uniform sampler2D colorTexture; void main() { outColor = texture(colorTexture, texCoord) * vec4(fragColor, 1.0); diff --git a/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl b/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl index 39ce3e72bb..643876adb8 100644 --- a/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl +++ b/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl @@ -1,5 +1,11 @@ #version 450 +// added by preprocessor +#define VULKAN 1 +#ifdef OPENGL + // GLSLCompat stuff +#endif + layout (location = 0) in vec3 inPosition; layout (location = 1) in vec3 inColor; layout (location = 2) in vec2 inTexCoord; @@ -7,12 +13,26 @@ layout (location = 2) in vec2 inTexCoord; layout (location = 0) out vec3 fragColor; layout (location = 1) out vec2 texCoord; -layout (binding = 0) uniform UniformBufferObject { - mat4 worldViewProjectionMatrix; -} ubo; +#use com.jme3.vulkan.material.UniformBuffer as UniformBuffer + +#param Camera UniformBuffer(set = 0, binding = 0) +layout (Camera) uniform CameraBuffer { + mat4 viewProjectionMatrix; +} cam; + +#param Material UniformBuffer(set = 1, binding = 0) +layout (Material) uniform MaterialBuffer { + vec3 color; + float metallic; + float roughness; +} mat; +#param Geometry UniformBuffer(set = 2, binding = 0) +layout (Geometry) uniform GeometryBuffer { + mat4 worldMatrix; +} geom; void main() { - gl_Position = ubo.worldViewProjectionMatrix * vec4(inPosition, 1.0); + gl_Position = cam.viewProjectionMatrix * geom.worldMatrix * vec4(inPosition, 1.0); fragColor = inColor; texCoord = inTexCoord; } \ No newline at end of file diff --git a/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.j4md b/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.j4md new file mode 100644 index 0000000000..1d14be2c60 --- /dev/null +++ b/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.j4md @@ -0,0 +1,19 @@ +MaterialDef VulkanVertTest { + + Imports { + UniformBuffer : com.jme3.vulkan.material.UniformBuffer + } + + Vulkan { + Set { + UniformBuffer Camera (vertex) + } + Set { + UniformBuffer Material (fragment) + } + Set { + UniformBuffer Geometry (vertex) + } + } + +} \ No newline at end of file From b1685538825a6716a4181382944b71921ed9d4bd Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Tue, 12 Aug 2025 21:20:26 -0400 Subject: [PATCH 25/37] managed to create acceptable prototype material system (still much to be done) --- .../descriptors/BaseDescriptorWriter.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BaseDescriptorWriter.java diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BaseDescriptorWriter.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BaseDescriptorWriter.java new file mode 100644 index 0000000000..0e2a623e4d --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BaseDescriptorWriter.java @@ -0,0 +1,46 @@ +package com.jme3.vulkan.descriptors; + +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkWriteDescriptorSet; + +public class BaseDescriptorWriter implements DescriptorSetWriter { + + private final Descriptor type; + private final int binding, arrayElement, descriptorCount; + + public BaseDescriptorWriter(Descriptor type, int binding, int arrayElement, int descriptorCount) { + this.type = type; + this.binding = binding; + this.arrayElement = arrayElement; + this.descriptorCount = descriptorCount; + } + + @Override + public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { + write.descriptorType(type.getVkEnum()).dstBinding(binding) + .dstArrayElement(arrayElement) + .descriptorCount(descriptorCount); + } + + @Override + public boolean isUpdateNeeded() { + throw new UnsupportedOperationException(); + } + + public Descriptor getType() { + return type; + } + + public int getBinding() { + return binding; + } + + public int getArrayElement() { + return arrayElement; + } + + public int getDescriptorCount() { + return descriptorCount; + } + +} From 6c0dbaf794fdb4484bcb1af8f7fa5031e6ed53eb Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Wed, 13 Aug 2025 11:52:04 -0400 Subject: [PATCH 26/37] altered material system slightly --- .../vulkan/descriptors/DescriptorSet.java | 28 ++--- .../jme3/vulkan/material/BufferUniform.java | 4 +- .../com/jme3/vulkan/material/Material.java | 100 ++++++------------ .../com/jme3/vulkan/material/MaterialDef.java | 7 ++ .../vulkan/material/PBRLightingMaterial.java | 11 ++ .../com/jme3/vulkan/material/Uniform.java | 26 +---- .../com/jme3/vulkan/material/UniformSet.java | 86 +++++++++++++++ 7 files changed, 153 insertions(+), 109 deletions(-) create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/MaterialDef.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/PBRLightingMaterial.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/UniformSet.java diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java index c13db183de..2eec597d24 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java @@ -19,7 +19,6 @@ public class DescriptorSet { private final DescriptorPool pool; private final DescriptorSetLayout layout; private final long id; - private final Collection writers = new ArrayList<>(); public DescriptorSet(LogicalDevice device, DescriptorPool pool, DescriptorSetLayout layout, long id) { this.device = device; @@ -28,14 +27,9 @@ public DescriptorSet(LogicalDevice device, DescriptorPool pool, DescriptorSet this.id = id; } - public void update() { + public void update(boolean force, DescriptorSetWriter... writers) { try (MemoryStack stack = MemoryStack.stackPush()) { - int updating = 0; - for (DescriptorSetWriter w : writers) { - if (w.isUpdateNeeded()) { - updating++; - } - } + int updating = countWritersToUpdate(force, writers); if (updating > 0) { VkWriteDescriptorSet.Buffer write = VkWriteDescriptorSet.calloc(updating, stack); for (DescriptorSetWriter w : writers) { @@ -51,17 +45,17 @@ public void update() { } } - public void write(DescriptorSetWriter... writers) { - try (MemoryStack stack = MemoryStack.stackPush()) { - VkWriteDescriptorSet.Buffer write = VkWriteDescriptorSet.calloc(writers.length, stack); - for (DescriptorSetWriter w : writers) { - w.populateWrite(stack, write.get() - .sType(VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET) - .dstSet(id)); + private int countWritersToUpdate(boolean force, DescriptorSetWriter... writers) { + if (force) { + return writers.length; + } + int updating = 0; + for (DescriptorSetWriter w : writers) { + if (w.isUpdateNeeded()) { + updating++; } - write.flip(); - vkUpdateDescriptorSets(device.getNativeObject(), write, null); } + return updating; } public void free() { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/BufferUniform.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/BufferUniform.java index 8035126e44..8f5e97cbba 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/BufferUniform.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/BufferUniform.java @@ -8,8 +8,8 @@ public class BufferUniform extends Uniform { - public BufferUniform(String name, Descriptor type, int setIndex, int bindingIndex) { - super(name, type, setIndex, bindingIndex); + public BufferUniform(String name, Descriptor type, int bindingIndex) { + super(name, type, bindingIndex); } @Override diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java index 4aa0e97035..edfb930108 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java @@ -1,11 +1,12 @@ package com.jme3.vulkan.material; -import com.jme3.util.IntMap; import com.jme3.vulkan.commands.CommandBuffer; import com.jme3.vulkan.descriptors.*; import com.jme3.vulkan.pipelines.Pipeline; +import com.jme3.vulkan.pipelines.PipelineLayout; import org.lwjgl.system.MemoryStack; +import java.lang.ref.WeakReference; import java.nio.LongBuffer; import java.util.*; @@ -16,82 +17,42 @@ */ public class Material { - private final Pipeline pipeline; - private final DescriptorSet[] sets; - private final Map> uniforms = new HashMap<>(); + private final DescriptorPool pool; + private final List uniforms = new ArrayList<>(); - public Material(Pipeline pipeline, DescriptorPool pool, Collection> uniforms) { - this.pipeline = pipeline; - for (Uniform u : uniforms) { - if (this.uniforms.put(u.getName(), u) != null) { - throw new IllegalArgumentException("Duplicate uniform name: " + u.getName()); - } - } - this.sets = allocateSets(pipeline, pool, uniforms); + public Material(DescriptorPool pool) { + this.pool = pool; } - private DescriptorSet[] allocateSets(Pipeline pipeline, DescriptorPool pool, Collection> uniforms) { - // group uniforms by set index - IntMap>> uniformsBySet = new IntMap<>(); - for (Uniform u : uniforms) { - List> set = uniformsBySet.get(u.getSetIndex()); - if (set == null) { - set = new ArrayList<>(); - uniformsBySet.put(u.getSetIndex(), set); - } - set.add(u); - } - // there must be enough layouts for all sets to have a different layout - if (uniformsBySet.size() > pipeline.getLayout().getDescriptorSetLayouts().length) { - throw new IllegalArgumentException("Pipeline layout does not contain enough descriptor set layouts."); - } - List availableLayouts = new LinkedList<>( + public void bind(CommandBuffer cmd, Pipeline pipeline) { + LinkedList availableLayouts = new LinkedList<>( Arrays.asList(pipeline.getLayout().getDescriptorSetLayouts())); - List matchedLayouts = new ArrayList<>(uniformsBySet.size()); - // for each set definition, find a set layout that matches the definition - setLoop: for (IntMap.Entry>> set : uniformsBySet) { - // Search for a layout that is compatible with the set definition - layoutLoop: for (Iterator it = availableLayouts.iterator(); it.hasNext();) { - DescriptorSetLayout layout = it.next(); - requiredLoop: for (Uniform u : set.getValue()) { - // find a layout binding that matches the requirement - for (SetLayoutBinding available : layout.getBindings()) { - if (u.isBindingCompatible(available)) { - // Assign this binding to the uniform. - // todo: figure out a safer way to do this - u.setBinding(available); - continue requiredLoop; - } - } - // Layout does not contain a binding at the requested index. - // Layout is incompatible, try the next layout. - continue layoutLoop; - } - // Layout is compatible with the set definition - matchedLayouts.add(layout); - it.remove(); - continue setLoop; + ArrayList allocationLayouts = new ArrayList<>(availableLayouts.size()); + ArrayList allocationTargets = new ArrayList<>(availableLayouts.size()); + for (UniformSet set : uniforms) { + DescriptorSetLayout allocation = set.selectActiveSet(availableLayouts); + if (allocation != null) { + allocationLayouts.add(allocation); + allocationTargets.add(set); } - // No layout is available that is compatible with the set definition - throw new IllegalArgumentException("Set layout required by material is not supported by the pipeline."); } - if (matchedLayouts.size() != uniformsBySet.size()) { - // Not every set definition found a compatible layout. This error - // should technically be reported by a previous error, but it - // doesn't hurt to be totally sure. - throw new IllegalArgumentException("Material requirements are not compatible with pipeline."); + if (!allocationLayouts.isEmpty()) { + if (allocationLayouts.size() != allocationTargets.size()) { + throw new IllegalStateException("Each layout must have a corresponding target uniform set."); + } + DescriptorSet[] allocatedSets = pool.allocateSets( + allocationLayouts.toArray(new DescriptorSetLayout[0])); + for (int i = 0; i < allocatedSets.length; i++) { + allocationTargets.get(i).addActiveSet(allocatedSets[i]); + } } - return pool.allocateSets(matchedLayouts.toArray(new DescriptorSetLayout[0])); - } - - public void bind(CommandBuffer cmd) { - for (DescriptorSet set : sets) { + for (UniformSet set : uniforms) { set.update(); // write updates to the set } try (MemoryStack stack = MemoryStack.stackPush()) { - LongBuffer setBuf = stack.mallocLong(sets.length); - for (DescriptorSet s : sets) { - setBuf.put(s.getId()); + LongBuffer setBuf = stack.mallocLong(uniforms.size()); + for (UniformSet s : uniforms) { + setBuf.put(s.getActiveSet().getId()); } setBuf.flip(); vkCmdBindDescriptorSets(cmd.getBuffer(), pipeline.getBindPoint().getVkEnum(), @@ -99,8 +60,9 @@ public void bind(CommandBuffer cmd) { } } - public Uniform get(String name) { - return uniforms.get(name); + protected UniformSet addSet(UniformSet set) { + uniforms.add(set); + return set; } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/MaterialDef.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/MaterialDef.java new file mode 100644 index 0000000000..a15500246f --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/MaterialDef.java @@ -0,0 +1,7 @@ +package com.jme3.vulkan.material; + +public class MaterialDef { + + + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/PBRLightingMaterial.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/PBRLightingMaterial.java new file mode 100644 index 0000000000..a35809bc8b --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/PBRLightingMaterial.java @@ -0,0 +1,11 @@ +package com.jme3.vulkan.material; + +import com.jme3.vulkan.descriptors.DescriptorPool; + +public class PBRLightingMaterial extends Material { + + public PBRLightingMaterial(DescriptorPool pool) { + super(pool); + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Uniform.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Uniform.java index 2f44daf544..fd7b823e04 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Uniform.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Uniform.java @@ -10,23 +10,20 @@ public abstract class Uniform implements DescriptorSetWriter { private final String name; private final Descriptor type; - private final int setIndex; private final int bindingIndex; - private SetLayoutBinding binding; private boolean updateFlag = true; protected T value; - public Uniform(String name, Descriptor type, int setIndex, int bindingIndex) { + public Uniform(String name, Descriptor type, int bindingIndex) { this.name = name; this.type = type; - this.setIndex = setIndex; this.bindingIndex = bindingIndex; } @Override public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { write.descriptorType(type.getVkEnum()) - .dstBinding(binding.getBinding()) + .dstBinding(bindingIndex) .dstArrayElement(0) .descriptorCount(1); } @@ -37,14 +34,9 @@ public boolean isUpdateNeeded() { } public boolean isBindingCompatible(SetLayoutBinding binding) { - return binding.getType() == type && binding.getBinding() == bindingIndex; - } - - public void setBinding(SetLayoutBinding binding) { - if (!isBindingCompatible(binding)) { - throw new IllegalArgumentException("Incompatible binding provided."); - } - this.binding = binding; + return binding.getType() == type + && binding.getBinding() == bindingIndex + && binding.getDescriptors() == 1; } public void setValue(T value) { @@ -66,14 +58,6 @@ public Descriptor getType() { return type; } - public SetLayoutBinding getBinding() { - return binding; - } - - public int getSetIndex() { - return setIndex; - } - public int getBindingIndex() { return bindingIndex; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/UniformSet.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/UniformSet.java new file mode 100644 index 0000000000..9f51a57650 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/UniformSet.java @@ -0,0 +1,86 @@ +package com.jme3.vulkan.material; + +import com.jme3.vulkan.descriptors.DescriptorSet; +import com.jme3.vulkan.descriptors.DescriptorSetLayout; +import com.jme3.vulkan.descriptors.SetLayoutBinding; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +public class UniformSet { + + private final Uniform[] uniforms; + private final List sets = new ArrayList<>(); + private DescriptorSet activeSet; + private boolean updateFlag = true; + + public UniformSet(Uniform... uniforms) { + this.uniforms = uniforms; + } + + public void addActiveSet(DescriptorSet activeSet) { + if (this.activeSet == activeSet) { + updateFlag = true; + } + this.activeSet = activeSet; + sets.add(activeSet); + } + + public DescriptorSetLayout selectActiveSet(List availableLayouts) { + if (activeSet == null || !availableLayouts.remove(activeSet.getLayout())) { + for (DescriptorSet s : sets) { + if (availableLayouts.remove(s.getLayout())) { + this.activeSet = s; + return null; + } + } + // Search for a layout that is compatible with the set definition + layoutLoop: for (Iterator it = availableLayouts.iterator(); it.hasNext();) { + DescriptorSetLayout layout = it.next(); + requiredLoop: for (Uniform u : uniforms) { + // find a layout binding that matches the requirement + for (SetLayoutBinding available : layout.getBindings()) { + if (u.isBindingCompatible(available)) { + // compatible binding found + continue requiredLoop; + } + } + // Layout does not contain a binding at the requested index. + // Layout is incompatible, try the next layout. + continue layoutLoop; + } + // Layout is compatible with the set definition + it.remove(); + return layout; + } + throw new IllegalStateException("Pipeline layout does not support uniform set."); + } + return null; + } + + public void update() { + if (activeSet == null) { + throw new NullPointerException("No descriptor set selected."); + } + activeSet.update(updateFlag, uniforms); + updateFlag = false; + } + + public void setActiveSet(DescriptorSet activeSet) { + this.activeSet = activeSet; + } + + public Uniform[] getUniforms() { + return uniforms; + } + + public List getAllocatedSets() { + return sets; + } + + public DescriptorSet getActiveSet() { + return activeSet; + } + +} From f7d3679ebb540fe2f2782f09b4368098e8085035 Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Wed, 13 Aug 2025 13:21:14 -0400 Subject: [PATCH 27/37] basic material system is working --- .../vulkan/VkGLCompatibilityTest.java | 2 +- .../jme3test/vulkan/VulkanHelperTest.java | 33 ++++++++++------ .../java/com/jme3/shaderc/ShadercLoader.java | 28 ++++++++------ .../com/jme3/vulkan/buffers/GpuBuffer.java | 7 ++++ .../descriptors/BaseDescriptorWriter.java | 5 --- .../descriptors/DescriptorSetWriter.java | 4 +- .../jme3/vulkan/images/VulkanImageLoader.java | 3 +- .../jme3/vulkan/material/BufferUniform.java | 4 ++ .../com/jme3/vulkan/material/Material.java | 28 ++++++++++++-- .../vulkan/material/PBRLightingMaterial.java | 11 ------ .../jme3/vulkan/material/TestMaterial.java | 29 ++++++++++++++ .../jme3/vulkan/material/TextureUniform.java | 38 +++++++++++++++++++ .../com/jme3/vulkan/material/Uniform.java | 12 +++++- .../com/jme3/vulkan/material/UniformSet.java | 8 ++++ .../main/java/com/jme3/vulkan/mesh/Mesh.java | 2 +- .../jme3/vulkan/shader/UniformTestStruct.java | 4 ++ .../resources/Shaders/VulkanVertTest.glsl | 26 ++----------- 17 files changed, 174 insertions(+), 70 deletions(-) delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/PBRLightingMaterial.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TestMaterial.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TextureUniform.java diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VkGLCompatibilityTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VkGLCompatibilityTest.java index 7109080075..1acc6a3bac 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VkGLCompatibilityTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VkGLCompatibilityTest.java @@ -25,7 +25,7 @@ public VkGLCompatibilityTest() { @Override public void simpleInitApp() { - Material material; + //Material material; } diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java index 72c3560c60..27b1c53fba 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java @@ -21,6 +21,7 @@ import com.jme3.vulkan.flags.MemoryFlags; import com.jme3.vulkan.flags.BufferUsageFlags; import com.jme3.vulkan.images.*; +import com.jme3.vulkan.material.TestMaterial; import com.jme3.vulkan.pass.Attachment; import com.jme3.vulkan.pass.Subpass; import com.jme3.vulkan.pipelines.GraphicsPipeline; @@ -310,18 +311,24 @@ private class Frame implements Consumer { private final Fence inFlight = new Fence(device, true); // material - private final GpuBuffer uniforms; - private final DescriptorSet descriptorSet; +// private final GpuBuffer uniforms; +// private final DescriptorSet descriptorSet; + private final TestMaterial material = new TestMaterial(descriptorPool); public Frame() { // using a persistent buffer because we will be writing to the buffer very often - uniforms = new PersistentBuffer(device, MemorySize.floats(16), +// uniforms = new PersistentBuffer(device, MemorySize.floats(16), +// new BufferUsageFlags().uniformBuffer(), +// new MemoryFlags().hostVisible().hostCoherent(), false); +// descriptorSet = descriptorPool.allocateSets(descriptorLayout)[0]; +// descriptorSet.update(true, +// new BufferSetWriter(Descriptor.UniformBuffer, 0, 0, new BufferDescriptor(uniforms)), +// new ImageSetWriter(Descriptor.CombinedImageSampler, 1, 0, new ImageDescriptor(texture, Image.Layout.ShaderReadOnlyOptimal))); + material.getMatrices().setValue(new PersistentBuffer(device, + MemorySize.floats(16), new BufferUsageFlags().uniformBuffer(), - new MemoryFlags().hostVisible().hostCoherent(), false); - descriptorSet = descriptorPool.allocateSets(descriptorLayout)[0]; - descriptorSet.write( - new BufferSetWriter(Descriptor.UniformBuffer, 0, 0, new BufferDescriptor(uniforms)), - new ImageSetWriter(Descriptor.CombinedImageSampler, 1, 0, new ImageDescriptor(texture, Image.Layout.ShaderReadOnlyOptimal))); + new MemoryFlags().hostVisible().hostCoherent(), false)); + material.getBaseColorMap().setValue(texture); } @Override @@ -348,12 +355,14 @@ public void accept(Float tpf) { // geometry modelTransform.getRotation().multLocal(new Quaternion().fromAngleAxis(tpf, Vector3f.UNIT_Y)); cam.getViewProjectionMatrix().mult(modelTransform.toTransformMatrix()) + .fillFloatBuffer( // material - .fillFloatBuffer(uniforms.mapFloats(stack, 0, 16, 0), true); - uniforms.unmap(); - vkCmdBindDescriptorSets(graphicsCommands.getBuffer(), pipeline.getBindPoint().getVkEnum(), - pipelineLayout.getNativeObject(), 0, stack.longs(descriptorSet.getId()), null); + material.getMatrices().getValue().mapFloats(stack, 0, 16, 0), true); + material.getMatrices().getValue().unmap(); + material.bind(graphicsCommands, pipeline); +// vkCmdBindDescriptorSets(graphicsCommands.getBuffer(), pipeline.getBindPoint().getVkEnum(), +// pipelineLayout.getNativeObject(), 0, stack.longs(descriptorSet.getId()), null); // viewport VkViewport.Buffer vp = VkViewport.calloc(1, stack) diff --git a/jme3-lwjgl3/src/main/java/com/jme3/shaderc/ShadercLoader.java b/jme3-lwjgl3/src/main/java/com/jme3/shaderc/ShadercLoader.java index a816e1b0b4..8ffce7d8c8 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/shaderc/ShadercLoader.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/shaderc/ShadercLoader.java @@ -45,24 +45,30 @@ public static ByteBuffer compile(String name, String code, ShaderType type, Stri synchronized (compiler) { try (MemoryStack stack = MemoryStack.stackPush()) { long preprocessed = Shaderc.shaderc_compile_into_preprocessed_text(compiler.getNativeObject(), code, type.getShaderc(), name, entry, NULL); + handleCompileCodes(preprocessed, name, code); ByteBuffer bytecode = Objects.requireNonNull(Shaderc.shaderc_result_get_bytes(preprocessed)); long compiled = Shaderc.shaderc_compile_into_spv(compiler.getNativeObject(), bytecode, type.getShaderc(), stack.UTF8(name), stack.UTF8(entry), NULL); - if (Shaderc.shaderc_result_get_compilation_status(compiled) != Shaderc.shaderc_compilation_status_success) { - LOG.log(Level.SEVERE, "Bad compile of\n{0}", ShaderDebug.formatShaderSource(code)); - throw new RuntimeException("Failed to compile " + name + ":\n" - + Shaderc.shaderc_result_get_error_message(compiled)); - } - long warnings = Shaderc.shaderc_result_get_num_warnings(compiled); - if (warnings > 0) { - LOG.warning("Compiled with " + warnings + " warning" + (warnings == 1 ? "" : "s") + ": " + name); - } else { - LOG.fine("Compiled with no warnings: " + name); - } + handleCompileCodes(compiled, name, code); return Shaderc.shaderc_result_get_bytes(compiled); }} } + private static void handleCompileCodes(long result, String name, String code) { + int status = Shaderc.shaderc_result_get_compilation_status(result); + if (status != Shaderc.shaderc_compilation_status_success) { + LOG.log(Level.SEVERE, "Bad compile of\n{0}", ShaderDebug.formatShaderSource(code)); + throw new RuntimeException("Failed to compile " + name + ":\n" + + Shaderc.shaderc_result_get_error_message(result)); + } + long warnings = Shaderc.shaderc_result_get_num_warnings(result); + if (warnings > 0) { + LOG.warning("Compiled with " + warnings + " warning" + (warnings == 1 ? "" : "s") + ": " + name); + } else { + LOG.fine("Compiled with no warnings: " + name); + } + } + public static AssetKey key(String name, ShaderType type) { return new Key(name, type, "main"); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java index f9e308b914..ce898ac85f 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java @@ -10,11 +10,14 @@ import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryUtil; +import org.lwjgl.system.Struct; import org.lwjgl.vulkan.VkBufferCopy; import org.lwjgl.vulkan.VkBufferCreateInfo; import org.lwjgl.vulkan.VkMemoryRequirements; import java.nio.*; +import java.util.function.Function; +import java.util.function.LongFunction; import static com.jme3.renderer.vulkan.VulkanUtils.*; import static org.lwjgl.vulkan.VK10.*; @@ -103,6 +106,10 @@ public LongBuffer mapLongs(MemoryStack stack, int offset, int size, int flags) { return map(stack, offset, size * Long.BYTES, flags).getLongBuffer(0, size); } + public > T mapStruct(MemoryStack stack, int offset, int size, int flags, LongFunction factory) { + return factory.apply(map(stack, offset, size, flags).get(0)); + } + public void copy(MemoryStack stack, ByteBuffer buffer) { verifyBufferSize(buffer, Byte.BYTES); MemoryUtil.memCopy(buffer, mapBytes(stack, 0, buffer.limit(), 0)); diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BaseDescriptorWriter.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BaseDescriptorWriter.java index 0e2a623e4d..44a22d6e10 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BaseDescriptorWriter.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/BaseDescriptorWriter.java @@ -22,11 +22,6 @@ public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { .descriptorCount(descriptorCount); } - @Override - public boolean isUpdateNeeded() { - throw new UnsupportedOperationException(); - } - public Descriptor getType() { return type; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetWriter.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetWriter.java index 032a2375ab..027d43889f 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetWriter.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetWriter.java @@ -7,6 +7,8 @@ public interface DescriptorSetWriter { void populateWrite(MemoryStack stack, VkWriteDescriptorSet write); - boolean isUpdateNeeded(); + default boolean isUpdateNeeded() { + return true; + } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java index c3ef56b3af..df7de5b60a 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java @@ -2,6 +2,7 @@ import com.jme3.asset.*; import com.jme3.util.BufferUtils; +import com.jme3.vulkan.buffers.MemorySize; import com.jme3.vulkan.commands.CommandBuffer; import com.jme3.vulkan.commands.CommandPool; import com.jme3.vulkan.buffers.GpuBuffer; @@ -150,7 +151,7 @@ private void flipImage(byte[] img, int width, int height, int bpp) { private GpuImage loadGpuImage(CommandPool transferPool, ImageData data) { try (MemoryStack stack = MemoryStack.stackPush()) { - GpuBuffer staging = new GpuBuffer(transferPool.getDevice(), data.getBuffer().limit(), + GpuBuffer staging = new GpuBuffer(transferPool.getDevice(), MemorySize.bytes(data.getBuffer().limit()), new BufferUsageFlags().transferSrc(), new MemoryFlags().hostVisible().hostCoherent(), false); staging.copy(stack, data.getBuffer()); GpuImage image = new GpuImage(transferPool.getDevice(), data.getWidth(), data.getHeight(), data.getFormat(), diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/BufferUniform.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/BufferUniform.java index 8f5e97cbba..1d00b83fbf 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/BufferUniform.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/BufferUniform.java @@ -8,6 +8,10 @@ public class BufferUniform extends Uniform { + public BufferUniform(Descriptor type, int bindingIndex) { + super(type, bindingIndex); + } + public BufferUniform(String name, Descriptor type, int bindingIndex) { super(name, type, bindingIndex); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java index edfb930108..089d946f71 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java @@ -3,10 +3,8 @@ import com.jme3.vulkan.commands.CommandBuffer; import com.jme3.vulkan.descriptors.*; import com.jme3.vulkan.pipelines.Pipeline; -import com.jme3.vulkan.pipelines.PipelineLayout; import org.lwjgl.system.MemoryStack; -import java.lang.ref.WeakReference; import java.nio.LongBuffer; import java.util.*; @@ -25,6 +23,10 @@ public Material(DescriptorPool pool) { } public void bind(CommandBuffer cmd, Pipeline pipeline) { + bind(cmd, pipeline, 0); + } + + public void bind(CommandBuffer cmd, Pipeline pipeline, int offset) { LinkedList availableLayouts = new LinkedList<>( Arrays.asList(pipeline.getLayout().getDescriptorSetLayouts())); ArrayList allocationLayouts = new ArrayList<>(availableLayouts.size()); @@ -56,7 +58,7 @@ public void bind(CommandBuffer cmd, Pipeline pipeline) { } setBuf.flip(); vkCmdBindDescriptorSets(cmd.getBuffer(), pipeline.getBindPoint().getVkEnum(), - pipeline.getLayout().getNativeObject(), 0, setBuf, null); + pipeline.getLayout().getNativeObject(), offset, setBuf, null); } } @@ -65,4 +67,24 @@ protected UniformSet addSet(UniformSet set) { return set; } + protected UniformSet addSet(Uniform... uniforms) { + return addSet(new UniformSet(uniforms)); + } + + public List getSets() { + return Collections.unmodifiableList(uniforms); + } + + @SuppressWarnings("unchecked") + public Uniform get(String name) { + for (UniformSet s : uniforms) { + for (Uniform u : s.getUniforms()) { + if (name.equals(u.getName())) { + return (Uniform)u; + } + } + } + return null; + } + } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/PBRLightingMaterial.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/PBRLightingMaterial.java deleted file mode 100644 index a35809bc8b..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/PBRLightingMaterial.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.jme3.vulkan.material; - -import com.jme3.vulkan.descriptors.DescriptorPool; - -public class PBRLightingMaterial extends Material { - - public PBRLightingMaterial(DescriptorPool pool) { - super(pool); - } - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TestMaterial.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TestMaterial.java new file mode 100644 index 0000000000..2750aa90a9 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TestMaterial.java @@ -0,0 +1,29 @@ +package com.jme3.vulkan.material; + +import com.jme3.vulkan.buffers.GpuBuffer; +import com.jme3.vulkan.descriptors.Descriptor; +import com.jme3.vulkan.descriptors.DescriptorPool; +import com.jme3.vulkan.images.Image; +import com.jme3.vulkan.images.Texture; + +public class TestMaterial extends Material { + + private final BufferUniform matrices = new BufferUniform<>( + Descriptor.UniformBuffer, 0); + private final TextureUniform baseColorMap = new TextureUniform( + Image.Layout.ShaderReadOnlyOptimal, 1); + + public TestMaterial(DescriptorPool pool) { + super(pool); + addSet(matrices, baseColorMap); + } + + public Uniform getMatrices() { + return matrices; + } + + public Uniform getBaseColorMap() { + return baseColorMap; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TextureUniform.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TextureUniform.java new file mode 100644 index 0000000000..49936502dc --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TextureUniform.java @@ -0,0 +1,38 @@ +package com.jme3.vulkan.material; + +import com.jme3.vulkan.descriptors.Descriptor; +import com.jme3.vulkan.images.Image; +import com.jme3.vulkan.images.Texture; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkDescriptorImageInfo; +import org.lwjgl.vulkan.VkWriteDescriptorSet; + +public class TextureUniform extends Uniform { + + private final Image.Layout layout; + + public TextureUniform(Image.Layout layout, int bindingIndex) { + super(Descriptor.CombinedImageSampler, bindingIndex); + this.layout = layout; + } + + public TextureUniform(Image.Layout layout, String name, int bindingIndex) { + super(name, Descriptor.CombinedImageSampler, bindingIndex); + this.layout = layout; + } + + @Override + public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { + super.populateWrite(stack, write); + VkDescriptorImageInfo.Buffer info = VkDescriptorImageInfo.calloc(1, stack) + .imageView(value.getImage().getNativeObject()) + .sampler(value.getNativeObject()) + .imageLayout(layout.getVkEnum()); + write.pImageInfo(info); + } + + public Image.Layout getLayout() { + return layout; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Uniform.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Uniform.java index fd7b823e04..033b5b92a7 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Uniform.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Uniform.java @@ -6,7 +6,13 @@ import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkWriteDescriptorSet; -public abstract class Uniform implements DescriptorSetWriter { +public class Uniform implements DescriptorSetWriter { + + /** + * Placeholder for uniforms that weren't provided with a name, + * usually because uniform names are unnecessary. + */ + public static final String UNNAMED = "unnamed_uniform"; private final String name; private final Descriptor type; @@ -14,6 +20,10 @@ public abstract class Uniform implements DescriptorSetWriter { private boolean updateFlag = true; protected T value; + public Uniform(Descriptor type, int bindingIndex) { + this(UNNAMED, type, bindingIndex); + } + public Uniform(String name, Descriptor type, int bindingIndex) { this.name = name; this.type = type; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/UniformSet.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/UniformSet.java index 9f51a57650..1b489c2c6d 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/UniformSet.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/UniformSet.java @@ -5,6 +5,7 @@ import com.jme3.vulkan.descriptors.SetLayoutBinding; import java.util.ArrayList; +import java.util.HashSet; import java.util.Iterator; import java.util.List; @@ -17,6 +18,13 @@ public class UniformSet { public UniformSet(Uniform... uniforms) { this.uniforms = uniforms; + // ensure duplicate binding indices are not present + HashSet bindings = new HashSet<>(); + for (Uniform u : uniforms) { + if (!bindings.add(u.getBindingIndex())) { + throw new IllegalArgumentException("Duplicate binding index in set: " + u.getBindingIndex()); + } + } } public void addActiveSet(DescriptorSet activeSet) { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/mesh/Mesh.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/mesh/Mesh.java index 973bb325f4..576c69eb59 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/mesh/Mesh.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/mesh/Mesh.java @@ -35,7 +35,7 @@ public void bindVertexBuffers(CommandBuffer cmd) { } public void draw(CommandBuffer cmd) { - vkCmdDrawIndexed(cmd.getBuffer(), indexBuffer.size() / Integer.BYTES, 1, 0, 0, 0); + vkCmdDrawIndexed(cmd.getBuffer(), indexBuffer.size().getElements(), 1, 0, 0, 0); } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/UniformTestStruct.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/UniformTestStruct.java index 40bd2fa536..55a851d9c0 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/UniformTestStruct.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/UniformTestStruct.java @@ -67,6 +67,10 @@ public static UniformTestStruct calloc() { return new UniformTestStruct(MemoryUtil.nmemCallocChecked(1, SIZEOF), null); } + public static UniformTestStruct create(long address) { + return new UniformTestStruct(address, null); + } + public static class Buffer extends StructBuffer implements NativeResource { private static final UniformTestStruct FACTORY = new UniformTestStruct(-1L, null); diff --git a/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl b/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl index 643876adb8..8ce5768a80 100644 --- a/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl +++ b/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.glsl @@ -1,11 +1,5 @@ #version 450 -// added by preprocessor -#define VULKAN 1 -#ifdef OPENGL - // GLSLCompat stuff -#endif - layout (location = 0) in vec3 inPosition; layout (location = 1) in vec3 inColor; layout (location = 2) in vec2 inTexCoord; @@ -13,26 +7,12 @@ layout (location = 2) in vec2 inTexCoord; layout (location = 0) out vec3 fragColor; layout (location = 1) out vec2 texCoord; -#use com.jme3.vulkan.material.UniformBuffer as UniformBuffer - -#param Camera UniformBuffer(set = 0, binding = 0) -layout (Camera) uniform CameraBuffer { - mat4 viewProjectionMatrix; +layout (set = 0, binding = 0) uniform CameraBuffer { + mat4 worldViewProjectionMatrix; } cam; -#param Material UniformBuffer(set = 1, binding = 0) -layout (Material) uniform MaterialBuffer { - vec3 color; - float metallic; - float roughness; -} mat; -#param Geometry UniformBuffer(set = 2, binding = 0) -layout (Geometry) uniform GeometryBuffer { - mat4 worldMatrix; -} geom; - void main() { - gl_Position = cam.viewProjectionMatrix * geom.worldMatrix * vec4(inPosition, 1.0); + gl_Position = cam.worldViewProjectionMatrix * vec4(inPosition, 1.0); fragColor = inColor; texCoord = inTexCoord; } \ No newline at end of file From 62882d429fa40310c0f935ca86e41003875b511d Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Wed, 13 Aug 2025 18:10:37 -0400 Subject: [PATCH 28/37] basic material system is working --- .../jme3test/vulkan/VulkanHelperTest.java | 8 +++---- .../com/jme3/vulkan/buffers/GpuBuffer.java | 23 ++++++++++++------- .../jme3/vulkan/buffers/StageableBuffer.java | 17 ++++++++++---- .../jme3/vulkan/material/BufferUniform.java | 10 ++++++++ .../jme3/vulkan/material/TestMaterial.java | 5 ++-- .../com/jme3/vulkan/material/Uniform.java | 2 +- 6 files changed, 44 insertions(+), 21 deletions(-) diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java index 27b1c53fba..3e9a74161f 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java @@ -221,17 +221,15 @@ public void simpleInitApp() { // cpu-accessible memory is not usually fast for the gpu to access, but // the cpu cannot directly access fast gpu memory. The solution is to // copy cpu-side data to a mutual staging buffer, then have the gpu copy - // that data to faster memory. Hence, why we do two copy operations here. - vertexBuffer = new StageableBuffer(device, MemorySize.floats(vertexData.capacity()), + // that data to faster memory. Hence, why we use a StageableBuffer here. + vertexBuffer = new StageableBuffer(device, transferPool, MemorySize.floats(vertexData.capacity()), new BufferUsageFlags().vertexBuffer(), new MemoryFlags().deviceLocal(), false); vertexBuffer.copy(stack, vertexData); // copy data to staging buffer - vertexBuffer.transfer(transferPool); // transfer staged data to vertex buffer vertexBuffer.freeStagingBuffer(); // index buffer - indexBuffer = new StageableBuffer(device, MemorySize.ints(indexData.capacity()), + indexBuffer = new StageableBuffer(device, transferPool, MemorySize.ints(indexData.capacity()), new BufferUsageFlags().indexBuffer(), new MemoryFlags().deviceLocal(), false); indexBuffer.copy(stack, indexData); - indexBuffer.transfer(transferPool); indexBuffer.freeStagingBuffer(); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java index ce898ac85f..22362ea545 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java @@ -72,8 +72,8 @@ public NativeReference getNativeReference() { return ref; } - private void verifyBufferSize(Buffer buffer, long bytesPerElement) { - if (buffer.limit() * bytesPerElement > size.getBytes()) { + private void verifyBufferSize(int elements, long bytesPerElement) { + if (elements * bytesPerElement > size.getBytes()) { throw new BufferOverflowException(); } } @@ -111,41 +111,48 @@ public > T mapStruct(MemoryStack stack, int offset, int size } public void copy(MemoryStack stack, ByteBuffer buffer) { - verifyBufferSize(buffer, Byte.BYTES); + verifyBufferSize(buffer.limit(), Byte.BYTES); MemoryUtil.memCopy(buffer, mapBytes(stack, 0, buffer.limit(), 0)); unmap(); } public void copy(MemoryStack stack, ShortBuffer buffer) { - verifyBufferSize(buffer, Short.BYTES); + verifyBufferSize(buffer.limit(), Short.BYTES); MemoryUtil.memCopy(buffer, mapShorts(stack, 0, buffer.limit(), 0)); unmap(); } public void copy(MemoryStack stack, IntBuffer buffer) { - verifyBufferSize(buffer, Integer.BYTES); + verifyBufferSize(buffer.limit(), Integer.BYTES); MemoryUtil.memCopy(buffer, mapInts(stack, 0, buffer.limit(), 0)); unmap(); } public void copy(MemoryStack stack, FloatBuffer buffer) { - verifyBufferSize(buffer, Float.BYTES); + verifyBufferSize(buffer.limit(), Float.BYTES); MemoryUtil.memCopy(buffer, mapFloats(stack, 0, buffer.limit(), 0)); unmap(); } public void copy(MemoryStack stack, DoubleBuffer buffer) { - verifyBufferSize(buffer, Double.BYTES); + verifyBufferSize(buffer.limit(), Double.BYTES); MemoryUtil.memCopy(buffer, mapDoubles(stack, 0, buffer.limit(), 0)); unmap(); } public void copy(MemoryStack stack, LongBuffer buffer) { - verifyBufferSize(buffer, Long.BYTES); + verifyBufferSize(buffer.limit(), Long.BYTES); MemoryUtil.memCopy(buffer, mapLongs(stack, 0, buffer.limit(), 0)); unmap(); } + public void copy(MemoryStack stack, Struct struct) { + verifyBufferSize(struct.sizeof(), Byte.BYTES); + MemoryUtil.memCopy(MemoryUtil.memByteBuffer(struct.address(), struct.sizeof()), + mapBytes(stack, 0, struct.sizeof(), 0)); + unmap(); + } + public void unmap() { memory.unmap(); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java index 451ecac6f1..5bdbdf0d32 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java @@ -12,10 +12,13 @@ public class StageableBuffer extends GpuBuffer { + private final CommandPool transferPool; private final GpuBuffer stage; - public StageableBuffer(LogicalDevice device, MemorySize size, BufferUsageFlags usage, MemoryFlags mem, boolean concurrent) { + public StageableBuffer(LogicalDevice device, CommandPool transferPool, MemorySize size, + BufferUsageFlags usage, MemoryFlags mem, boolean concurrent) { super(device, size, usage.transferDst(), mem, concurrent); + this.transferPool = transferPool; stage = new GpuBuffer(device, size, new BufferUsageFlags().transferSrc(), new MemoryFlags().hostVisible().hostCoherent(), concurrent); } @@ -28,6 +31,7 @@ public PointerBuffer map(MemoryStack stack, int offset, int size, int flags) { @Override public void unmap() { stage.unmap(); + transfer(); } @Override @@ -36,12 +40,17 @@ public void freeMemory() { stage.freeMemory(); } - public void transfer(CommandPool transferPool) { - transfer(transferPool, null, null, null); + public void unmap(Semaphore wait, Semaphore signal, Fence fence) { + stage.unmap(); + transfer(wait, signal, fence); + } + + public void transfer() { + transfer(null, null, null); transferPool.getQueue().waitIdle(); } - public void transfer(CommandPool transferPool, Semaphore wait, Semaphore signal, Fence fence) { + public void transfer(Semaphore wait, Semaphore signal, Fence fence) { if (stage.getNativeReference().isDestroyed()) { throw new IllegalStateException("Staging buffer has already been freed."); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/BufferUniform.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/BufferUniform.java index 1d00b83fbf..a5be2b70c8 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/BufferUniform.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/BufferUniform.java @@ -3,6 +3,7 @@ import com.jme3.vulkan.buffers.GpuBuffer; import com.jme3.vulkan.descriptors.Descriptor; import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.Struct; import org.lwjgl.vulkan.VkDescriptorBufferInfo; import org.lwjgl.vulkan.VkWriteDescriptorSet; @@ -26,4 +27,13 @@ public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { write.pBufferInfo(info); } + public void setStruct(Struct struct) { + if (value == null) { + throw new NullPointerException("Buffer value is null."); + } + try (MemoryStack stack = MemoryStack.stackPush()) { + value.copy(stack, struct); + } + } + } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TestMaterial.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TestMaterial.java index 2750aa90a9..e8642d9b41 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TestMaterial.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TestMaterial.java @@ -4,7 +4,6 @@ import com.jme3.vulkan.descriptors.Descriptor; import com.jme3.vulkan.descriptors.DescriptorPool; import com.jme3.vulkan.images.Image; -import com.jme3.vulkan.images.Texture; public class TestMaterial extends Material { @@ -18,11 +17,11 @@ public TestMaterial(DescriptorPool pool) { addSet(matrices, baseColorMap); } - public Uniform getMatrices() { + public BufferUniform getMatrices() { return matrices; } - public Uniform getBaseColorMap() { + public TextureUniform getBaseColorMap() { return baseColorMap; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Uniform.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Uniform.java index 033b5b92a7..55b796d0de 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Uniform.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Uniform.java @@ -6,7 +6,7 @@ import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkWriteDescriptorSet; -public class Uniform implements DescriptorSetWriter { +public class Uniform implements DescriptorSetWriter { /** * Placeholder for uniforms that weren't provided with a name, From 4a1970f326deed3513d5d3a11e581c9f83bd255f Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Thu, 14 Aug 2025 16:09:09 -0400 Subject: [PATCH 29/37] add device interfaces for different queue types --- .../jme3test/vulkan/VulkanHelperTest.java | 11 +- .../com/jme3/vulkan/buffers/GpuBuffer.java | 5 +- .../jme3/vulkan/buffers/StageableBuffer.java | 18 ++- .../vulkan/commands/CommandAllocator.java | 16 +++ .../jme3/vulkan/commands/CommandBuffer.java | 21 ++-- .../vulkan/descriptors/DescriptorSet.java | 9 +- .../devices/AbstractPhysicalDevice.java | 105 ++++++++++++++++ .../jme3/vulkan/devices/ComputeDevice.java | 9 ++ .../vulkan/devices/GeneralPhysicalDevice.java | 32 ++--- .../jme3/vulkan/devices/GraphicalDevice.java | 9 ++ .../jme3/vulkan/devices/PhysicalDevice.java | 112 +++++------------- .../jme3/vulkan/devices/PresentDevice.java | 9 ++ .../jme3/vulkan/images/VulkanImageLoader.java | 3 +- .../vulkan/material/ExampleUniformBuffer.java | 49 -------- .../com/jme3/vulkan/material/Material.java | 28 ++--- .../com/jme3/vulkan/material/MaterialDef.java | 7 -- .../jme3/vulkan/material/TestMaterial.java | 2 + .../{ => uniforms}/BufferUniform.java | 6 +- .../{ => uniforms}/TextureUniform.java | 7 +- .../material/{ => uniforms}/Uniform.java | 20 +--- .../material/{ => uniforms}/UniformSet.java | 30 ++--- .../java/com/jme3/vulkan/sync/SyncGroup.java | 104 ++++++++++++++++ 22 files changed, 354 insertions(+), 258 deletions(-) create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandAllocator.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/AbstractPhysicalDevice.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/ComputeDevice.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GraphicalDevice.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PresentDevice.java delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/ExampleUniformBuffer.java delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/MaterialDef.java rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/{ => uniforms}/BufferUniform.java (87%) rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/{ => uniforms}/TextureUniform.java (82%) rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/{ => uniforms}/Uniform.java (74%) rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/{ => uniforms}/UniformSet.java (79%) create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/SyncGroup.java diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java index 3e9a74161f..6bf866f6d2 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java @@ -36,6 +36,7 @@ import com.jme3.vulkan.surface.SwapchainUpdater; import com.jme3.vulkan.sync.Fence; import com.jme3.vulkan.sync.Semaphore; +import com.jme3.vulkan.sync.SyncGroup; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.*; @@ -222,14 +223,16 @@ public void simpleInitApp() { // the cpu cannot directly access fast gpu memory. The solution is to // copy cpu-side data to a mutual staging buffer, then have the gpu copy // that data to faster memory. Hence, why we use a StageableBuffer here. - vertexBuffer = new StageableBuffer(device, transferPool, MemorySize.floats(vertexData.capacity()), + vertexBuffer = new StageableBuffer(device, MemorySize.floats(vertexData.capacity()), new BufferUsageFlags().vertexBuffer(), new MemoryFlags().deviceLocal(), false); vertexBuffer.copy(stack, vertexData); // copy data to staging buffer + vertexBuffer.transfer(transferPool); vertexBuffer.freeStagingBuffer(); // index buffer - indexBuffer = new StageableBuffer(device, transferPool, MemorySize.ints(indexData.capacity()), + indexBuffer = new StageableBuffer(device, MemorySize.ints(indexData.capacity()), new BufferUsageFlags().indexBuffer(), new MemoryFlags().deviceLocal(), false); indexBuffer.copy(stack, indexData); + indexBuffer.transfer(transferPool); indexBuffer.freeStagingBuffer(); } @@ -295,7 +298,7 @@ private ImageView createDepthAttachment(CommandPool pool) { commands.begin(); image.transitionLayout(commands, Image.Layout.Undefined, Image.Layout.DepthStencilAttachmentOptimal); commands.end(); - commands.submit(null, null, null); + commands.submit(new SyncGroup()); commands.getPool().getQueue().waitIdle(); return view; } @@ -386,7 +389,7 @@ public void accept(Float tpf) { // render manager graphicsCommands.end(); - graphicsCommands.submit(imageAvailable, renderFinished, inFlight); + graphicsCommands.submit(new SyncGroup(imageAvailable, renderFinished, inFlight)); swapchain.present(device.getPhysicalDevice().getPresent(), image, renderFinished); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java index 22362ea545..13162b6a66 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java @@ -157,12 +157,11 @@ public void unmap() { memory.unmap(); } - public void recordCopy(MemoryStack stack, CommandBuffer commands, GpuBuffer source, long srcOffset, long dstOffset, long size) { - commands.begin(); + public void recordCopy(MemoryStack stack, CommandBuffer commands, GpuBuffer source, + long srcOffset, long dstOffset, long size) { VkBufferCopy.Buffer copy = VkBufferCopy.calloc(1, stack) .srcOffset(srcOffset).dstOffset(dstOffset).size(size); vkCmdCopyBuffer(commands.getBuffer(), source.getNativeObject(), id, copy); - commands.end(); } public void freeMemory() { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java index 5bdbdf0d32..d64dc01e0c 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java @@ -7,18 +7,17 @@ import com.jme3.vulkan.flags.BufferUsageFlags; import com.jme3.vulkan.sync.Fence; import com.jme3.vulkan.sync.Semaphore; +import com.jme3.vulkan.sync.SyncGroup; import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; public class StageableBuffer extends GpuBuffer { - private final CommandPool transferPool; private final GpuBuffer stage; - public StageableBuffer(LogicalDevice device, CommandPool transferPool, MemorySize size, + public StageableBuffer(LogicalDevice device, MemorySize size, BufferUsageFlags usage, MemoryFlags mem, boolean concurrent) { super(device, size, usage.transferDst(), mem, concurrent); - this.transferPool = transferPool; stage = new GpuBuffer(device, size, new BufferUsageFlags().transferSrc(), new MemoryFlags().hostVisible().hostCoherent(), concurrent); } @@ -31,7 +30,6 @@ public PointerBuffer map(MemoryStack stack, int offset, int size, int flags) { @Override public void unmap() { stage.unmap(); - transfer(); } @Override @@ -40,25 +38,25 @@ public void freeMemory() { stage.freeMemory(); } - public void unmap(Semaphore wait, Semaphore signal, Fence fence) { + public void unmap(SyncGroup sync) { stage.unmap(); - transfer(wait, signal, fence); } - public void transfer() { - transfer(null, null, null); + public void transfer(CommandPool transferPool) { + transfer(transferPool, new SyncGroup()); transferPool.getQueue().waitIdle(); } - public void transfer(Semaphore wait, Semaphore signal, Fence fence) { + public void transfer(CommandPool transferPool, SyncGroup sync) { if (stage.getNativeReference().isDestroyed()) { throw new IllegalStateException("Staging buffer has already been freed."); } CommandBuffer commands = transferPool.allocateOneTimeCommandBuffer(); + commands.begin(); try (MemoryStack stack = MemoryStack.stackPush()) { recordCopy(stack, commands, stage, 0, 0, size().getBytes()); } - commands.submit(wait, signal, fence); + commands.endAndSubmit(sync); } public void freeStagingBuffer() { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandAllocator.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandAllocator.java new file mode 100644 index 0000000000..00c0ab5e02 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandAllocator.java @@ -0,0 +1,16 @@ +package com.jme3.vulkan.commands; + +import java.util.HashMap; +import java.util.Map; + +public class CommandAllocator { + + private final Map pools = new HashMap<>(); + + + + private static class PoolGroup { + + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandBuffer.java index f4442d115e..f24b4ea3ab 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandBuffer.java @@ -1,7 +1,6 @@ package com.jme3.vulkan.commands; -import com.jme3.vulkan.sync.Fence; -import com.jme3.vulkan.sync.Semaphore; +import com.jme3.vulkan.sync.SyncGroup; import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkCommandBuffer; @@ -53,7 +52,7 @@ public void end() { recording = false; } - public void submit(Semaphore wait, Semaphore signal, Fence fence) { + public void submit(SyncGroup sync) { if (recording) { throw new IllegalStateException("Command buffer is still recording."); } @@ -61,17 +60,23 @@ public void submit(Semaphore wait, Semaphore signal, Fence fence) { VkSubmitInfo.Buffer submit = VkSubmitInfo.calloc(1, stack) .sType(VK_STRUCTURE_TYPE_SUBMIT_INFO) .pCommandBuffers(stack.pointers(buffer)); - if (wait != null) { - submit.waitSemaphoreCount(1).pWaitSemaphores(stack.longs(wait.getNativeObject())) + if (sync.containsWaits()) { + submit.waitSemaphoreCount(sync.getWaits().length) + .pWaitSemaphores(sync.toWaitBuffer(stack)) .pWaitDstStageMask(stack.ints(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT)); } - if (signal != null) { - submit.pSignalSemaphores(stack.longs(signal.getNativeObject())); + if (sync.containsSignals()) { + submit.pSignalSemaphores(sync.toSignalBuffer(stack)); } - pool.getQueue().submit(submit, fence); + pool.getQueue().submit(submit, sync.getFence()); } } + public void endAndSubmit(SyncGroup sync) { + end(); + submit(sync); + } + public void reset() { vkResetCommandBuffer(buffer, 0); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java index 2eec597d24..cdf45226a0 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java @@ -1,16 +1,9 @@ package com.jme3.vulkan.descriptors; -import com.jme3.util.natives.Native; -import com.jme3.vulkan.VulkanObject; import com.jme3.vulkan.devices.LogicalDevice; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkWriteDescriptorSet; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; - import static org.lwjgl.vulkan.VK10.*; public class DescriptorSet { @@ -33,7 +26,7 @@ public void update(boolean force, DescriptorSetWriter... writers) { if (updating > 0) { VkWriteDescriptorSet.Buffer write = VkWriteDescriptorSet.calloc(updating, stack); for (DescriptorSetWriter w : writers) { - if (w.isUpdateNeeded()) { + if (force || w.isUpdateNeeded()) { w.populateWrite(stack, write.get() .sType(VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET) .dstSet(id)); diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/AbstractPhysicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/AbstractPhysicalDevice.java new file mode 100644 index 0000000000..87ca164fa8 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/AbstractPhysicalDevice.java @@ -0,0 +1,105 @@ +package com.jme3.vulkan.devices; + +import com.jme3.vulkan.VulkanInstance; +import com.jme3.vulkan.images.Image; +import com.jme3.vulkan.surface.Surface; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.*; + +import java.nio.ByteBuffer; +import java.nio.IntBuffer; + +import static com.jme3.renderer.vulkan.VulkanUtils.enumerateBuffer; +import static org.lwjgl.vulkan.VK10.*; + +public abstract class AbstractPhysicalDevice implements PhysicalDevice { + + private final VulkanInstance instance; + private final VkPhysicalDevice physicalDevice; + + public AbstractPhysicalDevice(VulkanInstance instance, long id) { + this.instance = instance; + this.physicalDevice = new VkPhysicalDevice(id, instance.getNativeObject()); + } + + @Override + public VulkanInstance getInstance() { + return instance; + } + + @Override + public VkPhysicalDevice getPhysicalDevice() { + return physicalDevice; + } + + @Override + public VkQueueFamilyProperties.Buffer getQueueFamilyProperties(MemoryStack stack) { + return enumerateBuffer(stack, n -> VkQueueFamilyProperties.calloc(n, stack), (count, buffer) + -> vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, count, buffer)); + } + + @Override + public VkPhysicalDeviceProperties getProperties(MemoryStack stack) { + VkPhysicalDeviceProperties props = VkPhysicalDeviceProperties.malloc(stack); + vkGetPhysicalDeviceProperties(physicalDevice, props); + return props; + } + + @Override + public VkPhysicalDeviceFeatures getFeatures(MemoryStack stack) { + VkPhysicalDeviceFeatures features = VkPhysicalDeviceFeatures.malloc(stack); + vkGetPhysicalDeviceFeatures(physicalDevice, features); + return features; + } + + @Override + public VkExtensionProperties.Buffer getExtensionProperties(MemoryStack stack) { + return enumerateBuffer(stack, n -> VkExtensionProperties.malloc(n, stack), (count, buffer) -> + vkEnumerateDeviceExtensionProperties(physicalDevice, (ByteBuffer)null, count, buffer)); + } + + @Override + public VkPhysicalDeviceMemoryProperties getMemoryProperties(MemoryStack stack) { + VkPhysicalDeviceMemoryProperties mem = VkPhysicalDeviceMemoryProperties.malloc(stack); + vkGetPhysicalDeviceMemoryProperties(physicalDevice, mem); + return mem; + } + + @Override + public int findSupportedMemoryType(MemoryStack stack, int types, int flags) { + VkPhysicalDeviceMemoryProperties mem = getMemoryProperties(stack); + for (int i = 0; i < mem.memoryTypeCount(); i++) { + if ((types & (1 << i)) != 0 && (mem.memoryTypes().get(i).propertyFlags() & flags) != 0) { + return i; + } + } + throw new NullPointerException("Suitable memory type not found."); + } + + @Override + public Image.Format findSupportedFormat(int tiling, int features, Image.Format... candidates) { + VkFormatProperties props = VkFormatProperties.create(); + for (Image.Format f : candidates) { + vkGetPhysicalDeviceFormatProperties(physicalDevice, f.getVkEnum(), props); + if ((tiling == VK_IMAGE_TILING_LINEAR && (props.linearTilingFeatures() & features) == features) + || (tiling == VK_IMAGE_TILING_OPTIMAL && (props.optimalTilingFeatures() & features) == features)) { + return f; + } + } + throw new NullPointerException("Failed to find supported format."); + } + + @Override + public boolean querySwapchainSupport(Surface surface) { + try (MemoryStack stack = MemoryStack.stackPush()) { + IntBuffer count = stack.mallocInt(1); + KHRSurface.vkGetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface.getNativeObject(), count, null); + if (count.get(0) <= 0) { + return false; + } + KHRSurface.vkGetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface.getNativeObject(), count, null); + return count.get(0) > 0; + } + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/ComputeDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/ComputeDevice.java new file mode 100644 index 0000000000..657074bd0a --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/ComputeDevice.java @@ -0,0 +1,9 @@ +package com.jme3.vulkan.devices; + +import com.jme3.vulkan.commands.Queue; + +public interface ComputeDevice extends PhysicalDevice { + + Queue getCompute(); + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GeneralPhysicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GeneralPhysicalDevice.java index b55ea166f9..ae39d937df 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GeneralPhysicalDevice.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GeneralPhysicalDevice.java @@ -12,7 +12,8 @@ import static org.lwjgl.vulkan.VK10.*; -public class GeneralPhysicalDevice extends PhysicalDevice { +public class GeneralPhysicalDevice extends AbstractPhysicalDevice + implements GraphicalDevice, PresentDevice, ComputeDevice { private final Surface surface; private Integer graphicsIndex, presentIndex; @@ -24,7 +25,7 @@ public GeneralPhysicalDevice(VulkanInstance instance, Surface surface, long id) } @Override - protected boolean populateQueueFamilyIndices() { + public boolean populateQueueFamilyIndices() { try (MemoryStack stack = MemoryStack.stackPush()) { VkQueueFamilyProperties.Buffer properties = getQueueFamilyProperties(stack); IntBuffer ibuf = stack.callocInt(1); @@ -49,7 +50,7 @@ protected boolean populateQueueFamilyIndices() { } @Override - protected VkDeviceQueueCreateInfo.Buffer createQueueFamilyInfo(MemoryStack stack) { + public VkDeviceQueueCreateInfo.Buffer createQueueFamilyInfo(MemoryStack stack) { VkDeviceQueueCreateInfo.Buffer create = VkDeviceQueueCreateInfo.calloc(2, stack); create.get(0).sType(VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO) .queueFamilyIndex(graphicsIndex) @@ -61,37 +62,28 @@ protected VkDeviceQueueCreateInfo.Buffer createQueueFamilyInfo(MemoryStack stack } @Override - protected void createQueues(LogicalDevice device) { + public void createQueues(LogicalDevice device) { graphics = new Queue(device, graphicsIndex, 0); present = new Queue(device, presentIndex, 0); } - public boolean allQueuesAvailable() { - return graphicsIndex != null && presentIndex != null; - } - - public Integer getGraphicsIndex() { - return graphicsIndex; - } - - public Integer getPresentIndex() { - return presentIndex; - } - - public Integer getComputeIndex() { - return graphicsIndex; - } - + @Override public Queue getGraphics() { return graphics; } + @Override public Queue getPresent() { return present; } + @Override public Queue getCompute() { return graphics; } + public boolean allQueuesAvailable() { + return graphicsIndex != null && presentIndex != null; + } + } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GraphicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GraphicalDevice.java new file mode 100644 index 0000000000..cae4a8fb73 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GraphicalDevice.java @@ -0,0 +1,9 @@ +package com.jme3.vulkan.devices; + +import com.jme3.vulkan.commands.Queue; + +public interface GraphicalDevice extends PhysicalDevice { + + Queue getGraphics(); + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java index 0cbdfb002c..6c3f388616 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java @@ -12,90 +12,32 @@ import static com.jme3.renderer.vulkan.VulkanUtils.*; import static org.lwjgl.vulkan.VK10.*; -public abstract class PhysicalDevice { - - private final VulkanInstance instance; - private final VkPhysicalDevice physicalDevice; - - public PhysicalDevice(VulkanInstance instance, long id) { - this.instance = instance; - this.physicalDevice = new VkPhysicalDevice(id, instance.getNativeObject()); - } - - protected abstract boolean populateQueueFamilyIndices(); - - protected abstract VkDeviceQueueCreateInfo.Buffer createQueueFamilyInfo(MemoryStack stack); - - protected abstract void createQueues(LogicalDevice device); - - public VulkanInstance getInstance() { - return instance; - } - - public VkPhysicalDevice getPhysicalDevice() { - return physicalDevice; - } - - public VkQueueFamilyProperties.Buffer getQueueFamilyProperties(MemoryStack stack) { - return enumerateBuffer(stack, n -> VkQueueFamilyProperties.calloc(n, stack), (count, buffer) - -> vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, count, buffer)); - } - - public VkPhysicalDeviceProperties getProperties(MemoryStack stack) { - VkPhysicalDeviceProperties props = VkPhysicalDeviceProperties.malloc(stack); - vkGetPhysicalDeviceProperties(physicalDevice, props); - return props; - } - - public VkPhysicalDeviceFeatures getFeatures(MemoryStack stack) { - VkPhysicalDeviceFeatures features = VkPhysicalDeviceFeatures.malloc(stack); - vkGetPhysicalDeviceFeatures(physicalDevice, features); - return features; - } - - public VkExtensionProperties.Buffer getExtensionProperties(MemoryStack stack) { - return enumerateBuffer(stack, n -> VkExtensionProperties.malloc(n, stack), (count, buffer) -> - vkEnumerateDeviceExtensionProperties(physicalDevice, (ByteBuffer)null, count, buffer)); - } - - public VkPhysicalDeviceMemoryProperties getMemoryProperties(MemoryStack stack) { - VkPhysicalDeviceMemoryProperties mem = VkPhysicalDeviceMemoryProperties.malloc(stack); - vkGetPhysicalDeviceMemoryProperties(physicalDevice, mem); - return mem; - } - - public int findSupportedMemoryType(MemoryStack stack, int types, int flags) { - VkPhysicalDeviceMemoryProperties mem = getMemoryProperties(stack); - for (int i = 0; i < mem.memoryTypeCount(); i++) { - if ((types & (1 << i)) != 0 && (mem.memoryTypes().get(i).propertyFlags() & flags) != 0) { - return i; - } - } - throw new NullPointerException("Suitable memory type not found."); - } - - public Image.Format findSupportedFormat(int tiling, int features, Image.Format... candidates) { - VkFormatProperties props = VkFormatProperties.create(); - for (Image.Format f : candidates) { - vkGetPhysicalDeviceFormatProperties(physicalDevice, f.getVkEnum(), props); - if ((tiling == VK_IMAGE_TILING_LINEAR && (props.linearTilingFeatures() & features) == features) - || (tiling == VK_IMAGE_TILING_OPTIMAL && (props.optimalTilingFeatures() & features) == features)) { - return f; - } - } - throw new NullPointerException("Failed to find supported format."); - } - - public boolean querySwapchainSupport(Surface surface) { - try (MemoryStack stack = MemoryStack.stackPush()) { - IntBuffer count = stack.mallocInt(1); - KHRSurface.vkGetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface.getNativeObject(), count, null); - if (count.get(0) <= 0) { - return false; - } - KHRSurface.vkGetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface.getNativeObject(), count, null); - return count.get(0) > 0; - } - } +public interface PhysicalDevice { + + boolean populateQueueFamilyIndices(); + + VkDeviceQueueCreateInfo.Buffer createQueueFamilyInfo(MemoryStack stack); + + void createQueues(LogicalDevice device); + + VulkanInstance getInstance(); + + VkPhysicalDevice getPhysicalDevice(); + + VkQueueFamilyProperties.Buffer getQueueFamilyProperties(MemoryStack stack); + + VkPhysicalDeviceProperties getProperties(MemoryStack stack); + + VkPhysicalDeviceFeatures getFeatures(MemoryStack stack); + + VkExtensionProperties.Buffer getExtensionProperties(MemoryStack stack); + + VkPhysicalDeviceMemoryProperties getMemoryProperties(MemoryStack stack); + + int findSupportedMemoryType(MemoryStack stack, int types, int flags); + + Image.Format findSupportedFormat(int tiling, int features, Image.Format... candidates); + + boolean querySwapchainSupport(Surface surface); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PresentDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PresentDevice.java new file mode 100644 index 0000000000..9f10f520e3 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PresentDevice.java @@ -0,0 +1,9 @@ +package com.jme3.vulkan.devices; + +import com.jme3.vulkan.commands.Queue; + +public interface PresentDevice extends PhysicalDevice { + + Queue getPresent(); + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java index df7de5b60a..8e46d13d0c 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java @@ -9,6 +9,7 @@ import com.jme3.vulkan.flags.BufferUsageFlags; import com.jme3.vulkan.flags.ImageUsageFlags; import com.jme3.vulkan.flags.MemoryFlags; +import com.jme3.vulkan.sync.SyncGroup; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkBufferImageCopy; @@ -174,7 +175,7 @@ Image.Tiling.Optimal, new ImageUsageFlags().transferDst().sampled(), image.getNativeObject(), VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, region); image.transitionLayout(commands, Image.Layout.TransferDstOptimal, Image.Layout.ShaderReadOnlyOptimal); commands.end(); - commands.submit(null, null, null); + commands.submit(new SyncGroup()); transferPool.getQueue().waitIdle(); return image; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/ExampleUniformBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/ExampleUniformBuffer.java deleted file mode 100644 index 1eaf6e2409..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/ExampleUniformBuffer.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.jme3.vulkan.material; - -import com.jme3.vulkan.buffers.GpuBuffer; -import com.jme3.vulkan.descriptors.Descriptor; -import com.jme3.vulkan.descriptors.DescriptorSetWriter; -import org.lwjgl.system.MemoryStack; -import org.lwjgl.vulkan.VkDescriptorBufferInfo; -import org.lwjgl.vulkan.VkWriteDescriptorSet; - -public class ExampleUniformBuffer implements DescriptorSetWriter { - - private final int binding; - private GpuBuffer buffer; - private boolean updateFlag = true; - - public ExampleUniformBuffer(int binding, GpuBuffer buffer) { - this.binding = binding; - this.buffer = buffer; - } - - @Override - public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { - VkDescriptorBufferInfo.Buffer descriptors = VkDescriptorBufferInfo.calloc(1, stack) - .buffer(buffer.getNativeObject()) - .offset(0) - .range(buffer.size().getBytes()); - write.descriptorType(Descriptor.UniformBuffer.getVkEnum()) - .dstBinding(binding) - .dstArrayElement(0) // todo: make configurable? - .descriptorCount(descriptors.limit()) - .pBufferInfo(descriptors); - updateFlag = false; - } - - @Override - public boolean isUpdateNeeded() { - return updateFlag; - } - - public void setBuffer(GpuBuffer buffer) { - this.buffer = buffer; - this.updateFlag = true; - } - - public GpuBuffer getBuffer() { - return buffer; - } - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java index 089d946f71..24a78dca91 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java @@ -2,6 +2,8 @@ import com.jme3.vulkan.commands.CommandBuffer; import com.jme3.vulkan.descriptors.*; +import com.jme3.vulkan.material.uniforms.Uniform; +import com.jme3.vulkan.material.uniforms.UniformSet; import com.jme3.vulkan.pipelines.Pipeline; import org.lwjgl.system.MemoryStack; @@ -32,8 +34,13 @@ public void bind(CommandBuffer cmd, Pipeline pipeline, int offset) { ArrayList allocationLayouts = new ArrayList<>(availableLayouts.size()); ArrayList allocationTargets = new ArrayList<>(availableLayouts.size()); for (UniformSet set : uniforms) { - DescriptorSetLayout allocation = set.selectActiveSet(availableLayouts); + set.update(pipeline); + // Select an existing descriptor set to be active. If + // no existing set may be selected, a set layout is + // returned with which to allocate a new descriptor set. + DescriptorSetLayout allocation = set.selectExistingActiveSet(availableLayouts); if (allocation != null) { + // allocate all new sets at once allocationLayouts.add(allocation); allocationTargets.add(set); } @@ -45,12 +52,11 @@ public void bind(CommandBuffer cmd, Pipeline pipeline, int offset) { DescriptorSet[] allocatedSets = pool.allocateSets( allocationLayouts.toArray(new DescriptorSetLayout[0])); for (int i = 0; i < allocatedSets.length; i++) { - allocationTargets.get(i).addActiveSet(allocatedSets[i]); + UniformSet target = allocationTargets.get(i); + target.addActiveSet(allocatedSets[i]); + allocatedSets[i].update(true, target.getUniforms()); } } - for (UniformSet set : uniforms) { - set.update(); // write updates to the set - } try (MemoryStack stack = MemoryStack.stackPush()) { LongBuffer setBuf = stack.mallocLong(uniforms.size()); for (UniformSet s : uniforms) { @@ -75,16 +81,4 @@ public List getSets() { return Collections.unmodifiableList(uniforms); } - @SuppressWarnings("unchecked") - public Uniform get(String name) { - for (UniformSet s : uniforms) { - for (Uniform u : s.getUniforms()) { - if (name.equals(u.getName())) { - return (Uniform)u; - } - } - } - return null; - } - } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/MaterialDef.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/MaterialDef.java deleted file mode 100644 index a15500246f..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/MaterialDef.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.jme3.vulkan.material; - -public class MaterialDef { - - - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TestMaterial.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TestMaterial.java index e8642d9b41..4615dde8a7 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TestMaterial.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TestMaterial.java @@ -4,6 +4,8 @@ import com.jme3.vulkan.descriptors.Descriptor; import com.jme3.vulkan.descriptors.DescriptorPool; import com.jme3.vulkan.images.Image; +import com.jme3.vulkan.material.uniforms.BufferUniform; +import com.jme3.vulkan.material.uniforms.TextureUniform; public class TestMaterial extends Material { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/BufferUniform.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/BufferUniform.java similarity index 87% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/BufferUniform.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/BufferUniform.java index a5be2b70c8..d25975db9d 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/BufferUniform.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/BufferUniform.java @@ -1,4 +1,4 @@ -package com.jme3.vulkan.material; +package com.jme3.vulkan.material.uniforms; import com.jme3.vulkan.buffers.GpuBuffer; import com.jme3.vulkan.descriptors.Descriptor; @@ -13,10 +13,6 @@ public BufferUniform(Descriptor type, int bindingIndex) { super(type, bindingIndex); } - public BufferUniform(String name, Descriptor type, int bindingIndex) { - super(name, type, bindingIndex); - } - @Override public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { super.populateWrite(stack, write); diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TextureUniform.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/TextureUniform.java similarity index 82% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TextureUniform.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/TextureUniform.java index 49936502dc..422ac72931 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TextureUniform.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/TextureUniform.java @@ -1,4 +1,4 @@ -package com.jme3.vulkan.material; +package com.jme3.vulkan.material.uniforms; import com.jme3.vulkan.descriptors.Descriptor; import com.jme3.vulkan.images.Image; @@ -16,11 +16,6 @@ public TextureUniform(Image.Layout layout, int bindingIndex) { this.layout = layout; } - public TextureUniform(Image.Layout layout, String name, int bindingIndex) { - super(name, Descriptor.CombinedImageSampler, bindingIndex); - this.layout = layout; - } - @Override public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { super.populateWrite(stack, write); diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Uniform.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/Uniform.java similarity index 74% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Uniform.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/Uniform.java index 55b796d0de..61ab10de14 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Uniform.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/Uniform.java @@ -1,4 +1,4 @@ -package com.jme3.vulkan.material; +package com.jme3.vulkan.material.uniforms; import com.jme3.vulkan.descriptors.Descriptor; import com.jme3.vulkan.descriptors.DescriptorSetWriter; @@ -6,26 +6,14 @@ import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkWriteDescriptorSet; -public class Uniform implements DescriptorSetWriter { +public abstract class Uniform implements DescriptorSetWriter { - /** - * Placeholder for uniforms that weren't provided with a name, - * usually because uniform names are unnecessary. - */ - public static final String UNNAMED = "unnamed_uniform"; - - private final String name; private final Descriptor type; private final int bindingIndex; private boolean updateFlag = true; protected T value; public Uniform(Descriptor type, int bindingIndex) { - this(UNNAMED, type, bindingIndex); - } - - public Uniform(String name, Descriptor type, int bindingIndex) { - this.name = name; this.type = type; this.bindingIndex = bindingIndex; } @@ -60,8 +48,8 @@ public void setUpdateNeeded() { updateFlag = true; } - public String getName() { - return name; + public void clearUpdateNeeded() { + updateFlag = false; } public Descriptor getType() { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/UniformSet.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/UniformSet.java similarity index 79% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/UniformSet.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/UniformSet.java index 1b489c2c6d..090509fe54 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/UniformSet.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/UniformSet.java @@ -1,20 +1,18 @@ -package com.jme3.vulkan.material; +package com.jme3.vulkan.material.uniforms; import com.jme3.vulkan.descriptors.DescriptorSet; import com.jme3.vulkan.descriptors.DescriptorSetLayout; import com.jme3.vulkan.descriptors.SetLayoutBinding; +import com.jme3.vulkan.pipelines.Pipeline; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; +import java.util.*; public class UniformSet { private final Uniform[] uniforms; private final List sets = new ArrayList<>(); + private final Collection outdatedSets = new ArrayList<>(); private DescriptorSet activeSet; - private boolean updateFlag = true; public UniformSet(Uniform... uniforms) { this.uniforms = uniforms; @@ -28,14 +26,11 @@ public UniformSet(Uniform... uniforms) { } public void addActiveSet(DescriptorSet activeSet) { - if (this.activeSet == activeSet) { - updateFlag = true; - } this.activeSet = activeSet; sets.add(activeSet); } - public DescriptorSetLayout selectActiveSet(List availableLayouts) { + public DescriptorSetLayout selectExistingActiveSet(List availableLayouts) { if (activeSet == null || !availableLayouts.remove(activeSet.getLayout())) { for (DescriptorSet s : sets) { if (availableLayouts.remove(s.getLayout())) { @@ -67,16 +62,13 @@ public DescriptorSetLayout selectActiveSet(List availableLa return null; } - public void update() { - if (activeSet == null) { - throw new NullPointerException("No descriptor set selected."); + public void update(Pipeline pipeline) { + for (DescriptorSet set : sets) { + set.update(false, uniforms); + } + for (Uniform u : uniforms) { + u.clearUpdateNeeded(); } - activeSet.update(updateFlag, uniforms); - updateFlag = false; - } - - public void setActiveSet(DescriptorSet activeSet) { - this.activeSet = activeSet; } public Uniform[] getUniforms() { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/SyncGroup.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/SyncGroup.java new file mode 100644 index 0000000000..27dfcffda1 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/SyncGroup.java @@ -0,0 +1,104 @@ +package com.jme3.vulkan.sync; + +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VK10; + +import java.nio.LongBuffer; + +public class SyncGroup { + + private static final Semaphore[] EMPTY = new Semaphore[0]; + + private static Semaphore[] toArray(Semaphore s) { + return s != null ? new Semaphore[] {s} : EMPTY; + } + + private final Semaphore[] waits; + private final Semaphore[] signals; + private final Fence fence; + + public SyncGroup() { + this(EMPTY, EMPTY, null); + } + + public SyncGroup(Fence fence) { + this(EMPTY, EMPTY, fence); + } + + public SyncGroup(Semaphore wait, Semaphore signal) { + this(toArray(wait), toArray(signal), null); + } + + public SyncGroup(Semaphore wait, Semaphore[] signals) { + this(toArray(wait), signals, null); + } + + public SyncGroup(Semaphore[] waits, Semaphore signal) { + this(waits, toArray(signal), null); + } + + public SyncGroup(Semaphore wait, Semaphore signal, Fence fence) { + this(toArray(wait), toArray(signal), fence); + } + + public SyncGroup(Semaphore wait, Semaphore[] signals, Fence fence) { + this(toArray(wait), signals, fence); + } + + public SyncGroup(Semaphore[] waits, Semaphore signal, Fence fence) { + this(waits, toArray(signal), fence); + } + + public SyncGroup(Semaphore[] waits, Semaphore[] signals, Fence fence) { + this.waits = waits; + this.signals = signals; + this.fence = fence; + } + + public Semaphore[] getWaits() { + return waits; + } + + public Semaphore[] getSignals() { + return signals; + } + + public Fence getFence() { + return fence; + } + + public boolean containsWaits() { + return waits.length > 0; + } + + public boolean containsSignals() { + return signals.length > 0; + } + + public boolean containsFence() { + return fence != null; + } + + public LongBuffer toWaitBuffer(MemoryStack stack) { + LongBuffer buf = stack.mallocLong(waits.length); + for (Semaphore w : waits) { + buf.put(w.getNativeObject()); + } + buf.flip(); + return buf; + } + + public LongBuffer toSignalBuffer(MemoryStack stack) { + LongBuffer buf = stack.mallocLong(signals.length); + for (Semaphore s : signals) { + buf.put(s.getNativeObject()); + } + buf.flip(); + return buf; + } + + public long getFenceHandle() { + return fence != null ? fence.getNativeObject() : VK10.VK_NULL_HANDLE; + } + +} From 521c8a72f5c45f526b17babb92e393feff2cffa9 Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Thu, 14 Aug 2025 16:39:55 -0400 Subject: [PATCH 30/37] move pool management to logical device --- .../jme3test/vulkan/VulkanHelperTest.java | 6 +-- .../vulkan/commands/CommandAllocator.java | 16 -------- .../com/jme3/vulkan/commands/CommandPool.java | 36 +++++++++++++----- .../java/com/jme3/vulkan/commands/Queue.java | 2 +- .../devices/AbstractPhysicalDevice.java | 2 +- .../vulkan/devices/GeneralPhysicalDevice.java | 2 +- .../jme3/vulkan/devices/LogicalDevice.java | 37 ++++++++++++++++++- .../jme3/vulkan/devices/PhysicalDevice.java | 8 +--- .../java/com/jme3/vulkan/surface/Surface.java | 4 +- .../com/jme3/vulkan/surface/Swapchain.java | 8 ++-- 10 files changed, 74 insertions(+), 47 deletions(-) delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandAllocator.java diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java index 6bf866f6d2..8281755e14 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java @@ -165,7 +165,7 @@ public void simpleInitApp() { new PoolSize(Descriptor.StorageBuffer, 4), new PoolSize(Descriptor.CombinedImageSampler, 2)); - CommandPool transferPool = new CommandPool(device, physDevice.getGraphics(), true, false); + CommandPool transferPool = device.getShortTermPool(physDevice.getGraphics()); // depth texture depthView = createDepthAttachment(transferPool); @@ -215,7 +215,7 @@ public void simpleInitApp() { p.getColorBlend().addAttachment(new ColorBlendAttachment()); p.getDynamicState().addTypes(DynamicState.Type.ViewPort, DynamicState.Type.Scissor); } - graphicsPool = new CommandPool(device, physDevice.getGraphics(), false, true); + graphicsPool = device.getLongTermPool(physDevice.getGraphics()); // vertex buffers try (MemoryStack stack = MemoryStack.stackPush()) { @@ -266,7 +266,7 @@ public boolean swapchainOutOfDate(Swapchain swapchain, int imageAcquireCode) { s.selectExtentByWindow(); s.selectImageCount(2); } - depthView = createDepthAttachment(new CommandPool(device, device.getPhysicalDevice().getGraphics(), true, false)); + depthView = createDepthAttachment(device.getShortTermPool(device.getPhysicalDevice().getGraphics())); swapchain.createFrameBuffers(renderPass, depthView); return true; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandAllocator.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandAllocator.java deleted file mode 100644 index 00c0ab5e02..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandAllocator.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.jme3.vulkan.commands; - -import java.util.HashMap; -import java.util.Map; - -public class CommandAllocator { - - private final Map pools = new HashMap<>(); - - - - private static class PoolGroup { - - } - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandPool.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandPool.java index 1bd64f5de4..61597e18f4 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandPool.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandPool.java @@ -9,30 +9,34 @@ import java.nio.LongBuffer; import static com.jme3.renderer.vulkan.VulkanUtils.*; -import static org.lwjgl.vulkan.VK10.*; +import static org.lwjgl.vulkan.VK11.*; public class CommandPool implements Native { - private final LogicalDevice device; private final Queue queue; private final NativeReference ref; + private final boolean shortLived, reusable, protect; private long id; - public CommandPool(LogicalDevice device, Queue queue, boolean isTransient, boolean reset) { - this.device = device; + public CommandPool(Queue queue, boolean shortLived, boolean reusable, boolean protect) { this.queue = queue; + this.shortLived = shortLived; + this.reusable = reusable; + this.protect = protect; try (MemoryStack stack = MemoryStack.stackPush()) { VkCommandPoolCreateInfo create = VkCommandPoolCreateInfo.calloc(stack) .sType(VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO) - .flags((isTransient ? VK_COMMAND_POOL_CREATE_TRANSIENT_BIT : 0) - | (reset ? VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT : 0)) + .flags((shortLived ? VK_COMMAND_POOL_CREATE_TRANSIENT_BIT : 0) + | (reusable ? VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT : 0) + | (protect ? VK_COMMAND_POOL_CREATE_PROTECTED_BIT : 0)) .queueFamilyIndex(queue.getFamilyIndex()); LongBuffer idBuf = stack.mallocLong(1); - check(vkCreateCommandPool(device.getNativeObject(), create, null, idBuf), "Failed to create command pool."); + check(vkCreateCommandPool(queue.getDevice().getNativeObject(), create, null, idBuf), + "Failed to create command pool."); id = idBuf.get(0); } ref = Native.get().register(this); - device.getNativeReference().addDependent(ref); + queue.getDevice().getNativeReference().addDependent(ref); } @Override @@ -43,7 +47,7 @@ public Long getNativeObject() { @Override public Runnable createNativeDestroyer() { return () -> { - vkDestroyCommandPool(device.getNativeObject(), id, null); + vkDestroyCommandPool(queue.getDevice().getNativeObject(), id, null); }; } @@ -66,11 +70,23 @@ public OneTimeCommandBuffer allocateOneTimeCommandBuffer() { } public LogicalDevice getDevice() { - return device; + return queue.getDevice(); } public Queue getQueue() { return queue; } + public boolean isShortLived() { + return shortLived; + } + + public boolean isReusable() { + return reusable; + } + + public boolean isProtected() { + return protect; + } + } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/Queue.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/Queue.java index da4be2d3f6..faaff260f4 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/Queue.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/Queue.java @@ -40,7 +40,7 @@ public void waitIdle() { vkQueueWaitIdle(queue); } - public LogicalDevice getDevice() { + public LogicalDevice getDevice() { return device; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/AbstractPhysicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/AbstractPhysicalDevice.java index 87ca164fa8..0b80ea265c 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/AbstractPhysicalDevice.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/AbstractPhysicalDevice.java @@ -28,7 +28,7 @@ public VulkanInstance getInstance() { } @Override - public VkPhysicalDevice getPhysicalDevice() { + public VkPhysicalDevice getDeviceHandle() { return physicalDevice; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GeneralPhysicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GeneralPhysicalDevice.java index ae39d937df..ef2e65386a 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GeneralPhysicalDevice.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GeneralPhysicalDevice.java @@ -35,7 +35,7 @@ public boolean populateQueueFamilyIndices() { if (graphicsIndex == null && (flags & VK_QUEUE_GRAPHICS_BIT) > 0) { graphicsIndex = i; } else if (presentIndex == null) { - KHRSurface.vkGetPhysicalDeviceSurfaceSupportKHR(getPhysicalDevice(), + KHRSurface.vkGetPhysicalDeviceSurfaceSupportKHR(getDeviceHandle(), i, surface.getNativeObject(), ibuf); if (ibuf.get(0) == VK_TRUE) { presentIndex = i; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/LogicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/LogicalDevice.java index 3de7445ffb..9bcc6fd456 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/LogicalDevice.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/LogicalDevice.java @@ -3,11 +3,14 @@ import com.jme3.util.natives.Native; import com.jme3.vulkan.VulkanInstance; import com.jme3.vulkan.VulkanObject; +import com.jme3.vulkan.commands.CommandPool; +import com.jme3.vulkan.commands.Queue; import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.*; import java.util.*; +import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; import static com.jme3.renderer.vulkan.VulkanUtils.*; @@ -18,6 +21,7 @@ public class LogicalDevice extends VulkanObject enabledExtensions = new HashSet<>(); private final VkPhysicalDeviceFeatures enabledFeatures = VkPhysicalDeviceFeatures.calloc(); + private final Map> pools = new ConcurrentHashMap<>(); private T physical; public LogicalDevice(VulkanInstance instance) { @@ -48,6 +52,35 @@ public VkPhysicalDeviceFeatures getEnabledFeatures() { return enabledFeatures; } + public CommandPool getShortTermPool(Queue queue) { + return getPool(queue, true, false); + } + + public CommandPool getLongTermPool(Queue queue) { + return getPool(queue, false, true); + } + + public CommandPool getPool(Queue queue, boolean shortLived, boolean reusable) { + return getPool(queue, shortLived, reusable, false); + } + + public CommandPool getPool(Queue queue, boolean shortLived, boolean reusable, boolean protect) { + if (queue.getDevice() != this) { + throw new IllegalArgumentException("Queue must belong to this device."); + } + Collection p = pools.computeIfAbsent(Thread.currentThread(), + t -> new ArrayList<>()); + for (CommandPool pool : p) { + if (pool.getQueue() == queue && pool.isShortLived() == shortLived + && pool.isReusable() == reusable && pool.isProtected() == protect) { + return pool; + } + } + CommandPool pool = new CommandPool(queue, shortLived, reusable, protect); + p.add(pool); + return pool; + } + public Builder build(Function deviceFactory) { return new Builder(deviceFactory); } @@ -96,9 +129,9 @@ protected void build() { create.ppEnabledLayerNames(lyrs.flip()); } PointerBuffer ptr = stack.mallocPointer(1); - check(vkCreateDevice(physical.getPhysicalDevice(), create, null, ptr), + check(vkCreateDevice(physical.getDeviceHandle(), create, null, ptr), "Failed to create logical device."); - object = new VkDevice(ptr.get(0), physical.getPhysicalDevice(), create); + object = new VkDevice(ptr.get(0), physical.getDeviceHandle(), create); ref = Native.get().register(LogicalDevice.this); physical.getInstance().getNativeReference().addDependent(ref); physical.createQueues(LogicalDevice.this); diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java index 6c3f388616..449243fddb 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java @@ -6,12 +6,6 @@ import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.*; -import java.nio.ByteBuffer; -import java.nio.IntBuffer; - -import static com.jme3.renderer.vulkan.VulkanUtils.*; -import static org.lwjgl.vulkan.VK10.*; - public interface PhysicalDevice { boolean populateQueueFamilyIndices(); @@ -22,7 +16,7 @@ public interface PhysicalDevice { VulkanInstance getInstance(); - VkPhysicalDevice getPhysicalDevice(); + VkPhysicalDevice getDeviceHandle(); VkQueueFamilyProperties.Buffer getQueueFamilyProperties(MemoryStack stack); diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/Surface.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/Surface.java index ba5c8e4633..957204752f 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/Surface.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/Surface.java @@ -37,12 +37,12 @@ public Surface(VulkanInstance instance, long window) { public Float evaluateDevice(PhysicalDevice device) { try (MemoryStack stack = MemoryStack.stackPush()) { IntBuffer count = stack.mallocInt(1); - KHRSurface.vkGetPhysicalDeviceSurfaceFormatsKHR(device.getPhysicalDevice(), id, count, null); + KHRSurface.vkGetPhysicalDeviceSurfaceFormatsKHR(device.getDeviceHandle(), id, count, null); if (count.get(0) == 0) { System.out.println("Reject device by surface support (formats)"); return null; } - KHRSurface.vkGetPhysicalDeviceSurfacePresentModesKHR(device.getPhysicalDevice(), id, count, null); + KHRSurface.vkGetPhysicalDeviceSurfacePresentModesKHR(device.getDeviceHandle(), id, count, null); if (count.get(0) == 0) { System.out.println("Reject device by surface support (present modes)"); return null; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/Swapchain.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/Swapchain.java index 6ec8dc140a..3cb16ce036 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/Swapchain.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/Swapchain.java @@ -221,12 +221,12 @@ public class Builder extends VulkanObject.Builder { public Builder() { caps = VkSurfaceCapabilitiesKHR.malloc(stack); - KHRSurface.vkGetPhysicalDeviceSurfaceCapabilitiesKHR(device.getPhysicalDevice().getPhysicalDevice(), surface.getNativeObject(), caps); + KHRSurface.vkGetPhysicalDeviceSurfaceCapabilitiesKHR(device.getPhysicalDevice().getDeviceHandle(), surface.getNativeObject(), caps); formats = enumerateBuffer(stack, n -> VkSurfaceFormatKHR.malloc(n, stack), (count, buffer) - -> KHRSurface.vkGetPhysicalDeviceSurfaceFormatsKHR(device.getPhysicalDevice().getPhysicalDevice(), + -> KHRSurface.vkGetPhysicalDeviceSurfaceFormatsKHR(device.getPhysicalDevice().getDeviceHandle(), surface.getNativeObject(), count, buffer)); modes = enumerateBuffer(stack, stack::mallocInt, (count, buffer) -> - KHRSurface.vkGetPhysicalDeviceSurfacePresentModesKHR(device.getPhysicalDevice().getPhysicalDevice(), + KHRSurface.vkGetPhysicalDeviceSurfacePresentModesKHR(device.getPhysicalDevice().getDeviceHandle(), surface.getNativeObject(), count, buffer)); if (formats == null || modes == null) { throw new UnsupportedOperationException("Swapchains are not supported by the device."); @@ -253,7 +253,7 @@ protected void build() { } VkSurfaceCapabilitiesKHR caps = VkSurfaceCapabilitiesKHR.calloc(stack); KHRSurface.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( - device.getPhysicalDevice().getPhysicalDevice(), surface.getNativeObject(), caps); + device.getPhysicalDevice().getDeviceHandle(), surface.getNativeObject(), caps); format = Image.Format.vkEnum(selectedFormat.format()); extent = new Extent2(selectedExtent); VkSwapchainCreateInfoKHR create = VkSwapchainCreateInfoKHR.calloc(stack) From a00411b7ba060e02d377434ba50e153c6acc6a12 Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Thu, 14 Aug 2025 22:58:57 -0400 Subject: [PATCH 31/37] add stage mask to semaphores --- .../jme3test/vulkan/VulkanHelperTest.java | 5 ++-- .../jme3/vulkan/commands/CommandBuffer.java | 2 +- .../com/jme3/vulkan/commands/CommandPool.java | 4 ++-- .../vulkan/commands/OneTimeCommandBuffer.java | 18 +++++++------- .../java/com/jme3/vulkan/sync/Semaphore.java | 24 +++++++++++++++++++ .../java/com/jme3/vulkan/sync/SyncGroup.java | 10 ++++++++ 6 files changed, 49 insertions(+), 14 deletions(-) diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java index 8281755e14..e8391de111 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java @@ -297,8 +297,7 @@ private ImageView createDepthAttachment(CommandPool pool) { CommandBuffer commands = pool.allocateOneTimeCommandBuffer(); commands.begin(); image.transitionLayout(commands, Image.Layout.Undefined, Image.Layout.DepthStencilAttachmentOptimal); - commands.end(); - commands.submit(new SyncGroup()); + commands.endAndSubmit(new SyncGroup()); commands.getPool().getQueue().waitIdle(); return view; } @@ -307,7 +306,7 @@ private class Frame implements Consumer { // render manager private final CommandBuffer graphicsCommands = graphicsPool.allocateCommandBuffer(); - private final Semaphore imageAvailable = new Semaphore(device); + private final Semaphore imageAvailable = new Semaphore(device, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT); private final Semaphore renderFinished = new Semaphore(device); private final Fence inFlight = new Fence(device, true); diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandBuffer.java index f24b4ea3ab..3e494eb648 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandBuffer.java @@ -63,7 +63,7 @@ public void submit(SyncGroup sync) { if (sync.containsWaits()) { submit.waitSemaphoreCount(sync.getWaits().length) .pWaitSemaphores(sync.toWaitBuffer(stack)) - .pWaitDstStageMask(stack.ints(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT)); + .pWaitDstStageMask(sync.toDstStageBuffer(stack)); } if (sync.containsSignals()) { submit.pSignalSemaphores(sync.toSignalBuffer(stack)); diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandPool.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandPool.java index 61597e18f4..127ea18ca1 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandPool.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/CommandPool.java @@ -27,8 +27,8 @@ public CommandPool(Queue queue, boolean shortLived, boolean reusable, boolean pr VkCommandPoolCreateInfo create = VkCommandPoolCreateInfo.calloc(stack) .sType(VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO) .flags((shortLived ? VK_COMMAND_POOL_CREATE_TRANSIENT_BIT : 0) - | (reusable ? VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT : 0) - | (protect ? VK_COMMAND_POOL_CREATE_PROTECTED_BIT : 0)) + | (reusable ? VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT : 0) + | (protect ? VK_COMMAND_POOL_CREATE_PROTECTED_BIT : 0)) .queueFamilyIndex(queue.getFamilyIndex()); LongBuffer idBuf = stack.mallocLong(1); check(vkCreateCommandPool(queue.getDevice().getNativeObject(), create, null, idBuf), diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/OneTimeCommandBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/OneTimeCommandBuffer.java index 7201f7c2b9..06775cf648 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/OneTimeCommandBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/commands/OneTimeCommandBuffer.java @@ -2,6 +2,7 @@ import com.jme3.vulkan.sync.Fence; import com.jme3.vulkan.sync.Semaphore; +import com.jme3.vulkan.sync.SyncGroup; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkCommandBufferBeginInfo; import org.lwjgl.vulkan.VkSubmitInfo; @@ -22,7 +23,7 @@ public void begin() { throw new IllegalStateException("Command buffer already recording."); } if (active) { - throw new IllegalStateException("Buffer already freed."); + throw new IllegalStateException("One-time command buffer has already been used."); } try (MemoryStack stack = MemoryStack.stackPush()) { VkCommandBufferBeginInfo begin = VkCommandBufferBeginInfo.calloc(stack) @@ -34,7 +35,7 @@ public void begin() { } @Override - public void submit(Semaphore wait, Semaphore signal, Fence fence) { + public void submit(SyncGroup sync) { if (recording) { throw new IllegalStateException("Command buffer is still recording."); } @@ -42,14 +43,15 @@ public void submit(Semaphore wait, Semaphore signal, Fence fence) { VkSubmitInfo.Buffer submit = VkSubmitInfo.calloc(1, stack) .sType(VK_STRUCTURE_TYPE_SUBMIT_INFO) .pCommandBuffers(stack.pointers(buffer)); - if (wait != null) { - submit.waitSemaphoreCount(1).pWaitSemaphores(stack.longs(wait.getNativeObject())) - .pWaitDstStageMask(stack.ints(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT)); + if (sync.containsWaits()) { + submit.waitSemaphoreCount(sync.getWaits().length) + .pWaitSemaphores(sync.toWaitBuffer(stack)) + .pWaitDstStageMask(sync.toDstStageBuffer(stack)); } - if (signal != null) { - submit.pSignalSemaphores(stack.longs(signal.getNativeObject())); + if (sync.containsSignals()) { + submit.pSignalSemaphores(sync.toSignalBuffer(stack)); } - pool.getQueue().submit(submit, fence); + pool.getQueue().submit(submit, sync.getFence()); pool.getQueue().waitIdle(); vkFreeCommandBuffers(pool.getDevice().getNativeObject(), pool.getNativeObject(), buffer); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/Semaphore.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/Semaphore.java index 25cfdff5be..8c58c518a1 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/Semaphore.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/Semaphore.java @@ -17,9 +17,15 @@ public class Semaphore implements Native { private final LogicalDevice device; private final NativeReference ref; private long id; + private int dstStageMask; public Semaphore(LogicalDevice device) { + this(device, 0); + } + + public Semaphore(LogicalDevice device, int dstStageMask) { this.device = device; + this.dstStageMask = dstStageMask; try (MemoryStack stack = MemoryStack.stackPush()) { VkSemaphoreCreateInfo create = VkSemaphoreCreateInfo.calloc(stack) .sType(VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO); @@ -50,10 +56,28 @@ public NativeReference getNativeReference() { return ref; } + public void setDstStageMask(int dstStageMask) { + this.dstStageMask = dstStageMask; + } + + public void addDstStageBit(int stageBit) { + this.dstStageMask |= stageBit; + } + + public void removeDstStageBit(int stageBit) { + this.dstStageMask &= ~stageBit; + } + + public int getDstStageMask() { + return dstStageMask; + } + + @Deprecated public long getId() { return id; } + @Deprecated public LongBuffer toBuffer(MemoryStack stack) { return stack.longs(id); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/SyncGroup.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/SyncGroup.java index 27dfcffda1..267d6aee05 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/SyncGroup.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/SyncGroup.java @@ -3,6 +3,7 @@ import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VK10; +import java.nio.IntBuffer; import java.nio.LongBuffer; public class SyncGroup { @@ -88,6 +89,15 @@ public LongBuffer toWaitBuffer(MemoryStack stack) { return buf; } + public IntBuffer toDstStageBuffer(MemoryStack stack) { + IntBuffer buf = stack.mallocInt(waits.length); + for (Semaphore s : signals) { + buf.put(s.getDstStageMask()); + } + buf.flip(); + return buf; + } + public LongBuffer toSignalBuffer(MemoryStack stack) { LongBuffer buf = stack.mallocLong(signals.length); for (Semaphore s : signals) { From d0340ab3eb17ac11f09bc6fc951487ea6d8e542e Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Sat, 16 Aug 2025 17:53:59 -0400 Subject: [PATCH 32/37] figure out uniform details --- .../jme3test/vulkan/VulkanHelperTest.java | 13 +-- .../com/jme3/vulkan/buffers/GpuBuffer.java | 16 +++- .../jme3/vulkan/buffers/StageableBuffer.java | 21 +++-- .../com/jme3/vulkan/buffers/StaticBuffer.java | 42 +++++++++ .../vulkan/descriptors/DescriptorSet.java | 60 ++++++------- .../descriptors/DescriptorSetWriter.java | 4 - .../jme3/vulkan/devices/ComputeDevice.java | 9 -- .../vulkan/devices/GeneralPhysicalDevice.java | 8 +- .../jme3/vulkan/devices/PhysicalDevice.java | 5 ++ .../jme3/vulkan/images/VulkanImageLoader.java | 2 +- .../com/jme3/vulkan/material/Material.java | 23 ++++- .../jme3/vulkan/material/TestMaterial.java | 9 +- .../material/uniforms/AbstractUniform.java | 31 +++++++ .../material/uniforms/BufferUniform.java | 85 ++++++++++++++++--- .../material/uniforms/TextureUniform.java | 49 +++++++++-- .../vulkan/material/uniforms/Uniform.java | 63 ++------------ .../vulkan/material/uniforms/UniformSet.java | 24 ++++-- .../java/com/jme3/vulkan/sync/SyncGroup.java | 5 ++ .../java/com/jme3/vulkan/sync/TaskQueue.java | 9 ++ .../main/resources/Shaders/VulkanTest.json | 14 +++ .../resources/Shaders/VulkanVertTest.json | 15 ++++ 21 files changed, 347 insertions(+), 160 deletions(-) create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StaticBuffer.java delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/ComputeDevice.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/AbstractUniform.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/TaskQueue.java create mode 100644 jme3-testdata/src/main/resources/Shaders/VulkanTest.json create mode 100644 jme3-testdata/src/main/resources/Shaders/VulkanVertTest.json diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java index e8391de111..af8ba1ee97 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java @@ -223,17 +223,12 @@ public void simpleInitApp() { // the cpu cannot directly access fast gpu memory. The solution is to // copy cpu-side data to a mutual staging buffer, then have the gpu copy // that data to faster memory. Hence, why we use a StageableBuffer here. - vertexBuffer = new StageableBuffer(device, MemorySize.floats(vertexData.capacity()), + vertexBuffer = new StaticBuffer(device, transferPool, MemorySize.floats(vertexData.capacity()), new BufferUsageFlags().vertexBuffer(), new MemoryFlags().deviceLocal(), false); - vertexBuffer.copy(stack, vertexData); // copy data to staging buffer - vertexBuffer.transfer(transferPool); - vertexBuffer.freeStagingBuffer(); - // index buffer - indexBuffer = new StageableBuffer(device, MemorySize.ints(indexData.capacity()), + vertexBuffer.copy(stack, vertexData); + indexBuffer = new StaticBuffer(device, transferPool, MemorySize.ints(indexData.capacity()), new BufferUsageFlags().indexBuffer(), new MemoryFlags().deviceLocal(), false); indexBuffer.copy(stack, indexData); - indexBuffer.transfer(transferPool); - indexBuffer.freeStagingBuffer(); } // material color texture @@ -297,7 +292,7 @@ private ImageView createDepthAttachment(CommandPool pool) { CommandBuffer commands = pool.allocateOneTimeCommandBuffer(); commands.begin(); image.transitionLayout(commands, Image.Layout.Undefined, Image.Layout.DepthStencilAttachmentOptimal); - commands.endAndSubmit(new SyncGroup()); + commands.endAndSubmit(SyncGroup.ASYNC); commands.getPool().getQueue().waitIdle(); return view; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java index 13162b6a66..4f6656022b 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java @@ -11,6 +11,7 @@ import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryUtil; import org.lwjgl.system.Struct; +import org.lwjgl.system.StructBuffer; import org.lwjgl.vulkan.VkBufferCopy; import org.lwjgl.vulkan.VkBufferCreateInfo; import org.lwjgl.vulkan.VkMemoryRequirements; @@ -106,8 +107,8 @@ public LongBuffer mapLongs(MemoryStack stack, int offset, int size, int flags) { return map(stack, offset, size * Long.BYTES, flags).getLongBuffer(0, size); } - public > T mapStruct(MemoryStack stack, int offset, int size, int flags, LongFunction factory) { - return factory.apply(map(stack, offset, size, flags).get(0)); + public T mapObject(MemoryStack stack, int offset, int size, int flags, Function factory) { + return factory.apply(map(stack, offset, size, flags)); } public void copy(MemoryStack stack, ByteBuffer buffer) { @@ -153,6 +154,13 @@ public void copy(MemoryStack stack, Struct struct) { unmap(); } + public void copy(MemoryStack stack, StructBuffer buffer) { + verifyBufferSize(buffer.limit(), buffer.sizeof()); + int size = buffer.limit() * buffer.sizeof(); + MemoryUtil.memCopy(MemoryUtil.memByteBuffer(buffer.address(), size), mapBytes(stack, 0, size, 0)); + unmap(); + } + public void unmap() { memory.unmap(); } @@ -172,4 +180,8 @@ public MemorySize size() { return size; } + public LogicalDevice getDevice() { + return device; + } + } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java index d64dc01e0c..a2a89371db 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java @@ -18,7 +18,7 @@ public class StageableBuffer extends GpuBuffer { public StageableBuffer(LogicalDevice device, MemorySize size, BufferUsageFlags usage, MemoryFlags mem, boolean concurrent) { super(device, size, usage.transferDst(), mem, concurrent); - stage = new GpuBuffer(device, size, new BufferUsageFlags().transferSrc(), + this.stage = new GpuBuffer(device, size, new BufferUsageFlags().transferSrc(), new MemoryFlags().hostVisible().hostCoherent(), concurrent); } @@ -38,25 +38,24 @@ public void freeMemory() { stage.freeMemory(); } - public void unmap(SyncGroup sync) { - stage.unmap(); - } - public void transfer(CommandPool transferPool) { - transfer(transferPool, new SyncGroup()); - transferPool.getQueue().waitIdle(); + transfer(transferPool, SyncGroup.ASYNC); } public void transfer(CommandPool transferPool, SyncGroup sync) { if (stage.getNativeReference().isDestroyed()) { throw new IllegalStateException("Staging buffer has already been freed."); } - CommandBuffer commands = transferPool.allocateOneTimeCommandBuffer(); - commands.begin(); + CommandBuffer cmd = transferPool.allocateOneTimeCommandBuffer(); + cmd.begin(); + transfer(cmd); + cmd.endAndSubmit(sync); + } + + public void transfer(CommandBuffer cmd) { try (MemoryStack stack = MemoryStack.stackPush()) { - recordCopy(stack, commands, stage, 0, 0, size().getBytes()); + recordCopy(stack, cmd, stage, 0, 0, size().getBytes()); } - commands.endAndSubmit(sync); } public void freeStagingBuffer() { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StaticBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StaticBuffer.java new file mode 100644 index 0000000000..0eabbcbf22 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StaticBuffer.java @@ -0,0 +1,42 @@ +package com.jme3.vulkan.buffers; + +import com.jme3.vulkan.commands.CommandPool; +import com.jme3.vulkan.devices.LogicalDevice; +import com.jme3.vulkan.flags.BufferUsageFlags; +import com.jme3.vulkan.flags.MemoryFlags; +import com.jme3.vulkan.sync.Fence; +import com.jme3.vulkan.sync.SyncGroup; +import com.jme3.vulkan.sync.TaskQueue; + +import java.util.concurrent.*; + +public class StaticBuffer extends StageableBuffer { + + private final CommandPool transferPool; + + public StaticBuffer(LogicalDevice device, CommandPool transferPool, MemorySize size, BufferUsageFlags usage, MemoryFlags mem, boolean concurrent) { + super(device, size, usage, mem, concurrent); + this.transferPool = transferPool; + } + + @Override + public void unmap() { + super.unmap(); + SyncGroup sync = new SyncGroup(new Fence(getDevice(), false)); + transfer(transferPool, sync); + sync.getFence().block(5000); + freeStagingBuffer(); + } + + public void unmapAsync(TaskQueue queue, SyncGroup sync) { + if (!sync.containsFence()) { + throw new IllegalArgumentException("SyncGroup must contain a fence."); + } + transfer(transferPool, sync); + queue.submit(new FutureTask<>(() -> { + sync.getFence().block(5000); + freeStagingBuffer(); + }, true)); + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java index cdf45226a0..51337ef693 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java @@ -1,67 +1,57 @@ package com.jme3.vulkan.descriptors; +import com.jme3.util.natives.Native; +import com.jme3.vulkan.VulkanObject; import com.jme3.vulkan.devices.LogicalDevice; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkWriteDescriptorSet; import static org.lwjgl.vulkan.VK10.*; -public class DescriptorSet { +public class DescriptorSet extends VulkanObject { private final LogicalDevice device; private final DescriptorPool pool; private final DescriptorSetLayout layout; - private final long id; public DescriptorSet(LogicalDevice device, DescriptorPool pool, DescriptorSetLayout layout, long id) { this.device = device; this.pool = pool; this.layout = layout; - this.id = id; + this.object = id; + ref = Native.get().register(this); + pool.getNativeReference().addDependent(ref); } - public void update(boolean force, DescriptorSetWriter... writers) { - try (MemoryStack stack = MemoryStack.stackPush()) { - int updating = countWritersToUpdate(force, writers); - if (updating > 0) { - VkWriteDescriptorSet.Buffer write = VkWriteDescriptorSet.calloc(updating, stack); - for (DescriptorSetWriter w : writers) { - if (force || w.isUpdateNeeded()) { - w.populateWrite(stack, write.get() - .sType(VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET) - .dstSet(id)); - } - } - write.flip(); - vkUpdateDescriptorSets(device.getNativeObject(), write, null); + @Override + public Runnable createNativeDestroyer() { + return () -> { + try (MemoryStack stack = MemoryStack.stackPush()) { + vkFreeDescriptorSets(device.getNativeObject(), + pool.getNativeObject(), stack.longs(object)); } - } + }; } - private int countWritersToUpdate(boolean force, DescriptorSetWriter... writers) { - if (force) { - return writers.length; - } - int updating = 0; - for (DescriptorSetWriter w : writers) { - if (w.isUpdateNeeded()) { - updating++; - } + public void write(DescriptorSetWriter... writers) { + try (MemoryStack stack = MemoryStack.stackPush()) { + VkWriteDescriptorSet.Buffer write = VkWriteDescriptorSet.calloc(writers.length, stack); + populateWriteBuffer(stack, write, writers); + write.flip(); + vkUpdateDescriptorSets(device.getNativeObject(), write, null); } - return updating; } - public void free() { - if (pool.getNativeReference().isDestroyed()) { - return; - } - try (MemoryStack stack = MemoryStack.stackPush()) { - vkFreeDescriptorSets(device.getNativeObject(), pool.getNativeObject(), stack.longs(id)); + public void populateWriteBuffer(MemoryStack stack, VkWriteDescriptorSet.Buffer buffer, DescriptorSetWriter... writers) { + for (DescriptorSetWriter w : writers) { + w.populateWrite(stack, buffer.get() + .sType(VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET) + .dstSet(object)); } } public long getId() { - return id; + return object; } public LogicalDevice getDevice() { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetWriter.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetWriter.java index 027d43889f..f21740f2de 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetWriter.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSetWriter.java @@ -7,8 +7,4 @@ public interface DescriptorSetWriter { void populateWrite(MemoryStack stack, VkWriteDescriptorSet write); - default boolean isUpdateNeeded() { - return true; - } - } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/ComputeDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/ComputeDevice.java deleted file mode 100644 index 657074bd0a..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/ComputeDevice.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.jme3.vulkan.devices; - -import com.jme3.vulkan.commands.Queue; - -public interface ComputeDevice extends PhysicalDevice { - - Queue getCompute(); - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GeneralPhysicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GeneralPhysicalDevice.java index ef2e65386a..50c73a46b7 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GeneralPhysicalDevice.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/GeneralPhysicalDevice.java @@ -12,8 +12,7 @@ import static org.lwjgl.vulkan.VK10.*; -public class GeneralPhysicalDevice extends AbstractPhysicalDevice - implements GraphicalDevice, PresentDevice, ComputeDevice { +public class GeneralPhysicalDevice extends AbstractPhysicalDevice implements GraphicalDevice, PresentDevice { private final Surface surface; private Integer graphicsIndex, presentIndex; @@ -82,6 +81,11 @@ public Queue getCompute() { return graphics; } + @Override + public Queue getDataTransfer() { + return graphics; + } + public boolean allQueuesAvailable() { return graphicsIndex != null && presentIndex != null; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java index 449243fddb..29e0d6d314 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java @@ -1,5 +1,6 @@ package com.jme3.vulkan.devices; +import com.jme3.vulkan.commands.Queue; import com.jme3.vulkan.surface.Surface; import com.jme3.vulkan.VulkanInstance; import com.jme3.vulkan.images.Image; @@ -34,4 +35,8 @@ public interface PhysicalDevice { boolean querySwapchainSupport(Surface surface); + Queue getCompute(); + + Queue getDataTransfer(); + } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java index 8e46d13d0c..f89611a805 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java @@ -175,7 +175,7 @@ Image.Tiling.Optimal, new ImageUsageFlags().transferDst().sampled(), image.getNativeObject(), VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, region); image.transitionLayout(commands, Image.Layout.TransferDstOptimal, Image.Layout.ShaderReadOnlyOptimal); commands.end(); - commands.submit(new SyncGroup()); + commands.submit(SyncGroup.ASYNC); transferPool.getQueue().waitIdle(); return image; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java index 24a78dca91..fbb6fd3958 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java @@ -19,6 +19,7 @@ public class Material { private final DescriptorPool pool; private final List uniforms = new ArrayList<>(); + private final HashMap> uniformLookup = new HashMap<>(); public Material(DescriptorPool pool) { this.pool = pool; @@ -34,7 +35,7 @@ public void bind(CommandBuffer cmd, Pipeline pipeline, int offset) { ArrayList allocationLayouts = new ArrayList<>(availableLayouts.size()); ArrayList allocationTargets = new ArrayList<>(availableLayouts.size()); for (UniformSet set : uniforms) { - set.update(pipeline); + set.update(pipeline.getDevice()); // Select an existing descriptor set to be active. If // no existing set may be selected, a set layout is // returned with which to allocate a new descriptor set. @@ -54,7 +55,7 @@ public void bind(CommandBuffer cmd, Pipeline pipeline, int offset) { for (int i = 0; i < allocatedSets.length; i++) { UniformSet target = allocationTargets.get(i); target.addActiveSet(allocatedSets[i]); - allocatedSets[i].update(true, target.getUniforms()); + allocatedSets[i].write(target.getUniforms()); } } try (MemoryStack stack = MemoryStack.stackPush()) { @@ -81,4 +82,22 @@ public List getSets() { return Collections.unmodifiableList(uniforms); } + @SuppressWarnings("unchecked") + public T get(String name) { + // Not sure if caching results are really worth it... + Uniform uniform = uniformLookup.get(name); + if (uniform != null) { + return (T)uniform; + } + for (UniformSet set : uniforms) { + for (Uniform u : set.getUniforms()) { + if (name.equals(u.getName())) { + uniformLookup.put(u.getName(), u); + return (T)u; + } + } + } + return null; + } + } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TestMaterial.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TestMaterial.java index 4615dde8a7..fcbb8e3971 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TestMaterial.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TestMaterial.java @@ -1,6 +1,5 @@ package com.jme3.vulkan.material; -import com.jme3.vulkan.buffers.GpuBuffer; import com.jme3.vulkan.descriptors.Descriptor; import com.jme3.vulkan.descriptors.DescriptorPool; import com.jme3.vulkan.images.Image; @@ -9,17 +8,17 @@ public class TestMaterial extends Material { - private final BufferUniform matrices = new BufferUniform<>( - Descriptor.UniformBuffer, 0); + private final BufferUniform matrices = new BufferUniform( + "Matrices", Descriptor.UniformBuffer, 0); private final TextureUniform baseColorMap = new TextureUniform( - Image.Layout.ShaderReadOnlyOptimal, 1); + "BaseColorMap", Image.Layout.ShaderReadOnlyOptimal, 1); public TestMaterial(DescriptorPool pool) { super(pool); addSet(matrices, baseColorMap); } - public BufferUniform getMatrices() { + public BufferUniform getMatrices() { return matrices; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/AbstractUniform.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/AbstractUniform.java new file mode 100644 index 0000000000..4fb896d3c0 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/AbstractUniform.java @@ -0,0 +1,31 @@ +package com.jme3.vulkan.material.uniforms; + +import com.jme3.vulkan.descriptors.Descriptor; + +public abstract class AbstractUniform implements Uniform { + + protected final String name; + protected final Descriptor type; + protected final int bindingIndex; + + public AbstractUniform(String name, Descriptor type, int bindingIndex) { + this.name = name; + this.type = type; + this.bindingIndex = bindingIndex; + } + + @Override + public String getName() { + return name; + } + + @Override + public int getBindingIndex() { + return bindingIndex; + } + + public Descriptor getType() { + return type; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/BufferUniform.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/BufferUniform.java index d25975db9d..6427628c28 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/BufferUniform.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/BufferUniform.java @@ -1,35 +1,96 @@ package com.jme3.vulkan.material.uniforms; -import com.jme3.vulkan.buffers.GpuBuffer; +import com.jme3.vulkan.buffers.*; import com.jme3.vulkan.descriptors.Descriptor; +import com.jme3.vulkan.descriptors.SetLayoutBinding; +import com.jme3.vulkan.devices.LogicalDevice; import org.lwjgl.system.MemoryStack; import org.lwjgl.system.Struct; import org.lwjgl.vulkan.VkDescriptorBufferInfo; import org.lwjgl.vulkan.VkWriteDescriptorSet; -public class BufferUniform extends Uniform { +import java.util.Objects; +import java.util.function.Function; - public BufferUniform(Descriptor type, int bindingIndex) { - super(type, bindingIndex); +public class BufferUniform extends AbstractUniform { + + private GpuBuffer buffer; + private boolean updateFlag = true; + private Function, GpuBuffer> bufferFactory; + + public BufferUniform(String name, Descriptor type, int bindingIndex) { + super(name, type, bindingIndex); + } + + public BufferUniform(String name, Descriptor type, int bindingIndex, GpuBuffer buffer) { + super(name, type, bindingIndex); + this.buffer = buffer; + } + + public BufferUniform(String name, Descriptor type, int bindingIndex, Function, GpuBuffer> bufferFactory) { + super(name, type, bindingIndex); + this.bufferFactory = bufferFactory; } @Override public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { - super.populateWrite(stack, write); VkDescriptorBufferInfo.Buffer info = VkDescriptorBufferInfo.calloc(1, stack) - .buffer(value.getNativeObject()) + .buffer(buffer.getNativeObject()) .offset(0L) - .range(value.size().getBytes()); - write.pBufferInfo(info); + .range(buffer.size().getBytes()); + write.pBufferInfo(info) + .descriptorCount(1) + .dstArrayElement(0) + .dstBinding(bindingIndex) + .descriptorType(type.getVkEnum()); + updateFlag = false; } - public void setStruct(Struct struct) { - if (value == null) { - throw new NullPointerException("Buffer value is null."); + @Override + public boolean update(LogicalDevice device) { + if (buffer == null) { + if (bufferFactory != null) { + buffer = bufferFactory.apply(device); + updateFlag = true; + } else { + throw new NullPointerException("Uniform buffer is null."); + } + } + return updateFlag; + } + + @Override + public void setValue(GpuBuffer value) { + if (this.buffer != value) { + this.buffer = value; + updateFlag = true; } + } + + @Override + public GpuBuffer getValue() { + return buffer; + } + + @Override + public boolean isBindingCompatible(SetLayoutBinding binding) { + return type == binding.getType() + && bindingIndex == binding.getBinding() + && binding.getDescriptors() == 1; + } + + public void setBufferFactory(Function, GpuBuffer> bufferFactory) { + this.bufferFactory = bufferFactory; + } + + public void setStruct(Struct struct) { try (MemoryStack stack = MemoryStack.stackPush()) { - value.copy(stack, struct); + Objects.requireNonNull(buffer, "Uniform buffer is null.").copy(stack, struct); } } + public Function, GpuBuffer> getBufferFactory() { + return bufferFactory; + } + } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/TextureUniform.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/TextureUniform.java index 422ac72931..700a14c9a4 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/TextureUniform.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/TextureUniform.java @@ -1,29 +1,64 @@ package com.jme3.vulkan.material.uniforms; import com.jme3.vulkan.descriptors.Descriptor; +import com.jme3.vulkan.descriptors.SetLayoutBinding; +import com.jme3.vulkan.devices.LogicalDevice; import com.jme3.vulkan.images.Image; import com.jme3.vulkan.images.Texture; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkDescriptorImageInfo; import org.lwjgl.vulkan.VkWriteDescriptorSet; -public class TextureUniform extends Uniform { +public class TextureUniform extends AbstractUniform { private final Image.Layout layout; + private Texture texture; + private boolean updateFlag = true; - public TextureUniform(Image.Layout layout, int bindingIndex) { - super(Descriptor.CombinedImageSampler, bindingIndex); + public TextureUniform(String name, Image.Layout layout, int bindingIndex) { + super(name, Descriptor.CombinedImageSampler, bindingIndex); this.layout = layout; } @Override public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { - super.populateWrite(stack, write); VkDescriptorImageInfo.Buffer info = VkDescriptorImageInfo.calloc(1, stack) - .imageView(value.getImage().getNativeObject()) - .sampler(value.getNativeObject()) + .imageView(texture.getImage().getNativeObject()) + .sampler(texture.getNativeObject()) .imageLayout(layout.getVkEnum()); - write.pImageInfo(info); + write.pImageInfo(info) + .descriptorType(type.getVkEnum()) + .dstBinding(bindingIndex) + .dstArrayElement(0) + .descriptorCount(1); + } + + @Override + public boolean update(LogicalDevice device) { + if (texture == null) { + throw new NullPointerException("Uniform texture is null."); + } + return updateFlag; + } + + @Override + public void setValue(Texture value) { + if (this.texture != value) { + this.texture = value; + updateFlag = true; + } + } + + @Override + public Texture getValue() { + return texture; + } + + @Override + public boolean isBindingCompatible(SetLayoutBinding binding) { + return type == binding.getType() + && bindingIndex == binding.getBinding() + && binding.getDescriptors() == 1; } public Image.Layout getLayout() { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/Uniform.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/Uniform.java index 61ab10de14..2edbb09ee8 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/Uniform.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/Uniform.java @@ -1,67 +1,22 @@ package com.jme3.vulkan.material.uniforms; -import com.jme3.vulkan.descriptors.Descriptor; import com.jme3.vulkan.descriptors.DescriptorSetWriter; import com.jme3.vulkan.descriptors.SetLayoutBinding; -import org.lwjgl.system.MemoryStack; -import org.lwjgl.vulkan.VkWriteDescriptorSet; +import com.jme3.vulkan.devices.LogicalDevice; -public abstract class Uniform implements DescriptorSetWriter { +public interface Uniform extends DescriptorSetWriter { - private final Descriptor type; - private final int bindingIndex; - private boolean updateFlag = true; - protected T value; + // true to trigger update of descriptor sets + boolean update(LogicalDevice device); - public Uniform(Descriptor type, int bindingIndex) { - this.type = type; - this.bindingIndex = bindingIndex; - } + void setValue(T value); - @Override - public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { - write.descriptorType(type.getVkEnum()) - .dstBinding(bindingIndex) - .dstArrayElement(0) - .descriptorCount(1); - } + T getValue(); - @Override - public boolean isUpdateNeeded() { - return updateFlag; - } + int getBindingIndex(); - public boolean isBindingCompatible(SetLayoutBinding binding) { - return binding.getType() == type - && binding.getBinding() == bindingIndex - && binding.getDescriptors() == 1; - } + boolean isBindingCompatible(SetLayoutBinding binding); - public void setValue(T value) { - if (this.value != value) { - setUpdateNeeded(); - } - this.value = value; - } - - public void setUpdateNeeded() { - updateFlag = true; - } - - public void clearUpdateNeeded() { - updateFlag = false; - } - - public Descriptor getType() { - return type; - } - - public int getBindingIndex() { - return bindingIndex; - } - - public T getValue() { - return value; - } + String getName(); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/UniformSet.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/UniformSet.java index 090509fe54..d2767f87fd 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/UniformSet.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/UniformSet.java @@ -3,7 +3,10 @@ import com.jme3.vulkan.descriptors.DescriptorSet; import com.jme3.vulkan.descriptors.DescriptorSetLayout; import com.jme3.vulkan.descriptors.SetLayoutBinding; -import com.jme3.vulkan.pipelines.Pipeline; +import com.jme3.vulkan.devices.LogicalDevice; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VK10; +import org.lwjgl.vulkan.VkWriteDescriptorSet; import java.util.*; @@ -11,7 +14,6 @@ public class UniformSet { private final Uniform[] uniforms; private final List sets = new ArrayList<>(); - private final Collection outdatedSets = new ArrayList<>(); private DescriptorSet activeSet; public UniformSet(Uniform... uniforms) { @@ -62,12 +64,20 @@ public DescriptorSetLayout selectExistingActiveSet(List ava return null; } - public void update(Pipeline pipeline) { - for (DescriptorSet set : sets) { - set.update(false, uniforms); + public void update(LogicalDevice device) { + ArrayList> writers = new ArrayList<>(uniforms.length); + for (Uniform u : uniforms) { + if (u.update(device)) { + writers.add(u); + } } - for (Uniform u : uniforms) { - u.clearUpdateNeeded(); + if (!writers.isEmpty()) try (MemoryStack stack = MemoryStack.stackPush()) { + VkWriteDescriptorSet.Buffer write = VkWriteDescriptorSet.calloc(writers.size() * sets.size(), stack); + for (DescriptorSet s : sets) { + s.populateWriteBuffer(stack, write, writers.toArray(new Uniform[0])); + } + write.flip(); + VK10.vkUpdateDescriptorSets(device.getNativeObject(), write, null); } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/SyncGroup.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/SyncGroup.java index 267d6aee05..c16b708fe0 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/SyncGroup.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/SyncGroup.java @@ -8,6 +8,7 @@ public class SyncGroup { + public static final SyncGroup ASYNC = new SyncGroup(); private static final Semaphore[] EMPTY = new Semaphore[0]; private static Semaphore[] toArray(Semaphore s) { @@ -38,6 +39,10 @@ public SyncGroup(Semaphore[] waits, Semaphore signal) { this(waits, toArray(signal), null); } + public SyncGroup(Semaphore[] waits, Semaphore[] signals) { + this(waits, signals, null); + } + public SyncGroup(Semaphore wait, Semaphore signal, Fence fence) { this(toArray(wait), toArray(signal), fence); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/TaskQueue.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/TaskQueue.java new file mode 100644 index 0000000000..69505c663a --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/TaskQueue.java @@ -0,0 +1,9 @@ +package com.jme3.vulkan.sync; + +import java.util.concurrent.Future; + +public interface TaskQueue { + + void submit(Future task); + +} diff --git a/jme3-testdata/src/main/resources/Shaders/VulkanTest.json b/jme3-testdata/src/main/resources/Shaders/VulkanTest.json new file mode 100644 index 0000000000..740da8c67f --- /dev/null +++ b/jme3-testdata/src/main/resources/Shaders/VulkanTest.json @@ -0,0 +1,14 @@ +{ + "name" : "VulkanTest", + "techniques" : { + "main" : { + "shaders" : { + "vertex" : "Shaders/VulkanFragTest.json", + "fragment" : "Shaders/VulkanVertTest.json" + }, + "defines" : { + "MY_CUSTOM_DEFINE" : 1 + } + } + } +} \ No newline at end of file diff --git a/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.json b/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.json new file mode 100644 index 0000000000..8bc5811cb9 --- /dev/null +++ b/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.json @@ -0,0 +1,15 @@ +{ + "shader" : "Shaders/VulkanVertTest.glsl", + "type" : "vertex", + "platforms" : ["vulkan", "opengl"], + "versions" : [460, 450], + "parameters" : { + "Matrices" : { + "type" : "UniformBuffer", + "set" : 0, + "binding" : 0, + "usage" : "Stream", + "define" : "MATRICES" + } + } +} \ No newline at end of file From ab0de0e90e388df1a64d877f56dec647ca6d6c06 Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Tue, 19 Aug 2025 10:59:44 -0400 Subject: [PATCH 33/37] add Flag interface to handle bit flags --- .../jme3test/vulkan/VulkanHelperTest.java | 52 +++++++------ .../com/jme3/vulkan/buffers/BufferUsage.java | 30 +++++++ .../com/jme3/vulkan/buffers/GpuBuffer.java | 13 ++-- .../jme3/vulkan/buffers/PersistentBuffer.java | 7 +- .../jme3/vulkan/buffers/StageableBuffer.java | 15 ++-- .../com/jme3/vulkan/buffers/StaticBuffer.java | 8 +- .../vulkan/descriptors/DescriptorPool.java | 2 - .../vulkan/descriptors/DescriptorSet.java | 6 +- .../vulkan/descriptors/SetLayoutBinding.java | 17 ++-- .../devices/AbstractPhysicalDevice.java | 12 +-- .../jme3/vulkan/devices/PhysicalDevice.java | 6 +- .../jme3/vulkan/flags/BufferUsageFlags.java | 38 --------- .../jme3/vulkan/flags/ImageUsageFlags.java | 33 -------- .../com/jme3/vulkan/flags/MemoryFlags.java | 38 --------- .../java/com/jme3/vulkan/images/GpuImage.java | 16 ++-- .../com/jme3/vulkan/images/ImageUsage.java | 29 +++++++ .../jme3/vulkan/images/VulkanImageLoader.java | 14 ++-- .../com/jme3/vulkan/material/Material.java | 32 ++++---- .../vulkan/material/SetAllocationInfo.java | 23 ++++++ .../jme3/vulkan/material/TestMaterial.java | 5 +- .../material/{uniforms => }/UniformSet.java | 22 ++++-- .../material/uniforms/AbstractUniform.java | 12 ++- .../material/uniforms/BufferUniform.java | 27 +++---- .../material/uniforms/TextureUniform.java | 6 +- .../vulkan/material/uniforms/Uniform.java | 11 +-- .../com/jme3/vulkan/memory/MemoryFlag.java | 26 +++++++ .../{buffers => memory}/MemoryRegion.java | 3 +- .../{buffers => memory}/MemorySize.java | 2 +- .../jme3/vulkan/pass/SubpassDependency.java | 31 ++++---- .../com/jme3/vulkan/pipelines/Access.java | 38 +++++++++ .../vulkan/pipelines/GraphicsPipeline.java | 36 ++++----- .../com/jme3/vulkan/pipelines/Pipeline.java | 2 + .../jme3/vulkan/pipelines/PipelineStage.java | 39 ++++++++++ .../com/jme3/vulkan/shader/ShaderModule.java | 8 +- .../com/jme3/vulkan/shader/ShaderStage.java | 29 +++++++ .../com/jme3/vulkan/surface/Swapchain.java | 1 + .../java/com/jme3/vulkan/sync/Semaphore.java | 20 ++--- .../java/com/jme3/vulkan/sync/SyncGroup.java | 2 +- .../com/jme3/vulkan/{ => util}/Extent2.java | 2 +- .../main/java/com/jme3/vulkan/util/Flag.java | 78 +++++++++++++++++++ .../{ => util}/RenderStateToVulkan.java | 2 +- .../main/resources/Shaders/VulkanTest.json | 4 +- .../src/main/resources/Shaders/VulkanTest.yml | 20 +++++ .../main/resources/Shaders/VulkanVertTest.yml | 6 ++ 44 files changed, 529 insertions(+), 294 deletions(-) create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/BufferUsage.java delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/BufferUsageFlags.java delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/ImageUsageFlags.java delete mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/MemoryFlags.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/ImageUsage.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/SetAllocationInfo.java rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/{uniforms => }/UniformSet.java (81%) create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/memory/MemoryFlag.java rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/{buffers => memory}/MemoryRegion.java (97%) rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/{buffers => memory}/MemorySize.java (97%) create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/Access.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/PipelineStage.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/ShaderStage.java rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/{ => util}/Extent2.java (96%) create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/util/Flag.java rename jme3-lwjgl3/src/main/java/com/jme3/vulkan/{ => util}/RenderStateToVulkan.java (99%) create mode 100644 jme3-testdata/src/main/resources/Shaders/VulkanTest.yml create mode 100644 jme3-testdata/src/main/resources/Shaders/VulkanVertTest.yml diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java index af8ba1ee97..7065ee728e 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java @@ -17,26 +17,26 @@ import com.jme3.vulkan.commands.CommandPool; import com.jme3.vulkan.descriptors.*; import com.jme3.vulkan.devices.*; -import com.jme3.vulkan.flags.ImageUsageFlags; -import com.jme3.vulkan.flags.MemoryFlags; -import com.jme3.vulkan.flags.BufferUsageFlags; import com.jme3.vulkan.images.*; import com.jme3.vulkan.material.TestMaterial; +import com.jme3.vulkan.material.uniforms.BufferUniform; +import com.jme3.vulkan.memory.MemoryFlag; +import com.jme3.vulkan.memory.MemorySize; import com.jme3.vulkan.pass.Attachment; import com.jme3.vulkan.pass.Subpass; -import com.jme3.vulkan.pipelines.GraphicsPipeline; +import com.jme3.vulkan.pipelines.*; import com.jme3.vulkan.pass.RenderPass; -import com.jme3.vulkan.pipelines.PipelineBindPoint; -import com.jme3.vulkan.pipelines.PipelineLayout; import com.jme3.vulkan.pipelines.states.ColorBlendAttachment; import com.jme3.vulkan.pipelines.states.DynamicState; import com.jme3.vulkan.shader.ShaderModule; +import com.jme3.vulkan.shader.ShaderStage; import com.jme3.vulkan.surface.Surface; import com.jme3.vulkan.surface.Swapchain; import com.jme3.vulkan.surface.SwapchainUpdater; import com.jme3.vulkan.sync.Fence; import com.jme3.vulkan.sync.Semaphore; import com.jme3.vulkan.sync.SyncGroup; +import com.jme3.vulkan.util.Flag; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.*; @@ -158,8 +158,8 @@ public void simpleInitApp() { // requiring 1 descriptor, and an image sampler at binding 1 // requiring 1 descriptor. descriptorLayout = new DescriptorSetLayout(device, - new SetLayoutBinding(Descriptor.UniformBuffer, 0, 1, VK_SHADER_STAGE_VERTEX_BIT), - new SetLayoutBinding(Descriptor.CombinedImageSampler, 1, 1, VK_SHADER_STAGE_FRAGMENT_BIT)); + new SetLayoutBinding(Descriptor.UniformBuffer, 0, 1, ShaderStage.Vertex), + new SetLayoutBinding(Descriptor.CombinedImageSampler, 1, 1, ShaderStage.Fragment)); descriptorPool = new DescriptorPool(device, 3, new PoolSize(Descriptor.UniformBuffer, 3), new PoolSize(Descriptor.StorageBuffer, 4), @@ -173,9 +173,9 @@ public void simpleInitApp() { // pipeline pipelineLayout = new PipelineLayout(device, descriptorLayout); vertModule = new ShaderModule(device, assetManager.loadAsset(ShadercLoader.key( - "Shaders/VulkanVertTest.glsl", ShaderType.Vertex)), "main"); + "Shaders/VulkanVertTest.glsl", ShaderType.Vertex))); fragModule = new ShaderModule(device, assetManager.loadAsset(ShadercLoader.key( - "Shaders/VulkanFragTest.glsl", ShaderType.Fragment)), "main"); + "Shaders/VulkanFragTest.glsl", ShaderType.Fragment))); renderPass = new RenderPass(device); try (RenderPass.Builder p = renderPass.build()) { Attachment color = p.createAttachment(swapchain.getFormat(), VK_SAMPLE_COUNT_1_BIT, a -> { @@ -199,17 +199,17 @@ public void simpleInitApp() { s.setDepthStencilAttachment(depth.createReference(Image.Layout.DepthStencilAttachmentOptimal)); }); p.createDependency(null, subpass, d -> { - d.setSrcStageMask(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT); - d.setSrcAccessMask(subpass.getPosition()); - d.setDstStageMask(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT); - d.setDstAccessMask(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT); + d.setSrcStageMask(Flag.of(PipelineStage.ColorAttachmentOutput, PipelineStage.EarlyFragmentTests)); + d.setSrcAccessMask(Flag.of(subpass.getPosition())); + d.setDstStageMask(Flag.of(PipelineStage.ColorAttachmentOutput, PipelineStage.EarlyFragmentTests)); + d.setDstAccessMask(Flag.of(Access.ColorAttachmentWrite, Access.DepthStencilAttachmentWrite)); }); } swapchain.createFrameBuffers(renderPass, depthView); pipeline = new GraphicsPipeline(device, pipelineLayout, renderPass, 0, new TestCaseMeshDescription()); try (GraphicsPipeline.Builder p = pipeline.build()) { - p.addStage(vertModule, VK_SHADER_STAGE_VERTEX_BIT); - p.addStage(fragModule, VK_SHADER_STAGE_FRAGMENT_BIT); + p.addShader(vertModule, ShaderStage.Vertex, "main"); + p.addShader(fragModule, ShaderStage.Fragment, "main"); p.getViewportState().addViewport(); p.getViewportState().addScissor(); p.getColorBlend().addAttachment(new ColorBlendAttachment()); @@ -222,12 +222,12 @@ public void simpleInitApp() { // cpu-accessible memory is not usually fast for the gpu to access, but // the cpu cannot directly access fast gpu memory. The solution is to // copy cpu-side data to a mutual staging buffer, then have the gpu copy - // that data to faster memory. Hence, why we use a StageableBuffer here. + // that data to faster memory. vertexBuffer = new StaticBuffer(device, transferPool, MemorySize.floats(vertexData.capacity()), - new BufferUsageFlags().vertexBuffer(), new MemoryFlags().deviceLocal(), false); + BufferUsage.Vertex, MemoryFlag.DeviceLocal, false); vertexBuffer.copy(stack, vertexData); indexBuffer = new StaticBuffer(device, transferPool, MemorySize.ints(indexData.capacity()), - new BufferUsageFlags().indexBuffer(), new MemoryFlags().deviceLocal(), false); + BufferUsage.Index, MemoryFlag.DeviceLocal, false); indexBuffer.copy(stack, indexData); } @@ -283,11 +283,11 @@ public void simpleUpdate(float tpf) { private ImageView createDepthAttachment(CommandPool pool) { Image.Format depthFormat = device.getPhysicalDevice().findSupportedFormat( - VK_IMAGE_TILING_OPTIMAL, + Image.Tiling.Optimal, VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, Image.Format.Depth32SFloat, Image.Format.Depth32SFloat_Stencil8UInt, Image.Format.Depth24UNorm_Stencil8UInt); GpuImage image = new GpuImage(device, swapchain.getExtent().x, swapchain.getExtent().y, depthFormat, - Image.Tiling.Optimal, new ImageUsageFlags().depthStencilAttachment(), new MemoryFlags().deviceLocal()); + Image.Tiling.Optimal, ImageUsage.DepthStencilAttachment, MemoryFlag.DeviceLocal); ImageView view = image.createView(VK_IMAGE_VIEW_TYPE_2D, VK_IMAGE_ASPECT_DEPTH_BIT, 0, 1, 0, 1); CommandBuffer commands = pool.allocateOneTimeCommandBuffer(); commands.begin(); @@ -301,7 +301,7 @@ private class Frame implements Consumer { // render manager private final CommandBuffer graphicsCommands = graphicsPool.allocateCommandBuffer(); - private final Semaphore imageAvailable = new Semaphore(device, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT); + private final Semaphore imageAvailable = new Semaphore(device, PipelineStage.ColorAttachmentOutput); private final Semaphore renderFinished = new Semaphore(device); private final Fence inFlight = new Fence(device, true); @@ -321,8 +321,9 @@ public Frame() { // new ImageSetWriter(Descriptor.CombinedImageSampler, 1, 0, new ImageDescriptor(texture, Image.Layout.ShaderReadOnlyOptimal))); material.getMatrices().setValue(new PersistentBuffer(device, MemorySize.floats(16), - new BufferUsageFlags().uniformBuffer(), - new MemoryFlags().hostVisible().hostCoherent(), false)); + BufferUsage.Uniform, + Flag.of(MemoryFlag.HostVisible, MemoryFlag.HostCoherent), + false)); material.getBaseColorMap().setValue(texture); } @@ -353,7 +354,8 @@ public void accept(Float tpf) { .fillFloatBuffer( // material - material.getMatrices().getValue().mapFloats(stack, 0, 16, 0), true); + material.getMatrices().getValue().mapFloats(stack, 0, + material.getMatrices().getValue().size().getElements(), 0), true); material.getMatrices().getValue().unmap(); material.bind(graphicsCommands, pipeline); // vkCmdBindDescriptorSets(graphicsCommands.getBuffer(), pipeline.getBindPoint().getVkEnum(), diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/BufferUsage.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/BufferUsage.java new file mode 100644 index 0000000000..8e78019c98 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/BufferUsage.java @@ -0,0 +1,30 @@ +package com.jme3.vulkan.buffers; + +import com.jme3.vulkan.util.Flag; + +import static org.lwjgl.vulkan.VK10.*; + +public enum BufferUsage implements Flag { + + Uniform(VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT), + Index(VK_BUFFER_USAGE_INDEX_BUFFER_BIT), + Storage(VK_BUFFER_USAGE_STORAGE_BUFFER_BIT), + StorageTexel(VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT), + Indirect(VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT), + TransferDst(VK_BUFFER_USAGE_TRANSFER_DST_BIT), + TransferSrc(VK_BUFFER_USAGE_TRANSFER_SRC_BIT), + UniformTexel(VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT), + Vertex(VK_BUFFER_USAGE_VERTEX_BUFFER_BIT); + + private final int vkEnum; + + BufferUsage(int vkEnum) { + this.vkEnum = vkEnum; + } + + @Override + public int bits() { + return vkEnum; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java index 4f6656022b..205db174b6 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java @@ -5,8 +5,10 @@ import com.jme3.util.natives.NativeReference; import com.jme3.vulkan.commands.CommandBuffer; import com.jme3.vulkan.devices.LogicalDevice; -import com.jme3.vulkan.flags.MemoryFlags; -import com.jme3.vulkan.flags.BufferUsageFlags; +import com.jme3.vulkan.memory.MemoryFlag; +import com.jme3.vulkan.memory.MemoryRegion; +import com.jme3.vulkan.memory.MemorySize; +import com.jme3.vulkan.util.Flag; import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryUtil; @@ -18,7 +20,6 @@ import java.nio.*; import java.util.function.Function; -import java.util.function.LongFunction; import static com.jme3.renderer.vulkan.VulkanUtils.*; import static org.lwjgl.vulkan.VK10.*; @@ -31,14 +32,14 @@ public class GpuBuffer implements Native { private final long id; protected final MemoryRegion memory; - public GpuBuffer(LogicalDevice device, MemorySize size, BufferUsageFlags usage, MemoryFlags mem, boolean concurrent) { + public GpuBuffer(LogicalDevice device, MemorySize size, Flag usage, Flag mem, boolean concurrent) { this.device = device; this.size = size; try (MemoryStack stack = MemoryStack.stackPush()) { VkBufferCreateInfo create = VkBufferCreateInfo.calloc(stack) .sType(VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO) .size(size.getBytes()) - .usage(usage.getUsageFlags()) + .usage(usage.bits()) .sharingMode(VulkanUtils.sharingMode(concurrent)); LongBuffer idBuf = stack.mallocLong(1); check(vkCreateBuffer(device.getNativeObject(), create, null, idBuf), @@ -47,7 +48,7 @@ public GpuBuffer(LogicalDevice device, MemorySize size, BufferUsageFlags usag VkMemoryRequirements bufferMem = VkMemoryRequirements.malloc(stack); vkGetBufferMemoryRequirements(device.getNativeObject(), id, bufferMem); memory = new MemoryRegion(device, bufferMem.size(), device.getPhysicalDevice().findSupportedMemoryType( - stack, bufferMem.memoryTypeBits(), mem.getMemoryFlags())); + stack, bufferMem.memoryTypeBits(), mem)); memory.bind(this, 0); } ref = Native.get().register(this); diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/PersistentBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/PersistentBuffer.java index 9906cd952d..d7c5ce1107 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/PersistentBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/PersistentBuffer.java @@ -1,8 +1,9 @@ package com.jme3.vulkan.buffers; import com.jme3.vulkan.devices.LogicalDevice; -import com.jme3.vulkan.flags.MemoryFlags; -import com.jme3.vulkan.flags.BufferUsageFlags; +import com.jme3.vulkan.memory.MemoryFlag; +import com.jme3.vulkan.memory.MemorySize; +import com.jme3.vulkan.util.Flag; import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; @@ -10,7 +11,7 @@ public class PersistentBuffer extends GpuBuffer { private final long address; - public PersistentBuffer(LogicalDevice device, MemorySize size, BufferUsageFlags usage, MemoryFlags mem, boolean concurrent) { + public PersistentBuffer(LogicalDevice device, MemorySize size, Flag usage, Flag mem, boolean concurrent) { super(device, size, usage, mem, concurrent); try (MemoryStack stack = MemoryStack.stackPush()) { address = memory.map(stack, 0, size.getBytes(), 0).get(0); diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java index a2a89371db..440d315b04 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java @@ -3,11 +3,10 @@ import com.jme3.vulkan.commands.CommandBuffer; import com.jme3.vulkan.commands.CommandPool; import com.jme3.vulkan.devices.LogicalDevice; -import com.jme3.vulkan.flags.MemoryFlags; -import com.jme3.vulkan.flags.BufferUsageFlags; -import com.jme3.vulkan.sync.Fence; -import com.jme3.vulkan.sync.Semaphore; +import com.jme3.vulkan.memory.MemoryFlag; +import com.jme3.vulkan.memory.MemorySize; import com.jme3.vulkan.sync.SyncGroup; +import com.jme3.vulkan.util.Flag; import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; @@ -16,10 +15,10 @@ public class StageableBuffer extends GpuBuffer { private final GpuBuffer stage; public StageableBuffer(LogicalDevice device, MemorySize size, - BufferUsageFlags usage, MemoryFlags mem, boolean concurrent) { - super(device, size, usage.transferDst(), mem, concurrent); - this.stage = new GpuBuffer(device, size, new BufferUsageFlags().transferSrc(), - new MemoryFlags().hostVisible().hostCoherent(), concurrent); + Flag usage, Flag mem, boolean concurrent) { + super(device, size, usage.add(BufferUsage.TransferDst), mem, concurrent); + this.stage = new GpuBuffer(device, size, BufferUsage.TransferSrc, + Flag.of(MemoryFlag.HostVisible, MemoryFlag.HostCoherent), concurrent); } @Override diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StaticBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StaticBuffer.java index 0eabbcbf22..ab3a9b5e6b 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StaticBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StaticBuffer.java @@ -2,11 +2,13 @@ import com.jme3.vulkan.commands.CommandPool; import com.jme3.vulkan.devices.LogicalDevice; -import com.jme3.vulkan.flags.BufferUsageFlags; -import com.jme3.vulkan.flags.MemoryFlags; +import com.jme3.vulkan.material.uniforms.BufferUniform; +import com.jme3.vulkan.memory.MemoryFlag; +import com.jme3.vulkan.memory.MemorySize; import com.jme3.vulkan.sync.Fence; import com.jme3.vulkan.sync.SyncGroup; import com.jme3.vulkan.sync.TaskQueue; +import com.jme3.vulkan.util.Flag; import java.util.concurrent.*; @@ -14,7 +16,7 @@ public class StaticBuffer extends StageableBuffer { private final CommandPool transferPool; - public StaticBuffer(LogicalDevice device, CommandPool transferPool, MemorySize size, BufferUsageFlags usage, MemoryFlags mem, boolean concurrent) { + public StaticBuffer(LogicalDevice device, CommandPool transferPool, MemorySize size, Flag usage, Flag mem, boolean concurrent) { super(device, size, usage, mem, concurrent); this.transferPool = transferPool; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorPool.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorPool.java index e17daa2ba3..79de4a574e 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorPool.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorPool.java @@ -75,6 +75,4 @@ public void reset() { vkResetDescriptorPool(device.getNativeObject(), id, 0); } - - } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java index 51337ef693..809c0dd2c8 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/DescriptorSet.java @@ -27,8 +27,7 @@ public DescriptorSet(LogicalDevice device, DescriptorPool pool, DescriptorSet public Runnable createNativeDestroyer() { return () -> { try (MemoryStack stack = MemoryStack.stackPush()) { - vkFreeDescriptorSets(device.getNativeObject(), - pool.getNativeObject(), stack.longs(object)); + vkFreeDescriptorSets(device.getNativeObject(), pool.getNativeObject(), stack.longs(object)); } }; } @@ -37,7 +36,6 @@ public void write(DescriptorSetWriter... writers) { try (MemoryStack stack = MemoryStack.stackPush()) { VkWriteDescriptorSet.Buffer write = VkWriteDescriptorSet.calloc(writers.length, stack); populateWriteBuffer(stack, write, writers); - write.flip(); vkUpdateDescriptorSets(device.getNativeObject(), write, null); } } @@ -48,8 +46,10 @@ public void populateWriteBuffer(MemoryStack stack, VkWriteDescriptorSet.Buffer b .sType(VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET) .dstSet(object)); } + buffer.flip(); } + @Deprecated public long getId() { return object; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/SetLayoutBinding.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/SetLayoutBinding.java index a3c395e256..6fe0a1a827 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/SetLayoutBinding.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/descriptors/SetLayoutBinding.java @@ -1,15 +1,20 @@ package com.jme3.vulkan.descriptors; +import com.jme3.vulkan.shader.ShaderStage; +import com.jme3.vulkan.util.Flag; import org.lwjgl.vulkan.VkDescriptorSetLayoutBinding; -import static org.lwjgl.vulkan.VK10.*; - public class SetLayoutBinding { private final Descriptor type; - private final int binding, descriptors, stages; + private final int binding, descriptors; + private final Flag stages; + + public SetLayoutBinding(Descriptor type, int binding, int descriptors) { + this(type, binding, descriptors, ShaderStage.All); + } - public SetLayoutBinding(Descriptor type, int binding, int descriptors, int stages) { + public SetLayoutBinding(Descriptor type, int binding, int descriptors, Flag stages) { this.type = type; this.binding = binding; this.descriptors = descriptors; @@ -21,7 +26,7 @@ public void fillLayoutBinding(VkDescriptorSetLayoutBinding layoutBinding) { layoutBinding.descriptorType(type.getVkEnum()) .binding(binding) .descriptorCount(descriptors) - .stageFlags(stages) + .stageFlags(stages.bits()) .pImmutableSamplers(null); } @@ -37,7 +42,7 @@ public int getDescriptors() { return descriptors; } - public int getStages() { + public Flag getStages() { return stages; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/AbstractPhysicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/AbstractPhysicalDevice.java index 0b80ea265c..4c76f0bc6b 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/AbstractPhysicalDevice.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/AbstractPhysicalDevice.java @@ -2,7 +2,9 @@ import com.jme3.vulkan.VulkanInstance; import com.jme3.vulkan.images.Image; +import com.jme3.vulkan.memory.MemoryFlag; import com.jme3.vulkan.surface.Surface; +import com.jme3.vulkan.util.Flag; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.*; @@ -66,10 +68,10 @@ public VkPhysicalDeviceMemoryProperties getMemoryProperties(MemoryStack stack) { } @Override - public int findSupportedMemoryType(MemoryStack stack, int types, int flags) { + public int findSupportedMemoryType(MemoryStack stack, int types, Flag flags) { VkPhysicalDeviceMemoryProperties mem = getMemoryProperties(stack); for (int i = 0; i < mem.memoryTypeCount(); i++) { - if ((types & (1 << i)) != 0 && (mem.memoryTypes().get(i).propertyFlags() & flags) != 0) { + if ((types & (1 << i)) != 0 && (mem.memoryTypes().get(i).propertyFlags() & flags.bits()) != 0) { return i; } } @@ -77,12 +79,12 @@ public int findSupportedMemoryType(MemoryStack stack, int types, int flags) { } @Override - public Image.Format findSupportedFormat(int tiling, int features, Image.Format... candidates) { + public Image.Format findSupportedFormat(Image.Tiling tiling, int features, Image.Format... candidates) { VkFormatProperties props = VkFormatProperties.create(); for (Image.Format f : candidates) { vkGetPhysicalDeviceFormatProperties(physicalDevice, f.getVkEnum(), props); - if ((tiling == VK_IMAGE_TILING_LINEAR && (props.linearTilingFeatures() & features) == features) - || (tiling == VK_IMAGE_TILING_OPTIMAL && (props.optimalTilingFeatures() & features) == features)) { + if ((tiling == Image.Tiling.Linear && (props.linearTilingFeatures() & features) == features) + || (tiling == Image.Tiling.Optimal && (props.optimalTilingFeatures() & features) == features)) { return f; } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java index 29e0d6d314..d77c2e1001 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/devices/PhysicalDevice.java @@ -1,9 +1,11 @@ package com.jme3.vulkan.devices; import com.jme3.vulkan.commands.Queue; +import com.jme3.vulkan.memory.MemoryFlag; import com.jme3.vulkan.surface.Surface; import com.jme3.vulkan.VulkanInstance; import com.jme3.vulkan.images.Image; +import com.jme3.vulkan.util.Flag; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.*; @@ -29,9 +31,9 @@ public interface PhysicalDevice { VkPhysicalDeviceMemoryProperties getMemoryProperties(MemoryStack stack); - int findSupportedMemoryType(MemoryStack stack, int types, int flags); + int findSupportedMemoryType(MemoryStack stack, int types, Flag flags); - Image.Format findSupportedFormat(int tiling, int features, Image.Format... candidates); + Image.Format findSupportedFormat(Image.Tiling tiling, int features, Image.Format... candidates); boolean querySwapchainSupport(Surface surface); diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/BufferUsageFlags.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/BufferUsageFlags.java deleted file mode 100644 index 364875bbe9..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/BufferUsageFlags.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.jme3.vulkan.flags; - -import static org.lwjgl.vulkan.VK10.*; - -public class BufferUsageFlags { - - private int usageFlags; - - public BufferUsageFlags vertexBuffer() { - usageFlags |= VK_BUFFER_USAGE_VERTEX_BUFFER_BIT; - return this; - } - - public BufferUsageFlags indexBuffer() { - usageFlags |= VK_BUFFER_USAGE_INDEX_BUFFER_BIT; - return this; - } - - public BufferUsageFlags transferSrc() { - usageFlags |= VK_BUFFER_USAGE_TRANSFER_SRC_BIT; - return this; - } - - public BufferUsageFlags transferDst() { - usageFlags |= VK_BUFFER_USAGE_TRANSFER_DST_BIT; - return this; - } - - public BufferUsageFlags uniformBuffer() { - usageFlags |= VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT; - return this; - } - - public int getUsageFlags() { - return usageFlags; - } - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/ImageUsageFlags.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/ImageUsageFlags.java deleted file mode 100644 index 8ed82c59e8..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/ImageUsageFlags.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.jme3.vulkan.flags; - -import static org.lwjgl.vulkan.VK10.*; - -public class ImageUsageFlags { - - private int usageFlags; - - public ImageUsageFlags transferSrc() { - usageFlags |= VK_IMAGE_USAGE_TRANSFER_SRC_BIT; - return this; - } - - public ImageUsageFlags transferDst() { - usageFlags |= VK_IMAGE_USAGE_TRANSFER_DST_BIT; - return this; - } - - public ImageUsageFlags sampled() { - usageFlags |= VK_IMAGE_USAGE_SAMPLED_BIT; - return this; - } - - public ImageUsageFlags depthStencilAttachment() { - usageFlags |= VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT; - return this; - } - - public int getUsageFlags() { - return usageFlags; - } - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/MemoryFlags.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/MemoryFlags.java deleted file mode 100644 index ade8e39d3d..0000000000 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/flags/MemoryFlags.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.jme3.vulkan.flags; - -import static org.lwjgl.vulkan.VK10.*; - -public class MemoryFlags { - - private int memFlags = 0; - - public MemoryFlags hostVisible() { - memFlags |= VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; - return this; - } - - public MemoryFlags hostCoherent() { - memFlags |= VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; - return this; - } - - public MemoryFlags hostCached() { - memFlags |= VK_MEMORY_PROPERTY_HOST_CACHED_BIT; - return this; - } - - public MemoryFlags deviceLocal() { - memFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; - return this; - } - - public MemoryFlags lazilyAllocated() { - memFlags |= VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT; - return this; - } - - public int getMemoryFlags() { - return memFlags; - } - -} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java index 2b65529ede..053744d838 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/GpuImage.java @@ -4,9 +4,9 @@ import com.jme3.util.natives.NativeReference; import com.jme3.vulkan.commands.CommandBuffer; import com.jme3.vulkan.devices.LogicalDevice; -import com.jme3.vulkan.buffers.MemoryRegion; -import com.jme3.vulkan.flags.ImageUsageFlags; -import com.jme3.vulkan.flags.MemoryFlags; +import com.jme3.vulkan.memory.MemoryFlag; +import com.jme3.vulkan.memory.MemoryRegion; +import com.jme3.vulkan.util.Flag; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkImageCreateInfo; import org.lwjgl.vulkan.VkImageMemoryBarrier; @@ -28,11 +28,13 @@ public class GpuImage implements Image { private final Image.Format format; private final Image.Tiling tiling; - public GpuImage(LogicalDevice device, int width, int height, Image.Format format, Image.Tiling tiling, ImageUsageFlags usage, MemoryFlags mem) { + public GpuImage(LogicalDevice device, int width, int height, Image.Format format, + Image.Tiling tiling, Flag usage, Flag mem) { this(device, VK_IMAGE_TYPE_2D, width, height, 1, format, tiling, usage, mem); } - public GpuImage(LogicalDevice device, int type, int width, int height, int depth, Image.Format format, Image.Tiling tiling, ImageUsageFlags usage, MemoryFlags mem) { + public GpuImage(LogicalDevice device, int type, int width, int height, int depth, + Image.Format format, Image.Tiling tiling, Flag usage, Flag mem) { this.device = device; this.type = type; this.width = width; @@ -49,7 +51,7 @@ public GpuImage(LogicalDevice device, int type, int width, int height, int de .format(format.getVkEnum()) .tiling(tiling.getVkEnum()) .initialLayout(VK_IMAGE_LAYOUT_UNDEFINED) - .usage(usage.getUsageFlags()) + .usage(usage.bits()) .samples(VK_SAMPLE_COUNT_1_BIT) .sharingMode(VK_SHARING_MODE_EXCLUSIVE); create.extent().width(width).height(height).depth(depth); @@ -60,7 +62,7 @@ public GpuImage(LogicalDevice device, int type, int width, int height, int de VkMemoryRequirements memReq = VkMemoryRequirements.malloc(stack); vkGetImageMemoryRequirements(device.getNativeObject(), id, memReq); memory = new MemoryRegion(device, memReq.size(), device.getPhysicalDevice().findSupportedMemoryType( - stack, memReq.memoryTypeBits(), mem.getMemoryFlags())); + stack, memReq.memoryTypeBits(), mem)); memory.bind(this, 0); } ref = Native.get().register(this); diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/ImageUsage.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/ImageUsage.java new file mode 100644 index 0000000000..a3dc8397a2 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/ImageUsage.java @@ -0,0 +1,29 @@ +package com.jme3.vulkan.images; + +import com.jme3.vulkan.util.Flag; + +import static org.lwjgl.vulkan.VK10.*; + +public enum ImageUsage implements Flag { + + TransferDst(VK_IMAGE_USAGE_TRANSFER_DST_BIT), + TransferSrc(VK_IMAGE_USAGE_TRANSFER_SRC_BIT), + ColorAttachment(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT), + Sampled(VK_IMAGE_USAGE_SAMPLED_BIT), + Storage(VK_IMAGE_USAGE_STORAGE_BIT), + DepthStencilAttachment(VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT), + InputAttachment(VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT), + TransientAttachment(VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT); + + private final int vkEnum; + + ImageUsage(int vkEnum) { + this.vkEnum = vkEnum; + } + + @Override + public int bits() { + return vkEnum; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java index f89611a805..dc4ac78106 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java @@ -2,14 +2,14 @@ import com.jme3.asset.*; import com.jme3.util.BufferUtils; -import com.jme3.vulkan.buffers.MemorySize; +import com.jme3.vulkan.buffers.BufferUsage; +import com.jme3.vulkan.memory.MemoryFlag; +import com.jme3.vulkan.memory.MemorySize; import com.jme3.vulkan.commands.CommandBuffer; import com.jme3.vulkan.commands.CommandPool; import com.jme3.vulkan.buffers.GpuBuffer; -import com.jme3.vulkan.flags.BufferUsageFlags; -import com.jme3.vulkan.flags.ImageUsageFlags; -import com.jme3.vulkan.flags.MemoryFlags; import com.jme3.vulkan.sync.SyncGroup; +import com.jme3.vulkan.util.Flag; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkBufferImageCopy; @@ -153,11 +153,11 @@ private void flipImage(byte[] img, int width, int height, int bpp) { private GpuImage loadGpuImage(CommandPool transferPool, ImageData data) { try (MemoryStack stack = MemoryStack.stackPush()) { GpuBuffer staging = new GpuBuffer(transferPool.getDevice(), MemorySize.bytes(data.getBuffer().limit()), - new BufferUsageFlags().transferSrc(), new MemoryFlags().hostVisible().hostCoherent(), false); + BufferUsage.TransferSrc, Flag.of(MemoryFlag.HostVisible, MemoryFlag.HostCached), false); staging.copy(stack, data.getBuffer()); GpuImage image = new GpuImage(transferPool.getDevice(), data.getWidth(), data.getHeight(), data.getFormat(), - Image.Tiling.Optimal, new ImageUsageFlags().transferDst().sampled(), - new MemoryFlags().deviceLocal()); + Image.Tiling.Optimal, Flag.of(ImageUsage.TransferDst, ImageUsage.Sampled), + MemoryFlag.DeviceLocal); CommandBuffer commands = transferPool.allocateOneTimeCommandBuffer(); commands.begin(); image.transitionLayout(commands, Image.Layout.Undefined, Image.Layout.TransferDstOptimal); diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java index fbb6fd3958..5c08d05260 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/Material.java @@ -2,8 +2,8 @@ import com.jme3.vulkan.commands.CommandBuffer; import com.jme3.vulkan.descriptors.*; +import com.jme3.vulkan.devices.LogicalDevice; import com.jme3.vulkan.material.uniforms.Uniform; -import com.jme3.vulkan.material.uniforms.UniformSet; import com.jme3.vulkan.pipelines.Pipeline; import org.lwjgl.system.MemoryStack; @@ -32,28 +32,22 @@ public void bind(CommandBuffer cmd, Pipeline pipeline) { public void bind(CommandBuffer cmd, Pipeline pipeline, int offset) { LinkedList availableLayouts = new LinkedList<>( Arrays.asList(pipeline.getLayout().getDescriptorSetLayouts())); - ArrayList allocationLayouts = new ArrayList<>(availableLayouts.size()); - ArrayList allocationTargets = new ArrayList<>(availableLayouts.size()); + ArrayList allocations = new ArrayList<>(availableLayouts.size()); for (UniformSet set : uniforms) { set.update(pipeline.getDevice()); // Select an existing descriptor set to be active. If - // no existing set may be selected, a set layout is + // no existing set may be selected, non-null allocation info is // returned with which to allocate a new descriptor set. - DescriptorSetLayout allocation = set.selectExistingActiveSet(availableLayouts); - if (allocation != null) { - // allocate all new sets at once - allocationLayouts.add(allocation); - allocationTargets.add(set); + SetAllocationInfo a = set.selectExistingActiveSet(availableLayouts); + if (a != null) { + allocations.add(a); } } - if (!allocationLayouts.isEmpty()) { - if (allocationLayouts.size() != allocationTargets.size()) { - throw new IllegalStateException("Each layout must have a corresponding target uniform set."); - } - DescriptorSet[] allocatedSets = pool.allocateSets( - allocationLayouts.toArray(new DescriptorSetLayout[0])); + if (!allocations.isEmpty()) { + DescriptorSet[] allocatedSets = pool.allocateSets(allocations.stream() + .map(SetAllocationInfo::getLayout).toArray(DescriptorSetLayout[]::new)); for (int i = 0; i < allocatedSets.length; i++) { - UniformSet target = allocationTargets.get(i); + UniformSet target = allocations.get(i).getSet(); target.addActiveSet(allocatedSets[i]); allocatedSets[i].write(target.getUniforms()); } @@ -61,7 +55,7 @@ public void bind(CommandBuffer cmd, Pipeline pipeline, int offset) { try (MemoryStack stack = MemoryStack.stackPush()) { LongBuffer setBuf = stack.mallocLong(uniforms.size()); for (UniformSet s : uniforms) { - setBuf.put(s.getActiveSet().getId()); + setBuf.put(s.getActiveSet().getNativeObject()); } setBuf.flip(); vkCmdBindDescriptorSets(cmd.getBuffer(), pipeline.getBindPoint().getVkEnum(), @@ -69,6 +63,10 @@ public void bind(CommandBuffer cmd, Pipeline pipeline, int offset) { } } + public DescriptorSetLayout[] createLayouts(LogicalDevice device) { + return uniforms.stream().map(u -> u.createLayout(device)).toArray(DescriptorSetLayout[]::new); + } + protected UniformSet addSet(UniformSet set) { uniforms.add(set); return set; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/SetAllocationInfo.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/SetAllocationInfo.java new file mode 100644 index 0000000000..a9acb3634e --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/SetAllocationInfo.java @@ -0,0 +1,23 @@ +package com.jme3.vulkan.material; + +import com.jme3.vulkan.descriptors.DescriptorSetLayout; + +public class SetAllocationInfo { + + private final UniformSet set; + private final DescriptorSetLayout layout; + + public SetAllocationInfo(UniformSet set, DescriptorSetLayout layout) { + this.set = set; + this.layout = layout; + } + + public UniformSet getSet() { + return set; + } + + public DescriptorSetLayout getLayout() { + return layout; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TestMaterial.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TestMaterial.java index fcbb8e3971..ce31d6b41f 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TestMaterial.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/TestMaterial.java @@ -5,13 +5,14 @@ import com.jme3.vulkan.images.Image; import com.jme3.vulkan.material.uniforms.BufferUniform; import com.jme3.vulkan.material.uniforms.TextureUniform; +import com.jme3.vulkan.shader.ShaderStage; public class TestMaterial extends Material { private final BufferUniform matrices = new BufferUniform( - "Matrices", Descriptor.UniformBuffer, 0); + "Matrices", Descriptor.UniformBuffer, 0, ShaderStage.Vertex); private final TextureUniform baseColorMap = new TextureUniform( - "BaseColorMap", Image.Layout.ShaderReadOnlyOptimal, 1); + "BaseColorMap", Image.Layout.ShaderReadOnlyOptimal, 1, ShaderStage.Fragment); public TestMaterial(DescriptorPool pool) { super(pool); diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/UniformSet.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/UniformSet.java similarity index 81% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/UniformSet.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/UniformSet.java index d2767f87fd..29b8f92b31 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/UniformSet.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/UniformSet.java @@ -1,9 +1,10 @@ -package com.jme3.vulkan.material.uniforms; +package com.jme3.vulkan.material; import com.jme3.vulkan.descriptors.DescriptorSet; import com.jme3.vulkan.descriptors.DescriptorSetLayout; import com.jme3.vulkan.descriptors.SetLayoutBinding; import com.jme3.vulkan.devices.LogicalDevice; +import com.jme3.vulkan.material.uniforms.Uniform; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VK10; import org.lwjgl.vulkan.VkWriteDescriptorSet; @@ -19,25 +20,32 @@ public class UniformSet { public UniformSet(Uniform... uniforms) { this.uniforms = uniforms; // ensure duplicate binding indices are not present - HashSet bindings = new HashSet<>(); + BitSet bindings = new BitSet(); for (Uniform u : uniforms) { - if (!bindings.add(u.getBindingIndex())) { + int i = u.getBindingIndex(); + if (bindings.get(i)) { throw new IllegalArgumentException("Duplicate binding index in set: " + u.getBindingIndex()); } + bindings.set(i); } } + public DescriptorSetLayout createLayout(LogicalDevice device) { + return new DescriptorSetLayout(device, Arrays.stream(uniforms) + .map(Uniform::createBinding).toArray(SetLayoutBinding[]::new)); + } + public void addActiveSet(DescriptorSet activeSet) { this.activeSet = activeSet; sets.add(activeSet); } - public DescriptorSetLayout selectExistingActiveSet(List availableLayouts) { + public SetAllocationInfo selectExistingActiveSet(List availableLayouts) { if (activeSet == null || !availableLayouts.remove(activeSet.getLayout())) { for (DescriptorSet s : sets) { if (availableLayouts.remove(s.getLayout())) { this.activeSet = s; - return null; + return null; // no allocation necessary } } // Search for a layout that is compatible with the set definition @@ -57,10 +65,11 @@ public DescriptorSetLayout selectExistingActiveSet(List ava } // Layout is compatible with the set definition it.remove(); - return layout; + return new SetAllocationInfo(this, layout); // allocate new descriptor set } throw new IllegalStateException("Pipeline layout does not support uniform set."); } + // no allocation necessary return null; } @@ -76,7 +85,6 @@ public void update(LogicalDevice device) { for (DescriptorSet s : sets) { s.populateWriteBuffer(stack, write, writers.toArray(new Uniform[0])); } - write.flip(); VK10.vkUpdateDescriptorSets(device.getNativeObject(), write, null); } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/AbstractUniform.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/AbstractUniform.java index 4fb896d3c0..9ab4817c46 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/AbstractUniform.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/AbstractUniform.java @@ -1,17 +1,27 @@ package com.jme3.vulkan.material.uniforms; import com.jme3.vulkan.descriptors.Descriptor; +import com.jme3.vulkan.descriptors.SetLayoutBinding; +import com.jme3.vulkan.shader.ShaderStage; +import com.jme3.vulkan.util.Flag; public abstract class AbstractUniform implements Uniform { protected final String name; protected final Descriptor type; protected final int bindingIndex; + protected final Flag stages; - public AbstractUniform(String name, Descriptor type, int bindingIndex) { + public AbstractUniform(String name, Descriptor type, int bindingIndex, Flag stages) { this.name = name; this.type = type; this.bindingIndex = bindingIndex; + this.stages = stages; + } + + @Override + public SetLayoutBinding createBinding() { + return new SetLayoutBinding(type, bindingIndex, 1, stages); } @Override diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/BufferUniform.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/BufferUniform.java index 6427628c28..7497630bf3 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/BufferUniform.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/BufferUniform.java @@ -4,6 +4,8 @@ import com.jme3.vulkan.descriptors.Descriptor; import com.jme3.vulkan.descriptors.SetLayoutBinding; import com.jme3.vulkan.devices.LogicalDevice; +import com.jme3.vulkan.shader.ShaderStage; +import com.jme3.vulkan.util.Flag; import org.lwjgl.system.MemoryStack; import org.lwjgl.system.Struct; import org.lwjgl.vulkan.VkDescriptorBufferInfo; @@ -14,24 +16,21 @@ public class BufferUniform extends AbstractUniform { + private static final String BUFFER_NULL_ERROR = "Uniform buffer is null."; + private GpuBuffer buffer; private boolean updateFlag = true; private Function, GpuBuffer> bufferFactory; - public BufferUniform(String name, Descriptor type, int bindingIndex) { - super(name, type, bindingIndex); + public BufferUniform(String name, Descriptor type, int bindingIndex, Flag stages) { + super(name, type, bindingIndex, stages); } - public BufferUniform(String name, Descriptor type, int bindingIndex, GpuBuffer buffer) { - super(name, type, bindingIndex); + public BufferUniform(String name, Descriptor type, int bindingIndex, Flag stages, GpuBuffer buffer) { + super(name, type, bindingIndex, stages); this.buffer = buffer; } - public BufferUniform(String name, Descriptor type, int bindingIndex, Function, GpuBuffer> bufferFactory) { - super(name, type, bindingIndex); - this.bufferFactory = bufferFactory; - } - @Override public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { VkDescriptorBufferInfo.Buffer info = VkDescriptorBufferInfo.calloc(1, stack) @@ -50,10 +49,10 @@ public void populateWrite(MemoryStack stack, VkWriteDescriptorSet write) { public boolean update(LogicalDevice device) { if (buffer == null) { if (bufferFactory != null) { - buffer = bufferFactory.apply(device); + buffer = Objects.requireNonNull(bufferFactory.apply(device), "Buffer factory produced null."); updateFlag = true; } else { - throw new NullPointerException("Uniform buffer is null."); + throw new NullPointerException(BUFFER_NULL_ERROR); } } return updateFlag; @@ -83,12 +82,6 @@ public void setBufferFactory(Function, GpuBuffer> bufferFactory this.bufferFactory = bufferFactory; } - public void setStruct(Struct struct) { - try (MemoryStack stack = MemoryStack.stackPush()) { - Objects.requireNonNull(buffer, "Uniform buffer is null.").copy(stack, struct); - } - } - public Function, GpuBuffer> getBufferFactory() { return bufferFactory; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/TextureUniform.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/TextureUniform.java index 700a14c9a4..59cfa553b9 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/TextureUniform.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/TextureUniform.java @@ -5,6 +5,8 @@ import com.jme3.vulkan.devices.LogicalDevice; import com.jme3.vulkan.images.Image; import com.jme3.vulkan.images.Texture; +import com.jme3.vulkan.shader.ShaderStage; +import com.jme3.vulkan.util.Flag; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkDescriptorImageInfo; import org.lwjgl.vulkan.VkWriteDescriptorSet; @@ -15,8 +17,8 @@ public class TextureUniform extends AbstractUniform { private Texture texture; private boolean updateFlag = true; - public TextureUniform(String name, Image.Layout layout, int bindingIndex) { - super(name, Descriptor.CombinedImageSampler, bindingIndex); + public TextureUniform(String name, Image.Layout layout, int bindingIndex, Flag stages) { + super(name, Descriptor.CombinedImageSampler, bindingIndex, stages); this.layout = layout; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/Uniform.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/Uniform.java index 2edbb09ee8..62c895e938 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/Uniform.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/Uniform.java @@ -6,17 +6,18 @@ public interface Uniform extends DescriptorSetWriter { - // true to trigger update of descriptor sets boolean update(LogicalDevice device); - void setValue(T value); + boolean isBindingCompatible(SetLayoutBinding binding); - T getValue(); + SetLayoutBinding createBinding(); - int getBindingIndex(); + void setValue(T value); - boolean isBindingCompatible(SetLayoutBinding binding); + T getValue(); String getName(); + int getBindingIndex(); + } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/memory/MemoryFlag.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/memory/MemoryFlag.java new file mode 100644 index 0000000000..1614125d15 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/memory/MemoryFlag.java @@ -0,0 +1,26 @@ +package com.jme3.vulkan.memory; + +import com.jme3.vulkan.util.Flag; + +import static org.lwjgl.vulkan.VK10.*; + +public enum MemoryFlag implements Flag { + + HostVisible(VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT), + HostCoherent(VK_MEMORY_PROPERTY_HOST_COHERENT_BIT), + HostCached(VK_MEMORY_PROPERTY_HOST_CACHED_BIT), + DeviceLocal(VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT), + LazilyAllocated(VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT); + + private final int vkEnum; + + MemoryFlag(int vkEnum) { + this.vkEnum = vkEnum; + } + + @Override + public int bits() { + return vkEnum; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/MemoryRegion.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/memory/MemoryRegion.java similarity index 97% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/MemoryRegion.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/memory/MemoryRegion.java index eedabe8441..697ff2463e 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/MemoryRegion.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/memory/MemoryRegion.java @@ -1,7 +1,8 @@ -package com.jme3.vulkan.buffers; +package com.jme3.vulkan.memory; import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.buffers.GpuBuffer; import com.jme3.vulkan.devices.LogicalDevice; import com.jme3.vulkan.images.Image; import org.lwjgl.PointerBuffer; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/MemorySize.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/memory/MemorySize.java similarity index 97% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/MemorySize.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/memory/MemorySize.java index 20d64c22e0..9d780cc6d0 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/MemorySize.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/memory/MemorySize.java @@ -1,4 +1,4 @@ -package com.jme3.vulkan.buffers; +package com.jme3.vulkan.memory; public class MemorySize { diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/SubpassDependency.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/SubpassDependency.java index 5a498643c3..d0d9b715f2 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/SubpassDependency.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pass/SubpassDependency.java @@ -1,5 +1,8 @@ package com.jme3.vulkan.pass; +import com.jme3.vulkan.pipelines.Access; +import com.jme3.vulkan.pipelines.PipelineStage; +import com.jme3.vulkan.util.Flag; import org.lwjgl.vulkan.VK10; import org.lwjgl.vulkan.VkSubpassDependency; @@ -11,8 +14,8 @@ public class SubpassDependency { private final Subpass srcSubpass, dstSubpass; - private int srcStageMask, srcAccessMask; - private int dstStageMask, dstAccessMask; + private Flag srcStageMask, dstStageMask; + private Flag srcAccessMask, dstAccessMask; protected SubpassDependency(Subpass srcSubpass, Subpass dstSubpass) { this.srcSubpass = srcSubpass; @@ -31,25 +34,25 @@ protected SubpassDependency(SubpassDependency base, List subpasses) { public void fillStruct(VkSubpassDependency struct) { struct.srcSubpass(srcSubpass != null ? srcSubpass.getPosition() : VK10.VK_SUBPASS_EXTERNAL) .dstSubpass(dstSubpass != null ? dstSubpass.getPosition() : VK10.VK_SUBPASS_EXTERNAL) - .srcStageMask(srcStageMask) - .srcAccessMask(srcAccessMask) - .dstStageMask(dstStageMask) - .dstAccessMask(dstAccessMask); + .srcStageMask(srcStageMask.bits()) + .srcAccessMask(srcAccessMask.bits()) + .dstStageMask(dstStageMask.bits()) + .dstAccessMask(dstAccessMask.bits()); } - public void setSrcStageMask(int srcStageMask) { + public void setSrcStageMask(Flag srcStageMask) { this.srcStageMask = srcStageMask; } - public void setSrcAccessMask(int srcAccessMask) { + public void setSrcAccessMask(Flag srcAccessMask) { this.srcAccessMask = srcAccessMask; } - public void setDstStageMask(int dstStageMask) { + public void setDstStageMask(Flag dstStageMask) { this.dstStageMask = dstStageMask; } - public void setDstAccessMask(int dstAccessMask) { + public void setDstAccessMask(Flag dstAccessMask) { this.dstAccessMask = dstAccessMask; } @@ -61,19 +64,19 @@ public Subpass getDstSubpass() { return dstSubpass; } - public int getSrcStageMask() { + public Flag getSrcStageMask() { return srcStageMask; } - public int getSrcAccessMask() { + public Flag getSrcAccessMask() { return srcAccessMask; } - public int getDstStageMask() { + public Flag getDstStageMask() { return dstStageMask; } - public int getDstAccessMask() { + public Flag getDstAccessMask() { return dstAccessMask; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/Access.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/Access.java new file mode 100644 index 0000000000..3a57db548e --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/Access.java @@ -0,0 +1,38 @@ +package com.jme3.vulkan.pipelines; + +import com.jme3.vulkan.util.Flag; + +import static org.lwjgl.vulkan.VK10.*; + +public enum Access implements Flag { + + ColorAttachmentWrite(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT), + ColorAttachmentRead(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT), + HostWrite(VK_ACCESS_HOST_WRITE_BIT), + HostRead(VK_ACCESS_HOST_READ_BIT), + IndexRead(VK_ACCESS_INDEX_READ_BIT), + DepthStencilAttachmentWrite(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT), + DepthStencilAttachmentRead(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT), + IndirectCommandRead(VK_ACCESS_INDIRECT_COMMAND_READ_BIT), + InputAttachmentRead(VK_ACCESS_INPUT_ATTACHMENT_READ_BIT), + MemoryWrite(VK_ACCESS_MEMORY_WRITE_BIT), + MemoryRead(VK_ACCESS_MEMORY_READ_BIT), + ShaderWrite(VK_ACCESS_SHADER_WRITE_BIT), + ShaderRead(VK_ACCESS_SHADER_READ_BIT), + TransferWrite(VK_ACCESS_TRANSFER_WRITE_BIT), + TransferRead(VK_ACCESS_TRANSFER_READ_BIT), + UniformRead(VK_ACCESS_UNIFORM_READ_BIT), + VertexAttributeRead(VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT); + + private final int vkEnum; + + Access(int vkEnum) { + this.vkEnum = vkEnum; + } + + @Override + public int bits() { + return vkEnum; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/GraphicsPipeline.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/GraphicsPipeline.java index d4a9eddc2b..f53272332d 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/GraphicsPipeline.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/GraphicsPipeline.java @@ -7,6 +7,7 @@ import com.jme3.vulkan.pass.RenderPass; import com.jme3.vulkan.pipelines.states.*; import com.jme3.vulkan.shader.ShaderModule; +import com.jme3.vulkan.shader.ShaderStage; import org.lwjgl.vulkan.*; import java.nio.LongBuffer; @@ -15,7 +16,6 @@ import static com.jme3.renderer.vulkan.VulkanUtils.check; import static org.lwjgl.vulkan.VK10.*; -import static org.lwjgl.vulkan.VK10.VK_NULL_HANDLE; public class GraphicsPipeline extends Pipeline { @@ -44,7 +44,7 @@ public Builder build() { public class Builder extends VulkanObject.Builder { - private final Collection stages = new ArrayList<>(); + private final Collection stages = new ArrayList<>(); private final DynamicState dynamic = new DynamicState(); private final VertexInputState vertexInput = new VertexInputState(mesh); private final InputAssemblyState inputAssembly = new InputAssemblyState(); @@ -57,11 +57,11 @@ public class Builder extends VulkanObject.Builder { @Override protected void build() { VkPipelineShaderStageCreateInfo.Buffer stageBuf = VkPipelineShaderStageCreateInfo.calloc(stages.size(), stack); - for (ShaderStage s : stages) { + for (ShaderStageInfo s : stages) { stageBuf.get().sType(VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO) - .stage(s.stages) + .stage(s.stage.bits()) .module(s.module.getNativeObject()) - .pName(stack.UTF8(s.module.getEntryPoint())); + .pName(stack.UTF8(s.entryPoint)); } stageBuf.flip(); VkGraphicsPipelineCreateInfo.Buffer pipeline = VkGraphicsPipelineCreateInfo.calloc(1, stack) @@ -91,8 +91,12 @@ protected void build() { device.getNativeReference().addDependent(ref); } - public void addStage(ShaderModule module, int stages) { - this.stages.add(new ShaderStage(module, stages)); + public void addShader(ShaderModule module, ShaderStage stage) { + addShader(module, stage, DEFAULT_SHADER_ENTRY_POINT); + } + + public void addShader(ShaderModule module, ShaderStage stage, String entryPoint) { + this.stages.add(new ShaderStageInfo(module, stage, entryPoint)); } public DynamicState getDynamicState() { @@ -129,22 +133,16 @@ public ColorBlendState getColorBlend() { } - public static class ShaderStage { + public static class ShaderStageInfo { private final ShaderModule module; - private final int stages; + private final ShaderStage stage; + private final String entryPoint; - public ShaderStage(ShaderModule module, int stages) { + public ShaderStageInfo(ShaderModule module, ShaderStage stage, String entryPoint) { this.module = module; - this.stages = stages; - } - - public ShaderModule getModule() { - return module; - } - - public int getStages() { - return stages; + this.stage = stage; + this.entryPoint = entryPoint; } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/Pipeline.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/Pipeline.java index 3e0ec6ce30..151030db8b 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/Pipeline.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/Pipeline.java @@ -8,6 +8,8 @@ public abstract class Pipeline extends VulkanObject { + public static final String DEFAULT_SHADER_ENTRY_POINT = "main"; + protected final LogicalDevice device; protected final PipelineBindPoint bindPoint; protected final PipelineLayout layout; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/PipelineStage.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/PipelineStage.java new file mode 100644 index 0000000000..ac93159b84 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/PipelineStage.java @@ -0,0 +1,39 @@ +package com.jme3.vulkan.pipelines; + +import com.jme3.vulkan.util.Flag; + +import static org.lwjgl.vulkan.VK10.*; + +public enum PipelineStage implements Flag { + + TopOfPipe(VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT), + ColorAttachmentOutput(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT), + AllCommands(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT), + AllGraphics(VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT), + EarlyFragmentTests(VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT), + BottomOfPipe(VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT), + ComputeShader(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT), + DrawIndirect(VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT), + FragmentShader(VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT), + GeometryShader(VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT), + Host(VK_PIPELINE_STAGE_HOST_BIT), + LateFragmentTests(VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT), + TessellationControlShader(VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT), + TessellationEvalShader(VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT), + Transfer(VK_PIPELINE_STAGE_TRANSFER_BIT), + VertexInput(VK_PIPELINE_STAGE_VERTEX_INPUT_BIT), + VertexShader(VK_PIPELINE_STAGE_VERTEX_SHADER_BIT), + None(0); + + private final int vkEnum; + + PipelineStage(int vkEnum) { + this.vkEnum = vkEnum; + } + + @Override + public int bits() { + return vkEnum; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/ShaderModule.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/ShaderModule.java index aa488b4c23..f592b6b265 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/ShaderModule.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/ShaderModule.java @@ -18,12 +18,10 @@ public class ShaderModule implements Native { private final LogicalDevice device; private final NativeReference ref; - private final String entryPoint; private long id; - public ShaderModule(LogicalDevice device, ByteBuffer code, String entryPoint) { + public ShaderModule(LogicalDevice device, ByteBuffer code) { this.device = device; - this.entryPoint = entryPoint; try (MemoryStack stack = MemoryStack.stackPush()) { VkShaderModuleCreateInfo create = VkShaderModuleCreateInfo.calloc(stack) .sType(VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO) @@ -55,8 +53,4 @@ public NativeReference getNativeReference() { return ref; } - public String getEntryPoint() { - return entryPoint; - } - } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/ShaderStage.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/ShaderStage.java new file mode 100644 index 0000000000..332c80497c --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/shader/ShaderStage.java @@ -0,0 +1,29 @@ +package com.jme3.vulkan.shader; + +import com.jme3.vulkan.util.Flag; + +import static org.lwjgl.vulkan.VK10.*; + +public enum ShaderStage implements Flag { + + All(VK_SHADER_STAGE_ALL), + AllGraphics(VK_SHADER_STAGE_ALL_GRAPHICS), + Vertex(VK_SHADER_STAGE_VERTEX_BIT), + Geometry(VK_SHADER_STAGE_GEOMETRY_BIT), + TessellationEval(VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT), + TessellationControl(VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT), + Fragment(VK_SHADER_STAGE_FRAGMENT_BIT), + Compute(VK_SHADER_STAGE_COMPUTE_BIT); + + private final int vkEnum; + + ShaderStage(int vkEnum) { + this.vkEnum = vkEnum; + } + + @Override + public int bits() { + return vkEnum; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/Swapchain.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/Swapchain.java index 3cb16ce036..ea4fe15f16 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/Swapchain.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/surface/Swapchain.java @@ -11,6 +11,7 @@ import com.jme3.vulkan.pass.RenderPass; import com.jme3.vulkan.sync.Fence; import com.jme3.vulkan.sync.Semaphore; +import com.jme3.vulkan.util.Extent2; import org.lwjgl.glfw.GLFW; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.*; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/Semaphore.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/Semaphore.java index 8c58c518a1..f0a8d2b4b3 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/Semaphore.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/Semaphore.java @@ -3,6 +3,8 @@ import com.jme3.util.natives.Native; import com.jme3.util.natives.NativeReference; import com.jme3.vulkan.devices.LogicalDevice; +import com.jme3.vulkan.pipelines.PipelineStage; +import com.jme3.vulkan.util.Flag; import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryUtil; import org.lwjgl.vulkan.VkSemaphoreCreateInfo; @@ -17,13 +19,13 @@ public class Semaphore implements Native { private final LogicalDevice device; private final NativeReference ref; private long id; - private int dstStageMask; + private Flag dstStageMask; public Semaphore(LogicalDevice device) { - this(device, 0); + this(device, PipelineStage.None); } - public Semaphore(LogicalDevice device, int dstStageMask) { + public Semaphore(LogicalDevice device, Flag dstStageMask) { this.device = device; this.dstStageMask = dstStageMask; try (MemoryStack stack = MemoryStack.stackPush()) { @@ -56,19 +58,19 @@ public NativeReference getNativeReference() { return ref; } - public void setDstStageMask(int dstStageMask) { + public void setDstStageMask(Flag dstStageMask) { this.dstStageMask = dstStageMask; } - public void addDstStageBit(int stageBit) { - this.dstStageMask |= stageBit; + public void addDstStage(Flag stageBit) { + this.dstStageMask = this.dstStageMask.add(stageBit); } - public void removeDstStageBit(int stageBit) { - this.dstStageMask &= ~stageBit; + public void removeDstStageBit(Flag stageBit) { + this.dstStageMask = this.dstStageMask.remove(stageBit); } - public int getDstStageMask() { + public Flag getDstStageMask() { return dstStageMask; } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/SyncGroup.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/SyncGroup.java index c16b708fe0..34c497901b 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/SyncGroup.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/sync/SyncGroup.java @@ -97,7 +97,7 @@ public LongBuffer toWaitBuffer(MemoryStack stack) { public IntBuffer toDstStageBuffer(MemoryStack stack) { IntBuffer buf = stack.mallocInt(waits.length); for (Semaphore s : signals) { - buf.put(s.getDstStageMask()); + buf.put(s.getDstStageMask().bits()); } buf.flip(); return buf; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Extent2.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/util/Extent2.java similarity index 96% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/Extent2.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/util/Extent2.java index 278a2157b0..f3b99e53eb 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/Extent2.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/util/Extent2.java @@ -1,4 +1,4 @@ -package com.jme3.vulkan; +package com.jme3.vulkan.util; import org.lwjgl.system.MemoryStack; import org.lwjgl.vulkan.VkExtent2D; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/util/Flag.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/util/Flag.java new file mode 100644 index 0000000000..bbcc3a279b --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/util/Flag.java @@ -0,0 +1,78 @@ +package com.jme3.vulkan.util; + +public interface Flag { + + int bits(); + + default Flag add(Flag flag) { + return new FlagImpl<>(bits() | flag.bits()); + } + + default Flag add(Flag... flags) { + int result = bits(); + for (Flag f : flags) { + result |= f.bits(); + } + return new FlagImpl<>(result); + } + + default Flag remove(Flag flag) { + return new FlagImpl<>(bits() & ~flag.bits()); + } + + default Flag remove(Flag... flags) { + int result = bits(); + for (Flag f : flags) { + result &= ~f.bits(); + } + return new FlagImpl<>(result); + } + + default boolean contains(Flag flag) { + int bits = flag.bits(); + return (bits() & bits) == bits; + } + + default boolean containsOneOf(Flag flag) { + return (bits() & flag.bits()) > 0; + } + + static Flag of(int bits) { + return new FlagImpl<>(bits); + } + + @SafeVarargs + static Flag of(Flag... flags) { + return new FlagImpl<>(flags); + } + + @SafeVarargs + static int bitsOf(Flag... flags) { + int result = 0; + for (Flag f : flags) { + result |= f.bits(); + } + return result; + } + + class FlagImpl implements Flag { + + private final int bits; + + public FlagImpl(int bits) { + this.bits = bits; + } + + @SafeVarargs + public FlagImpl(Flag... flags) { + this.bits = bitsOf(flags); + } + + @Override + public int bits() { + return bits; + } + + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderStateToVulkan.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/util/RenderStateToVulkan.java similarity index 99% rename from jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderStateToVulkan.java rename to jme3-lwjgl3/src/main/java/com/jme3/vulkan/util/RenderStateToVulkan.java index 9c177c74b0..b0988ab6a5 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/RenderStateToVulkan.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/util/RenderStateToVulkan.java @@ -1,4 +1,4 @@ -package com.jme3.vulkan; +package com.jme3.vulkan.util; import com.jme3.material.RenderState.*; import static org.lwjgl.vulkan.VK10.*; diff --git a/jme3-testdata/src/main/resources/Shaders/VulkanTest.json b/jme3-testdata/src/main/resources/Shaders/VulkanTest.json index 740da8c67f..8ee1d9344e 100644 --- a/jme3-testdata/src/main/resources/Shaders/VulkanTest.json +++ b/jme3-testdata/src/main/resources/Shaders/VulkanTest.json @@ -5,10 +5,8 @@ "shaders" : { "vertex" : "Shaders/VulkanFragTest.json", "fragment" : "Shaders/VulkanVertTest.json" - }, - "defines" : { - "MY_CUSTOM_DEFINE" : 1 } + // more technique data... } } } \ No newline at end of file diff --git a/jme3-testdata/src/main/resources/Shaders/VulkanTest.yml b/jme3-testdata/src/main/resources/Shaders/VulkanTest.yml new file mode 100644 index 0000000000..19daacd60d --- /dev/null +++ b/jme3-testdata/src/main/resources/Shaders/VulkanTest.yml @@ -0,0 +1,20 @@ +name: "VulkanTest" +parameters: + Matrices: + type: "UniformBuffer" + set: 0 + binding: 0 + usage: "Stream" + define: "MATRICES" + stages: ["vertex"] + BaseColorMap: + type: "Texture" + set: 0 + binding: 1 + default: "Common/Textures/MissingTexture.jpg" + stages: ["fragment"] +techniques: + main: + shaders: + vertex: "Shaders/VulkanVertTest.yml" + fragment: "Shaders/VulkanFragTest.yml" \ No newline at end of file diff --git a/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.yml b/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.yml new file mode 100644 index 0000000000..2d48bd103a --- /dev/null +++ b/jme3-testdata/src/main/resources/Shaders/VulkanVertTest.yml @@ -0,0 +1,6 @@ +shader: "Shaders/VulkanVertTest.glsl" +type: "vertex" +platforms: ["vulkan", "opengl", "gles"] +versions: [460, 450] +parameters: + Matrices: "MATRICES" \ No newline at end of file From 6657009e7c6c18b9726119c2f4014bc796086e7a Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Tue, 19 Aug 2025 11:00:54 -0400 Subject: [PATCH 34/37] fix build error --- .../main/java/com/jme3/vulkan/pipelines/ComputePipeline.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/ComputePipeline.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/ComputePipeline.java index e6d6e5df9e..bd668efda5 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/ComputePipeline.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/pipelines/ComputePipeline.java @@ -16,7 +16,7 @@ public class ComputePipeline extends Pipeline { private final ShaderModule shader; - public ComputePipeline(LogicalDevice device, PipelineBindPoint bindPoint, PipelineLayout layout, ShaderModule shader) { + public ComputePipeline(LogicalDevice device, PipelineBindPoint bindPoint, PipelineLayout layout, ShaderModule shader, String entryPoint) { super(device, bindPoint, layout); this.shader = shader; try (MemoryStack stack = MemoryStack.stackPush()) { @@ -24,7 +24,7 @@ public ComputePipeline(LogicalDevice device, PipelineBindPoint bindPoint, Pip .sType(VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO) .stage(VK_SHADER_STAGE_COMPUTE_BIT) .module(shader.getNativeObject()) - .pName(stack.UTF8(shader.getEntryPoint())); + .pName(stack.UTF8(entryPoint)); VkComputePipelineCreateInfo.Buffer pipeline = VkComputePipelineCreateInfo.calloc(1, stack) .sType(VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO) .stage(stage) From 72b0156a1268d555c83c2b9565ccd03870a0e7d0 Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Tue, 19 Aug 2025 11:01:59 -0400 Subject: [PATCH 35/37] fix json error --- jme3-testdata/src/main/resources/Shaders/VulkanTest.json | 1 - 1 file changed, 1 deletion(-) diff --git a/jme3-testdata/src/main/resources/Shaders/VulkanTest.json b/jme3-testdata/src/main/resources/Shaders/VulkanTest.json index 8ee1d9344e..7c0a0ada7e 100644 --- a/jme3-testdata/src/main/resources/Shaders/VulkanTest.json +++ b/jme3-testdata/src/main/resources/Shaders/VulkanTest.json @@ -6,7 +6,6 @@ "vertex" : "Shaders/VulkanFragTest.json", "fragment" : "Shaders/VulkanVertTest.json" } - // more technique data... } } } \ No newline at end of file From ed6096ecc5f1571d8df59c8add3af6d417a358a6 Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Tue, 19 Aug 2025 11:33:55 -0400 Subject: [PATCH 36/37] extract GpuBuffer into an interface; create VersionedBuffer in preparation of multiple simultaneous frames --- .../jme3test/vulkan/VulkanHelperTest.java | 4 +- .../com/jme3/vulkan/buffers/GpuBuffer.java | 118 ++++-------------- .../jme3/vulkan/buffers/PersistentBuffer.java | 3 +- .../jme3/vulkan/buffers/StageableBuffer.java | 6 +- .../jme3/vulkan/buffers/VersionedBuffer.java | 71 +++++++++++ .../com/jme3/vulkan/buffers/VulkanBuffer.java | 107 ++++++++++++++++ .../com/jme3/vulkan/memory/MemorySize.java | 14 +++ 7 files changed, 225 insertions(+), 98 deletions(-) create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/VersionedBuffer.java create mode 100644 jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/VulkanBuffer.java diff --git a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java index 7065ee728e..02e50a9b30 100644 --- a/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java +++ b/jme3-examples/src/main/java/jme3test/vulkan/VulkanHelperTest.java @@ -374,8 +374,8 @@ public void accept(Float tpf) { vkCmdSetScissor(graphicsCommands.getBuffer(), 0, scissor); // mesh - vkCmdBindVertexBuffers(graphicsCommands.getBuffer(), 0, stack.longs(vertexBuffer.getNativeObject()), stack.longs(0)); - vkCmdBindIndexBuffer(graphicsCommands.getBuffer(), indexBuffer.getNativeObject(), 0, VK_INDEX_TYPE_UINT32); + vkCmdBindVertexBuffers(graphicsCommands.getBuffer(), 0, stack.longs(vertexBuffer.getId()), stack.longs(0)); + vkCmdBindIndexBuffer(graphicsCommands.getBuffer(), indexBuffer.getId(), 0, VK_INDEX_TYPE_UINT32); vkCmdDrawIndexed(graphicsCommands.getBuffer(), indexData.limit(), 1, 0, 0, 0); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java index 205db174b6..137a3ef439 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java @@ -1,188 +1,122 @@ package com.jme3.vulkan.buffers; -import com.jme3.renderer.vulkan.VulkanUtils; import com.jme3.util.natives.Native; -import com.jme3.util.natives.NativeReference; import com.jme3.vulkan.commands.CommandBuffer; import com.jme3.vulkan.devices.LogicalDevice; -import com.jme3.vulkan.memory.MemoryFlag; -import com.jme3.vulkan.memory.MemoryRegion; import com.jme3.vulkan.memory.MemorySize; -import com.jme3.vulkan.util.Flag; import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryUtil; import org.lwjgl.system.Struct; import org.lwjgl.system.StructBuffer; import org.lwjgl.vulkan.VkBufferCopy; -import org.lwjgl.vulkan.VkBufferCreateInfo; -import org.lwjgl.vulkan.VkMemoryRequirements; import java.nio.*; import java.util.function.Function; -import static com.jme3.renderer.vulkan.VulkanUtils.*; import static org.lwjgl.vulkan.VK10.*; -public class GpuBuffer implements Native { - - private final LogicalDevice device; - private final NativeReference ref; - private final MemorySize size; - private final long id; - protected final MemoryRegion memory; - - public GpuBuffer(LogicalDevice device, MemorySize size, Flag usage, Flag mem, boolean concurrent) { - this.device = device; - this.size = size; - try (MemoryStack stack = MemoryStack.stackPush()) { - VkBufferCreateInfo create = VkBufferCreateInfo.calloc(stack) - .sType(VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO) - .size(size.getBytes()) - .usage(usage.bits()) - .sharingMode(VulkanUtils.sharingMode(concurrent)); - LongBuffer idBuf = stack.mallocLong(1); - check(vkCreateBuffer(device.getNativeObject(), create, null, idBuf), - "Failed to create buffer."); - id = idBuf.get(0); - VkMemoryRequirements bufferMem = VkMemoryRequirements.malloc(stack); - vkGetBufferMemoryRequirements(device.getNativeObject(), id, bufferMem); - memory = new MemoryRegion(device, bufferMem.size(), device.getPhysicalDevice().findSupportedMemoryType( - stack, bufferMem.memoryTypeBits(), mem)); - memory.bind(this, 0); - } - ref = Native.get().register(this); - device.getNativeReference().addDependent(ref); - memory.getNativeReference().addDependent(ref); - } +public interface GpuBuffer { - @Override - public Long getNativeObject() { - return id; - } + PointerBuffer map(MemoryStack stack, int offset, int size, int flags); - @Override - public Runnable createNativeDestroyer() { - return () -> vkDestroyBuffer(device.getNativeObject(), id, null); - } + void unmap(); - @Override - public void prematureNativeDestruction() {} + void freeMemory(); - @Override - public NativeReference getNativeReference() { - return ref; - } + MemorySize size(); + + long getId(); - private void verifyBufferSize(int elements, long bytesPerElement) { - if (elements * bytesPerElement > size.getBytes()) { + default void verifyBufferSize(int elements, long bytesPerElement) { + if (elements * bytesPerElement > size().getBytes()) { throw new BufferOverflowException(); } } - public PointerBuffer map(MemoryStack stack, int offset, int size, int flags) { - return memory.map(stack, offset, size, flags); - } - - public ByteBuffer mapBytes(MemoryStack stack, int offset, int size, int flags) { + default ByteBuffer mapBytes(MemoryStack stack, int offset, int size, int flags) { return map(stack, offset, size, flags).getByteBuffer(0, size); } - public ShortBuffer mapShorts(MemoryStack stack, int offset, int size, int flags) { + default ShortBuffer mapShorts(MemoryStack stack, int offset, int size, int flags) { return map(stack, offset, size * Short.BYTES, flags).getShortBuffer(0, size); } - public IntBuffer mapInts(MemoryStack stack, int offset, int size, int flags) { + default IntBuffer mapInts(MemoryStack stack, int offset, int size, int flags) { return map(stack, offset, size * Integer.BYTES, flags).getIntBuffer(0, size); } - public FloatBuffer mapFloats(MemoryStack stack, int offset, int size, int flags) { + default FloatBuffer mapFloats(MemoryStack stack, int offset, int size, int flags) { return map(stack, offset, size * Float.BYTES, flags).getFloatBuffer(0, size); } - public DoubleBuffer mapDoubles(MemoryStack stack, int offset, int size, int flags) { + default DoubleBuffer mapDoubles(MemoryStack stack, int offset, int size, int flags) { return map(stack, offset, size * Double.BYTES, flags).getDoubleBuffer(0, size); } - public LongBuffer mapLongs(MemoryStack stack, int offset, int size, int flags) { + default LongBuffer mapLongs(MemoryStack stack, int offset, int size, int flags) { return map(stack, offset, size * Long.BYTES, flags).getLongBuffer(0, size); } - public T mapObject(MemoryStack stack, int offset, int size, int flags, Function factory) { + default T mapObject(MemoryStack stack, int offset, int size, int flags, Function factory) { return factory.apply(map(stack, offset, size, flags)); } - public void copy(MemoryStack stack, ByteBuffer buffer) { + default void copy(MemoryStack stack, ByteBuffer buffer) { verifyBufferSize(buffer.limit(), Byte.BYTES); MemoryUtil.memCopy(buffer, mapBytes(stack, 0, buffer.limit(), 0)); unmap(); } - public void copy(MemoryStack stack, ShortBuffer buffer) { + default void copy(MemoryStack stack, ShortBuffer buffer) { verifyBufferSize(buffer.limit(), Short.BYTES); MemoryUtil.memCopy(buffer, mapShorts(stack, 0, buffer.limit(), 0)); unmap(); } - public void copy(MemoryStack stack, IntBuffer buffer) { + default void copy(MemoryStack stack, IntBuffer buffer) { verifyBufferSize(buffer.limit(), Integer.BYTES); MemoryUtil.memCopy(buffer, mapInts(stack, 0, buffer.limit(), 0)); unmap(); } - public void copy(MemoryStack stack, FloatBuffer buffer) { + default void copy(MemoryStack stack, FloatBuffer buffer) { verifyBufferSize(buffer.limit(), Float.BYTES); MemoryUtil.memCopy(buffer, mapFloats(stack, 0, buffer.limit(), 0)); unmap(); } - public void copy(MemoryStack stack, DoubleBuffer buffer) { + default void copy(MemoryStack stack, DoubleBuffer buffer) { verifyBufferSize(buffer.limit(), Double.BYTES); MemoryUtil.memCopy(buffer, mapDoubles(stack, 0, buffer.limit(), 0)); unmap(); } - public void copy(MemoryStack stack, LongBuffer buffer) { + default void copy(MemoryStack stack, LongBuffer buffer) { verifyBufferSize(buffer.limit(), Long.BYTES); MemoryUtil.memCopy(buffer, mapLongs(stack, 0, buffer.limit(), 0)); unmap(); } - public void copy(MemoryStack stack, Struct struct) { + default void copy(MemoryStack stack, Struct struct) { verifyBufferSize(struct.sizeof(), Byte.BYTES); MemoryUtil.memCopy(MemoryUtil.memByteBuffer(struct.address(), struct.sizeof()), mapBytes(stack, 0, struct.sizeof(), 0)); unmap(); } - public void copy(MemoryStack stack, StructBuffer buffer) { + default void copy(MemoryStack stack, StructBuffer buffer) { verifyBufferSize(buffer.limit(), buffer.sizeof()); int size = buffer.limit() * buffer.sizeof(); MemoryUtil.memCopy(MemoryUtil.memByteBuffer(buffer.address(), size), mapBytes(stack, 0, size, 0)); unmap(); } - public void unmap() { - memory.unmap(); - } - - public void recordCopy(MemoryStack stack, CommandBuffer commands, GpuBuffer source, + default void recordCopy(MemoryStack stack, CommandBuffer commands, GpuBuffer source, long srcOffset, long dstOffset, long size) { VkBufferCopy.Buffer copy = VkBufferCopy.calloc(1, stack) .srcOffset(srcOffset).dstOffset(dstOffset).size(size); - vkCmdCopyBuffer(commands.getBuffer(), source.getNativeObject(), id, copy); - } - - public void freeMemory() { - memory.getNativeReference().destroy(); - } - - public MemorySize size() { - return size; - } - - public LogicalDevice getDevice() { - return device; + vkCmdCopyBuffer(commands.getBuffer(), source.getNativeObject(), getNativeObject(), copy); } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/PersistentBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/PersistentBuffer.java index d7c5ce1107..cedcaed2d7 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/PersistentBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/PersistentBuffer.java @@ -1,5 +1,6 @@ package com.jme3.vulkan.buffers; +import com.jme3.vulkan.VulkanObject; import com.jme3.vulkan.devices.LogicalDevice; import com.jme3.vulkan.memory.MemoryFlag; import com.jme3.vulkan.memory.MemorySize; @@ -7,7 +8,7 @@ import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; -public class PersistentBuffer extends GpuBuffer { +public class PersistentBuffer extends VulkanBuffer { private final long address; diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java index 440d315b04..02e0686c5e 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/StageableBuffer.java @@ -10,14 +10,14 @@ import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; -public class StageableBuffer extends GpuBuffer { +public class StageableBuffer extends VulkanBuffer { - private final GpuBuffer stage; + private final VulkanBuffer stage; public StageableBuffer(LogicalDevice device, MemorySize size, Flag usage, Flag mem, boolean concurrent) { super(device, size, usage.add(BufferUsage.TransferDst), mem, concurrent); - this.stage = new GpuBuffer(device, size, BufferUsage.TransferSrc, + this.stage = new VulkanBuffer(device, size, BufferUsage.TransferSrc, Flag.of(MemoryFlag.HostVisible, MemoryFlag.HostCoherent), concurrent); } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/VersionedBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/VersionedBuffer.java new file mode 100644 index 0000000000..8510f8debd --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/VersionedBuffer.java @@ -0,0 +1,71 @@ +package com.jme3.vulkan.buffers; + +import com.jme3.vulkan.memory.MemorySize; +import org.lwjgl.PointerBuffer; +import org.lwjgl.system.MemoryStack; + +public class VersionedBuffer implements GpuBuffer { + + private final GpuBuffer[] buffers; + private int version = 0; + private boolean mapped = false; + + public VersionedBuffer(GpuBuffer... buffers) { + assert buffers.length > 0; + this.buffers = buffers; + MemorySize standard = buffers[0].size(); + for (int i = 1; i < buffers.length; i++) { + if (!buffers[i].size().equals(standard)) { + throw new IllegalArgumentException("All buffers must be of equivalent size."); + } + } + } + + @Override + public PointerBuffer map(MemoryStack stack, int offset, int size, int flags) { + mapped = true; + return buffers[version].map(stack, offset, size, flags); + } + + @Override + public void unmap() { + mapped = false; + buffers[version].unmap(); + } + + @Override + public void freeMemory() { + for (GpuBuffer buf : buffers) { + buf.freeMemory(); + } + } + + @Override + public MemorySize size() { + return buffers[version].size(); + } + + @Override + public long getId() { + return buffers[version].getId(); + } + + public void setVersion(int version) { + if (mapped) { + throw new IllegalStateException("Cannot change version while buffer is mapped."); + } + if (version < 0 || version >= buffers.length) { + throw new IndexOutOfBoundsException("Version must be between 0 (inclusive) and the number of internal buffers (exclusive)."); + } + this.version = version; + } + + public GpuBuffer[] getInternalBuffers() { + return buffers; + } + + public int getVersion() { + return version; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/VulkanBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/VulkanBuffer.java new file mode 100644 index 0000000000..835aa1fe76 --- /dev/null +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/VulkanBuffer.java @@ -0,0 +1,107 @@ +package com.jme3.vulkan.buffers; + +import com.jme3.renderer.vulkan.VulkanUtils; +import com.jme3.util.natives.Native; +import com.jme3.util.natives.NativeReference; +import com.jme3.vulkan.devices.LogicalDevice; +import com.jme3.vulkan.memory.MemoryFlag; +import com.jme3.vulkan.memory.MemoryRegion; +import com.jme3.vulkan.memory.MemorySize; +import com.jme3.vulkan.util.Flag; +import org.lwjgl.PointerBuffer; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.vulkan.VkBufferCreateInfo; +import org.lwjgl.vulkan.VkMemoryRequirements; + +import java.nio.*; + +import static com.jme3.renderer.vulkan.VulkanUtils.check; +import static org.lwjgl.vulkan.VK10.*; + +public class VulkanBuffer implements GpuBuffer, Native { + + private final LogicalDevice device; + private final NativeReference ref; + private final MemorySize size; + private final long id; + protected final MemoryRegion memory; + + public VulkanBuffer(LogicalDevice device, MemorySize size, Flag usage, Flag mem, boolean concurrent) { + this.device = device; + this.size = size; + try (MemoryStack stack = MemoryStack.stackPush()) { + VkBufferCreateInfo create = VkBufferCreateInfo.calloc(stack) + .sType(VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO) + .size(size.getBytes()) + .usage(usage.bits()) + .sharingMode(VulkanUtils.sharingMode(concurrent)); + LongBuffer idBuf = stack.mallocLong(1); + check(vkCreateBuffer(device.getNativeObject(), create, null, idBuf), + "Failed to create buffer."); + id = idBuf.get(0); + VkMemoryRequirements bufferMem = VkMemoryRequirements.malloc(stack); + vkGetBufferMemoryRequirements(device.getNativeObject(), id, bufferMem); + memory = new MemoryRegion(device, bufferMem.size(), device.getPhysicalDevice().findSupportedMemoryType( + stack, bufferMem.memoryTypeBits(), mem)); + memory.bind(this, 0); + } + ref = Native.get().register(this); + device.getNativeReference().addDependent(ref); + memory.getNativeReference().addDependent(ref); + } + + @Override + public Long getNativeObject() { + return id; + } + + @Override + public long getId() { + return id; + } + + @Override + public Runnable createNativeDestroyer() { + return () -> vkDestroyBuffer(device.getNativeObject(), id, null); + } + + @Override + public void prematureNativeDestruction() {} + + @Override + public NativeReference getNativeReference() { + return ref; + } + + @Override + public void verifyBufferSize(int elements, long bytesPerElement) { + if (elements * bytesPerElement > size.getBytes()) { + throw new BufferOverflowException(); + } + } + + @Override + public PointerBuffer map(MemoryStack stack, int offset, int size, int flags) { + return memory.map(stack, offset, size, flags); + } + + @Override + public void unmap() { + memory.unmap(); + } + + @Override + public void freeMemory() { + memory.getNativeReference().destroy(); + } + + @Override + public MemorySize size() { + return size; + } + + public LogicalDevice getDevice() { + return device; + } + +} diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/memory/MemorySize.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/memory/MemorySize.java index 9d780cc6d0..227748b163 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/memory/MemorySize.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/memory/MemorySize.java @@ -1,5 +1,7 @@ package com.jme3.vulkan.memory; +import java.util.Objects; + public class MemorySize { private final int elements; @@ -12,6 +14,18 @@ public MemorySize(int elements, int bytesPerElement) { this.bytes = this.elements * this.bytesPerElement; } + @Override + public boolean equals(Object o) { + if (o == null || getClass() != o.getClass()) return false; + MemorySize that = (MemorySize) o; + return elements == that.elements && bytesPerElement == that.bytesPerElement; + } + + @Override + public int hashCode() { + return Objects.hash(elements, bytesPerElement); + } + public int getElements() { return elements; } From 5587e178d5ee9691ae95b5aa43b1a1e88d62dc81 Mon Sep 17 00:00:00 2001 From: codex <103840984+codex128@users.noreply.github.com> Date: Tue, 19 Aug 2025 11:35:35 -0400 Subject: [PATCH 37/37] fix build errors related to GpuBuffer interface extraction --- .../src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java | 2 +- .../main/java/com/jme3/vulkan/images/VulkanImageLoader.java | 5 +++-- .../com/jme3/vulkan/material/uniforms/BufferUniform.java | 2 +- .../src/main/java/com/jme3/vulkan/memory/MemoryRegion.java | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java index 137a3ef439..e6e150d2e0 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/buffers/GpuBuffer.java @@ -116,7 +116,7 @@ default void recordCopy(MemoryStack stack, CommandBuffer commands, GpuBuffer sou long srcOffset, long dstOffset, long size) { VkBufferCopy.Buffer copy = VkBufferCopy.calloc(1, stack) .srcOffset(srcOffset).dstOffset(dstOffset).size(size); - vkCmdCopyBuffer(commands.getBuffer(), source.getNativeObject(), getNativeObject(), copy); + vkCmdCopyBuffer(commands.getBuffer(), source.getId(), getId(), copy); } } diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java index dc4ac78106..05f0ffeade 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/images/VulkanImageLoader.java @@ -3,6 +3,7 @@ import com.jme3.asset.*; import com.jme3.util.BufferUtils; import com.jme3.vulkan.buffers.BufferUsage; +import com.jme3.vulkan.buffers.VulkanBuffer; import com.jme3.vulkan.memory.MemoryFlag; import com.jme3.vulkan.memory.MemorySize; import com.jme3.vulkan.commands.CommandBuffer; @@ -152,7 +153,7 @@ private void flipImage(byte[] img, int width, int height, int bpp) { private GpuImage loadGpuImage(CommandPool transferPool, ImageData data) { try (MemoryStack stack = MemoryStack.stackPush()) { - GpuBuffer staging = new GpuBuffer(transferPool.getDevice(), MemorySize.bytes(data.getBuffer().limit()), + GpuBuffer staging = new VulkanBuffer(transferPool.getDevice(), MemorySize.bytes(data.getBuffer().limit()), BufferUsage.TransferSrc, Flag.of(MemoryFlag.HostVisible, MemoryFlag.HostCached), false); staging.copy(stack, data.getBuffer()); GpuImage image = new GpuImage(transferPool.getDevice(), data.getWidth(), data.getHeight(), data.getFormat(), @@ -171,7 +172,7 @@ private GpuImage loadGpuImage(CommandPool transferPool, ImageData data) { .layerCount(1); region.imageOffset().set(0, 0, 0); region.imageExtent().set(data.getWidth(), data.getHeight(), 1); - vkCmdCopyBufferToImage(commands.getBuffer(), staging.getNativeObject(), + vkCmdCopyBufferToImage(commands.getBuffer(), staging.getId(), image.getNativeObject(), VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, region); image.transitionLayout(commands, Image.Layout.TransferDstOptimal, Image.Layout.ShaderReadOnlyOptimal); commands.end(); diff --git a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/BufferUniform.java b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/BufferUniform.java index 7497630bf3..9cb1e32ff7 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/BufferUniform.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/vulkan/material/uniforms/BufferUniform.java @@ -34,7 +34,7 @@ public BufferUniform(String name, Descriptor type, int bindingIndex, Flag