Finally tracked down and fixed the raijeken bug with wrong glx information showing, also added glx information for all cards, not just

not free ones.

After all, non free shouldn't show more information that free, that hardly seems fair.
This commit is contained in:
inxi-svn 2009-03-14 04:23:15 +00:00
parent bfb73bf0b6
commit 93d7ab3058

56
inxi
View file

@ -1,7 +1,7 @@
#!/bin/bash
########################################################################
#### Script Name: inxi
#### version: 1.0.7
#### version: 1.0.8
#### Date: 13 March 2009
########################################################################
#### SPECIAL THANKS
@ -295,7 +295,7 @@ DISTROS_LSB_GOOD="mandrake-release mandriva-release mandrakelinux-release"
# $'\1' gets weird results :
# user@host $ ARR=($'\x01'"one two" three four); echo ${ARR[0]} | hd -v
# 00000000 01 01 6f 6e 65 20 74 77 6f 0a |..one two.|
A_NORMAL_BANS=( corporation communications gmbh technologies technology group $'\2'"\<ltd\>" ltd. $'\2'"\<inc\>" inc. $'\2'\<co\> co. "(tm)" "(r)" $'\2'"\(rev ..\)" )
A_NORMAL_BANS=( corporation communications gmbh technologies technology group $'\2'"\<ltd\>" ltd. $'\2'"\<inc\>" inc. $'\2'\<co\> co. "(tm)" "(r)" "®" $'\2'"\(rev ..\)" )
A_CPU_BANS=( @ cpu deca 'dual core' dual-core 'tri core' tri-core 'quad core' quad-core ennea genuine hepta hexa multi octa penta 'processor' processor single triple $'\2'"[0-9.]+ *[MmGg][Hh][Zz]" )
# after processing, the ban arrays will be put into these:
BAN_LIST_NORMAL=''
@ -992,8 +992,8 @@ show_options()
print_screen_output " 3 - Also show hard disk names as detected."
print_screen_output " 4 - Also show partition size/filled data for (if present):/, /home, /var/, /boot"
print_screen_output " 5 - For multicore systems, also show per core clock speeds; shows audio card."
print_screen_output "-x Show extra data: bogomips on cpu; driver version (if available) for network/audio."
print_screen_output " Only works with verbose or line output."
print_screen_output "-x Show extra data: bogomips on cpu; driver version (if available) for network/audio;"
print_screen_output " direct rendering status for Graphics. Only works with verbose or line output."
print_screen_output ""
print_screen_output "Additional Options:"
print_screen_output "-h - this help menu."
@ -1890,9 +1890,18 @@ get_graphics_glx_data()
{
if [[ $B_X_RUNNING == 'true' ]];then
IFS=$'\n'
# A_GLX_DATA=( $( glxinfo | gawk -F ': ' '
# A_GLX_DATA=( $( cat ../../modules/data/glxinfo-atom-1r | gawk -F ': ' '
# A_GLX_DATA=( $( cat ../../modules/data/glxinfo-intel-sput | gawk -F ': ' '
# there are arch bugs that make glxinfo generate bad output errors
# A_GLX_DATA=( $( glxinfo | gawk -F ': ' '
# A_GLX_DATA=( $( cat ../../modules/data/glxinfo-bad-rendering | gawk -F ': ' '
A_GLX_DATA=( $( glxinfo | gawk -F ': ' '
# note: function declarations go before BEGIN? It appears so, confirm.
function join(arr, sep) {
# the real question here though is why this function is even here, seems
# just to be a complicated way to pack/print a variable, but maybe the
# original idea was to handle > 1 cases of detections I guess
function join( arr, sep ) {
s=""
i=flag=0
for ( i in arr ) {
@ -1909,24 +1918,28 @@ get_graphics_glx_data()
}
/opengl renderer/ {
if ( $2 ~ /mesa/ ) {
# Allow r300 et al, but not the rest
if ( $2 ~ / r[3-9][0-9][0-9] / ) {
# Allow all mesas
# if ( $2 ~ / r[3-9][0-9][0-9] / ) {
gsub(/'"$BAN_LIST_NORMAL"'/, "", $2)
a[$2]
f++
}
# this counter failed in one case, a bug, and is not needed now
# f++
# }
next
}
$2 && a[$2]
}
/opengl version/ && ( f || $2 !~ /mesa/ ) {
# dropping all conditions from this test to just show full mesa information
# there is a user case where not f and mesa apply, atom mobo
# /opengl version/ && ( f || $2 !~ /mesa/ ) {
/opengl version/ {
$2 && b[$2]
}
/direct rendering/ {
$2 && c[$2]
}
END {
printf("%s\n%s\n%s\n", join(a,", "), join(b,", "), join(c,", "))
printf( "%s\n%s\n%s\n", join( a, ", " ), join( b, ", " ), join( c, ", " ) )
}' ) )
IFS="$ORIGINAL_IFS"
@ -3060,7 +3073,11 @@ print_gfx_data()
get_graphics_glx_data
local glx_renderer="${A_GLX_DATA[0]}"
local glx_version="${A_GLX_DATA[1]}"
local glx_direct_render="${A_GLX_DATA[2]}"
# this can contain a long No case debugging message, so it's being sliced off
# note: using grep -ioE '(No|Yes)' <<< ${A_GLX_DATA[2]} did not work in Arch, no idea why
local glx_direct_render=$( gawk '{
print $1
}' <<< "${A_GLX_DATA[2]}" )
if [[ ${#A_GFX_CARD_DATA[@]} -gt 1 ]];then
i=1
@ -3080,15 +3097,16 @@ print_gfx_data()
fi
print_screen_output "$gfx_data"
if [[ -z $glx_renderer || -z $glx_version ]];then
b_is_mesa='true'
fi
# if [[ -z $glx_renderer || -z $glx_version ]];then
# b_is_mesa='true'
# fi
## note: if glx render or version have no content, then mesa is true
if [[ $B_X_RUNNING == 'true' ]] && [[ $b_is_mesa != 'true' ]];then
# if [[ $B_X_RUNNING == 'true' ]] && [[ $b_is_mesa != 'true' ]];then
if [[ $B_X_RUNNING == 'true' ]];then
gfx_data=$( create_print_line " " "${C1}GLX Renderer${C2} ${glx_renderer} ${C1}GLX Version${C2} ${glx_version}${CN}" )
if [[ $B_HANDLE_CORRUPT_DATA == 'true' ]];then
gfx_data="${gfx_data} ${C1}Direct rendering${C2} ${glx_direct_render}${CN}"
if [[ $B_HANDLE_CORRUPT_DATA == 'true' || $B_EXTRA_DATA == 'true' ]];then
gfx_data="$gfx_data ${C1}Direct Rendering${C2} ${glx_direct_render}${CN}"
fi
print_screen_output "$gfx_data"
fi