Skip to content

Commit 0def649

Browse files
committed
How bad could it go?
1 parent 25d756f commit 0def649

File tree

9 files changed

+217
-186
lines changed

9 files changed

+217
-186
lines changed

.github/workflows/build.yml

+10-10
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,24 @@ on: [push, pull_request]
88
jobs:
99
build:
1010
runs-on: ubuntu-latest
11-
1211
steps:
13-
- uses: actions/checkout@v2
14-
15-
- uses: actions/setup-java@v4
12+
- name: Checkout sources
13+
uses: actions/checkout@v4
14+
- name: Setup Java
15+
uses: actions/setup-java@v4
1616
with:
17-
distribution: temurin
17+
distribution: 'temurin'
1818
java-version: 21
19-
2019
- name: Setup Gradle
21-
uses: gradle/actions/setup-gradle@v3
20+
uses: gradle/actions/setup-gradle@v4
2221
with:
23-
cache-read-only: false
22+
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
23+
gradle-version: current
2424

25-
- name: Run build with Gradle Wrapper
25+
- name: Build with Gradle
2626
run: ./gradlew build
2727

28-
- name: Upload built JAR (Fabric)
28+
- name: Upload built JAR
2929
uses: actions/upload-artifact@v4
3030
with:
3131
name: iris-artifacts

README.md

+5-18
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
![Iris: An open-source shaders mod compatible with OptiFine shaderpacks](docs/banner.png)
1+
![Iris: An open-source shaders mod compatible with OptiFine shader packs](docs/banner.png)
22

33
# Iris
44

@@ -12,16 +12,16 @@
1212
## FAQ
1313

1414
- Find answers to frequently asked questions on our [FAQ page](docs/faq.md).
15-
- Iris supports almost all shaderpacks, but a list of unsupported shaderpacks is available [here](docs/unsupportedshaders.md).
15+
- Iris supports almost all shader packs, but a list of unsupported shader packs is available [here](docs/unsupportedshaders.md).
1616
- A list of unfixable limitations in Iris is available [here](docs/usage/limitations.md).
1717

1818
## Why did you make Iris?
1919

20-
Iris was created to fill a void that I saw in the Minecraft customization and graphical enhancement community: the lack of an open-source shaders mod that would let me load my favorite shader packs on modern versions of the game, while retaining performance and compatibility with modpacks. OptiFine, the current dominant mod for loading shader packs, has restrictive licensing that firmly stands in the way of any sort of tinkering, and is fairly notorious for having compatibility issues with the mods that I like. It's also mutually incompatible with Sodium, the best rendering optimization mod in existence by a large margin. ShadersMod was never updated past 1.12, and it lacks support for many of the many modern popular shaderpacks. So I created Iris, to try and solve these issues, and also address many other longstanding issues with shader packs.
20+
Iris was created to fill a void that I saw in the Minecraft customization and graphical enhancement community: the lack of an open-source shaders mod that would let me load my favorite shader packs on modern versions of the game, while retaining performance and compatibility with modpacks. OptiFine, the current dominant mod for loading shader packs, has restrictive licensing that firmly stands in the way of any sort of tinkering, and is fairly notorious for having compatibility issues with the mods that I like. It's also mutually incompatible with Sodium, the best rendering optimization mod in existence by a large margin. ShadersMod was never updated past 1.12, and it lacks support for many of the many modern popular shader packs. So I created Iris, to try and solve these issues, and also address many other longstanding issues with shader packs.
2121

2222
I first and foremost develop Iris to meet my own needs of a performance-oriented shaders mod with good compatibility and potential for tinkering. Iris when paired with Sodium delivers great performance on my machine, finally making it fully possible for me to actually play with shaders instead of just periodically switching them on to take pretty screenshots, then switching them off once I get tired of frame drops. Of course, as it turns out, I'm far from the only person who benefits from the development of Iris, which is why I've decided to release it to the public as an open-source mod.
2323

24-
Canvas is another shaders mod that has already gained some traction. Its big downside for me, however, is the fact that it doesn't support the existing popular OptiFine shaderpacks that I want to use. This is because it uses a new format for shader packs that isn't compatible with the existing format, in order to achieve many of its goals for better mod integration with shaders. And while Canvas now has a few nice shaders like Lumi Lights, I still want to have the option of using existing shader packs that were designed for OptiFine. Shader packs just aren't interchangeable, just like how you cannot hand a copy of *The Last Supper* to someone who wants a copy of the *Mona Lisa*. They're both great pieces of art, but you absolutely cannot just swap one out for the other. That being said, if you're a fan of the shader packs available for Canvas, then great! Canvas and Iris are both perfectly fine ways to enjoy shaders with Minecraft.
24+
Canvas is another shaders mod that has already gained some traction. Its big downside for me, however, is the fact that it doesn't support the existing popular OptiFine shader packs that I want to use. This is because it uses a new format for shader packs that isn't compatible with the existing format, in order to achieve many of its goals for better mod integration with shaders. And while Canvas now has a few nice shaders like Lumi Lights, I still want to have the option of using existing shader packs that were designed for OptiFine. Shader packs just aren't interchangeable, just like how you cannot hand a copy of *The Last Supper* to someone who wants a copy of the *Mona Lisa*. They're both great pieces of art, but you absolutely cannot just swap one out for the other. That being said, if you're a fan of the shader packs available for Canvas, then great! Canvas and Iris are both perfectly fine ways to enjoy shaders with Minecraft.
2525

2626
## Goals
2727

@@ -37,7 +37,7 @@ These are the goals of Iris. Iris hasn't fully achieved all these goals, however
3737

3838
## What's the current state of development?
3939

40-
Iris has public releases for 1.18.2, 1.19.2, 1.19.3, and 1.19.4 that work with the official releases of Sodium. Iris is generally usable on most shader packs, and most shader packs are being designed with Iris support in mind.
40+
Iris has public releases for the latest version of Minecraft that work with the official releases of Sodium. Iris is generally usable on most shader packs, and most shader packs are being designed with Iris support in mind.
4141

4242
However, Iris is still not complete software. Performance can be improved, and more features are being added for shader developers. There are also some minor missing features from OptiFine that make the implementation incomplete.
4343

@@ -47,19 +47,6 @@ However, Iris is still not complete software. Performance can be improved, and m
4747
* Code review on open PRs is appreciated! This helps get important issues with PRs resolved before I give them a look.
4848
* Code contributions through PRs are also welcome! If you're working on a large / significant feature it's usually a good idea to talk about your plans beforehand, to make sure that work isn't wasted.
4949

50-
## But where's the Forge version?
51-
52-
Iris doesn't support Forge. This is for a few reasons:
53-
54-
* My time is limited, and properly supporting all the mods available for Forge (as well as Forge itself) is a huge amount of work. When people ask for Forge support, they aren't asking just for Iris to run on Forge, they are also asking for it to be compatible out of the box with their kitchen sink modpack that contains over 300 mods. As a result, properly supporting Forge would require me to divert large amounts of precious time into fixing tedious compatibility issues and bugs, time that could instead be spent making the Fabric version of Iris better.
55-
* The Forge toolchain isn't really designed to play nice with mods like Iris that need to make many patches to the game code. It's possible, but Fabric & Quilt are just *better* for mods like Iris. It's no coincidence that the emergence of Fabric and the initial emergence of OptiFine replacements happened at around the same time.
56-
* Sodium, which Iris depends on to achieve its great performance, has no official Forge version. It's a long story, but in short: the lead developers of Forge were incredibly hostile to JellySquid when she developed for Forge, and since then have made no credible attempts to repair relations or even admit wrongdoing.
57-
58-
Some users have already ported Iris to Forge, however these ports generally come with mod compatibility issues and outdated updates.
59-
The license of Iris does permit others to legally port Iris to Forge, and we are not strictly opposed to the existence of an Iris Forge port created by others. However, what we are opposed to is someone doing a bare-minimum port of Iris to Forge, releasing it to the public, and then abandoning it or poorly maintaining it while compatibility issues and bug reports accumulate. When that happens, not only does that hurt the reputation of Iris, but we also ultimately get flooded by users wanting support with a low-effort Forge port that we didn't even make.
60-
61-
So, if you want to distribute a Forge port of Iris, we'd prefer if you let us know. Please don't just name your port "Iris Forge," "Iris for Forge," or "Iris Forge Port" either. Be original, and don't just hijack our name, unless we've given you permission to use one of those kinds of names. If a well-qualified group of people willing to maintain a Forge port of Iris does appear, then a name like "Iris Forge" might be appropriate - otherwise, it probably isn't appropriate.
62-
6350
## Credits
6451

6552
* **TheOnlyThing and Vaerian**, for creating the excellent logo

docs/development/recommendations.md

+1-5
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Once you got the basics of the project setup, you might be wondering how to improve the development process on your computer.
44
Here are a few recommendations to help you get started.
55

6-
- Use runMinecraftClient or the Minecraft Client run configuration when making changes
6+
- Use runClient or the Minecraft Client run configuration when making changes
77
- These let you immediately see the changes you make in the development environment, without making a new JAR file and adding it to a production environment.
88
- Use IntelliJ + the Minecraft Development plugin
99
- This plugin does a lot for you, including but not limited to:
@@ -13,7 +13,3 @@ Here are a few recommendations to help you get started.
1313
- Mixin error-checking
1414
- Workspace highlighting
1515
- If you are facing an issue that can only be easily reproduced on servers, use the [AuthMe](https://modrinth.com/mod/auth-me) mod to log in while using the development environment. This is often way easier than using print statement debugging & constantly recompiling the mod.
16-
- _For 1.19.3 and older:_ Add LazyDFU to your mods folder
17-
- LazyDFU makes the game start up faster, by deferring DFU compiling until it's needed.
18-
- Download [LazyDFU](https://modrinth.com/mod/lazydfu) and place it in the run/mods folder to add it.
19-

docs/development/sodium-compatibility.md

-21
This file was deleted.

docs/usage/development-builds.md

+2-6
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,6 @@ Sometimes, we make beta builds available on the Discord server. These might not
1313

1414
Once you're confident that development builds are right for you, follow these steps to get a build:
1515

16-
1. Download or check out a copy of the source code from GitHub, with the appropriate branch:
17-
- `trunk`, for Minecraft 1.16.5
18-
- `1.18.2`, for Minecraft 1.18.2
19-
- `1.19`, for Minecraft 1.19
20-
- a different development branch (usually for Minecraft 1.16.5)
21-
2. Execute a `java -jar brachyura-bootstrap-0.jar build` command in a terminal
16+
1. Download or check out a copy of the source code from GitHub, with the appropriate branch for your MC version.
17+
2. Execute a `gradlew build` command in a terminal (alternatively, to build one loader, `gradlew :fabric:build` or `gradlew :neoforge:build`)
2218
3. Done! Use the JAR file in `build/libs/` as a normal Fabric Mod.

gradle/wrapper/gradle-wrapper.jar

-15.3 KB
Binary file not shown.
+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-all.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
4+
networkTimeout=10000
5+
validateDistributionUrl=true
46
zipStoreBase=GRADLE_USER_HOME
57
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)