Disable "GameView reduced to a reasonable size for this system" behaviour?

I just can’t have my game view at the size I want, because some voodoo magic resizes it to a “reasonable” size. How is that reasonable?

I want to create UI clips for iPad Pro, which is 2048x2732. I also want my UI to resize for that. But this weird game view thingy just prevents me from doing that.

Can I just disable it somehow?
Please help, this is enormously frustrating.

1 Like

Seconded. Currently working on a UI that is far larger than 8192 in one dimension but Unity insists on scaling it down. Is there a work around? Would having a larger monitor help that? Just being able to flat-out disable it would be a great alternative.

1 Like

Believe it or not Unity people develop for systems other than the one they’re working on. It’s hard to be constructive when criticising such an idiotic feature. Especially since it actually makes my game view wider as well as not as tall.

JFYI
I have a laptop (vaio s15) with physical button to switch between integrated and discrete graphics card to be used by default. I started to get this warning when I switched to the integrated mode. Setting it back to descrete mode fixed the problem.

Problem seems to be in that block of Unity’s GameView code.

May be there is an issue with my graphics card driver and some of SystemInfo calls returns weird result.

Thanks for the hint.
I fix it by adding dedicated memory size in BIOS

If your BIOS won’t let you change VRAM size
Try Method2 here:
https://appuals.com/how-to-increase-a-dedicated-video-ram-vram-on-windows-10/

GameView reduced to a reasonable size for this system (1085,057x571,0826)
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) what is that problem

Did anyone find a workaround or fix? The solution above seems only to match for onbord vga?!

My target resolution is 11520*2160, the build does show it correctly, so gpu (rtx 2070) and unity build can do it!
I really need a higher editor resolutions to set things up.

"
GameView reduced to a reasonable size for this system (8192x1536)
UnityEngine.GUIUtilityProcessEvent (int,intptr,bool&)
"

1 Like

I want to export a hi-res 8K render of a shader I made. Can’t do it because of that annoying behavior. Plz fix

I need to render a 16:1 17280x1080p for a 75m wide LED display
so I would really like a workaround

1 Like

u just go under the game a choose another size … cause it chooses a very high one depending on ur screen

Hi, we also had the same problem of the Unity GameView being limited to 8K and working with much higher resolution projects and wanting to even display 1:1 across multiple monitors.

We built a tool to solve this issue: External Game View

Hope that helps :slight_smile:

1 Like

is there any news for this. I develop for a VR cave with a 9600x2384 resolution (6 screens of 1600x2364), the graphic card is a Quadro RTX 6000 but still the gameview is limited to 8100x2000 (or something like that).
Fun fact, the limitation is the same on the Cave with the rtx6000 and on my laptop equipped with a nvidia rtx A3000 laptop.

displaying 6 times a 1600x2384 with several displays works pretty fine,
if the app is compiled it works fine at the given resolution

Just Clicked on canvas and then check “PixelPerfect”

Unity said they had “fixed”.:frowning:
“Over 8K resolution (7680x4320) should be enough for anyone ™” is so funny in 2023

/*
 * Unity Editor の https://github.com/Unity-Technologies/UnityCsReference/blob/master/Editor/Mono/GameView/GameViewSizes.cs#L451 の dll へパッチを当ててGameViewで8192より大きな解像度を使用可能にする。
 * Patch the dll in the Unity Editor at https://github.com/Unity-Technologies/UnityCsReference/blob/master/Editor/Mono/GameView/GameViewSizes.cs#L451 to use resolutions larger than 8192 in GameView.
 * 
 * 1. Harmony ライブラリの取得:
 * 1. Get the Harmony library:
 *    - Download the latest version of Harmony-Fat.2.3.6.0.zip from https://github.com/pardeike/Harmony/releases
 *    - https://github.com/pardeike/Harmony/releases から最新版の Harmony-Fat.2.3.6.0.zip をダウンロード。
 * 
 * 2. Unity プロジェクトへ Harmony をインポート:
 * 2. Importing Harmony into your Unity project:
 *    - "net35/0Harmony.dll" を Unity プロジェクト内の "Assets/Plugins/" フォルダへコピー
 *    - Copy "net35/0Harmony.dll" to the "Assets/Plugins/" folder in your Unity project.
 *
 * 3. Unity プロジェクトへ このスクリプトをコピー
 * 3. Copy this script into your Unity project:
 *    - このスクリプトを Unity プロジェクト内の "Assets/Editor/GameViewMaxResolutionPatch.cs" などへコピー
 *  - Copy this script to "Assets/Editor/GameViewMaxResolutionPatch.cs" in your Unity project.
 *
 * 4. Unity エディタを終了させる。
 * 4. Close the Unity Editor.
 *
 * 5. "Library/BurstCache"、"Library/ScriptAssemblies" フォルダをを削除。
 * 5. Delete the "Library/BurstCache" and "Library/ScriptAssemblies" folders.
 * 
 * 6. Unity エディタ起動するとにパッチが適用されます。
 * 6. The patch will be applied when you start the Unity Editor.
 * 
 * ※起動時にコンソールログに"Failed to find entry-points:"と表示されますが問題ありません。
 * *"Failed to find entry-points:" will be displayed in the console log upon startup, but this is not a problem.
 
 * 注意点:
 * Notes:
 * - Unity 6000.0.36f1 で動作確認。将来、UnityEditorの変更により動作しなくなる可能性があります。
 * - Tested with Unity 6000.0.36f1. It may not work in the future due to changes in UnityEditor.
 * - Unity Editor が起動出来なくなった場合は該当ファイルを削除してください。
 * - If you are unable to start Unity Editor, please delete the relevant file.
 * - ビルドされたアプリケーションには影響しません。
 * - It has no effect on the built application.
 */

using System.Collections.Generic;
using System.Reflection;
using System.Reflection.Emit;
using HarmonyLib;
using UnityEngine;
using UnityEditor;

[InitializeOnLoad]
public static class GameViewSizePatcher
{
	static GameViewSizePatcher()
	{
		var harmony = new Harmony("com.example.gameviewpatch");
		var targetType = typeof(Editor).Assembly.GetType("UnityEditor.GameViewSizes");
		var method = targetType?.GetMethod("GetRenderTargetSize", BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic);
		if (method != null)
		{
			harmony.Patch(method, transpiler: new HarmonyMethod(typeof(GameViewSizePatcher), nameof(Transpiler)));
			Debug.Log("GameViewSizes.GetRenderTargetSize patched to allow higher resolution.");
		}
	}

	public static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions)
	{
		foreach (var instruction in instructions)
		{
			if (instruction.opcode == OpCodes.Ldc_R4 && (float)instruction.operand == 8192f)
			{
				instruction.operand = 16384f;
				Debug.Log("Replaced maxResolutionSize 8192f -> 16384f");
			}
			yield return instruction;
		}
	}
}