Commit Graph

915 Commits

Author SHA1 Message Date
Terry MacDonald
2285da1844 [WIP] Initial apply AMD profile scaffolding
Have now got it so that an AMD DisplayProfile
now results in the profile attempting to be applied.
2021-06-27 15:10:59 +12:00
Terry MacDonald
a715e50fe5 Fixing AMDProfile.IsPossible 2021-06-27 14:44:10 +12:00
Terry MacDonald
04a0b56b59 [WIP] Basic working DisplayProfile writing and reading
Now have the DisplayProfile storing the minimal set of
data that it needs. It also recreates the Screens list (used
for creating profile bitmaps and icons) and recreates the
DisplayProfileBitmaps each time at present. I will add some
logic to deerialise the bitmaps again at a later date once
I've compeleted actually applying the AMD display confs.
2021-06-27 13:53:00 +12:00
Terry MacDonald
240c69fcdb [WIP] Adjusted DisplayView size
Now works with single screens and similar
so that they show correctly on the page without
being hidden by foreground stuff. Still might
make the DisplayView larger if it makes sense.
2021-06-26 22:18:41 +12:00
Terry MacDonald
99d43bc245 [WIP] Initial working AMD displayview
Have managed to get a working displayview
for AMD (not working in spanned mode) and
currently playing with the colours and layout.
Once I have something locked in, I'll troubleshoot
the ProfileDisplay file writing.
2021-06-26 21:54:11 +12:00
Terry MacDonald
6a3068fb32 [WIP] Connecting AMDProfile to screens
Trying to figure out a video card agnostic way
of generating the display icons fo both standard
and spanned displays. Still trying to figure out
exactly which AMD ADL calls I need to make to
get all the information I need. It is NOT very well
documented. It's actually really annoying! AMD
need to do better.
2021-06-25 21:52:02 +12:00
Terry MacDonald
5cb0984637 [WIP] Partial profile image restructure
Trying to make the DisplayView and ProfileIcon
image drawing logic more generic so that it will
work with NVIDIA, AMD , Intel and Windows video
card drivers. Having to reverse engineer the amazing
wok that Soroush did with this stuff. I just know that
I'm going to break this before I fix it, but I really think
this is needed in order for this new video card
separation refactoring to work. This is going to take a
while I feel!
2021-06-24 22:14:39 +12:00
Terry MacDonald
ac5d51bb12 [WIP] Initial ProfileItem split into libraries
This is part of the new strategy to split the
ProfileItems into different derived clases with
one per Video card technology. The purpose is
to allow each video card driver to produce a
slightly different profiledata section which is
customised to the needs of that video card.

This will allieviate the need for us to extend
the Path object to support AMD, as we'll be
doing the differentiation at each ProfileItem.
Time will tell if this is a better strategy or not.

This is all to do with my even longer term
strategy of devloping video card driver library
files inhouse. This strategy was directly created
just so that I can make changes in my own code
if I need to support some additional features
such as HDR support within the profiles. It is very
difficult to do this if I'm using another video card
library. Much more simple to update my own code!
2021-06-22 21:05:24 +12:00
Terry MacDonald
3ec33def99 [WIP] saving a copy for later 2021-06-22 19:44:50 +12:00
Terry MacDonald
d654b80377 [WIP] Part work on new Profile data structs
Moving to a situation where each library has
it's own ProfileData structure which will require
me to break the existing Profile structure.
This will be better once finished, but it could
be a month before I get this rewrite finished :/
2021-06-20 17:13:21 +12:00
Terry MacDonald
7efd4f0349 Update to v2.0.0 and added functions
Decided that the DisplayProfile changes would
have to be breaking changes if I was going to
add HDR support, and be able to handle adding
future video cards from different manufacturers.
This all requires a change to the DisplayProfile
format. So now this is going to use a file called
DisplayProfiles_2.0.json rather than a file called
DisplayProfiles_1.0.json. This is because the
profiles will need to be generated again from
scratch, as they will all be completely different
to the format in DisplayProfiles_1.0.json.
2021-06-20 16:37:00 +12:00
Terry MacDonald
4774b9a995 Change Display Profiles to v2.0
We have to do this as we will be moving
to a new video card library-based way of
getting the Display Profiles information.
This is designed to enable me to add new
video card drivers in the future, such as
Intel, in order to support 'combined'
video screens,
2021-06-20 15:20:43 +12:00
Terry MacDonald
484b6d86b4 Renamed ADLWrapper to AMDLibrary
It better reflects the purpose of the class.
2021-06-20 10:45:45 +12:00
Terry MacDonald
d2c8c67d44 Updating messages within DisplayProfile 2021-06-19 20:49:22 +12:00
Terry MacDonald
d82c49af9f Finally detecting connectable displays
I finally figured out how to check for displays
that are selectable, but aren't in use. It's not
as striaght forward with AMD ASL library as
it is with NVIDIA's driver, thats for sure.

Seem to have fixed the exceptions based on
all the testing I've been doing. So there is at
least that!
2021-06-19 20:39:58 +12:00
Terry MacDonald
108a08688f Fix incorrect marshalling struct 2021-06-19 20:24:29 +12:00
Terry MacDonald
65653df73a Changed marshalling to be more reliable 2021-06-19 20:19:29 +12:00
Terry MacDonald
aaaf0287ac Correcting trace logging name 2021-06-19 19:42:54 +12:00
Terry MacDonald
9065735ad9 Added AMD ADL Exception handling 2021-06-19 19:39:50 +12:00
Terry MacDonald
a01d5defaa Added trace logging to ADLWrapper 2021-06-19 19:31:25 +12:00
Terry MacDonald
76c94c76ae Update version to v1.2.0 2021-06-19 13:38:32 +12:00
Terry MacDonald
48703759bf [WIP] Additional dispId generation tweaks 2021-06-19 13:36:57 +12:00
Terry MacDonald
16c143cffe [WIP] Working nearly DisplayIds
Have now go the required data, but for some
reason AMD is returning two valid adapters
when there is actually just one in the system!

Could be a problem with the device installation,
but I will need figuring out how to either remove
duplicates, or figure out the information to use as
a filter for ignoring one of the adapters.
2021-06-19 13:04:38 +12:00
Terry MacDonald
0808c6b1ba Added additional adapter output 2021-06-19 10:01:04 +12:00
Terry MacDonald
b1e9e6c295 [WIP] Added HDR functions to lib 2021-06-19 09:48:47 +12:00
Terry MacDonald
cf446101dd [WIP] Enough data for the Idenitifier
We now have enough data for me to identify
all the connected display devices, and to
generate a display identifier which will work
no matter if AMD Eyefinity is enabled or not!

This should allow me to generate an display
identifier that will work like the NVIDIA ones.
2021-06-18 21:31:55 +12:00
Terry MacDonald
3feef6f429 [WIP] Additional ADL2 conversions 2021-06-18 18:11:32 +12:00
Terry MacDonald
71550ba9a7 [WIP] Partial move to ADL2
Need to do this to gain access to extra
useful fields that just don't exist in ADL
functions. Example being HDR capabilties.
2021-06-18 18:02:14 +12:00
Terry MacDonald
6d64c1769a [WIP] Partial migration to ADL2
Its the only way to get HDR information :(
2021-06-18 12:33:46 +12:00
Terry MacDonald
3d0cf2542e [WIP] testing ways to get all displays
Trying different ways to get a list of all the connnected
displays via the AMD ADL library. It seems pretty
onerous at the moment, and seems like there is still a
lot of work to go :/. AGS may have been the better
way to go, but ADL at least had a C# example for me
to start with!
2021-06-17 21:40:10 +12:00
Terry MacDonald
854a359807 Fixed correct connector info 2021-06-17 20:10:14 +12:00
Terry MacDonald
b1b0ae26f5 Partially working displayids
It needs to be fixed as it isn't getting
the underlying displays when eyefinity
is turned on. Need to find a way around
that
2021-06-17 18:51:48 +12:00
Terry MacDonald
a39d9cbe01 [WIP] Working adapter and display grabbing
Need to add Display Device info extraction.
Have created consts for the connector types
in c#, but now need to add the logic to decode
the ADLDeviceConfig returned value!
2021-06-16 22:15:15 +12:00
Terry MacDonald
583fffb612 [WIP] Learning about PInvoke
This is a lot of learning about Pinvoke
and the way to marshal c structures
into c# managed structures when passed
as out.

This is all a lot more indepth than I was
hoping it was going to be!
2021-06-15 21:55:15 +12:00
Terry MacDonald
ee7c5fe1da [WIP] Building AMD library functions
There is a long road ahead of me, but
at least some of the structure is working
now! We can at least call the AMD ADL
library and get results returned back!
2021-06-14 21:42:16 +12:00
Terry MacDonald
a8c0307ace [WIP] Working basic adapter detection
Need to begin to put this in the right
places....
2021-06-14 20:37:35 +12:00
Terry MacDonald
f3acb9d292 [WIP] Seemingly basic connectivity working
So much left to do though!
2021-06-13 22:54:19 +12:00
Terry MacDonald
9c00081d7a Updated to v1.2.0 2021-06-13 09:52:30 +12:00
Terry MacDonald
668d01e8a6 [WIP] Partially extended AMD ADL lib 2021-06-13 09:44:36 +12:00
Terry MacDonald
e0df4444c0 Merge branch 'develop' into feature/amd-eyefinity-support 2021-06-10 19:30:31 +12:00
Terry MacDonald
77d67d7ef5 Merge branch 'main' into feature/amd-eyefinity-support 2021-06-10 19:28:24 +12:00
terrymacdonald
c6b07c5ff7
Create SECURITY.md 2021-06-08 15:38:55 +12:00
Terry MacDonald
d403f2d0ef Update to v1.1.4 2021-06-08 07:55:52 +12:00
Terry MacDonald
54132777fb Fixed broken application library display
Accidentally broke the applications from displaying
in the ShortcutLibraryForm. Now fixed.
2021-06-08 07:28:36 +12:00
Terry MacDonald
34e4833ba1 [WIP] partial pause 2021-06-08 07:21:36 +12:00
Terry MacDonald
cc1e9307cc [WIP] Added the multiple extern mappings
ADL2_Display_SLSMapConfig_SetState
ADL2_Display_SLSGrid_Caps
ADL2_Display_SLSMapIndexList_Get
ADL2_Display_SLSMapIndex_Get

Have to try and sort out the delegates and
the other bits to match the rest of the
AMD provided library entries.
2021-06-07 21:57:50 +12:00
Terry MacDonald
09e2b19bc3 [WIP] Added initial ADL2_Display_SLSMapConfig_Get()
Tried to add the first SLS map config get function into
the ADL.cs file, as well as all the supporting data
structures. Time will tell whether this will work or not!
2021-06-07 21:41:48 +12:00
Terry MacDonald
4849c3ffaf Updated Readme again 2021-06-07 19:45:28 +12:00
Terry MacDonald
9805eb46b7 Updated readme
This is the easy part...
2021-06-07 19:40:53 +12:00
Terry MacDonald
dbfaf1f7c8 Initial ADL library import
Using the example ADL.cs from
https://github.com/GPUOpen-LibrariesAndSDKs/display-library/tree/master/Sample-Managed
2021-06-07 17:55:44 +12:00