summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-06-24440.100440.100440Aaron Plattner12-9/+25
2020-05-29nvidia-settings: Make VDPAUDeviceFunctions static to ctkvdpau.cAaron Plattner2-24/+23
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.
2020-04-08440.82440.82Aaron Plattner6-6/+6
2020-02-28440.64440.64Aaron Plattner7-8/+10
2020-02-03440.59440.59Aaron Plattner8-7/+32
2019-12-11440.44440.44Aaron Plattner6-6/+6
2019-11-22440.36440.36Aaron Plattner6-6/+6
2019-11-04440.31440.31Aaron Plattner9-12/+13
2019-10-17440.26440.26Aaron Plattner24-1284/+591
2019-08-29435.21435.21Aaron Plattner7-22/+41
2019-08-13435.17Aaron Plattner15-86/+141
2019-07-29430.40Liam Middlebrook9-171/+263
2019-07-09430.34Liam Middlebrook6-6/+6
2019-06-10430.26Liam Middlebrook12-82/+90
2019-05-14430.14430.14Aaron Plattner7-8/+6
2019-04-23430.09430.09Aaron Plattner32-525/+973
2019-03-20418.56418.56Aaron Plattner8-32/+52
2019-02-23Disable word-wrapping when output is not a terminalJordan Galby1-6/+13
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
2019-02-22418.43Liam Middlebrook10-9/+55
2019-01-30418.30Liam Middlebrook24-199/+511
2019-01-15415.27Liam Middlebrook19-171/+49
2018-12-18415.25Liam Middlebrook7-27/+6
2018-12-12415.23Liam Middlebrook6-6/+6
2018-12-07415.22Liam Middlebrook7-6/+27
2018-11-20415.18415.18Aaron Plattner6-6/+6
2018-11-08415.13415.13Liam Middlebrook28-267/+1118
2018-10-25410.73Liam Middlebrook6-6/+6
2018-10-16410.66Liam Middlebrook8-6/+52
2018-09-19410.57Liam Middlebrook27-102/+167
2018-08-20396.54Liam Middlebrook6-6/+6
2018-08-03396.51396.51Aaron Plattner6-6/+6
2018-07-19396.45Aaron Plattner6-6/+6
2018-05-02396.24396.24Aaron Plattner6-6/+6
2018-04-11396.18Aaron Plattner6-6/+6
2018-04-11Update NV-CONTROLAaron Plattner2-38/+56
2018-04-11Update GRID license pageAaron Plattner1-2/+1
2018-04-11Hide EGL Graphics Information instead of leaving a blank page if EGL queries ↵Jonathan Waddell1-32/+37
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.
2018-04-11nvidia-settings: Ignore GPUs that can't be queried from NV-CONTROLAlex Goins1-0/+17
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.
2018-04-11Add EGL information to the OpenGL/GLX information page.Jonathan Waddell17-214/+1598
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==
2018-04-11nvidia-settings: Don't query target relationships for nonexistent targetsRobert Morell1-0/+6
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.
2018-04-11Generate possible layouts for SLI Mosiac Mode grid configurationsJonathan Waddell2-261/+231
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.
2018-03-28390.48390.48Aaron Plattner6-6/+6
2018-03-14390.42390.42Aaron Plattner6-6/+6
Closes #22
2018-03-14Update nvml.hAaron Plattner1-7/+0
2018-03-14Set default License Status message to request license server details when ↵Nikita Krishnia-INTERN2-13/+13
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.
2018-03-14Once licensed, switching to a different feature requires a system reboot, ↵Nikita Krishnia-INTERN5-16/+158
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.
2018-03-14Auto-reflect runtime changes in nvidia settings when the nvidia-gridd is ↵Nikita Krishnia-INTERN2-74/+101
restarted/stopped. Issue and root cause: When 'Manage License' page is created , a timer callback is registered to query license state from nvidia-gridd with 1 sec time interval to update the 'Manage License' page. When nvidia-gridd service is stopped, there is no response against the Dbus request so the callback function exits with error which destroys the timer. Hence 'Manage License' page is never updated. Fix: Do not destroy the timer which updates the 'Manage license' page even if 'nvidia-gridd' service is stopped. Upon failure to communicate with nvidia-gridd to fetch licensing state info we are disabling all UI controls and notifying user about the issue via a message on the UI. Testing Done: Verified that if nvidia-gridd service is restarted then 'Manage License' page gets refreshed automatically.
2018-01-29390.25390.25Aaron Plattner6-6/+6
2018-01-29Update nvml.hAaron Plattner1-0/+7
2018-01-04390.12390.12Aaron Plattner6-6/+6