Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
GCC 10 defaults to building with -fno-common, which exposes a bug in
nvidia-settings: The VDPAUDeviceFunctions structure is defined as global in
ctkvdpau.h, so both ctkvdpau.o and ctkwindow.o have it as a global, non-static
"tentative definition" symbol. The GCC 10 man page describes it like this:
-fcommon
In C code, this option controls the placement of global variables
defined without an initializer, known as tentative definitions in
the C standard. Tentative definitions are distinct from
declarations of a variable with the "extern" keyword, which do not
allocate storage.
The default is -fno-common, which specifies that the compiler
places uninitialized global variables in the BSS section of the
object file. This inhibits the merging of tentative definitions by
the linker so you get a multiple-definition error if the same
variable is accidentally defined in more than one compilation unit.
The -fcommon places uninitialized global variables in a common
block. This allows the linker to resolve all tentative definitions
of the same variable in different compilation units to the same
object, or to a non-tentative definition. This behavior is
inconsistent with C++, and on many targets implies a speed and code
size penalty on global variable references. It is mainly useful to
enable legacy code to link without errors.
Since the copy of VDPAUDeviceFunctions in ctkwindow.o is not used, just remove
it by moving the definition of this structure into ctkvdpau.c.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Issue:
When redirecting nvidia-settings output to a file or a pipe (for simple
recording, or scripting purposes), we don't want the output to change
depending on the current terminal width (TIOCGWINSZ).
Fix/Feature:
This change disables word-wrapping of `nv_msg`/`nv_*_msg` functions when
the output stream is not a terminal (not `isatty`).
PRE-Merge Build Fix from Liam Middlebrook <lmiddlebrook@nvidia.com>:
Add _GNU_SOURCE define for fileno
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fail.
If there is an issue querying graphics information for EGL on a system, we detect the error and hide all graphics information including OpenGL, Client/Server GLX info that may not be affected by the EGL issue. This leaves a blank page when only a portion of the code may have failed.
This change only omits the EGL info if EGL is the only problem.
|
|
When AllowExternalGpus is not set to TRUE, the X server will ignore
surprise-removable GPUs.
Despite these GPUs being invisible to X and thus invisible to NV-CONTROL, they
are visible via NVML. nvidia-settings can use NVML to query for available GPUs,
and then query additional information from NV-CONTROL. Today, it assumes that a
GPU that is visible via NVML will also be visible via NV-CONTROL, but thanks to
Option "AllowExternalGpus", that is no longer true, resulting in breakage.
The same bug also occurs when using Option "ProbeAllGpus" "False". The effect is
the same as Option "AllowExternalGpus" "False", resulting in only a subset of
GPUs being visible via NV-CONTROL, compared to NVML.
As a short term solution, this change makes nvidia-settings do a mundane
NV-CONTROL query (NV_CTRL_DEPTH_30_ALLOWED) on any GPU target that it allocates,
silently ignoring GPUs that fail. This has the effect of making blacklisted
eGPUs (or other GPUs ignored due to Option "ProbeAllGpus" "False") invisible to
nvidia-settings, preventing further breakages.
NV_CTRL_DEPTH_30_ALLOWED was chosen because it has existed since 2007,
preventing breakage with currently supported drivers, and is unlikely to be
implemented in NVML. If it were to be implemented in NVML, the query could
succeed where we would expect it to fail, preventing the GPU from being properly
ignored.
|
|
This change adds EGL information in a similar form to the already shown OpenGL and GLX information listed per display in nvidia-settings. This also adds a button to show available EGL Frame Buffer configurations in a popup window.
To properly format these additions, some changes are required on the existing OpenGL/GLX information page. First, the page has been renamed to "Graphics Information" but the "ctkglx" and name on top level functions and files has been left as is. Second, the layout of the page has been changed from a simple full list of GLX, Server GLX, Client GLX, and OpenGL information to an expanding view with each of the previously listed items as collapsible headers and adding an entry for EGL Information.
This change also adds the command line "--eglinfo" (and "-E") option to print the added EGL information and related Frame Buffer Configurations.
Includes PNG files for both the GLX -> Graphics page rename and for VDPAU to keep a consistent look. The following are the steps used to create the text images in GIMP.
==Instructions==
Create a Gradient
Split it into 3 parts, referred as 1, 2 and 3. Left to Right.
Segment 1, Left color #AAAAAA, Right color #EEEEEE, endpoints around 0.0 and 0.45
Segment 2, Left and right #EEEEEE, endpoints 0.45 to 0.55.
Segment 3, Reverse of 1, Left color #EEEEEE, Right color #AAAAAA, endpoints 0.55 to 1.0
Make the Text
Using DIN Pro font, the font NVIDIA uses for promo material, type in the text with text tool.
Right click on it, click "Path from Text"
Select it with Select -> From Path
Choose Gradient tool, using custom gradient made above, drag from above right of center to below left of center.
Then Filters -> Light and Shadow -> Drop Shadow. I used Offsets of 5, Blur radius 4, and Opacity 60.
Then select the text along with a bit of space around the text and then Image -> Crop to Selection
Then Image -> Scale Image so that image is now similar size to other text graphics.
From command line run> optipng -o7 -zm1-9 new_graphic.png
==End Instructions==
|
|
Currently, nvidia-settings will ask the X driver about the relationships between
every type of target it knows about unconditionally. When support for Canoas
targets in the X driver was removed (including the
NV_CTRL_BINARY_DATA_VCSCS_USED_BY_GPU attribute), this caused nvidia-settings to
trigger a BadMatch error and abort (on GTK2) or print an error about failing to
query relationships between targets (on GTK3).
This change updates nvidia-settings to not bother to query for relationships for
a target when no such targets exist in the system. In addition to fixing the
BadMatch described above, it should reduce the startup latency due to fewer
server round-trips in the common case.
|
|
This a generalized method of creating possible layouts for any number of displays used in a grid configuration in nvidia-settings. This removes the hardcoded list that had to be validated for allowable configurations. The new method will simply generate a new ordered list of configs for all display detected.
A checkbox is also added that will allow the user to either show only the grid configs that would utilize all displays available or would show all possible display configurations using a number of displays between 2 and the total displays available.
|
|
|
|
Closes #22
|
|
|
|
QDWS is selected and license features are enabled.
Details:
*On licensed setup, if license server details are modified through
UI/gridd.conf and service is restarted, set default license status
message to request license server details.
*On failed attempt, handled the termination of license acquisition
loop when vAPP is selected and license features are enabled
on that system.
Testing done:
Verified on NMOS, correct license status message is displayed.
Also, on failed attempt license acquisition loop stops when
vAPP is selected.
|
|
notify user about the same.
Details:
On licensed NMOS setup, if user restarts nvidia-gridd service and
selected 'GRID Virtual Apps' license edition. There is mismatch in
licensed feature type enabled in the driver and feature type read from
gridd.conf/UI control. In this change, notify user that license features
are still enabled in the driver even if license is released and hence restart is
required. Set appropriate license status message to indicate the same.
Fix:
Added NV_CTRL_ATTR_NVML_GPU_GRID_LICENSABLE_FEATURES attribute to get feature code
of the currently licensed feature.
Used the existing NVML api nvmlDeviceGetGridLicensableFeatures to fetch this feature code.
And then query this licensed feature code in nvidia-settings.
Setting the restart required status message when there is mismatch in
the queried licensed feature type and the feature type read from gridd.conf/UI.
Testing done:
Verified on NMOS, correct license status message is displayed.
|