[Bf-blender-cvs] [ce30ab1e02b] blender2.8: Accidentally left show_weight enabled
Commit: ce30ab1e02b8bbc7a94aac8051c24474bc19b9e7 Author: Campbell Barton Date: Mon May 8 14:44:13 2017 +1000 Branches: blender2.8 https://developer.blender.org/rBce30ab1e02b8bbc7a94aac8051c24474bc19b9e7 Accidentally left show_weight enabled === M source/blender/draw/modes/edit_mesh_mode.c === diff --git a/source/blender/draw/modes/edit_mesh_mode.c b/source/blender/draw/modes/edit_mesh_mode.c index 83bdd788900..d46b50fb1c9 100644 --- a/source/blender/draw/modes/edit_mesh_mode.c +++ b/source/blender/draw/modes/edit_mesh_mode.c @@ -523,7 +523,7 @@ void EDIT_MESH_collection_settings_create(IDProperty *properties) properties->type == IDP_GROUP && properties->subtype == IDP_GROUP_SUB_MODE_EDIT); BKE_collection_engine_property_add_int(properties, "show_occlude_wire", false); - BKE_collection_engine_property_add_int(properties, "show_weight", true); + BKE_collection_engine_property_add_int(properties, "show_weight", false); BKE_collection_engine_property_add_int(properties, "face_normals_show", false); BKE_collection_engine_property_add_int(properties, "vert_normals_show", false); BKE_collection_engine_property_add_int(properties, "loop_normals_show", false); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [d8bf5c13784] blender2.8: Cleanup: use struct for custom-data offsets
Commit: d8bf5c1378412d6b8b3b8c405a1cbd9f523d4ee2 Author: Campbell Barton Date: Mon May 8 12:57:38 2017 +1000 Branches: blender2.8 https://developer.blender.org/rBd8bf5c1378412d6b8b3b8c405a1cbd9f523d4ee2 Cleanup: use struct for custom-data offsets === M source/blender/draw/intern/draw_cache_impl_mesh.c === diff --git a/source/blender/draw/intern/draw_cache_impl_mesh.c b/source/blender/draw/intern/draw_cache_impl_mesh.c index 54ab262b2c6..bd2d933f34a 100644 --- a/source/blender/draw/intern/draw_cache_impl_mesh.c +++ b/source/blender/draw/intern/draw_cache_impl_mesh.c @@ -147,11 +147,14 @@ typedef struct MeshRenderData { int vcol_active; int tangent_active; - int crease_ofs; - int bweight_ofs; - int *uv_ofs; - int *vcol_ofs; - int *tangent_ofs; + /* Custom-data offsets (only needed for BMesh access) */ + struct { + int crease; + int bweight; + int *uv; + int *vcol; + int *tangent; + } cd_offset; char (*auto_names)[32]; char (*uv_names)[32]; @@ -251,8 +254,8 @@ static MeshRenderData *mesh_render_data_create(Mesh *me, const int types) rdata->efa_act = BM_mesh_active_face_get(bm, false, true); rdata->eed_act = BM_mesh_active_edge_get(bm); rdata->eve_act = BM_mesh_active_vert_get(bm); - rdata->crease_ofs = CustomData_get_offset(>edata, CD_CREASE); - rdata->bweight_ofs = CustomData_get_offset(>edata, CD_BWEIGHT); + rdata->cd_offset.crease = CustomData_get_offset(>edata, CD_CREASE); + rdata->cd_offset.bweight = CustomData_get_offset(>edata, CD_BWEIGHT); } if (types & (MR_DATATYPE_DVERT)) { bm_ensure_types |= BM_VERT; @@ -342,9 +345,9 @@ static MeshRenderData *mesh_render_data_create(Mesh *me, const int types) rdata->vcol_names = MEM_mallocN(sizeof(*rdata->vcol_names) * rdata->vcol_len, "rdata->vcol_names"); rdata->tangent_names = MEM_mallocN(sizeof(*rdata->tangent_names) * rdata->uv_len, "rdata->tangent_names"); - rdata->uv_ofs = MEM_mallocN(sizeof(*rdata->uv_ofs) * rdata->uv_len, "rdata->uv_ofs"); - rdata->vcol_ofs = MEM_mallocN(sizeof(*rdata->vcol_ofs) * rdata->vcol_len, "rdata->vcol_ofs"); - rdata->tangent_ofs = MEM_mallocN(sizeof(*rdata->tangent_ofs) * rdata->uv_len, "rdata->tangent_ofs"); + rdata->cd_offset.uv = MEM_mallocN(sizeof(*rdata->cd_offset.uv) * rdata->uv_len, "rdata->uv_ofs"); + rdata->cd_offset.vcol = MEM_mallocN(sizeof(*rdata->cd_offset.vcol) * rdata->vcol_len, "rdata->vcol_ofs"); + rdata->cd_offset.tangent = MEM_mallocN(sizeof(*rdata->cd_offset.tangent) * rdata->uv_len, "rdata->tangent_ofs"); /* Allocate max */ rdata->auto_vcol = MEM_callocN( @@ -365,7 +368,7 @@ static MeshRenderData *mesh_render_data_create(Mesh *me, const int types) BLI_snprintf(rdata->vcol_names[i], sizeof(*rdata->vcol_names), "c%u", hash); rdata->mloopcol[i] = CustomData_get_layer_n(>ldata, CD_MLOOPCOL, i); if (rdata->edit_bmesh) { - rdata->vcol_ofs[i] = CustomData_get_n_offset(>edit_bmesh->bm->ldata, CD_MLOOPCOL, i); + rdata->cd_offset.vcol[i] = CustomData_get_n_offset(>edit_bmesh->bm->ldata, CD_MLOOPCOL, i); } /* Gather number of auto layers. */ @@ -387,7 +390,7 @@ static MeshRenderData *mesh_render_data_create(Mesh *me, const int types) BLI_snprintf(rdata->uv_names[i], sizeof(*rdata->uv_names), "u%u", hash); rdata->mloopuv[i] = CustomData_get_layer_n(>ldata, CD_MLOOPUV, i); if (rdata->edit_bmesh) { - rdata->uv_ofs[i] = CustomData_get_n_offset(>edit_bmesh->bm->ldata, CD_MLOOPUV, i); + rdata->cd_offset.uv[i] = CustomData_get_n_offset(>edit_bmesh->bm->ldata, CD_MLOOPUV, i); } BLI_snprintf(rdata->auto_names[i], sizeof(*rdata->auto_names), "a%u", hash); } @@ -411,7 +414,7 @@ static MeshRenderData *mesh_render_data_create(Mesh *me, const int types) rdata->tangent_ofs[i] = CustomData_get_n_offset(>ldata, CD_MLOOPTANGENT, i); #else - rdata->tangent_ofs[i] = -1; + rdata->cd_offset.tangent[i] = -1;
[Bf-blender-cvs] [09277486245] blender2.8: Vertex color access for edit-mode
Commit: 0927748624519608b9caf4b898eaf192c83d3d7b Author: Campbell Barton Date: Mon May 8 12:41:05 2017 +1000 Branches: blender2.8 https://developer.blender.org/rB0927748624519608b9caf4b898eaf192c83d3d7b Vertex color access for edit-mode Currently not used, adding since legacy drawing can display this. === M source/blender/draw/intern/draw_cache_impl_mesh.c === diff --git a/source/blender/draw/intern/draw_cache_impl_mesh.c b/source/blender/draw/intern/draw_cache_impl_mesh.c index 2024541ccac..54ab262b2c6 100644 --- a/source/blender/draw/intern/draw_cache_impl_mesh.c +++ b/source/blender/draw/intern/draw_cache_impl_mesh.c @@ -703,8 +703,30 @@ static void mesh_render_data_ensure_vert_color(MeshRenderData *rdata) char (*vcol)[3] = rdata->vert_color; if (vcol == NULL) { if (rdata->edit_bmesh) { - /* TODO */ - BLI_assert(0); + BMesh *bm = rdata->edit_bmesh->bm; + const int cd_loop_color_offset = CustomData_get_offset(>ldata, CD_MLOOPCOL); + if (cd_loop_color_offset == -1) { + goto fallback; + } + + vcol = rdata->vert_color = MEM_mallocN(sizeof(*vcol) * rdata->loop_len, __func__); + + BMIter fiter; + BMFace *face; + int i = 0; + + BM_ITER_MESH(face, , bm, BM_FACES_OF_MESH) { + BMLoop *l_iter, *l_first; + l_iter = l_first = BM_FACE_FIRST_LOOP(face); + do { + const MLoopCol *lcol = BM_ELEM_CD_GET_VOID_P(l_iter, cd_loop_color_offset); + vcol[i][0] = lcol->r; + vcol[i][1] = lcol->g; + vcol[i][2] = lcol->b; + i += 1; + } while ((l_iter = l_iter->next) != l_first); + } + BLI_assert(i == rdata->loop_len); } else { if (rdata->loopcol == NULL) { @@ -1244,8 +1266,27 @@ static bool mesh_render_data_looptri_cos_vert_colors_get( (MR_DATATYPE_VERT | MR_DATATYPE_LOOPTRI | MR_DATATYPE_LOOP | MR_DATATYPE_POLY | MR_DATATYPE_LOOPCOL)); if (rdata->edit_bmesh) { - /* TODO */ - return false; + const BMLoop **bm_looptri = (const BMLoop **)rdata->edit_bmesh->looptris[tri_idx]; + + mesh_render_data_ensure_poly_normals_short(rdata); + mesh_render_data_ensure_vert_color(rdata); + + short (*pnors_short)[3] = rdata->poly_normals_short; + short (*vnors_short)[3] = rdata->vert_normals_short; + char (*vcol)[3] = rdata->vert_color; + + (*r_vert_cos)[0] = bm_looptri[0]->v->co; + (*r_vert_cos)[1] = bm_looptri[1]->v->co; + (*r_vert_cos)[2] = bm_looptri[2]->v->co; + (*r_vert_colors)[0] = vcol[BM_elem_index_get(bm_looptri[0]->v)]; + (*r_vert_colors)[1] = vcol[BM_elem_index_get(bm_looptri[1]->v)]; + (*r_vert_colors)[2] = vcol[BM_elem_index_get(bm_looptri[2]->v)]; + *r_tri_nor = pnors_short[BM_elem_index_get(bm_looptri[0]->f)]; + (*r_vert_nors)[0] = vnors_short[BM_elem_index_get(bm_looptri[0]->v)]; + (*r_vert_nors)[1] = vnors_short[BM_elem_index_get(bm_looptri[1]->v)]; + (*r_vert_nors)[2] = vnors_short[BM_elem_index_get(bm_looptri[2]->v)]; + + *r_is_smooth = BM_elem_flag_test_bool(bm_looptri[0]->f, BM_ELEM_SMOOTH); } else { const MLoopTri *mlt = >mlooptri[tri_idx]; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [d94e7936ee3] blender2.8: Cleanup: style & header guards
Commit: d94e7936ee3221a3760882d3054f5ae3b69f9459 Author: Campbell Barton Date: Mon May 8 11:44:58 2017 +1000 Branches: blender2.8 https://developer.blender.org/rBd94e7936ee3221a3760882d3054f5ae3b69f9459 Cleanup: style & header guards === M source/blender/draw/engines/eevee/eevee_private.h M source/blender/draw/intern/draw_common.h M source/blender/draw/modes/draw_mode_engines.h M source/blender/nodes/composite/nodes/node_composite_image.c M source/blender/windowmanager/intern/wm_draw.c M source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c === diff --git a/source/blender/draw/engines/eevee/eevee_private.h b/source/blender/draw/engines/eevee/eevee_private.h index 517926554f9..0c47af0f889 100644 --- a/source/blender/draw/engines/eevee/eevee_private.h +++ b/source/blender/draw/engines/eevee/eevee_private.h @@ -23,6 +23,9 @@ * \ingroup DNA */ +#ifndef __EEVEE_PRIVATE_H__ +#define __EEVEE_PRIVATE_H__ + struct Object; /* Minimum UBO is 16384 bytes */ @@ -300,3 +303,5 @@ static const float cubefacemat[6][4][4] = { {0.0, 0.0, 1.0, 0.0}, {0.0, 0.0, 0.0, 1.0}}, }; + +#endif /* __EEVEE_PRIVATE_H__ */ diff --git a/source/blender/draw/intern/draw_common.h b/source/blender/draw/intern/draw_common.h index d1af67fcdfd..d7ec08b2394 100644 --- a/source/blender/draw/intern/draw_common.h +++ b/source/blender/draw/intern/draw_common.h @@ -23,8 +23,8 @@ * \ingroup draw */ -#ifndef __DRAW_COMMON__ -#define __DRAW_COMMON__ +#ifndef __DRAW_COMMON_H__ +#define __DRAW_COMMON_H__ struct DRWPass; struct DRWShadingGroup; @@ -122,4 +122,4 @@ void DRW_shgroup_armature_edit( bool DRW_pose_mode_armature( struct Object *ob, struct Object *active_ob); -#endif /* __DRAW_COMMON__ */ +#endif /* __DRAW_COMMON_H__ */ diff --git a/source/blender/draw/modes/draw_mode_engines.h b/source/blender/draw/modes/draw_mode_engines.h index c3b4d5ee61a..23fedbba5a5 100644 --- a/source/blender/draw/modes/draw_mode_engines.h +++ b/source/blender/draw/modes/draw_mode_engines.h @@ -23,8 +23,8 @@ * \ingroup draw */ -#ifndef __DRAW_MODES_ENGINES_H__ -#define __DRAW_MODES_ENGINES_H__ +#ifndef __DRAW_MODE_ENGINES_H__ +#define __DRAW_MODE_ENGINES_H__ extern DrawEngineType draw_engine_object_type; extern DrawEngineType draw_engine_edit_armature_type; @@ -41,4 +41,4 @@ extern DrawEngineType draw_engine_particle_type; extern DrawEngineType draw_engine_pose_type; extern DrawEngineType draw_engine_sculpt_type; -#endif /* __DRAW_MODES_ENGINES_H__ */ \ No newline at end of file +#endif /* __DRAW_MODE_ENGINES_H__ */ \ No newline at end of file diff --git a/source/blender/nodes/composite/nodes/node_composite_image.c b/source/blender/nodes/composite/nodes/node_composite_image.c index f1fdaa32ce4..30f877891b6 100644 --- a/source/blender/nodes/composite/nodes/node_composite_image.c +++ b/source/blender/nodes/composite/nodes/node_composite_image.c @@ -107,8 +107,8 @@ static void cmp_node_image_add_pass_output(bNodeTree *ntree, bNode *node, BLI_strncpy(sockdata->pass_name, passname, sizeof(sockdata->pass_name)); - sock_index = BLI_listbase_count(>outputs)-1; - if (sock_index != after_index+1) { + sock_index = BLI_listbase_count(>outputs) - 1; + if (sock_index != after_index + 1) { bNodeSocket *after_sock = BLI_findlink(>outputs, after_index); BLI_remlink(>outputs, sock); BLI_insertlinkafter(>outputs, after_sock, sock); @@ -218,9 +218,9 @@ static void cmp_node_rlayer_create_outputs(bNodeTree *ntree, bNode *node, LinkNo if (scene) { RenderEngineType *engine_type = RE_engines_find(scene->r.engine); - if(engine_type && engine_type->update_render_passes) { + if (engine_type && engine_type->update_render_passes) { SceneRenderLayer *srl = BLI_findlink(>r.layers, node->custom1); - if(srl) { + if (srl) { RLayerUpdateData *data = MEM_mallocN(sizeof(RLayerUpdateData), "render layer update data"); data->available_sockets = available_sockets; data->prev_index = -1; diff --git a/source/blender/windowmanager/intern/wm_draw.c b/source/blender/windowmanager/intern/wm_draw.c index 22af98e26c6..3c176912409 100644 --- a/source/blender/windowmanager/intern/wm_draw.c +++ b/source/blender/windowmanager/intern/wm_draw.c @@ -518,10 +518,10 @@ static void wm_method_draw_triple(bContext *C, wmWindow *win) bool copytex = false; if (drawdata && drawdata->triple) { - #if 0 /* why do we need to clear before overwriting? */ +#if 0 /* why do we need to clear
[Bf-blender-cvs] [1a869fb6b96] blender2.8: DWM: show weights in edit-mode
Commit: 1a869fb6b96c5f36d9db8cb7a87b6b01567ecd45 Author: Campbell Barton Date: Mon May 8 12:46:54 2017 +1000 Branches: blender2.8 https://developer.blender.org/rB1a869fb6b96c5f36d9db8cb7a87b6b01567ecd45 DWM: show weights in edit-mode Engine collection settings aren't currently flushed, once they are this will work as expected. === M source/blender/draw/intern/draw_manager.c M source/blender/draw/modes/edit_mesh_mode.c M source/blender/makesrna/intern/rna_scene.c === diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c index 52b44039c0f..de7f0220c3b 100644 --- a/source/blender/draw/intern/draw_manager.c +++ b/source/blender/draw/intern/draw_manager.c @@ -1615,10 +1615,14 @@ bool DRW_object_is_renderable(Object *ob) if (ob->type == OB_MESH) { if (ob == obedit) { IDProperty *props = BKE_layer_collection_engine_evaluated_get(ob, COLLECTION_MODE_EDIT, ""); - bool do_occlude_wire = BKE_collection_engine_property_value_get_bool(props, "show_occlude_wire"); - - if (do_occlude_wire) + bool do_show_occlude_wire = BKE_collection_engine_property_value_get_bool(props, "show_occlude_wire"); + if (do_show_occlude_wire) { + return false; + } + bool do_show_weight = BKE_collection_engine_property_value_get_bool(props, "show_weight"); + if (do_show_weight) { return false; + } } } diff --git a/source/blender/draw/modes/edit_mesh_mode.c b/source/blender/draw/modes/edit_mesh_mode.c index 120d977c222..83bdd788900 100644 --- a/source/blender/draw/modes/edit_mesh_mode.c +++ b/source/blender/draw/modes/edit_mesh_mode.c @@ -55,6 +55,7 @@ extern char datatoc_gpu_shader_uniform_color_frag_glsl[]; /* *** LISTS *** */ typedef struct EDIT_MESH_PassList { + struct DRWPass *vcolor_faces; struct DRWPass *depth_hidden_wire; struct DRWPass *edit_face_overlay; struct DRWPass *edit_face_occluded; @@ -87,6 +88,8 @@ typedef struct EDIT_MESH_Data { /* *** STATIC *** */ static struct { + /* weight/vert-color */ + GPUShader *vcolor_face_shader; GPUShader *overlay_tri_sh; GPUShader *overlay_tri_fast_sh; GPUShader *overlay_tri_vcol_sh; @@ -103,6 +106,8 @@ static struct { } e_data = {NULL}; /* Engine data */ typedef struct EDIT_MESH_PrivateData { + /* weight/vert-color */ + DRWShadingGroup *fvcolor_shgrp; DRWShadingGroup *depth_shgrp_hidden_wire; DRWShadingGroup *fnormals_shgrp; @@ -140,6 +145,10 @@ static void EDIT_MESH_engine_init(void *vedata) (int)viewport_size[0], (int)viewport_size[1], tex, ARRAY_SIZE(tex)); + if (!e_data.vcolor_face_shader) { + e_data.vcolor_face_shader = GPU_shader_get_builtin_shader(GPU_SHADER_SIMPLE_LIGHTING_SMOOTH_COLOR_ALPHA); + } + if (!e_data.overlay_tri_sh) { e_data.overlay_tri_sh = DRW_shader_create_with_lib( datatoc_edit_mesh_overlay_vert_glsl, @@ -302,6 +311,21 @@ static void EDIT_MESH_cache_init(void *vedata) } { + psl->vcolor_faces = DRW_pass_create( + "Vert Color Pass", + DRW_STATE_WRITE_COLOR | DRW_STATE_WRITE_DEPTH | DRW_STATE_DEPTH_LESS); + + stl->g_data->fvcolor_shgrp = DRW_shgroup_create(e_data.vcolor_face_shader, psl->vcolor_faces); + + static float light[3] = {-0.3f, 0.5f, 1.0f}; + static float alpha = 1.0f; + static float world_light = 1.0f; /* XXX, see: paint_vertex_mode.c */ + DRW_shgroup_uniform_vec3(stl->g_data->fvcolor_shgrp, "light", light, 1); + DRW_shgroup_uniform_float(stl->g_data->fvcolor_shgrp, "alpha", , 1); + DRW_shgroup_uniform_float(stl->g_data->fvcolor_shgrp, "global", _light, 1); + } + + { /* Complementary Depth Pass */ psl->depth_hidden_wire = DRW_pass_create( "Depth Pass Hidden Wire", @@ -402,6 +426,8 @@ static void EDIT_MESH_cache_populate(void *vedata, Object *ob) if (ob == obedit) { IDProperty *ces_mode_ed = BKE_layer_collection_engine_evaluated_get(ob, COLLECTION_MODE_EDIT, ""); bool do_occlude_wire = BKE_collection_engine_property_value_get_bool(ces_mode_ed, "show_occlude_wire"); + bool do_show_weight = BKE_collection_engine_property_value_get_bool(ces_mode_ed, "show_weight"); +
[Bf-blender-cvs] [d2bd9195d4b] blender2.8: Cleanup: naming
Commit: d2bd9195d4b9a5ba05b674e34ba92a81d3bcd9e2 Author: Campbell Barton Date: Mon May 8 11:15:28 2017 +1000 Branches: blender2.8 https://developer.blender.org/rBd2bd9195d4b9a5ba05b674e34ba92a81d3bcd9e2 Cleanup: naming === M source/blender/draw/engines/basic/basic_engine.c M source/blender/draw/engines/clay/clay_engine.c M source/blender/draw/engines/external/external_engine.c M source/blender/draw/intern/DRW_render.h M source/blender/draw/intern/draw_manager.c === diff --git a/source/blender/draw/engines/basic/basic_engine.c b/source/blender/draw/engines/basic/basic_engine.c index 16d9ca3ef0d..e10eaaac128 100644 --- a/source/blender/draw/engines/basic/basic_engine.c +++ b/source/blender/draw/engines/basic/basic_engine.c @@ -178,7 +178,7 @@ static void BASIC_cache_populate(void *vedata, Object *ob) { BASIC_StorageList *stl = ((BASIC_Data *)vedata)->stl; - if (!DRW_is_object_renderable(ob)) + if (!DRW_object_is_renderable(ob)) return; struct Batch *geom = DRW_cache_object_surface_get(ob); diff --git a/source/blender/draw/engines/clay/clay_engine.c b/source/blender/draw/engines/clay/clay_engine.c index f7ca64e6288..fee1849f6e2 100644 --- a/source/blender/draw/engines/clay/clay_engine.c +++ b/source/blender/draw/engines/clay/clay_engine.c @@ -573,7 +573,7 @@ static void CLAY_cache_populate(void *vedata, Object *ob) DRWShadingGroup *clay_shgrp; - if (!DRW_is_object_renderable(ob)) + if (!DRW_object_is_renderable(ob)) return; struct Batch *geom = DRW_cache_object_surface_get(ob); diff --git a/source/blender/draw/engines/external/external_engine.c b/source/blender/draw/engines/external/external_engine.c index 3b7595d18d1..f94194e29fc 100644 --- a/source/blender/draw/engines/external/external_engine.c +++ b/source/blender/draw/engines/external/external_engine.c @@ -125,7 +125,7 @@ static void EXTERNAL_cache_populate(void *vedata, Object *ob) { EXTERNAL_StorageList *stl = ((EXTERNAL_Data *)vedata)->stl; - if (!DRW_is_object_renderable(ob)) + if (!DRW_object_is_renderable(ob)) return; struct Batch *geom = DRW_cache_object_surface_get(ob); diff --git a/source/blender/draw/intern/DRW_render.h b/source/blender/draw/intern/DRW_render.h index 9eb6ed86cd2..8db189022cb 100644 --- a/source/blender/draw/intern/DRW_render.h +++ b/source/blender/draw/intern/DRW_render.h @@ -318,7 +318,7 @@ struct LampEngineData *DRW_lamp_engine_data_get(Object *ob, struct RenderEngineT void DRW_lamp_engine_data_free(struct LampEngineData *led); /* Settings */ -bool DRW_is_object_renderable(struct Object *ob); +bool DRW_object_is_renderable(struct Object *ob); /* Draw commands */ void DRW_draw_pass(DRWPass *pass); diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c index 12300ee6d00..52b44039c0f 100644 --- a/source/blender/draw/intern/draw_manager.c +++ b/source/blender/draw/intern/draw_manager.c @@ -1607,7 +1607,7 @@ struct DRWTextStore *DRW_text_cache_ensure(void) /** \name Settings * \{ */ -bool DRW_is_object_renderable(Object *ob) +bool DRW_object_is_renderable(Object *ob) { Scene *scene = DST.draw_ctx.scene; Object *obedit = scene->obedit; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [1cfc48192c8] master: Fix T51432: Find Files case sensitive on win32
Commit: 1cfc48192c8555642f9fa6c03d96f558b46a0430 Author: Campbell Barton Date: Mon May 8 09:42:36 2017 +1000 Branches: master https://developer.blender.org/rB1cfc48192c8555642f9fa6c03d96f558b46a0430 Fix T51432: Find Files case sensitive on win32 === M source/blender/blenkernel/intern/bpath.c === diff --git a/source/blender/blenkernel/intern/bpath.c b/source/blender/blenkernel/intern/bpath.c index 487b8ffa2b5..f210c6aa7f3 100644 --- a/source/blender/blenkernel/intern/bpath.c +++ b/source/blender/blenkernel/intern/bpath.c @@ -243,7 +243,7 @@ static bool missing_files_find__recursive( continue; /* cant stat, don't bother with this file, could print debug info here */ if (S_ISREG(status.st_mode)) { /* is file */ - if (STREQLEN(filename, de->d_name, FILE_MAX)) { /* name matches */ + if (BLI_path_ncmp(filename, de->d_name, FILE_MAX) == 0) { /* name matches */ /* open the file to read its size */ size = status.st_size; if ((size > 0) && (size > *r_filesize)) { /* find the biggest file */ ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [415ff7467ca] master: UI: Cleanup VSE Properties Shelf
Commit: 415ff7467ca937bca7d658e80d927388f5d1f0b1 Author: Mike Pan Date: Sun May 7 18:13:50 2017 -0400 Branches: master https://developer.blender.org/rB415ff7467ca937bca7d658e80d927388f5d1f0b1 UI: Cleanup VSE Properties Shelf The goal is to reduce wasted space and improve clarity in the 'N' panel of the VSE through layout changes. The changes are intentional conservative to avoid making people re-learn anything. Author: @mpan3 Differential Revision: https://developer.blender.org/D2439 === M release/scripts/startup/bl_ui/space_sequencer.py === diff --git a/release/scripts/startup/bl_ui/space_sequencer.py b/release/scripts/startup/bl_ui/space_sequencer.py index 01da3b48f7d..ac26c3f4713 100644 --- a/release/scripts/startup/bl_ui/space_sequencer.py +++ b/release/scripts/startup/bl_ui/space_sequencer.py @@ -36,26 +36,35 @@ def act_strip(context): def draw_color_balance(layout, color_balance): -col = layout.column() +box = layout.box() +split = box.split(percentage=0.35) +col = split.column(align=True) col.label(text="Lift:") -col.template_color_picker(color_balance, "lift", value_slider=True, cubic=True) -row = col.row() -row.prop(color_balance, "lift", text="") -row.prop(color_balance, "invert_lift", text="Inverse") - -col = layout.column() +col.separator() +col.separator() +col.prop(color_balance, "lift") +col.prop(color_balance, "invert_lift", text="Invert", icon="ARROW_LEFTRIGHT") +split.template_color_picker(color_balance, "lift", value_slider=True, cubic=True) + +box = layout.box() +split = box.split(percentage=0.35) +col = split.column(align=True) col.label(text="Gamma:") -col.template_color_picker(color_balance, "gamma", value_slider=True, lock_luminosity=True, cubic=True) -row = col.row() -row.prop(color_balance, "gamma", text="") -row.prop(color_balance, "invert_gamma", text="Inverse") - -col = layout.column() +col.separator() +col.separator() +col.prop(color_balance, "gamma") +col.prop(color_balance, "invert_gamma", text="Invert", icon="ARROW_LEFTRIGHT") +split.template_color_picker(color_balance, "gamma", value_slider=True, lock_luminosity=True, cubic=True) + +box = layout.box() +split = box.split(percentage=0.35) +col = split.column(align=True) col.label(text="Gain:") -col.template_color_picker(color_balance, "gain", value_slider=True, lock_luminosity=True, cubic=True) -row = col.row() -row.prop(color_balance, "gain", text="") -row.prop(color_balance, "invert_gain", text="Inverse") +col.separator() +col.separator() +col.prop(color_balance, "gain", text="Gain") +col.prop(color_balance, "invert_gain", text="Invert", icon="ARROW_LEFTRIGHT") +split.template_color_picker(color_balance, "gain", value_slider=True, lock_luminosity=True, cubic=True) class SEQUENCER_HT_header(Header): @@ -500,16 +509,16 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel, Panel): frame_current = scene.frame_current strip = act_strip(context) -split = layout.split(percentage=0.3) +split = layout.split(percentage=0.25, align=True) split.label(text="Name:") split.prop(strip, "name", text="") -split = layout.split(percentage=0.3) +split = layout.split(percentage=0.25) split.label(text="Type:") split.prop(strip, "type", text="") if strip.type != 'SOUND': -split = layout.split(percentage=0.3) +split = layout.split(percentage=0.25) split.label(text="Blend:") split.prop(strip, "blend_type", text="") @@ -518,16 +527,20 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel, Panel): sub.active = (not strip.mute) sub.prop(strip, "blend_alpha", text="Opacity", slider=True) row.prop(strip, "mute", toggle=True, icon_only=True) -row.prop(strip, "lock", toggle=True, icon_only=True) + else: -row = layout.row(align=True) -row.prop(strip, "mute", toggle=True, icon_only=True) -row.prop(strip, "lock", toggle=True, icon_only=True) +row = layout.row() +row.prop(strip, "mute", toggle=True, icon_only=True, text='Mute', icon='MUTE_IPO_OFF') col = layout.column() -sub = col.column() -sub.enabled = not strip.lock -sub.prop(strip, "channel") +col.enabled = not strip.lock +sub = col.row(align=True) + +sub = col.column(align=True) +row = sub.row(align=True) +row.prop(strip, "channel") +row.prop(strip, "lock", toggle=True, icon_only=True) + sub.prop(strip, "frame_start") sub.prop(strip, "frame_final_duration") @@ -552,8 +565,6 @@ class
[Bf-blender-cvs] [3f5ddbf7245] workspaces: Merge branch 'blender2.8' into workspaces
Commit: 3f5ddbf72451c6f2eb3914ebca79838557a81f51 Author: Julian Eisel Date: Mon May 8 00:19:46 2017 +0200 Branches: workspaces https://developer.blender.org/rB3f5ddbf72451c6f2eb3914ebca79838557a81f51 Merge branch 'blender2.8' into workspaces === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [9181f13af71] blender2.8: Merge branch 'master' into blender2.8
Commit: 9181f13af710f39e28368461f9979ce2052a55ee Author: Julian Eisel Date: Mon May 8 00:19:22 2017 +0200 Branches: blender2.8 https://developer.blender.org/rB9181f13af710f39e28368461f9979ce2052a55ee Merge branch 'master' into blender2.8 === === diff --cc intern/cycles/device/device.h index 21d29a801ae,527940e8f50..c22969d7dc6 --- a/intern/cycles/device/device.h +++ b/intern/cycles/device/device.h @@@ -228,28 -228,24 +228,37 @@@ struct DeviceDrawParams }; class Device { + friend class device_sub_ptr; protected: - Device(DeviceInfo& info_, Stats _, bool background) : background(background), vertex_buffer(0), info(info_), stats(stats_) {} + enum { + FALLBACK_SHADER_STATUS_NONE = 0, + FALLBACK_SHADER_STATUS_ERROR, + FALLBACK_SHADER_STATUS_SUCCESS, + }; + + Device(DeviceInfo& info_, Stats _, bool background) : background(background), + vertex_buffer(0), + fallback_status(FALLBACK_SHADER_STATUS_NONE), fallback_shader_program(0), + info(info_), stats(stats_) {} bool background; string error_msg; /* used for real time display */ unsigned int vertex_buffer; + int fallback_status, fallback_shader_program; + int image_texture_location, fullscreen_location; + + bool bind_fallback_display_space_shader(const float width, const float height); + virtual device_ptr mem_alloc_sub_ptr(device_memory& /*mem*/, int /*offset*/, int /*size*/, MemoryType /*type*/) + { + /* Only required for devices that implement denoising. */ + assert(false); + return (device_ptr) 0; + } + virtual void mem_free_sub_ptr(device_ptr /*ptr*/) {}; + public: virtual ~Device(); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [b7c756985a2] workspaces: Revert redundant workaround for buffer overflow
Commit: b7c756985a2b5c751c6ef48395a81a801677ede5 Author: Julian Eisel Date: Sun May 7 23:57:08 2017 +0200 Branches: workspaces https://developer.blender.org/rBb7c756985a2b5c751c6ef48395a81a801677ede5 Revert redundant workaround for buffer overflow This reverts commit 9ddb857c7a9b9ea7ae55ef39879497676d6d8e71. Should be redundant after rB839bf119c1a774b475. === M source/blender/editors/interface/interface_regions.c === diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index 355b4f4d467..fd6d056f7d4 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -794,12 +794,8 @@ bool UI_search_item_add(uiSearchItems *items, const char *name, void *poin, int return true; } - if (items->names) { - MEM_freeN(items->names[items->totitem]); - int name_len = min_ii(strlen(name) + 1, items->maxstrlen); - items->names[items->totitem] = MEM_mallocN(name_len, __func__); - BLI_strncpy(items->names[items->totitem], name, name_len); - } + if (items->names) + BLI_strncpy(items->names[items->totitem], name, items->maxstrlen); if (items->pointers) items->pointers[items->totitem] = poin; if (items->icons) ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [9b1a5b942cd] workspaces: Better fix for reading fullscreens from old files
Commit: 9b1a5b942cdcccbfe6209fa65be3df58c8de4bce Author: Julian Eisel Date: Sun May 7 23:26:42 2017 +0200 Branches: workspaces https://developer.blender.org/rB9b1a5b942cdcccbfe6209fa65be3df58c8de4bce Better fix for reading fullscreens from old files Old fix was rBe38481e53b84db. We now solve this in a nicer way by doing all workspace versioning after lib-linking. === M source/blender/blenkernel/BKE_workspace.h M source/blender/blenkernel/intern/workspace.c M source/blender/blenloader/intern/readfile.c M source/blender/blenloader/intern/versioning_280.c === diff --git a/source/blender/blenkernel/BKE_workspace.h b/source/blender/blenkernel/BKE_workspace.h index de251d2b2d2..78e45cf9950 100644 --- a/source/blender/blenkernel/BKE_workspace.h +++ b/source/blender/blenkernel/BKE_workspace.h @@ -65,9 +65,6 @@ void BKE_workspace_layout_remove( struct Main *bmain, WorkSpace *workspace, WorkSpaceLayout *layout) ATTR_NONNULL(); -void BKE_workspace_layouts_transfer( -WorkSpace *workspace_dst, WorkSpace *workspace_src) ATTR_NONNULL(); - /* */ /* General Utils */ diff --git a/source/blender/blenkernel/intern/workspace.c b/source/blender/blenkernel/intern/workspace.c index 4462833fe66..89535c02ba6 100644 --- a/source/blender/blenkernel/intern/workspace.c +++ b/source/blender/blenkernel/intern/workspace.c @@ -228,12 +228,6 @@ void BKE_workspace_layout_remove( BLI_freelinkN(>layouts, layout); } -void BKE_workspace_layouts_transfer( -WorkSpace *workspace_dst, WorkSpace *workspace_src) -{ - BLI_movelisttolist(_dst->layouts, _src->layouts); -} - /* */ /* General Utils */ diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index a91dd3e7c18..b6c6381e251 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -2786,9 +2786,6 @@ static void direct_link_cachefile(FileData *fd, CacheFile *cache_file) static void lib_link_workspaces(FileData *fd, Main *bmain) { - /* Note the NULL pointer checks for result of newlibadr. This is needed for reading old files from before the -* introduction of workspaces (in do_versioning code we already created workspaces for screens of old file). */ - BKE_WORKSPACE_ITER_BEGIN (workspace, bmain->workspaces.first) { ID *id = BKE_workspace_id_get(workspace); ListBase *layouts = BKE_workspace_layouts_get(workspace); @@ -2798,15 +2795,13 @@ static void lib_link_workspaces(FileData *fd, Main *bmain) BKE_WORKSPACE_LAYOUT_ITER_BEGIN (layout, layouts->first) { bScreen *screen = newlibadr(fd, id->lib, BKE_workspace_layout_screen_get(layout)); - if (screen) { - BKE_workspace_layout_screen_set(layout, screen); + BKE_workspace_layout_screen_set(layout, screen); - if (ID_IS_LINKED_DATABLOCK(id)) { - screen->winid = 0; - if (screen->temp) { - /* delete temp layouts when appending */ - BKE_workspace_layout_remove(bmain, workspace, layout); - } + if (ID_IS_LINKED_DATABLOCK(id)) { + screen->winid = 0; + if (screen->temp) { + /* delete temp layouts when appending */ + BKE_workspace_layout_remove(bmain, workspace, layout); } } } BKE_WORKSPACE_LAYOUT_ITER_END; @@ -6533,9 +6528,10 @@ static void lib_link_windowmanager(FileData *fd, Main *main) if (wm->id.tag & LIB_TAG_NEED_LINK) { /* Note: WM IDProperties are never written to file, hence no need to read/link them here. */ for (win = wm->windows.first; win; win = win->next) { - /* Note: WM IDProperties are never written to file, hence no need to read/link them here. */ + if (win->workspace_hook) { /* NULL for old files */ + lib_link_workspace_instance_hook(fd, win->workspace_hook, >id); + } win->scene = newlibadr(fd, wm->id.lib, win->scene); - lib_link_workspace_instance_hook(fd, win->workspace_hook, >id);
[Bf-blender-cvs] [ce28025eaf5] master: Remove unused node socket flag that was added in the render pass commit
Commit: ce28025eaf5014f16460dd1cb798ce5292087d94 Author: Lukas Stockner Date: Sun May 7 20:32:51 2017 +0200 Branches: master https://developer.blender.org/rBce28025eaf5014f16460dd1cb798ce5292087d94 Remove unused node socket flag that was added in the render pass commit === M source/blender/compositor/intern/COM_NodeGraph.cpp M source/blender/editors/space_node/drawnode.c M source/blender/makesdna/DNA_node_types.h M source/blender/makesrna/intern/rna_nodetree.c === diff --git a/source/blender/compositor/intern/COM_NodeGraph.cpp b/source/blender/compositor/intern/COM_NodeGraph.cpp index 891e64ed12b..c5096a6b352 100644 --- a/source/blender/compositor/intern/COM_NodeGraph.cpp +++ b/source/blender/compositor/intern/COM_NodeGraph.cpp @@ -179,8 +179,7 @@ void NodeGraph::add_bNodeLink(const NodeRange _range, bNodeLink *b_nodelink /// @note: ignore invalid links if (!(b_nodelink->flag & NODE_LINK_VALID)) return; - const int unavail_mask = SOCK_UNAVAIL | SOCK_VIRTUAL; - if ((b_nodelink->fromsock->flag & unavail_mask) || (b_nodelink->tosock->flag & unavail_mask)) + if ((b_nodelink->fromsock->flag & SOCK_UNAVAIL) || (b_nodelink->tosock->flag & SOCK_UNAVAIL)) return; /* Note: a DNA input socket can have multiple NodeInput in the compositor tree! (proxies) diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index 9b517425c1f..ad41aa0 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -3069,7 +3069,6 @@ static void std_node_socket_draw(bContext *C, uiLayout *layout, PointerRNA *ptr, bNode *node = node_ptr->data; bNodeSocket *sock = ptr->data; int type = sock->typeinfo->type; - bool connected_to_virtual = (sock->link && (sock->link->fromsock->flag & SOCK_VIRTUAL)); /*int subtype = sock->typeinfo->subtype;*/ /* XXX not nice, eventually give this node its own socket type ... */ @@ -3078,7 +3077,7 @@ static void std_node_socket_draw(bContext *C, uiLayout *layout, PointerRNA *ptr, return; } - if ((sock->in_out == SOCK_OUT) || ((sock->flag & SOCK_IN_USE) && !connected_to_virtual) || (sock->flag & SOCK_HIDE_VALUE)) { + if ((sock->in_out == SOCK_OUT) || (sock->flag & SOCK_IN_USE) || (sock->flag & SOCK_HIDE_VALUE)) { node_socket_button_label(C, layout, ptr, node_ptr, text); return; } @@ -3591,7 +3590,6 @@ void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link) { bool do_shaded = false; bool do_triple = false; - bool do_dashed = false; int th_col1 = TH_WIRE_INNER, th_col2 = TH_WIRE_INNER, th_col3 = TH_WIRE; if (link->fromsock == NULL && link->tosock == NULL) @@ -3608,8 +3606,6 @@ void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link) return; if (link->fromsock->flag & SOCK_UNAVAIL) return; - if ((link->fromsock->flag & SOCK_VIRTUAL) || (link->tosock->flag & SOCK_VIRTUAL)) - do_dashed = true; if (link->flag & NODE_LINK_VALID) { /* special indicated link, on drop-node */ @@ -3631,9 +3627,7 @@ void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link) } } - if (do_dashed) setlinestyle(3); node_draw_link_bezier(v2d, snode, link, th_col1, do_shaded, th_col2, do_triple, th_col3); - if (do_dashed) setlinestyle(0); // node_draw_link_straight(v2d, snode, link, th_col1, do_shaded, th_col2, do_triple, th_col3); } diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index 0ba3e013c23..b922ac072b0 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -159,8 +159,7 @@ typedef enum eNodeSocketFlag { SOCK_COLLAPSED = 64,/* socket collapsed in UI */ SOCK_HIDE_VALUE = 128, /* hide socket value, if it gets auto default */ SOCK_AUTO_HIDDEN__DEPRECATED = 256, /* socket hidden automatically, to distinguish from manually hidden */ - SOCK_NO_INTERNAL_LINK = 512, - SOCK_VIRTUAL = 1024 /* socket behaves like SOCK_UNAVAIL, but is drawn with dashed links */ + SOCK_NO_INTERNAL_LINK = 512 } eNodeSocketFlag; /* limit data in bNode to what we want to see saved? */ diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index dfdd2ff293a..60b75fca689 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++
[Bf-blender-cvs] [99184b77f9a] workspaces: Fix empty default workspace configuration
Commit: 99184b77f9a1d8d2f0e0e2c985f6238580353ff0 Author: Julian Eisel Date: Sun May 7 20:58:10 2017 +0200 Branches: workspaces https://developer.blender.org/rB99184b77f9a1d8d2f0e0e2c985f6238580353ff0 Fix empty default workspace configuration The default workspace configuration bundled with Blender was supposed to contain the pre-2.8 default screen-layouts converted to workspaces ("3D View Full", "Animation", "Compositing", ...). Apparently I committed the configuration with only one workspace though ("General"), so correcting now. === M release/datafiles/workspaces.blend === diff --git a/release/datafiles/workspaces.blend b/release/datafiles/workspaces.blend index 13cb8e27530..4e5e9646830 100644 Binary files a/release/datafiles/workspaces.blend and b/release/datafiles/workspaces.blend differ ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [e518ea9b5ea] master: Cycles: Fix transform addressing in the denoiser code
Commit: e518ea9b5ea0d2517aaf79594d2661a97c6b4a5e Author: Lukas Stockner Date: Sun May 7 20:48:24 2017 +0200 Branches: master https://developer.blender.org/rBe518ea9b5ea0d2517aaf79594d2661a97c6b4a5e Cycles: Fix transform addressing in the denoiser code === M intern/cycles/kernel/filter/filter_transform_gpu.h M intern/cycles/kernel/filter/filter_transform_sse.h === diff --git a/intern/cycles/kernel/filter/filter_transform_gpu.h b/intern/cycles/kernel/filter/filter_transform_gpu.h index f7414aeed8a..68304e14143 100644 --- a/intern/cycles/kernel/filter/filter_transform_gpu.h +++ b/intern/cycles/kernel/filter/filter_transform_gpu.h @@ -109,7 +109,7 @@ ccl_device void kernel_filter_construct_transform(ccl_global float ccl_restrict_ /* Bake the feature scaling into the transformation matrix. */ for(int i = 0; i < DENOISE_FEATURES; i++) { for(int j = 0; j < (*rank); j++) { - transform[i*DENOISE_FEATURES + j] *= feature_scale[i]; + transform[(i*DENOISE_FEATURES + j)*transform_stride] *= feature_scale[i]; } } } diff --git a/intern/cycles/kernel/filter/filter_transform_sse.h b/intern/cycles/kernel/filter/filter_transform_sse.h index 846f3ab3afa..ed3a92f6241 100644 --- a/intern/cycles/kernel/filter/filter_transform_sse.h +++ b/intern/cycles/kernel/filter/filter_transform_sse.h @@ -81,10 +81,6 @@ ccl_device void kernel_filter_construct_transform(float ccl_restrict_ptr buffer, break; float s = feature_matrix[i*DENOISE_FEATURES+i]; reduced_energy += s; - /* Bake the feature scaling into the transformation matrix. */ - for(int j = 0; j < DENOISE_FEATURES; j++) { - transform[(*rank)*DENOISE_FEATURES + j] *= _mm_cvtss_f32(feature_scale[j]); - } } } else { @@ -92,10 +88,6 @@ ccl_device void kernel_filter_construct_transform(float ccl_restrict_ptr buffer, float s = feature_matrix[i*DENOISE_FEATURES+i]; if(i >= 2 && sqrtf(s) < pca_threshold) break; - /* Bake the feature scaling into the transformation matrix. */ - for(int j = 0; j < DENOISE_FEATURES; j++) { - transform[(*rank)*DENOISE_FEATURES + j] *= _mm_cvtss_f32(feature_scale[j]); - } } } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [c9451f1cff4] master: [Cycles] Fix math problems in safe_logf
Commit: c9451f1cff4403855d5a77c15cfd428e0a9ebe87 Author: lazydodo Date: Sun May 7 09:16:14 2017 -0600 Branches: master https://developer.blender.org/rBc9451f1cff4403855d5a77c15cfd428e0a9ebe87 [Cycles] Fix math problems in safe_logf log(0) is undefined and should not have been included log(1) == 0, dividing by zero is not recommended === M intern/cycles/util/util_math.h === diff --git a/intern/cycles/util/util_math.h b/intern/cycles/util/util_math.h index 12abd8e201e..b719640b19c 100644 --- a/intern/cycles/util/util_math.h +++ b/intern/cycles/util/util_math.h @@ -492,17 +492,17 @@ ccl_device float safe_powf(float a, float b) return compatible_powf(a, b); } -ccl_device float safe_logf(float a, float b) +ccl_device float safe_divide(float a, float b) { - if(UNLIKELY(a < 0.0f || b < 0.0f)) - return 0.0f; - - return logf(a)/logf(b); + return (b != 0.0f)? a/b: 0.0f; } -ccl_device float safe_divide(float a, float b) +ccl_device float safe_logf(float a, float b) { - return (b != 0.0f)? a/b: 0.0f; + if(UNLIKELY(a <= 0.0f || b <= 0.0f)) + return 0.0f; + + return safe_divide(logf(a),logf(b)); } ccl_device float safe_modulo(float a, float b) ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [3cd27374ee5] master: Color management: add Filmic view transform to Blender configuration.
Commit: 3cd27374ee53bc2ae3fd08b0b73c0a3118f81020 Author: Brecht Van Lommel Date: Sun May 7 16:41:38 2017 +0200 Branches: master https://developer.blender.org/rB3cd27374ee53bc2ae3fd08b0b73c0a3118f81020 Color management: add Filmic view transform to Blender configuration. * "Filmic" and "False Color" view transforms added (sRGB display device only). * "Very Low/Low/Base/High/Very High Contrast" looks added. * Added filtering so that Filmic only shows look names prefixed with "Filmic - ". Filmic Dynamic Range LUT configuration created by Troy James Sobotka with special thanks and feedback from Guillermo, Claudio Rocha, Bassam Kurdali, Eugenio Pignataro, Henri Hebeisen, Jason Clarke, Haarm-Peter Duiker, Thomas Mansencal, and Timothy Lottes. Differential Revision: https://developer.blender.org/D2659 === M release/datafiles/colormanagement/config.ocio A release/datafiles/colormanagement/filmic/filmic_desat65cube.spi3d A release/datafiles/colormanagement/filmic/filmic_false_color.spi3d A release/datafiles/colormanagement/filmic/filmic_to_0-35_1-30.spi1d A release/datafiles/colormanagement/filmic/filmic_to_0-48_1-09.spi1d A release/datafiles/colormanagement/filmic/filmic_to_0-60_1-04.spi1d A release/datafiles/colormanagement/filmic/filmic_to_0-70_1-03.spi1d A release/datafiles/colormanagement/filmic/filmic_to_0-85_1-011.spi1d A release/datafiles/colormanagement/filmic/filmic_to_0.99_1-0075.spi1d A release/datafiles/colormanagement/filmic/filmic_to_1.20_1-00.spi1d M source/blender/imbuf/IMB_colormanagement.h M source/blender/imbuf/intern/IMB_colormanagement_intern.h M source/blender/imbuf/intern/colormanagement.c M source/blender/makesrna/intern/rna_color.c === diff --git a/release/datafiles/colormanagement/config.ocio b/release/datafiles/colormanagement/config.ocio index 924a140d6f3..5bed23cf210 100644 --- a/release/datafiles/colormanagement/config.ocio +++ b/release/datafiles/colormanagement/config.ocio @@ -2,11 +2,16 @@ # # Based on aces, nuke-default and spi configurations from OpenColorIO-Config # +# Filmic Dynamic Range LUT configuration crafted by Troy James Sobotka with +# special thanks and feedback from Guillermo, Claudio Rocha, Bassam Kurdali, +# Eugenio Pignataro, Henri Hebeisen, Jason Clarke, Haarm-Peter Duiker, Thomas +# Mansencal, and Timothy Lottes. +# # See ocio-license.txt for details. ocio_profile_version: 1 -search_path: luts +search_path: "luts:filmic" strictparsing: true luma: [0.2126, 0.7152, 0.0722] @@ -17,6 +22,7 @@ roles: # Internal scene linear space scene_linear: Linear + rendering: Linear # Default color space for byte image default_byte: sRGB @@ -31,13 +37,18 @@ roles: color_picking: Raw texture_paint: Raw + # Non-color data + data: Non-Color + displays: sRGB: - ! {name: Default, colorspace: sRGB} +- ! {name: Filmic, colorspace: Filmic sRGB} - ! {name: RRT, colorspace: rrt_srgb} - ! {name: Film, colorspace: srgb8} - ! {name: Raw, colorspace: Raw} - ! {name: Log, colorspace: lg10} +- ! {name: False Color, colorspace: False Color} DCI-P3: - ! {name: RRT, colorspace: rrt_p3dci} - ! {name: Film, colorspace: p3dci8} @@ -61,7 +72,7 @@ active_views: [Default, RRT, Raw, Log] colorspaces: - ! name: Linear -family: aces +family: linear equalitygroup: bitdepth: 32f description: | @@ -101,7 +112,7 @@ colorspaces: - ! name: Linear ACES -family: +family: linear equalitygroup: bitdepth: 32f description: | @@ -113,7 +124,7 @@ colorspaces: - ! name: rrt_srgb -family: rrt +family: display equalitygroup: bitdepth: 32f isdata: false @@ -141,7 +152,7 @@ colorspaces: - ! name: rrt_rec709 -family: rrt +family: display equalitygroup: bitdepth: 32f isdata: false @@ -155,7 +166,7 @@ colorspaces: - ! name: rrt_p3dci -family: rrt +family: display equalitygroup: bitdepth: 32f isdata: false @@ -169,7 +180,7 @@ colorspaces: - ! name: XYZ -family: +family: linear equalitygroup: bitdepth: 32f isdata: false @@ -182,7 +193,7 @@ colorspaces: - ! name: rrt_xyz -family: rrt +family: display equalitygroup: bitdepth: 32f isdata: false @@ -287,8 +298,108 @@ colorspaces: - ! {src: Linear, dst: lg10} - ! {src: colorworks_filmlg_to_p3.3dl, interpolation: linear} + - ! +name: Filmic Log +family: log +equalitygroup: +bitdepth: 32f +description: | + Log based filmic shaper with 16.5 stops of latitude, and 25 stops of dynamic range. +isdata: false +allocation: lg2 +allocationvars: [-12.473931188, 12.526068812] +from_reference: ! +
[Bf-blender-cvs] [29c5692eba0] blender2.8: Draw Manager: Fix multiple timer query issued for one pass.
Commit: 29c5692eba0cbf48fc54b65d533ab200ee62e922 Author: Clément Foucault Date: Sat May 6 17:00:37 2017 +0200 Branches: blender2.8 https://developer.blender.org/rB29c5692eba0cbf48fc54b65d533ab200ee62e922 Draw Manager: Fix multiple timer query issued for one pass. === M source/blender/draw/intern/draw_manager.c === diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c index 04bf7eea0bd..52bdf05e26a 100644 --- a/source/blender/draw/intern/draw_manager.c +++ b/source/blender/draw/intern/draw_manager.c @@ -1512,8 +1512,6 @@ void DRW_draw_pass(DRWPass *pass) DRW_state_set(pass->state); BLI_listbase_clear(_texs); - pass->wasdrawn = true; - /* Init Timer queries */ if (pass->timer_queries[0] == 0) { pass->front_idx = 0; @@ -1532,8 +1530,10 @@ void DRW_draw_pass(DRWPass *pass) pass->front_idx = tmp; } - /* issue query for the next frame */ - glBeginQuery(GL_TIME_ELAPSED, pass->timer_queries[pass->back_idx]); + if (!pass->wasdrawn) { + /* issue query for the next frame */ + glBeginQuery(GL_TIME_ELAPSED, pass->timer_queries[pass->back_idx]); + } for (DRWShadingGroup *shgroup = pass->shgroups.first; shgroup; shgroup = shgroup->next) { draw_shgroup(shgroup, pass->state); @@ -1551,7 +1551,11 @@ void DRW_draw_pass(DRWPass *pass) DST.shader = NULL; } - glEndQuery(GL_TIME_ELAPSED); + if (!pass->wasdrawn) { + glEndQuery(GL_TIME_ELAPSED); + } + + pass->wasdrawn = true; } void DRW_draw_callbacks_pre_scene(void) ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [c47926542ac] blender2.8: GPUMaterial: Fix regressions concerning background texco
Commit: c47926542acf1fc342b4d0b8f7ccaf1e3a8be6d8 Author: Clément Foucault Date: Sun May 7 15:22:25 2017 +0200 Branches: blender2.8 https://developer.blender.org/rBc47926542acf1fc342b4d0b8f7ccaf1e3a8be6d8 GPUMaterial: Fix regressions concerning background texco === M source/blender/draw/intern/draw_manager.c M source/blender/gpu/intern/gpu_codegen.c M source/blender/gpu/shaders/gpu_shader_material.glsl === diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c index 010684889bc..12300ee6d00 100644 --- a/source/blender/draw/intern/draw_manager.c +++ b/source/blender/draw/intern/draw_manager.c @@ -160,6 +160,7 @@ struct DRWInterface { int viewprojectioninverse; int normal; int worldnormal; + int camtexfac; int eye; /* Dynamic batch */ GLuint instance_vbo; @@ -528,6 +529,7 @@ static DRWInterface *DRW_interface_create(GPUShader *shader) interface->modelviewprojection = GPU_shader_get_uniform(shader, "ModelViewProjectionMatrix"); interface->normal = GPU_shader_get_uniform(shader, "NormalMatrix"); interface->worldnormal = GPU_shader_get_uniform(shader, "WorldNormalMatrix"); + interface->camtexfac = GPU_shader_get_uniform(shader, "CameraTexCoFactors"); interface->eye = GPU_shader_get_uniform(shader, "eye"); interface->instance_count = 0; interface->attribs_count = 0; @@ -1369,6 +1371,9 @@ static void draw_geometry(DRWShadingGroup *shgroup, Batch *geom, const float (*o if (interface->worldnormal != -1) { GPU_shader_uniform_vector(shgroup->shader, interface->worldnormal, 9, 1, (float *)wn); } + if (interface->camtexfac != -1) { + GPU_shader_uniform_vector(shgroup->shader, interface->camtexfac, 4, 1, (float *)rv3d->viewcamtexcofac); + } if (interface->eye != -1) { GPU_shader_uniform_vector(shgroup->shader, interface->eye, 3, 1, (float *)eye); } diff --git a/source/blender/gpu/intern/gpu_codegen.c b/source/blender/gpu/intern/gpu_codegen.c index 0e230bc5037..8e97b208877 100644 --- a/source/blender/gpu/intern/gpu_codegen.c +++ b/source/blender/gpu/intern/gpu_codegen.c @@ -624,6 +624,8 @@ static void codegen_call_functions(DynStr *ds, ListBase *nodes, GPUOutput *final else if (input->source == GPU_SOURCE_BUILTIN) { if (input->builtin == GPU_INVERSE_VIEW_MATRIX) BLI_dynstr_append(ds, "viewinv"); + else if (input->builtin == GPU_CAMERA_TEXCO_FACTORS) + BLI_dynstr_append(ds, "camtexfac"); else if (input->builtin == GPU_INVERSE_OBJECT_MATRIX) BLI_dynstr_append(ds, "objinv"); else if (input->builtin == GPU_VIEW_POSITION) @@ -693,6 +695,8 @@ static char *code_generate_fragment(ListBase *nodes, GPUOutput *output, bool use BLI_dynstr_append(ds, "void main()\n{\n"); if (use_new_shading) { + if (builtins & GPU_CAMERA_TEXCO_FACTORS) + BLI_dynstr_append(ds, "\tvec4 camtexfac = CameraTexCoFactors;\n"); if (builtins & GPU_INVERSE_OBJECT_MATRIX) BLI_dynstr_append(ds, "\tmat4 objinv = ModelMatrixInverse;\n"); if (builtins & GPU_INVERSE_VIEW_MATRIX) @@ -701,9 +705,10 @@ static char *code_generate_fragment(ListBase *nodes, GPUOutput *output, bool use BLI_dynstr_append(ds, "\tvec3 facingnormal = gl_FrontFacing? viewNormal: -viewNormal;\n"); if (builtins & GPU_VIEW_POSITION) BLI_dynstr_append(ds, "\tvec3 viewposition = viewPosition;\n"); - } else { + if (builtins & GPU_CAMERA_TEXCO_FACTORS) + BLI_dynstr_append(ds, "\tvec4 camtexfac = unfcameratexfactors;\n"); if (builtins & GPU_INVERSE_OBJECT_MATRIX) BLI_dynstr_append(ds, "\tmat4 objinv = unfinvobmat;\n"); if (builtins & GPU_INVERSE_VIEW_MATRIX) diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl index db137c78873..aadff69840a 100644 --- a/source/blender/gpu/shaders/gpu_shader_material.glsl +++ b/source/blender/gpu/shaders/gpu_shader_material.glsl @@ -10,6 +10,7 @@ uniform mat4 ModelViewMatrixInverse; uniform mat4 ViewMatrixInverse; uniform mat4 ProjectionMatrixInverse; uniform mat3 NormalMatrix; +uniform vec4 CameraTexCoFactors; #if __VERSION__ == 120 #define fragColor gl_FragColor @@ -2837,20 +2838,18 @@ void background_transform_to_world(vec3 viewvec, out vec3
[Bf-blender-cvs] [0aa2a662b91] blender2.8: Eevee: Add Bloom post process.
Commit: 0aa2a662b91a33c6457408a02f92cfdb82bcaaee Author: Clément Foucault Date: Sun May 7 14:27:43 2017 +0200 Branches: blender2.8 https://developer.blender.org/rB0aa2a662b91a33c6457408a02f92cfdb82bcaaee Eevee: Add Bloom post process. Based on Kino/Bloom v2 - Bloom filter for Unity MIT license. === M source/blender/draw/CMakeLists.txt M source/blender/draw/engines/eevee/eevee_effects.c M source/blender/draw/engines/eevee/eevee_private.h A source/blender/draw/engines/eevee/shaders/effect_bloom_frag.glsl M source/blender/draw/intern/draw_manager.c === diff --git a/source/blender/draw/CMakeLists.txt b/source/blender/draw/CMakeLists.txt index 64371d74960..0b229ecee8d 100644 --- a/source/blender/draw/CMakeLists.txt +++ b/source/blender/draw/CMakeLists.txt @@ -114,6 +114,7 @@ data_to_c_simple(engines/eevee/shaders/default_world_frag.glsl SRC) data_to_c_simple(engines/eevee/shaders/background_vert.glsl SRC) data_to_c_simple(engines/eevee/shaders/lit_surface_frag.glsl SRC) data_to_c_simple(engines/eevee/shaders/lit_surface_vert.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_bloom_frag.glsl SRC) data_to_c_simple(engines/eevee/shaders/effect_motion_blur_frag.glsl SRC) data_to_c_simple(engines/eevee/shaders/probe_filter_frag.glsl SRC) data_to_c_simple(engines/eevee/shaders/probe_sh_frag.glsl SRC) diff --git a/source/blender/draw/engines/eevee/eevee_effects.c b/source/blender/draw/engines/eevee/eevee_effects.c index dfae27b9cec..2279f0a6b44 100644 --- a/source/blender/draw/engines/eevee/eevee_effects.c +++ b/source/blender/draw/engines/eevee/eevee_effects.c @@ -43,13 +43,22 @@ typedef struct EEVEE_ProbeData { /* TODO Option */ #define ENABLE_EFFECT_MOTION_BLUR 1 +#define ENABLE_EFFECT_BLOOM 1 static struct { struct GPUShader *motion_blur_sh; + + /* Bloom */ + struct GPUShader *bloom_blit_sh[2]; + struct GPUShader *bloom_downsample_sh[2]; + struct GPUShader *bloom_upsample_sh[2]; + struct GPUShader *bloom_resolve_sh[2]; + struct GPUShader *tonemap_sh; } e_data = {NULL}; /* Engine data */ extern char datatoc_effect_motion_blur_frag_glsl[]; +extern char datatoc_effect_bloom_frag_glsl[]; extern char datatoc_tonemap_frag_glsl[]; void EEVEE_effects_init(EEVEE_Data *vedata) @@ -70,18 +79,37 @@ void EEVEE_effects_init(EEVEE_Data *vedata) e_data.motion_blur_sh = DRW_shader_create_fullscreen(datatoc_effect_motion_blur_frag_glsl, NULL); } + if (!e_data.bloom_blit_sh[0]) { + e_data.bloom_blit_sh[0] = DRW_shader_create_fullscreen(datatoc_effect_bloom_frag_glsl, "#define STEP_BLIT\n"); + e_data.bloom_blit_sh[1] = DRW_shader_create_fullscreen(datatoc_effect_bloom_frag_glsl, "#define STEP_BLIT\n" + "#define HIGH_QUALITY\n"); + + e_data.bloom_downsample_sh[0] = DRW_shader_create_fullscreen(datatoc_effect_bloom_frag_glsl, "#define STEP_DOWNSAMPLE\n"); + e_data.bloom_downsample_sh[1] = DRW_shader_create_fullscreen(datatoc_effect_bloom_frag_glsl, "#define STEP_DOWNSAMPLE\n" + "#define HIGH_QUALITY\n"); + + e_data.bloom_upsample_sh[0] = DRW_shader_create_fullscreen(datatoc_effect_bloom_frag_glsl, "#define STEP_UPSAMPLE\n"); + e_data.bloom_upsample_sh[1] = DRW_shader_create_fullscreen(datatoc_effect_bloom_frag_glsl, "#define STEP_UPSAMPLE\n" + "#define HIGH_QUALITY\n"); + + e_data.bloom_resolve_sh[0] = DRW_shader_create_fullscreen(datatoc_effect_bloom_frag_glsl, "#define STEP_RESOLVE\n"); + e_data.bloom_resolve_sh[1] = DRW_shader_create_fullscreen(datatoc_effect_bloom_frag_glsl, "#define STEP_RESOLVE\n" + "#define HIGH_QUALITY\n"); + } + if (!e_data.tonemap_sh) { e_data.tonemap_sh = DRW_shader_create_fullscreen(datatoc_tonemap_frag_glsl, NULL); } if (!stl->effects) { stl->effects = MEM_callocN(sizeof(EEVEE_EffectsInfo), "EEVEE_EffectsInfo"); + stl->effects->enabled_effects = 0; } +#if ENABLE_EFFECT_MOTION_BLUR { /* Update Motion Blur Matrices */ EEVEE_EffectsInfo *effects = stl->effects; -#if ENABLE_EFFECT_MOTION_BLUR const DRWContextState *draw_ctx = DRW_context_state_get(); Scene *scene = draw_ctx->scene; View3D *v3d = draw_ctx->v3d; @@ -124,18
[Bf-blender-cvs] [2a0c91b70c4] blender2.8: GPUViewport: Make Depth texture not depth testable.
Commit: 2a0c91b70c40485c05151fba5e3313cf4800559b Author: Clément Foucault Date: Sun May 7 14:29:51 2017 +0200 Branches: blender2.8 https://developer.blender.org/rB2a0c91b70c40485c05151fba5e3313cf4800559b GPUViewport: Make Depth texture not depth testable. === M source/blender/draw/intern/draw_manager.c M source/blender/gpu/intern/gpu_viewport.c === diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c index 253b3e680c9..010684889bc 100644 --- a/source/blender/draw/intern/draw_manager.c +++ b/source/blender/draw/intern/draw_manager.c @@ -1443,7 +1443,6 @@ static void draw_shgroup(DRWShadingGroup *shgroup, DRWState pass_state) } tex = *((GPUTexture **)uni->value); GPU_texture_bind(tex, uni->bindloc); - GPU_texture_compare_mode(tex, false); bound_tex = MEM_callocN(sizeof(DRWBoundTexture), "DRWBoundTexture"); bound_tex->tex = tex; diff --git a/source/blender/gpu/intern/gpu_viewport.c b/source/blender/gpu/intern/gpu_viewport.c index 98c3613e1e2..c116d035f60 100644 --- a/source/blender/gpu/intern/gpu_viewport.c +++ b/source/blender/gpu/intern/gpu_viewport.c @@ -267,11 +267,20 @@ void GPU_viewport_bind(GPUViewport *viewport, const rcti *rect) /* Depth */ dtxl->depth = GPU_texture_create_depth(rect_w, rect_h, NULL); - if (!dtxl->depth) { + + if (dtxl->depth) { + /* Define texture parameters */ + GPU_texture_bind(dtxl->depth, 0); + GPU_texture_compare_mode(dtxl->depth, false); + GPU_texture_filter_mode(dtxl->depth, true); + GPU_texture_unbind(dtxl->depth); + } + else { ok = false; goto cleanup; } - else if (!GPU_framebuffer_texture_attach(dfbl->default_fb, dtxl->depth, 0, 0)) { + + if (!GPU_framebuffer_texture_attach(dfbl->default_fb, dtxl->depth, 0, 0)) { ok = false; goto cleanup; } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [104e6a7b8a3] blender2.8: GPUMaterial: Make background not transparent
Commit: 104e6a7b8a3cf9fbd2cd6dc79e3dbc766a83419a Author: Clément Foucault Date: Sun May 7 14:28:13 2017 +0200 Branches: blender2.8 https://developer.blender.org/rB104e6a7b8a3cf9fbd2cd6dc79e3dbc766a83419a GPUMaterial: Make background not transparent === M source/blender/gpu/shaders/gpu_shader_material.glsl === diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl index 99186064969..db137c78873 100644 --- a/source/blender/gpu/shaders/gpu_shader_material.glsl +++ b/source/blender/gpu/shaders/gpu_shader_material.glsl @@ -3880,7 +3880,7 @@ void node_output_material(vec4 surface, vec4 volume, float displacement, out vec void node_output_world(vec4 surface, vec4 volume, out vec4 result) { - result = surface; + result = vec4(surface.rgb, 1.0); } void convert_metallic_to_specular(vec4 basecol, float metallic, float specular_fac, out vec4 diffuse, out vec4 f0) ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [43b374e8c54] master: Cycles: Implement denoising option for reducing noise in the rendered image
Commit: 43b374e8c5430488a302298b1026faa1c3a231e9 Author: Lukas Stockner Date: Sun May 7 14:40:58 2017 +0200 Branches: master https://developer.blender.org/rB43b374e8c5430488a302298b1026faa1c3a231e9 Cycles: Implement denoising option for reducing noise in the rendered image This commit contains the first part of the new Cycles denoising option, which filters the resulting image using information gathered during rendering to get rid of noise while preserving visual features as well as possible. To use the option, enable it in the render layer options. The default settings fit a wide range of scenes, but the user can tweak individual settings to control the tradeoff between a noise-free image, image details, and calculation time. Note that the denoiser may still change in the future and that some features are not implemented yet. The most important missing feature is animation denoising, which uses information from multiple frames at once to produce a flicker-free and smoother result. These features will be added in the future. Finally, thanks to all the people who supported this project: - Google (through the GSoC) and Theory Studios for sponsoring the development - The authors of the papers I used for implementing the denoiser (more details on them will be included in the technical docs) - The other Cycles devs for feedback on the code, especially Sergey for mentoring the GSoC project and Brecht for the code review! - And of course the users who helped with testing, reported bugs and things that could and/or should work better! === M intern/cycles/blender/addon/engine.py M intern/cycles/blender/addon/properties.py M intern/cycles/blender/addon/ui.py M intern/cycles/blender/blender_session.cpp M intern/cycles/blender/blender_session.h M intern/cycles/blender/blender_sync.cpp M intern/cycles/blender/blender_sync.h M intern/cycles/device/CMakeLists.txt M intern/cycles/device/device.cpp M intern/cycles/device/device.h M intern/cycles/device/device_cpu.cpp M intern/cycles/device/device_cuda.cpp A intern/cycles/device/device_denoising.cpp A intern/cycles/device/device_denoising.h M intern/cycles/device/device_memory.h M intern/cycles/device/device_multi.cpp M intern/cycles/device/device_split_kernel.cpp M intern/cycles/device/device_split_kernel.h M intern/cycles/device/device_task.cpp M intern/cycles/device/device_task.h M intern/cycles/device/opencl/opencl.h M intern/cycles/device/opencl/opencl_base.cpp M intern/cycles/device/opencl/opencl_mega.cpp M intern/cycles/device/opencl/opencl_split.cpp M intern/cycles/device/opencl/opencl_util.cpp M intern/cycles/kernel/CMakeLists.txt M intern/cycles/kernel/closure/bsdf.h M intern/cycles/kernel/closure/bsdf_ashikhmin_velvet.h M intern/cycles/kernel/closure/bsdf_diffuse.h M intern/cycles/kernel/closure/bsdf_diffuse_ramp.h M intern/cycles/kernel/closure/bsdf_microfacet.h M intern/cycles/kernel/closure/bsdf_microfacet_multi.h M intern/cycles/kernel/closure/bsdf_oren_nayar.h M intern/cycles/kernel/closure/bsdf_phong_ramp.h M intern/cycles/kernel/closure/bsdf_principled_diffuse.h M intern/cycles/kernel/closure/bsdf_principled_sheen.h M intern/cycles/kernel/closure/bsdf_toon.h M intern/cycles/kernel/closure/bssrdf.h A intern/cycles/kernel/filter/filter.h A intern/cycles/kernel/filter/filter_defines.h A intern/cycles/kernel/filter/filter_features.h A intern/cycles/kernel/filter/filter_features_sse.h A intern/cycles/kernel/filter/filter_kernel.h A intern/cycles/kernel/filter/filter_nlm_cpu.h A intern/cycles/kernel/filter/filter_nlm_gpu.h A intern/cycles/kernel/filter/filter_prefilter.h A intern/cycles/kernel/filter/filter_reconstruction.h A intern/cycles/kernel/filter/filter_transform.h A intern/cycles/kernel/filter/filter_transform_gpu.h A intern/cycles/kernel/filter/filter_transform_sse.h M intern/cycles/kernel/geom/geom_triangle.h M intern/cycles/kernel/kernel.h M intern/cycles/kernel/kernel_accumulate.h M intern/cycles/kernel/kernel_compat_cpu.h M intern/cycles/kernel/kernel_compat_cuda.h M intern/cycles/kernel/kernel_compat_opencl.h M intern/cycles/kernel/kernel_light.h M intern/cycles/kernel/kernel_passes.h M intern/cycles/kernel/kernel_path.h M intern/cycles/kernel/kernel_path_branched.h M intern/cycles/kernel/kernel_path_state.h M intern/cycles/kernel/kernel_path_surface.h M intern/cycles/kernel/kernel_path_volume.h M intern/cycles/kernel/kernel_projection.h M intern/cycles/kernel/kernel_shader.h M intern/cycles/kernel/kernel_types.h A intern/cycles/kernel/kernels/cpu/filter.cpp A