-
Notifications
You must be signed in to change notification settings - Fork 123
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixup AGS library linking and install #1789
Conversation
CI gfxreconstruct build queued with queue ID 273427. |
CI gfxreconstruct build # 4970 running. |
CI gfxreconstruct build # 4970 failed. |
abf00ad
to
3cd701a
Compare
CI gfxreconstruct build queued with queue ID 274174. |
CI gfxreconstruct build # 4986 running. |
CI gfxreconstruct build # 4986 failed. |
3cd701a
to
5d87710
Compare
CI gfxreconstruct build queued with queue ID 276073. |
Link against the static AGS library. Update code, documentation, and log messages.
5d87710
to
e3076e9
Compare
CI gfxreconstruct build queued with queue ID 276075. |
CI gfxreconstruct build # 5038 running. |
CI gfxreconstruct build # 5038 passed. |
I wonder if instead of caching binaries for AGS, we should submodule https://github.com/GPUOpen-LibrariesAndSDKs/AGS_SDK directly. Are there any aversions to submodule use? |
No aversions to submodules, but we've mostly done that to import registry XMLs and headers. We've mostly avoided having to build binaries for other projects from the source as part of our build - you can see we've included the binaries for the compression libraries in the repo, with varying degrees of success. That's always been slightly awkward - it seems like an added burden for one platform to need to download the binaries for the other platforms, but that does only occur generally once. Recently we've added SPIRV-Reflect, which we compile as part of our build. I think that may have been done as an expedient because we know it's very cross-platform and a straightforward build. @fabian-lunarg ? How often does AGS change? If the binaries would change very infrequently, I would argue having the built artifacts makes some sense. If it changes frequently, then making building it directly from a submodule is a good idea. |
no aversion against submodules, but it's still not an easy or general choice.
AGS seems to have a slightly different profile here regarding its build-process, frequency of required updates, number of platforms to cover in |
The AGS GitHub repo includes the binaries at https://github.com/GPUOpen-LibrariesAndSDKs/AGS_SDK/tree/master/ags_lib/lib so GFXR wouldn't need to build them. As far as I am aware, source code is not available for the AGS libraries.
The size of the AGS repo is ~180MB. The files added in this PR are ~36MB, so maybe that influences the decision.
CMake has FetchContent which might allow us to accomplish 1 and/or 2 but it does add a new method for managing dependencies in GFXR. It isn't clear to me that submodule provides any major benefit, so my thought is to leave the dependency as is. I could look into FetchContent if that is desired. |
CI gfxreconstruct build queued with queue ID 278184. |
CI gfxreconstruct build # 5056 running. |
CI gfxreconstruct build # 5056 failed. |
CI gfxreconstruct build queued with queue ID 278233. |
CI gfxreconstruct build # 278233 cancelled. |
CI gfxreconstruct build queued with queue ID 278282. |
CI gfxreconstruct build # 5059 running. |
CI gfxreconstruct build # 5059 failed. |
CI gfxreconstruct build queued with queue ID 278435. |
CI gfxreconstruct build # 5061 running. |
CI gfxreconstruct build # 5061 passed. |
10d35bd
to
b9b3d86
Compare
CI gfxreconstruct build queued with queue ID 278475. |
CI gfxreconstruct build # 5062 running. |
Don't include the AGS files in the GFXR repo. Instead, attempt to fetch them from the AGS GitHub.
b9b3d86
to
845015b
Compare
CI gfxreconstruct build queued with queue ID 278514. |
CI gfxreconstruct build # 5063 running. |
CI gfxreconstruct build # 5063 passed. |
I've updated the code to use CMake's FetchContent module. Now the AGS GitHub is cloned during the configuration step of CMake. It will only be cloned if AGS is enabled and supported, so other platforms won't need to download the files. In my testing it only seemed to clone once for a clean CMake build and subsequent cmake configuration runs finished more quickly. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice, good solution with FetchContent
CI gfxreconstruct build queued with queue ID 279217. |
CI gfxreconstruct build # 5075 running. |
CI gfxreconstruct build # 5075 passed. |
Link against the static AGS library. Update code, documentation, and log messages.