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

52
inxi
View file

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
######################################################################## ########################################################################
#### Script Name: inxi #### Script Name: inxi
#### version: 1.0.7 #### version: 1.0.8
#### Date: 13 March 2009 #### Date: 13 March 2009
######################################################################## ########################################################################
#### SPECIAL THANKS #### SPECIAL THANKS
@ -295,7 +295,7 @@ DISTROS_LSB_GOOD="mandrake-release mandriva-release mandrakelinux-release"
# $'\1' gets weird results : # $'\1' gets weird results :
# user@host $ ARR=($'\x01'"one two" three four); echo ${ARR[0]} | hd -v # 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.| # 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]" ) 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: # after processing, the ban arrays will be put into these:
BAN_LIST_NORMAL='' BAN_LIST_NORMAL=''
@ -992,8 +992,8 @@ show_options()
print_screen_output " 3 - Also show hard disk names as detected." 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 " 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 " 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 "-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 " direct rendering status for Graphics. Only works with verbose or line output."
print_screen_output "" print_screen_output ""
print_screen_output "Additional Options:" print_screen_output "Additional Options:"
print_screen_output "-h - this help menu." print_screen_output "-h - this help menu."
@ -1890,8 +1890,17 @@ get_graphics_glx_data()
{ {
if [[ $B_X_RUNNING == 'true' ]];then if [[ $B_X_RUNNING == 'true' ]];then
IFS=$'\n' 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 ': ' ' A_GLX_DATA=( $( glxinfo | gawk -F ': ' '
# note: function declarations go before BEGIN? It appears so, confirm. # note: function declarations go before BEGIN? It appears so, confirm.
# 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 ) { function join( arr, sep ) {
s="" s=""
i=flag=0 i=flag=0
@ -1909,22 +1918,26 @@ get_graphics_glx_data()
} }
/opengl renderer/ { /opengl renderer/ {
if ( $2 ~ /mesa/ ) { if ( $2 ~ /mesa/ ) {
# Allow r300 et al, but not the rest # Allow all mesas
if ( $2 ~ / r[3-9][0-9][0-9] / ) { # if ( $2 ~ / r[3-9][0-9][0-9] / ) {
gsub(/'"$BAN_LIST_NORMAL"'/, "", $2)
a[$2] a[$2]
f++ # this counter failed in one case, a bug, and is not needed now
} # f++
# }
next next
} }
$2 && a[$2] $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] $2 && b[$2]
} }
/direct rendering/ { /direct rendering/ {
$2 && c[$2] $2 && c[$2]
} }
END { 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, ", " ) )
}' ) ) }' ) )
@ -3060,7 +3073,11 @@ print_gfx_data()
get_graphics_glx_data get_graphics_glx_data
local glx_renderer="${A_GLX_DATA[0]}" local glx_renderer="${A_GLX_DATA[0]}"
local glx_version="${A_GLX_DATA[1]}" 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 if [[ ${#A_GFX_CARD_DATA[@]} -gt 1 ]];then
i=1 i=1
@ -3080,15 +3097,16 @@ print_gfx_data()
fi fi
print_screen_output "$gfx_data" print_screen_output "$gfx_data"
if [[ -z $glx_renderer || -z $glx_version ]];then # if [[ -z $glx_renderer || -z $glx_version ]];then
b_is_mesa='true' # b_is_mesa='true'
fi # fi
## note: if glx render or version have no content, then mesa is true ## 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}" ) 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 if [[ $B_HANDLE_CORRUPT_DATA == 'true' || $B_EXTRA_DATA == 'true' ]];then
gfx_data="${gfx_data} ${C1}Direct rendering${C2} ${glx_direct_render}${CN}" gfx_data="$gfx_data ${C1}Direct Rendering${C2} ${glx_direct_render}${CN}"
fi fi
print_screen_output "$gfx_data" print_screen_output "$gfx_data"
fi fi