本文整理汇总了PHP中phodevi::is_mesa_graphics方法的典型用法代码示例。如果您正苦于以下问题:PHP phodevi::is_mesa_graphics方法的具体用法?PHP phodevi::is_mesa_graphics怎么用?PHP phodevi::is_mesa_graphics使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类phodevi
的用法示例。
在下文中一共展示了phodevi::is_mesa_graphics方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: support_check
public static function support_check()
{
if (phodevi::is_ati_graphics() && phodevi::is_linux()) {
$gpu_usage = self::ati_overdrive_core_usage();
if (is_numeric($gpu_usage)) {
self::$probe_ati_overdrive = true;
return true;
}
} else {
if (phodevi::is_mesa_graphics()) {
if (pts_client::executable_in_path('radeontop')) {
$test = self::radeontop_gpu_usage();
if (is_numeric($test) && $test >= 0) {
self::$probe_radeontop = true;
return true;
}
} else {
if (is_readable('/sys/kernel/debug/dri/0/radeon_fence_info')) {
$fence_speed = self::radeon_fence_speed();
if (is_numeric($fence_speed) && $fence_speed >= 0) {
self::$probe_radeon_fences = true;
return true;
}
} else {
if (is_readable('/sys/kernel/debug/dri/0/i915_gem_seqno')) {
$commands = self::intel_command_speed();
if (is_numeric($commands) && $commands > 0) {
self::$probe_intel_commands = true;
return true;
}
}
}
}
} else {
if (phodevi::is_nvidia_graphics()) {
$util = self::read_nvidia_settings_gpu_utilization();
if ($util !== false) {
self::$probe_nvidia_settings = true;
return true;
} else {
if (pts_client::executable_in_path('nvidia-smi')) {
$usage = self::nvidia_core_usage();
if (is_numeric($usage) && $usage >= 0 && $usage <= 100) {
self::$probe_nvidia_smi = true;
return true;
}
}
}
}
}
}
return false;
}
示例2: set_probe_mode
private function set_probe_mode()
{
if (phodevi::is_ati_graphics() && phodevi::is_linux()) {
$this->probe_ati_overdrive = true;
} else {
if (phodevi::is_mesa_graphics() && pts_client::executable_in_path('radeontop')) {
$this->probe_radeontop = true;
} else {
if (phodevi::is_nvidia_graphics()) {
$util = $this->read_nvidia_settings_gpu_utilization();
if ($util !== false) {
$this->probe_nvidia_settings = true;
} else {
if (pts_client::executable_in_path('nvidia-smi')) {
$this->probe_nvidia_smi = true;
}
}
}
}
}
}
示例3: sw_display_driver
public static function sw_display_driver($with_version = true)
{
if (phodevi::is_windows()) {
return null;
}
$display_driver = phodevi::read_property('system', 'dri-display-driver');
if (empty($display_driver)) {
if (phodevi::is_ati_graphics() && phodevi::is_linux()) {
$display_driver = 'fglrx';
} else {
if (phodevi::is_nvidia_graphics() || is_file('/proc/driver/nvidia/version')) {
$display_driver = 'nvidia';
} else {
if ((phodevi::is_mesa_graphics() || phodevi::is_bsd()) && stripos(phodevi::read_property('gpu', 'model'), 'NVIDIA') !== false) {
if (is_file('/sys/class/drm/version')) {
// If there's DRM loaded and NVIDIA, it should be Nouveau
$display_driver = 'nouveau';
} else {
// The dead xf86-video-nv doesn't use any DRM
$display_driver = 'nv';
}
} else {
// Fallback to hopefully detect the module, takes the first word off the GPU string and sees if it is the module
// This works in at least the case of the Cirrus driver
$display_driver = strtolower(pts_strings::first_in_string(phodevi::read_property('gpu', 'model')));
}
}
}
}
if (!empty($display_driver)) {
$driver_version = phodevi_parser::read_xorg_module_version($display_driver . '_drv');
if ($driver_version == false || $driver_version == '1.0.0') {
switch ($display_driver) {
case 'amd':
// See if it's radeon driver
$driver_version = phodevi_parser::read_xorg_module_version('radeon_drv');
if ($driver_version != false) {
$display_driver = 'radeon';
}
break;
case 'vmwgfx':
// See if it's VMware driver
$driver_version = phodevi_parser::read_xorg_module_version('vmware_drv');
if ($driver_version != false) {
$display_driver = 'vmware';
}
break;
case 'radeon':
// RadeonHD driver also reports DRI driver as 'radeon', so try reading that instead
$driver_version = phodevi_parser::read_xorg_module_version('radeonhd_drv');
if ($driver_version != false) {
$display_driver = 'radeonhd';
}
break;
case 'nvidia':
case 'NVIDIA':
case 'nouveau':
// NVIDIA's binary driver usually ends up reporting 1.0.0
if ($nvs_value = phodevi_parser::read_nvidia_extension('NvidiaDriverVersion')) {
$display_driver = 'NVIDIA';
$driver_version = $nvs_value;
} else {
// NVIDIA's binary driver appends their driver version on the end of the OpenGL version string
$glxinfo = phodevi_parser::software_glxinfo_version();
if (($pos = strpos($glxinfo, 'NVIDIA ')) != false) {
$display_driver = 'NVIDIA';
$driver_version = substr($glxinfo, $pos + 7);
}
}
break;
default:
if (is_readable('/sys/class/graphics/fb0/name')) {
// This path works for at least finding NVIDIA Tegra 2 DDX (via tegra_fb)
$display_driver = file_get_contents('/sys/class/graphics/fb0/name');
$display_driver = str_replace(array('drm', '_fb'), null, $display_driver);
$driver_version = phodevi_parser::read_xorg_module_version($display_driver . '_drv');
}
break;
}
}
if ($driver_version == false) {
// If the version is empty, chances are the DDX driver string is incorrect
$display_driver = null;
// See if the VESA or fbdev driver is in use
foreach (array('modesetting', 'fbdev', 'vesa') as $drv) {
$drv_version = phodevi_parser::read_xorg_module_version($drv . '_drv');
if ($drv_version) {
$display_driver = $drv;
$driver_version = $drv_version;
break;
}
}
}
if (!empty($driver_version) && $with_version && $driver_version != '0.0.0') {
$display_driver .= ' ' . $driver_version;
// XXX: The below check is disabled since the Catalyst Version no longer seems reliably reported (circa Catalyst 13.x)
if (false && phodevi::is_ati_graphics() && strpos($display_driver, 'fglrx') !== false) {
$catalyst_version = phodevi_linux_parser::read_amd_pcsdb('AMDPCSROOT/SYSTEM/LDC,Catalyst_Version');
if ($catalyst_version != null && $catalyst_version > 10.1 && $catalyst_version != 10.5 && $catalyst_version != 11.8) {
// This option was introduced around Catalyst 10.5 but seems to not be updated properly until Catalyst 10.11/10.12
//.........这里部分代码省略.........
示例4: gpu_aa_level
public static function gpu_aa_level()
{
// Determine AA level if over-rode
$aa_level = false;
if (phodevi::is_nvidia_graphics()) {
$nvidia_fsaa = phodevi_parser::read_nvidia_extension('FSAA');
switch ($nvidia_fsaa) {
case 1:
$aa_level = '2x Bilinear';
break;
case 5:
$aa_level = '4x Bilinear';
break;
case 7:
$aa_level = '8x';
break;
case 8:
$aa_level = '16x';
break;
case 10:
$aa_level = '8xQ';
break;
case 12:
$aa_level = '16xQ';
break;
}
} else {
if (phodevi::is_ati_graphics() && phodevi::is_linux()) {
$ati_fsaa = phodevi_linux_parser::read_amd_pcsdb('OpenGL,AntiAliasSamples');
$ati_fsaa_filter = phodevi_linux_parser::read_amd_pcsdb('OpenGL,AAF');
if (!empty($ati_fsaa)) {
if ($ati_fsaa_filter == '0x00000000') {
// Filter: Box
switch ($ati_fsaa) {
case '0x00000002':
$aa_level = '2x Box';
break;
case '0x00000004':
$aa_level = '4x Box';
break;
case '0x00000008':
$aa_level = '8x Box';
break;
}
} else {
if ($ati_fsaa_filter == '0x00000001') {
// Filter: Narrow-tent
switch ($ati_fsaa) {
case '0x00000002':
$aa_level = '4x Narrow-tent';
break;
case '0x00000004':
$aa_level = '8x Narrow-tent';
break;
case '0x00000008':
$aa_level = '12x Narrow-tent';
break;
}
} else {
if ($ati_fsaa_filter == '0x00000002') {
// Filter: Wide-tent
switch ($ati_fsaa) {
case '0x00000002':
$aa_level = '6x Wide-tent';
break;
case '0x00000004':
$aa_level = '8x Wide-tent';
break;
case '0x00000008':
$aa_level = '16x Wide-tent';
break;
}
} else {
if ($ati_fsaa_filter == '0x00000003') {
// Filter: Edge-detect
switch ($ati_fsaa) {
case '0x00000004':
$aa_level = '12x Edge-detect';
break;
case '0x00000008':
$aa_level = '24x Edge-detect';
break;
}
}
}
}
}
}
} else {
if (phodevi::is_mesa_graphics()) {
$gallium_msaa = getenv('GALLIUM_MSAA');
if (is_numeric($gallium_msaa) && $gallium_msaa > 0) {
// Simple test to try to figure out if the GALLIUM_MSAA anti-aliasing value was forced
$aa_level = $gallium_msaa . 'x MSAA';
}
} else {
if (getenv('__GL_FSAA_MODE')) {
$gl_msaa = getenv('__GL_FSAA_MODE');
if (is_numeric($gl_msaa) && $gl_msaa > 0) {
$aa_level = '__GL_FSAA_MODE=' . $gallium_msaa;
//.........这里部分代码省略.........