POV-Ray : Newsgroups : povray.beta-test : Technical verification build "v3.8.0-beta.668" - Unix package! : Re: Technical verification build "v3.8.0-beta.668" - Unix package! Server Time
18 Apr 2024 16:27:19 EDT (-0400)
  Re: Technical verification build "v3.8.0-beta.668" - Unix package!  
From: Thomas Debe
Date: 23 Jun 2021 23:20:37
Message: <60d3fa05$1@news.povray.org>
Am 24.06.21 um 01:28 schrieb clipka:
Hallo Christoph !

1.) Problem:
Build povunix-v3.8.9-beta.668.tar.gz Compiler clang-x:
Optimized Noise-Functions not compiled !
Clang defines __clang__ Not __GNUC__

Solution :
File :  unix/povconfig/syspovconfig.h

Z 169ff:  #if defined (__clang__)
             #define HAVE_ASM_AVX
             #define HAVE_ASM_AVX2
             #define HAVE_ASM_FMA3
             #define HAVE_ASM_FMA4
          #endif

Z. 179: // most notably platform-specific optimized implementations.
         #if defined (__GNUC__) || defined(__clang__)

2.) Problem Optimized Noise-Function Compiler: gcc-10
Povray-Output :
                ....
		
Dynamic optimizations:
   CPU detected: AMD,SSE2,AVX,AVX2,FMA3
   Noise generator: avx-generic (compiler-optimized)

CPU: AMD Ryzen 2700
cat /proc/cpuinfo | grep avx :  se4_1 sse4_2 movbe popcnt aes xsave avx ..
  avx2
  fma

So it should work with Intels implementation, but there is an vendor 
check in :

platform/x86/cpuid.cpp

Solution:

bool CPUInfo::IsIntel()
{
  return gpData->cpuidInfo.vendorId == kCPUVendor_Intel|| kCPUVendor_AMD;
}

I activated  CHECK_FUNCTIONAL in the optimized functions. No exception
arises. So I think it's ok.


Greetings
Thomas Debe


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.