1. Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.

GPU-Z Shared Memory Layout

Discussion in 'GPU-Z' started by W1zzard, Jul 9, 2008.

  1. W1zzard

    W1zzard Administrator Staff Member

    Joined:
    May 14, 2004
    Messages:
    14,965 (3.92/day)
    Thanks Received:
    11,769
    Code:
    #define SHMEM_NAME _T("GPUZShMem")
    #define MAX_RECORDS 128
    
    #pragma pack(push, 1)
    struct GPUZ_RECORD 
    {
    	WCHAR key[256];
    	WCHAR value[256];
    };
    
    struct GPUZ_SENSOR_RECORD
    {
    	WCHAR name[256];
    	WCHAR unit[8];
    	UINT32 digits;
    	double value;
    };
    
    struct GPUZ_SH_MEM
    {
    	UINT32 version; 	 // Version number, 1 for the struct here
    	volatile LONG busy;	 // Is data being accessed?
    	UINT32 lastUpdate; // GetTickCount() of last update
    	GPUZ_RECORD data[MAX_RECORDS];
    	GPUZ_SENSOR_RECORD sensors[MAX_RECORDS];
    };
    #pragma pack(pop)
    If you use this shared memory in your application please leave a short comment.
     
  2. OlafSt New Member

    Joined:
    Jun 3, 2008
    Messages:
    6 (0.00/day)
    Thanks Received:
    1
    Location:
    Rellingen, Germany
    STLCD fully supports your Sharedmemory interface :toast:

    Greets,

    OlafSt
     
  3. ps3divx.com New Member

    Joined:
    Dec 6, 2007
    Messages:
    16 (0.01/day)
    Thanks Received:
    0
    hi!

    thx for the shared memory support! it works really fine (i use it in C# via a C++ wrapper class) but unfortunately i found no way to access the temperatures and load of both GPUs at the same time (i have a HD3870 X2). :(

    hmm, is there any way? it's really disappointing that NO tool has this feature.. :cry:
     
  4. GSG-9

    GSG-9

    Joined:
    Feb 8, 2005
    Messages:
    1,682 (0.47/day)
    Thanks Received:
    144
    Location:
    Minneapolis, Mn
    I really dont mean to sound stupid here, but is this code I can integrate into a C++ program to utalise memory locations on the videocard instead of standered memory locations?
     
  5. brianhama New Member

    Joined:
    Jul 13, 2008
    Messages:
    3 (0.00/day)
    Thanks Received:
    0
    PS3Divx,

    Would you be willing to post that wrapper class you created? If not, would it be feasible to access this shared memory from managed code? I am primarily a .NET developer and this isnt somthing I have done before.

    Thanks,

    Brian P. Hamachek
     
  6. ps3divx.com New Member

    Joined:
    Dec 6, 2007
    Messages:
    16 (0.01/day)
    Thanks Received:
    0
    hmmm i don't know if i get you right, but i think the answer is "no". this "code" is for guys who want to access the data read by GPUZ in their own programs. so for example i want to use the temperature and core load of both of my GPUs in my own C# application. to get these values i access GPUZ's shared memory, where the data is stored. hope i could help you a bit. ;)

    E: @brianhama: hi, yeah i'm also quite a C++ newbie, but i managed to create something that works for me.. if you like i can give you the files, it aren't much lines. however i can't guarantee that it's really good and clean code if you know what i mean..^^
     
  7. brianhama New Member

    Joined:
    Jul 13, 2008
    Messages:
    3 (0.00/day)
    Thanks Received:
    0
    I understand that. I am asking if you could post some code on how to access shared memory.
     
  8. ps3divx.com New Member

    Joined:
    Dec 6, 2007
    Messages:
    16 (0.01/day)
    Thanks Received:
    0
    allright, i will post the documented code, files and visual studio project soon (next 1-3 days), for anyone who needs it..
     
  9. W1zzard

    W1zzard Administrator Staff Member

    Joined:
    May 14, 2004
    Messages:
    14,965 (3.92/day)
    Thanks Received:
    11,769
    at this time it is only possible to get the readings for the currently selected video card (in gpuz)
     
  10. ps3divx.com New Member

    Joined:
    Dec 6, 2007
    Messages:
    16 (0.01/day)
    Thanks Received:
    0
    hmm i see.. is it possible to extend it to all cores in the next version? that would really help me out. however, i think the whole application is designed to show only one core at a time so it might be a bit complicated to get all data at the same time.. so if that's absolutely not possible could you at least add some kind of command line argument that defines which of the cores is selected at startup?

    because then i could start gpuz twice (one instance per core) and the data of both cores is written into (the same) shared memory. i could read the data each 500ms in my app so i get both values.. a bit complicated and dirty but it would serve my needs, if the shared memory for all cores is to complex. ;)

    PS: at the moment i'm pimping my neat-o wrapper class for you guys.. just love it. :D
     
  11. brianhama New Member

    Joined:
    Jul 13, 2008
    Messages:
    3 (0.00/day)
    Thanks Received:
    0
    Thanks PS3Divx; I look forward to your post.

    Brian P. Hamachek
     
  12. OlafSt New Member

    Joined:
    Jun 3, 2008
    Messages:
    6 (0.00/day)
    Thanks Received:
    1
    Location:
    Rellingen, Germany
    Maybe it is a nice idea to have a "GPU Count" value in the shared memory block. Then, for any further GPU, just create another shared-mem-block called "GPUZShMem_2", "GPUZShMem_3" and so on. I think this is the easiest way to accomplish this, as nobody knows how much GPU's we sometime will have on a Graphics card...

    BTW, for next release a "minimize to tray"-Feature would be nice ;)

    Greets,

    Olaf
     
  13. ps3divx.com New Member

    Joined:
    Dec 6, 2007
    Messages:
    16 (0.01/day)
    Thanks Received:
    0
    *sign* :D

    I think i will finish the wrapper class today.. if all works well, i will post it in the later afternoon/night.
     
  14. JohnnyUT New Member

    Joined:
    Jul 14, 2008
    Messages:
    7 (0.00/day)
    Thanks Received:
    4
    Allright, here we go with the C# wrapper class for GPUZ! :) (as i said: it's the "later" night.. :p)

    With it you can access the shared memory of GPUZ in your C# applications quite convenient.
    For example the following lines will print the Temperature and the Core Load on the console:

    Code:
    Gpuz.Wrapper.Open()
    Console.WriteLine(Gpuz.Wrapper.SensorValue(2));  //temp
    Console.WriteLine(Gpuz.Wrapper.SensorValue(4));  //load
    Gpuz.Wrapper.Close();
    
    Here is the link to the RAR-file (unfortunately it's to big to upload it directly to the board :/):
    http://www.file-upload.net/download-980228/GpuzWrapper.rar.html

    It includes:
    - 2 DLLs to include and use in your C# application
    - the visual studio (2005) project to modify and compile the DLLs on your own
    - a visual studio (2005) project which shows the proper usage of the wrapper class
    - a small readme file which lists the steps to take if you want to use the wrapper class in your C# application.

    Well, i think it's pretty handy and some guys might have a use of this! :toast:
    Oh, and of course the whole code is absolutely open source and free to modify and use. ;)

    Enjoy! :D

    PS: Feel free to ask if something is unclear. ;)
     
  15. puma99dk|

    puma99dk|

    Joined:
    Aug 29, 2005
    Messages:
    3,444 (1.03/day)
    Thanks Received:
    775
  16. boblemagnifique New Member

    Joined:
    Sep 21, 2007
    Messages:
    6 (0.00/day)
    Thanks Received:
    0
    I have same problem with the G45 (Intel DG45FG) !!

    The memory isn't detected with the Gpuz 0.27 :)
     
  17. Mr.John

    Mr.John

    Joined:
    Sep 23, 2008
    Messages:
    31 (0.01/day)
    Thanks Received:
    11
    W1zzard, is it possible to get the GPU count and if sli/crossfire is enabled? What properties should I look at? Sorry, no sli/crossfire to test.

    BTW, I'll use GPU-Z in Framebuffer Crysis Warhead Benchmark Tool.
     
    Last edited: Oct 9, 2008
  18. caldran New Member

    Joined:
    Apr 18, 2008
    Messages:
    49 (0.02/day)
    Thanks Received:
    0
    i need vb code of gpuz ...where can i get it...
     
  19. Toolmaster New Member

    Joined:
    Jan 23, 2009
    Messages:
    4 (0.00/day)
    Thanks Received:
    0
    @JohnnyUT

    Hast du auch eine x64 GpuzShMem.dll?

    grüße toolmaster
     
  20. taloche New Member

    Joined:
    Aug 8, 2008
    Messages:
    9 (0.00/day)
    Thanks Received:
    0

    Ouppps ! I never see this. i am sorry.

    I use this the share memory in plugin of samurize, here http://www.samurize.com/modules/mydownloads/viewcat.php?cid=6 "A plugin for GPU Z"

    This shared memory is a very good feature, a great idee, and very usefull.

    Thanks.
     
  21. ascl New Member

    Joined:
    Sep 24, 2009
    Messages:
    1 (0.00/day)
    Thanks Received:
    0
    Thanks for publishing this.

    If anyone is interested, I have sample C# code for accessing this posted on my blog here.
     
  22. tomoyo New Member

    Joined:
    Mar 15, 2010
    Messages:
    1 (0.00/day)
    Thanks Received:
    0
    Thanks for this interface. Now I have a monitor plugin of rivatuner, making use of the GPU load and other information reported by GPU-Z. It works very well.

    I have described some detail in my blog but I'm sorry it was in Chinese.
     
  23. thor2002ro New Member

    Joined:
    May 2, 2010
    Messages:
    1 (0.00/day)
    Thanks Received:
    0
    can someone please convert shared memory to delphi?
     
  24. SirReal New Member

    Joined:
    Jul 5, 2010
    Messages:
    3 (0.00/day)
    Thanks Received:
    1
    LCDSirReal, or SirReal's multipurpose G15 plugin, is a plugin for the Logitech G13/G15 gaming keyboards. It will also work on the G19, in black and white. It provides more features than all of the Logitech bundled plugins together, while using much less CPU and memory. Written entirely in C++, it's very stable and efficient. Among the more notable features are support for applications (WinAMP, iTunes, SpeedFan, FRAPS, TeamSpeak...) and system real time monitoring of networking, CPU and memory usage and more. And of course it shows the basic stuff as time, date and waiting mail as well.

    [​IMG]

    Changes in 2.8.3:

    • Adds support for the GPU-Z application
    • You can now prevent the test window from appearing even if the keyboard is unresponsive, see lcdsirreal.txt for more info

    http://www.linkdata.se/
     
  25. lastOne New Member

    Joined:
    Mar 22, 2008
    Messages:
    2 (0.00/day)
    Thanks Received:
    0
    - what happens if 2 or more GPUs are present, the structure posted on the OP provide all the info ?
    - the OP is rather old, does the OP structure is still up to date ?
     

Currently Active Users Viewing This Thread: 1 (0 members and 1 guest)

Share This Page