Merge branch 'master' into blender2.8

This commit is contained in:
Campbell Barton
2018-02-05 17:58:31 +11:00
4 changed files with 32 additions and 17 deletions

View File

@@ -32,6 +32,15 @@
using std::string;
using std::vector;
namespace std {
template<typename T>
std::string to_string(const T &n) {
std::ostringstream s;
s << n;
return s.str();
}
}
class CompilationSettings
{
public:
@@ -75,7 +84,7 @@ bool compile_cuda(CompilationSettings &settings)
for(size_t i = 0; i < settings.defines.size(); i++) {
options.push_back("-D" + settings.defines[i]);
}
options.push_back("-D__KERNEL_CUDA_VERSION__=" + std::to_string(cuewNvrtcVersion()));
options.push_back("-arch=compute_" + std::to_string(settings.target_arch));
options.push_back("--device-as-default-execution-space");
if(settings.fast_math)
@@ -150,9 +159,12 @@ bool link_ptxas(CompilationSettings &settings)
" --gpu-name sm_" + std::to_string(settings.target_arch) +
" -m" + std::to_string(settings.bits);
if(settings.verbose)
if (settings.verbose)
{
ptx += " --verbose";
printf(ptx.c_str());
}
int pxresult = system(ptx.c_str());
if(pxresult) {
fprintf(stderr, "Error: ptxas failed (%x)\n\n", pxresult);

View File

@@ -37,8 +37,8 @@ typedef unsigned long long uint64_t;
typedef unsigned short half;
typedef unsigned long long CUtexObject;
#define FLT_MAX 1.175494350822287507969e-38f
#define FLT_MIN 340282346638528859811704183484516925440.0f
#define FLT_MIN 1.175494350822287507969e-38f
#define FLT_MAX 340282346638528859811704183484516925440.0f
__device__ half __float2half(const float f)
{

View File

@@ -214,7 +214,6 @@ typedef struct SculptSession {
/* Layer brush persistence between strokes */
float (*layer_co)[3]; /* Copy of the mesh vertices' locations */
struct SculptStroke *stroke;
struct StrokeCache *cache;
union {

View File

@@ -175,18 +175,22 @@ bool ED_editors_flush_edits(const bContext *C, bool for_render)
* objects can exist at the same time */
for (ob = bmain->object.first; ob; ob = ob->id.next) {
if (ob->mode & OB_MODE_SCULPT) {
/* flush multires changes (for sculpt) */
multires_force_update(ob);
has_edited = true;
/* Don't allow flushing while in the middle of a stroke (frees data in use).
* Auto-save prevents this from happening but scripts may cause a flush on saving: T53986. */
if ((ob->sculpt && ob->sculpt->cache) == 0) {
/* flush multires changes (for sculpt) */
multires_force_update(ob);
has_edited = true;
if (for_render) {
/* flush changes from dynamic topology sculpt */
BKE_sculptsession_bm_to_me_for_render(ob);
}
else {
/* Set reorder=false so that saving the file doesn't reorder
* the BMesh's elements */
BKE_sculptsession_bm_to_me(ob, false);
if (for_render) {
/* flush changes from dynamic topology sculpt */
BKE_sculptsession_bm_to_me_for_render(ob);
}
else {
/* Set reorder=false so that saving the file doesn't reorder
* the BMesh's elements */
BKE_sculptsession_bm_to_me(ob, false);
}
}
}
else if (ob->mode & OB_MODE_EDIT) {