Age | Commit message (Collapse) | Author | Files | Lines |
|
Configuration
Currently when the Display Configuration page of nvidia-settings is in Basic mode, any changes to the Rotation and Reflection values are applied to all modes for that display. This causes our entire list of metamodes to be updated and when we cancel a modeset, those updated metamodes are not reverted. Even if we do revert them on the server, our internal data structures do not represent these metamodes and resetting the UI to force a sync would cause the loss of all user config options currently chosen but not applied.
This change modifies the behavior of Basic Mode configurations that involve rotation and reflection. These changes will make these metamode changes to behave similarly to advanced mode changes in that they will only affect the current metamode. On the UI side, in basic mode, we will make sure that if rotation/reflection is selected and the resolution is changed (effectively changing to a different selected mode) we will make sure the adjustments are carried over to the new mode.
A user using the UI exclusively should not see any changes in behavior aside from the actual issue fixed. A user checking the available metamodes on the server would see a difference but it would be identical to the metamodes given by the unchanged Configuration method in Advanced Mode.
|
|
This change adds help text for the "Save Current Configuration" button on the "nvidia-settings Configuration" page and re-enables a flag that allows the help text for "Sync to this display device" on the XVideo Settings page.
Also removes the per entry tooltip text for the "Sync to this display device" and adds the tooltip to the entire container widget since it exists for the entire lifetime of the application.
|
|
The variable on this change are liable to not be initialized if the
function that is meant to initialize errors out. And the uninitialized
variable would still be passed for the creation of a widget. Since in
the case of this happening such widget won't be used anyways, chances
of this causing trouble are slim, but still we shouldn't have it.
Additionally it shows on valgrind so it creates noise when trying to
troubleshoot something else.
|
|
Right now, the Enable Mosaic button is only validated properly and shown when a Display object is selected on the Display Config page of nvidia-settings. Mosaic support is a feature of the gpu and shouldn't depend on if a Display or Screen is selected. This change adds the validation and activation of the Mosaic feature with a Screen selection in addition to the existing Display selection.
|
|
Currently, we can get in a situation where the nvidia-settings display layout window is setup to be larger than what the X server allows. The problem is if we are in this situation, the user may not be able to fix the layout because our enforcement of size limits doesn't allow the user to move displays to the origin. This is because when moving items to the left or upward, we calculate our movement limit with respect to the right-most or furthest down position used.
This change will allow us to always move items to the origin. Note that we already always redefine the origin to be the top-left most valid item. This position should always be available when moving items.
|
|
status.
Anytime the ECC Pending Status Checkbox is set to a different value than the ECC Default Configuration value, this button should be enabled. It should be clear to the user that what the Reset button's value should be based on behavior alone.
This change updates the enabled/disabled state of the Reset anytime we receive a update to the pending config value and or when the user changes the value manually.
|
|
This saves a couple dozen KB.
-rwxr-xr-x 1 aaron aaron 1481192 May 18 16:11 libnvidia-gtk2.so.old
-rwxr-xr-x 1 aaron aaron 1452520 May 18 16:11 libnvidia-gtk2.so
-rwxr-xr-x 1 aaron aaron 1477384 May 18 16:11 libnvidia-gtk3.so.old
-rwxr-xr-x 1 aaron aaron 1444616 May 18 16:11 libnvidia-gtk3.so
|
|
Create a helper function, ctk_pixbuf_from_data(), and corresponding helper macro
CTK_LOAD_PIXBUF(), to load embedded images from their internal PNG
representation. Delete the uncompressed pixdata versions.
This saves a few hundred KB from each of libnvidia-gtk2 and libnvidia-gtk3:
-rwxr-xr-x 1 aaron aaron 1828552 May 18 16:06 libnvidia-gtk2.so.old
-rwxr-xr-x 1 aaron aaron 1481192 May 18 16:07 libnvidia-gtk2.so
-rwxr-xr-x 1 aaron aaron 1820808 May 18 16:06 libnvidia-gtk3.so.old
-rwxr-xr-x 1 aaron aaron 1477384 May 18 16:07 libnvidia-gtk3.so
|
|
These will be used later to decompress the images at runtime.
Generate headers that define the start and end symbols for these.
|
|
Right now on the ECC status page in nvidia-settings we poll for changes in the ECC state of the GPU. When ECC is enabled we poll for ECC errors. The problem is we only check the Configuration Pending state when the application starts up. We can detect via nvcontrol events, if this value is changed for example on the command line by "nvidia-settings -a ECCConfiguration=1". But if this value is changed by a non-nvcontrol method like "nvidia-smi -e 1", we don't detect or display the change.
This change adds querying this value to the polling loop of the ECC Status page.
|
|
Recognize the new flag in nvidia-settings in order to be able to write it to
xorg.conf.
|
|
independently.
On few SKU users can only set graphics clock offset and not memory clock offset.
So updated UI to show memory clock offset and graphics clock offset, if either is editable.
|
|
|
|
Datacenter Workstation' in the manage license page and help page of nvidia-settings.
|
|
|
|
This change adds support for reporting the framelock firmware minor version via
nvidia-settings.
Tested with firmware version 2.99, and also tested with the firmware minor
version hardcoded to 1 just to doublecheck the formatting.
|
|
|
|
Issue:
if dbus connection has failed and nvidia-gridd is already running,
still nvidia-settings incorrectly reports error message to make sure whether "nvidia-gridd is running"
while applying license.
Fix:
modified the error message shown in nvidia-settings
in case of failure to make sure we inform user to check if both nvidia-gridd
and dbus-daemon are running.
|
|
nvidia-settings: As "Manage GRID License" page will be displayed only on GRID platform with GRID packages installed, so renamed Licensing Page link to "Manage License" to maintain the consistency of name across Windows and Linux.
Testing done:
Verified successfully that the modified string "Manage License" is displayed
in Linux nvidia-settings.
|
|
|
|
|
|
Issue:
For the users who doesnot have permission to configure license settings, no
message/pop-up is shown to the user if tries to apply license via nvidia-settings.
Fix:
When write operation on gridd config file fails, a pop-up box is displayed
with error message.
|
|
Tesla(unlicensed) by default
If featureType is not supported, Tesla(unlicensed) will be selected.
|
|
Descriptions of some of the existing fields is corrected in help page for Manage GRID License page.
|
|
Issue:
Getting assertion on lauching nvidia-settings when nvidia-gridd is not running:
"ERROR: GRID License dbus communication: Argument is not int! "
Fix:
The current dbus API queues a message to send(dbus_connection_send_with_reply)
and block until we receive a reply.
Now changed the dbus API(dbus_connection_send_with_reply_and_block)
which sends a message and blocks for a default time period while waiting for a reply.
This dbus function has advantage over the current API as it returns an error code on failure.
And depending on the error code returned we can decide whether to send the signal to nvidia-gridd or not.
|
|
Due to check DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER only primary owner was showing the page. Now updated code to remove the check so all instances will show the page. And when apply button clicked the server name/port number values get applied.
|
|
Fix: Added a Null check for griddConfig.
|
|
|
|
license feature types.
Issue :
If nvidia-gridd is not running, no license state is received and hence default
message strings set in nvidia-settings are shown. The default unlicensed message
string was generic.
Fix :
Defined different values for feature types to avoid confusion between virtualization
mode and feature types.
Assigned different default unlicensed message strings in nvidia-settings according
to feature types.
Removed mapping table with nvml for feature types as feature types are used by user
only.
|
|
contents of help page for Manage GRID License page are updated to incorporate new fields and descriptions of some of the existing fields is corrected.
|
|
nvidia-settings
Through this change:
1. Server Address fields will not allow entry of whitespace characters.
2. Port Number fields will only allow entry of digits.
|
|
Currently we pass &status as the data pointer to dbus_message_iter_get_basic call.
'status' is already of the type (gint *).
This commit changes the call so that it passes pStatus directly.
It also changes the name of the variable to pStatus to avoid any confusion.
|
|
|
|
|
|
nvidia-settings is not able to get the correct license state from nvidia-gridd
so updated code to set license status to NV_GRID_UNLICENSED_GVW_SELECTED. Added
flag license_edition_gvw_selected to see if GVW check box selected.
|
|
instead.
Now when nvidia-gridd service starts there is a retry loop for Service Provider licensing
in nvidia-gridd which takes max 30 seconds to retry detecting SP platform and
then falls back to Flexera licensing.
So to apply any changes in license server details, we need to wait for 30 seconds
to get changes applied.
So there is a long pause of 30-40 seconds before license state gets updated in nvidia-settings.
Solution :
When user clicks 'Apply' button send dbus signal to nvidia-gridd
so that on the side of nvidia-gridd, it will read gridd.conf parameters again and
fetch license again, and hence there is no need to restart nvidia-gridd service everytime.
send_dbus_method_call - moved code calling dbus method call to this function.
LICENSE_DETAILS_UPDATE_REQUEST - notifies nvidia-gridd that license configuration
information provided by user has changed.
LICENSE_DETAILS_UPDATE_SUCCESS - returns if the nvidia-gridd able to read conf file and fetch
the license.
If nvidia-gridd is not running dbus_message_iter_get_arg_type returns the argument type
other than DBUS_TYPE_INT32.
We are showing popup warning message to users on failure of LICENSE_DETAILS_UPDATE_REQUEST request.
clean up : Updated code to deafult port no 7070 only when user do not set any value.
|
|
Changed behavior to show page with message instead of not showing the page.
"'/etc/nvidia/gridd.conf' file does not exist.\n You do not have "
"permissions to create this file."
|
|
|
|
Commit 3a2b35de1b9 was intended to fix a bug
in the xorg.conf merge behavior of nvidia-settings, where
nvidia-settings would always overwrite a device's BusID (even
if it determined that the new device entry didn't require a
BusID entry), even if the source config had a BusID and the user
wanted to merge the new config with their existing config.
After that change, nvidia-settings would always overwrite its
generated BusID for a device if that same device index had a
BusID in the original file, even if the new nvidia-settings
generated config required a different BusID entry.
In other words:
nvidia-settings xorg.conf merge behavior for a single display/
single GPU:
Old xorg.conf:
Identifier "Device0"
BusID "PCI:4:0:0"
Pre-3a2b35de1b9 behavior:
New xorg.conf:
Identifier "Device0"
Post-3a2b35de1b9 behavior:
New xorg.conf:
Identifier "Device0"
BusID "PCI:4:0:0"
But this regressed the behavior for a multi-GPU config where
all displays are connected to one GPU, and the user is trying
to configure separate X screens in nvidia-settings:
Old xorg.conf (generated with nvidia-xconfig -a, which generates
one X screen per GPU with a corresponding Device and BusID entry)
Identifier "Device0"
BusID "PCI:3:0:0"
Screen 0
Identifier "Device1"
BusID "PCI:4:0:0"
Screen 0
Pre-3a2b35de1b9 behavior (generated with nvidia-settings configuring
two separate X screens, one per display, both displays connected to
the GPU at BusID PCI:3:0:0)
Identifier "Device0"
BusID "PCI:3:0:0"
Screen 0
Identifier "Device1"
BusID "PCI:3:0:0"
Screen 1
Post-3a2b35de1b9 behavior:
Identifier "Device0"
BusID "PCI:3:0:0"
Screen 0
Identifier "Device1"
BusID "PCI:4:0:0" <-- BUG
Screen 1
Note how the BusID for Device1 has been overwritten to PCI:4:0:0,
even though nvidia-settings determined that the new config requires
Device1 to have BusID PCI:3:0:0, because the merged original
xorg.conf had BusID PCI:4:0:0 for Device 1.
This change modifies the nvidia-settings merge behavior to only
overwrite the merged device's BusID if the new config has no
BusID entry for that device. This retains the desired behavior
from the original fix (not overwriting the user's provided BusID
for new BusID-less configs during a merge), while fixing the
regression (no longer overwriting the new config's BusID with
the old config's BusID if the new config requires a BusID entry).
Tested with a 2xGPU 2xDPY (on first GPU) config (to verify the
regression is fixed) and a 1xGPU 1xDPY config with a specified
BusID (to verify the original bug is still fixed).
|
|
Added primary and secondary server and port info for the license server.
Secondary server details are used if primary server fails to acquire the license.
Corresponding gridd.conf keywords:
- BackupServerAddress - FQDN or numeric IP address of the back-up license server.
- BackupServerPort - port number of the back-up license server.
|
|
config file.
When nvidia-settings merges a new configuration file with the old one, we currently drop the Bus ID due to how the xconfig parser generates and merges the files. This change copies the Bus ID string if it exists from the old to the new file.
|
|
Earlier Tesla unlicensed mode button were getting selected always. Changed that logic
to use feature type from gridd.conf and then select the toggle button.
|
|
|
|
|
|
|
|
attributes.
When NV-CONTROL tries to get the Dpy pointer for a queried target and that
target is itself a Display, we currently ignore the mask argument and return the
original Target. The problem occurs when we run the command, "--query all". With
non-display targets, we iterate over a display mask to make sure we query
displays associated with the Screen, GPU, etc and this works fine. If we are
using a Display Target, the mask is ignore and we get 24 matches for each bit in
the mask because we interally ignore the mask. This change exits the bit mask
iterator loop after the first run when we are using a Display Target.
|
|
When screens are configured to use HDMI 3D stereo, the refresh rate listed as
half of what the mode normally describes. This label helps the user to confirm
the reason the value may be different than expected.
This brings the Display Config page more in link with the Display Device and
Framelock pages that show the refresh rate in a similiar manner with the 'HDMI
3D' label.
|
|
GRID M6 is licensable gpu so we want to allow users to choose GRID virtual
workstation and Unlicensed Tesla mode on baremetal setup.
When virtualization mode is NV_CTRL_ATTR_NVML_GPU_VIRTUALIZATION_MODE_NONE we
want to treat it same way like
NV_CTRL_ATTR_NVML_GPU_VIRTUALIZATION_MODE_PASSTHROUGH. So that it will show the
GRID Virtual Workstation interface in case of baremetal setup.
|
|
Added utility functions ReadConfigFileStream() and WriteConfigFileStream().
|
|
|