Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 21 additions & 7 deletions src/main/java/rs117/hd/HdPlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -409,6 +409,7 @@ public class HdPlugin extends Plugin {
public boolean enableDetailedTimers;
public boolean enableFreezeFrame;
public boolean orthographicProjection;
public boolean freezeCulling;

@Getter
private boolean isActive;
Expand Down Expand Up @@ -635,11 +636,7 @@ protected void startUp() {

renderer.initialize();
eventBus.register(renderer);
int gpuFlags = DrawCallbacks.GPU | renderer.gpuFlags();
if (config.removeVertexSnapping())
gpuFlags |= DrawCallbacks.NO_VERTEX_SNAPPING;
if (configShadingMode.unlitFaceColors)
gpuFlags |= DrawCallbacks.UNLIT_FACE_COLORS;


initializeShaders();
initializeShaderHotswapping();
Expand All @@ -649,7 +646,7 @@ protected void startUp() {
checkGLErrors();

client.setDrawCallbacks(renderer);
client.setGpuFlags(gpuFlags);
setGpuFlags();
client.setExpandedMapLoading(getExpandedMapLoadingChunks());
// force rebuild of main buffer provider to enable alpha channel
client.resizeCanvas();
Expand Down Expand Up @@ -685,6 +682,16 @@ protected void startUp() {
});
}

private void setGpuFlags() {
int gpuFlags = DrawCallbacks.GPU | renderer.gpuFlags();
if (config.removeVertexSnapping())
gpuFlags |= DrawCallbacks.NO_VERTEX_SNAPPING;
if (configShadingMode.unlitFaceColors)
gpuFlags |= DrawCallbacks.UNLIT_FACE_COLORS;

client.setGpuFlags(gpuFlags);
}

@Override
protected void shutDown() {
isActive = false;
Expand Down Expand Up @@ -1667,6 +1674,7 @@ public void processPendingConfigChanges() {
boolean reloadModelOverrides = false;
boolean reloadTileOverrides = false;
boolean reloadScene = false;
boolean reloadGpuFlags = false;

for (var key : pendingConfigChanges) {
switch (key) {
Expand Down Expand Up @@ -1767,12 +1775,18 @@ public void processPendingConfigChanges() {
case KEY_VSYNC_MODE:
setupSyncMode();
break;
case KEY_THREADED_DYNAMIC_UPLOAD:
reloadGpuFlags = true;
break;
}
}

if (reloadTexturesAndMaterials || recompilePrograms)
if (reloadTexturesAndMaterials || recompilePrograms || reloadGpuFlags)
renderer.waitUntilIdle();

if(reloadGpuFlags)
setGpuFlags();

if (reloadTexturesAndMaterials) {
materialManager.reload(reloadScene);
modelOverrideManager.reload();
Expand Down
11 changes: 11 additions & 0 deletions src/main/java/rs117/hd/HdPluginConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -1157,6 +1157,17 @@ default boolean forceIndirectDraw() {
return false;
}

String KEY_THREADED_DYNAMIC_UPLOAD = "experimentalThreadedDynamicUpload";
@ConfigItem(
keyName = KEY_THREADED_DYNAMIC_UPLOAD,
name = "Threaded Dynamic Upload",
description = "",
section = experimentalSettings
)
default boolean threadedDynamicUpload() {
return true;
}

/*====== Internal settings ======*/

@ConfigItem(keyName = "pluginUpdateMessage", hidden = true, name = "", description = "")
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/rs117/hd/overlays/Timer.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ public enum Timer {
DRAW_FRAME,
DRAW_SCENE,
DRAW_RENDERABLE,
DRAW_TEMP,
DRAW_DYNAMIC,
DRAW_DYNAMIC_RT,
DRAW_TILED_LIGHTING,
GET_MODEL,
VISIBILITY_CHECK,
Expand All @@ -26,6 +29,7 @@ public enum Timer {
CHARACTER_DISPLACEMENT,
SWAP_BUFFERS,
GARBAGE_COLLECTION,
EXECUTE_COMMAND_BUFFER,
MAP_UI_BUFFER(false, "Map UI Buffer"),
COPY_UI(false, "Copy UI"),
RENDER_FRAME(true, false),
Expand Down
Loading