Changing Video Memory Size for UHD 630 Integrated Graphics

@Lost_N_BIOS

I have a HP 27-R114 AiO computer with Gen 8 Intel chipset and UHD 630 graphics.
Part of this machine’s job is CAD. The GPU is plenty fast, but there is not enough Video RAM for complex renderings.

It’s been a while since I’ve had a machine with integrated graphics, but I do remember setting Video RAM size in the BIOS.
No such setting exists in this BIOS.

Can it be accomplished with a BIOS mod?
Is there a better way I am ignorant of?

My current BIOS can be found >here<.

@Hash
Yeah this would be interesting if it can modded to get 4.0GB or 8.0GB shared video memory if you have enough system memory. Maybe even 16.0GB shared video memory on a 128.0GB installed system would be amazing. That would really compete with the high end video cards with memory but probably not in performance.

Which operating system are you using this for? Maybe the driver may need to be modded to see the higher video memory after BIOS mod is done.

A lot of those ALL IN ONE PCs have butchered BIOS options meaning very bare minimal exposed to the user side.

Hopefully Lost_N_Bios or someone else with modding expertise can solve this.

The main issue here is what is in the BIOS default allowed amounts, those can be set or sometimes made visible to user, but I’ve not yet found a way to change/increase the allowed amounts.
What is your BIOS or family/system ID? The BIOS you linked contains images for several systems.

These are the related options for the BIOS you linked. We can probably change via grub without having to do a BIOS mod. Tell me what you want for each and I will tell you how to proceed with trying a grub edit

GTT Size, VarStoreInfo (VarOffset/VarName): 0x820, VarStore: 0x1, QuestionId: 0x464, Size: 1, Min: 0x1, Max 0x3, Step: 0x0 {05 91 7D 06 7E 06 64 04 01 00 20 08 10 10 01 03 00}
0x394E1 One Of Option: 2MB, Value (8 bit): 0x1 {09 07 7F 06 00 00 01}
0x394E8 One Of Option: 4MB, Value (8 bit): 0x2 {09 07 80 06 00 00 02}
0x394EF One Of Option: 8MB, Value (8 bit): 0x3 (default) {09 07 81 06 30 00 03}

0x394F8 One Of: Aperture Size, VarStoreInfo (VarOffset/VarName): 0x821, VarStore: 0x1, QuestionId: 0x2741, Size: 1, Min: 0x0, Max 0xF, Step: 0x0 {05 91 82 06 83 06 41 27 01 00 21 08 14 10 00 0F 00}
0x39509 One Of Option: 128MB, Value (8 bit): 0x0 {09 07 84 06 00 00 00}
0x39510 One Of Option: 256MB, Value (8 bit): 0x1 (default) {09 07 85 06 30 00 01}
0x39517 One Of Option: 512MB, Value (8 bit): 0x3 {09 07 86 06 00 00 03}
0x3951E One Of Option: 1024MB, Value (8 bit): 0x7 {09 07 87 06 00 00 07}
0x39525 One Of Option: 2048MB, Value (8 bit): 0xF {09 07 88 06 00 00 0F}

0x395B9 One Of: DVMT Pre-Allocated, VarStoreInfo (VarOffset/VarName): 0x8D2, VarStore: 0x1, QuestionId: 0x2742, Size: 1, Min: 0x0, Max 0xFE, Step: 0x0 {05 91 C0 05 D3 05 42 27 01 00 D2 08 10 10 00 FE 00}
0x395CA Default: DefaultId: 0x0, Value (8 bit): 0x2 {5B 06 00 00 00 02}
0x395D0 One Of Option: 0M, Value (8 bit): 0x0 {09 07 C1 05 00 00 00}
0x395D7 One Of Option: 32M, Value (8 bit): 0x1 {09 07 C2 05 00 00 01}
0x395DE One Of Option: 64M, Value (8 bit): 0x2 {09 07 C3 05 00 00 02}
0x395E5 One Of Option: 4M, Value (8 bit): 0xF0 {09 07 C4 05 00 00 F0}
0x395EC One Of Option: 8M, Value (8 bit): 0xF1 {09 07 C5 05 00 00 F1}
0x395F3 One Of Option: 12M, Value (8 bit): 0xF2 {09 07 C6 05 00 00 F2}
0x395FA One Of Option: 16M, Value (8 bit): 0xF3 {09 07 C7 05 00 00 F3}
0x39601 One Of Option: 20M, Value (8 bit): 0xF4 {09 07 C8 05 00 00 F4}
0x39608 One Of Option: 24M, Value (8 bit): 0xF5 {09 07 C9 05 00 00 F5}
0x3960F One Of Option: 28M, Value (8 bit): 0xF6 {09 07 CA 05 00 00 F6}
0x39616 One Of Option: 32M/F7, Value (8 bit): 0xF7 {09 07 CB 05 00 00 F7}
0x3961D One Of Option: 36M, Value (8 bit): 0xF8 {09 07 CC 05 00 00 F8}
0x39624 One Of Option: 40M, Value (8 bit): 0xF9 {09 07 CD 05 00 00 F9}
0x3962B One Of Option: 44M, Value (8 bit): 0xFA {09 07 CE 05 00 00 FA}
0x39632 One Of Option: 48M, Value (8 bit): 0xFB {09 07 CF 05 00 00 FB}
0x39639 One Of Option: 52M, Value (8 bit): 0xFC {09 07 D0 05 00 00 FC}
0x39640 One Of Option: 56M, Value (8 bit): 0xFD {09 07 D1 05 00 00 FD}
0x39647 One Of Option: 60M, Value (8 bit): 0xFE {09 07 D2 05 00 00 FE}

0x39650 One Of: DVMT Total Gfx Mem, VarStoreInfo (VarOffset/VarName): 0x8D3, VarStore: 0x1, QuestionId: 0x467, Size: 1, Min: 0x1, Max 0x3, Step: 0x0 {05 91 D4 05 D5 05 67 04 01 00 D3 08 10 10 01 03 00}
0x39661 Default: DefaultId: 0x1, Value (8 bit): 0x2 {5B 06 01 00 00 02}
0x39667 One Of Option: 128M, Value (8 bit): 0x1 {09 07 D6 05 00 00 01}
0x3966E One Of Option: 256M, Value (8 bit): 0x2 (default) {09 07 D7 05 30 00 02}
0x39675 One Of Option: MAX, Value (8 bit): 0x3 {09 07 D8 05 00 00 03}


The system board ID is 8448,
and the BIOS Revision is 8448 vF.15




The system currently has 32GB RAM in dual channel config.
I don’t know what the chipset is capable of, but 32GB was confirmed by users.
Officially, max RAM was 16GB…

Further, I have no idea how much RAM is allocated to Video. Looking at physical memory stats, none.
But, I’d like to give video at least 4GB. Don’t see the point of going 8, though surely I could stand it.

Yes, it appears 0MB is the default value for DVMT pre-allocated, but I wasn’t sure if that was correct and thought maybe other actual value stored in NVRAM/VSS instead for that setting.
You may be able to see reserved video memory amounts at “System Information” from start menu, or dxdiag from “run” (Win+R), but I’m not sure if this is shown there. Maybe GPU-z would show somewhere?


Win7x64 (my last windoz before turning to *nix)

.



There are three entries:
0xA0000000-0xA0FFFFFF Intel(R) UHD Graphics 630 OK
0x90000000-0x9FFFFFFF Intel(R) UHD Graphics 630 OK
0xA0000-0xBFFFF Intel(R) UHD Graphics 630 OK

Those actually look more like page in/outs than memory.
But,that is nothing more than opinion.

.



"Approx Total Memory = 1824MB"

.




Memory size in CPU-z 2.26.0 is "N/A"
However, it IDs the TYpe as DDR4, Bus Width as 128, and Bandwidth as 38.4GB/s…
shrug

CPU-z also states Vulkan is not an available technology, even though Vulkan driver / APIs are loaded and supposed to be working.

@Lost_N_BIOS

Any chance of me setting up 4GB VRAM with this BIOS?

I noted the following lines in the BIOS options you posted before:
0x39510 One Of Option: 256MB, Value (8 bit): 0x1 (default) {09 07 85 06 30 00 01}
0x39525 One Of Option: 2048MB, Value (8 bit): 0xF {09 07 88 06 00 00 0F}

While 2048MB isn’t significantly larger than the 1824MB reported by dxdiag, perhaps I’ll see a gain simply by having it as the default, instead of 256MB.

Or, is there a way to actually set it to 4096MB?

TIA

For the “System Info” thing I mentioned, I meant look at the summary, it shows several memory things (installed, virtual, page file etc) I just don’t know what is shown there with integrated GPU, so I suspected it may be shown there.

This is what you can set as Max


GTT Size, VarStoreInfo (VarOffset/VarName): 0x820, VarStore: 0x1, QuestionId: 0x464, Size: 1, Min: 0x1, Max 0x3, Step: 0x0 {05 91 7D 06 7E 06 64 04 01 00 20 08 10 10 01 03 00}
0x394EF One Of Option: 8MB, Value (8 bit): 0x3 (default) {09 07 81 06 30 00 03}

0x394F8 One Of: Aperture Size, VarStoreInfo (VarOffset/VarName): 0x821, VarStore: 0x1, QuestionId: 0x2741, Size: 1, Min: 0x0, Max 0xF, Step: 0x0 {05 91 82 06 83 06 41 27 01 00 21 08 14 10 00 0F 00}
0x39525 One Of Option: 2048MB, Value (8 bit): 0xF {09 07 88 06 00 00 0F}

0x395B9 One Of: DVMT Pre-Allocated, VarStoreInfo (VarOffset/VarName): 0x8D2, VarStore: 0x1, QuestionId: 0x2742, Size: 1, Min: 0x0, Max 0xFE, Step: 0x0 {05 91 C0 05 D3 05 42 27 01 00 D2 08 10 10 00 FE 00}
0x395CA Default: DefaultId: 0x0, Value (8 bit): 0x2 {5B 06 00 00 00 02} << Looking at this one again, it’s already set to max >> 0x2 = 64B
0x395DE One Of Option: 64M, Value (8 bit): 0x2 {09 07 C3 05 00 00 02}

0x39650 One Of: DVMT Total Gfx Mem, VarStoreInfo (VarOffset/VarName): 0x8D3, VarStore: 0x1, QuestionId: 0x467, Size: 1, Min: 0x1, Max 0x3, Step: 0x0 {05 91 D4 05 D5 05 67 04 01 00 D3 08 10 10 01 03 00}
0x39675 One Of Option: MAX, Value (8 bit): 0x3 {09 07 D8 05 00 00 03}


Information on what all these actually do
https://www.reddit.com/r/gpdwin/comments…ideo_memory_in/
https://www.intel.co.uk/content/www/uk/e…cs-drivers.html
https://www.udoo.org/forum/threads/tunin…e-in-bios.7125/

I am not familiar with setting/using any of this, never use integrated graphics. So you will have to read/research and decide, then I can edit BIOS for you

@Lost_N_BIOS
@XPLives

It seems I’ve been going about this all wrong.
The DVMT protocol truly is dynamic. I just needed the OS to lie to my programs so they will utilize what can be available.

DVMT can use up to 50% of the system RAM for VRAM. I have 32GB RAM, so (in theory) up to 16GB can be allocated to VRAM.

However, my OS is only reporting 192MB of dedicated Video RAM available.
So, the trick is to get the OS to lie to the programs.

This is easily accomplished by placing an entry into the registry.
In the registry, browse to HKLM\Software\Intel
Create a key named GMM.
Browse to GMM.
Create a D-Word named DedicatedSegmentSize
Set the value of DedicatedSegementSize to the value you want, minus 512MB.
Therefor, since I wanted 4GB reported… I set the value to 3584 (0e00h).
If I want 8GB reported, I set the value to 1e00h (7680 decimal).

It works like a charm.
I have yet to push VRAM utilization over 2GB (according to GPU-Z “Memory Used”), but I have also yet to create any complex drawings.
But, allocation is very responsive to files opened, closed or rendered. I have no doubt that as the drawings become more complex, I’ll use more than 4GB VRAM.

Interesting find, thanks for sharing and good to see you’ve got the issue sorted out now, without having to mess around with BIOS mod too!

@Hash , @Lost_N_BIOS





Interesting discovery. Was this for setting Graphics Shared Memory to Auto rather than FIXED VALUE?

Was this only tested on Windows 7 or 10 as well?

I wonder if XP or 2003 has such an implementation via registry but my guess maybe not. But would be more curious how to add 2GB and 4GB shared memory into BIOS options to see if would work. So far I can see it has a 1GB fixed limit setting in the BIOS. Can comparing older BIOSes with value of 1GB and changing it to newer BIOS 1.5GB or 2.0GB in their fixed setting of the BIOS help identify what to change in the BIOS mod?

Sorry for the delay in replying back.
As I had the ability to test the Windows 10 question, I wanted to do so before replying.

So… for Windows 10: (Remember, this is the SAME hardware)
The initial VRAM reported was 128MB, as opposed to 192MB in Win 7.
When entering the value in the registry, there is no 512KB offset. If you enter 4096 (1000h) for VRAM, you get 4 GB reported.
.


In this BIOS, there is no Shared Video Setting at all. So, I would posit "Auto" should be assumed.
Further, my current understanding of DVMT is that if such a setting is in a BIOS that does have the settings, it is more of a "suggestion" than what actually happens.
Beyond that, actually setting a dedicated VRAM potentially creates more problems than would be solved.
.


My take on what I have learned so far is that this is more of a question of driver support than the OS.
The drivers that I use for my Win 7 install are modified Win 10 drivers.
Given that XP is so far down the line, I doubt suitable drivers could be crafted to work on it.

I doubt there is anyone out there still using XP64. I actually still have an "original" OEM XP64 install disk from back in the day.
However, I never got XP64 to work correctly. I ended up installing Server 03, and performing a registry hack on it to tell it that it was a Workstation OS, and not Server.
I had to fix something like a dozen DLL problems - but, after that it was solid. In fact, that computer boots to this day - and this is something I did around 2004-2005…
FWIW: That machine was a dual CPU XEON chassis, with a 2.5TB RAID-5 array. XP64 saw all of that, but so many programs would not run on it.
Server 03 saw all of the hardware, and had no issues running programs, but I needed multiple desktop support - which server does not do, but workstation does.
.

For a Windows 7 or Windows 10 implementation, I can only see this as a losing strategy. Additionally, since DVMT is apparently (at least in part) a chipset implementation, forcing dedicated VRAM values outside of what is already there will likely have unintended consequences.

I, for one, am very happy about how the protocol works, and do not see any reason to hard-specify a VRAM value in the BIOS.

Jumping into this very late but I am trying to achieve the same thing with a Dell XPS15 16Gb, tried every trick in Regedit to no avail and the there is no option to change anything in BIOS. Any suggestions? stuck with 128Mb VRAM at present.