Strange things in animation vertex shader. AMD HD 7950

Win 7 64 bit.

I have two animated models(Naruto and Monstr).
Two model i parse in my program for convert my binary format.

One vertex shader show me normal animation Naruto but bug on model Monstr. I mean bug is some vertexes stretched on model.

#version 450
	
	#extension GL_ARB_separate_shader_objects : enable
	#extension GL_ARB_shading_language_420pack : enable
	
	layout (location = 0) in vec3 inPos;
	layout (location = 1) in vec2 inColor;
	layout (location = 2) in vec3 inNor;
	layout (location = 3) in ivec4 inBon;
	layout (location = 4) in vec4 inWes;

	//for animkeys
	layout (binding = 2) buffer somes {
			mat4 so[];
				} some;

	//for vertexbuf anim model
	layout (binding = 3) buffer vrtxs {
				    mat4 Pos[];
				} vrtx;

	layout (binding = 0) uniform UBO 
	{
		mat4 projectionMatrix;
		mat4 viewMatrix;
		mat4 modelMatrix;
		float  Cadr;
		float  Bones;
	} ubo;
	
	layout (push_constant) uniform PushConsts
	{
	       vec4 lightPos[5];
	} pushConsts;
	
	layout (location = 0) out vec3 outColor;
	layout (location = 1) out vec3 outNor;
void main()
	{	   	    
	    outColor = vec3(inColor,0.0) ;
	    outNor = vec3(inNor) ;
	    int gg =  int(pushConsts.lightPos[0].w);//ubo.Cadr);	    

	    int Bone1 = (inBon.x-1); 
	    int Bone2 = (inBon.y-1);
	    int Bone3 = (inBon.z-1);
	    int Bone4 = (inBon.w-1);

	    int BonNum = int(pushConsts.lightPos[1].w);//ubo.Bones);
	   
	    mat4 nw1 = some.so[BonNum*gg+Bone1];
	    mat4 nw2 = some.so[BonNum*gg+Bone2];
	    mat4 nw3 = some.so[BonNum*gg+Bone3];
	    mat4 nw4 = some.so[BonNum*gg+Bone4];
	    vec4 nPos2 = vec4(inPos,1.0);	    	    
	    mat4 boneTransform = nw1 * inWes[0];
	    boneTransform += nw2 * inWes[1];
	    boneTransform += nw3 * inWes[2];
	    boneTransform += nw4 * inWes[3];
	
	nPos2 = nPos2 * pushConsts.lightPos[3].w;//scale model
	    gl_Position =  ubo.projectionMatrix * ubo.viewMatrix * boneTransform * vec4(nPos2.xyz + pushConsts.lightPos[3].xyz,1.0 ); 
	}

Another vertex shader show normal Monstr and bug on model Naruto.

#version 450

 #extension GL_ARB_separate_shader_objects : enable
 #extension GL_ARB_shading_language_420pack : enable
 //#extension GL_ARB_draw_instanced : enable

 layout (location = 0) in vec3 inPos;
 layout (location = 1) in vec2 inColor;
 layout (location = 2) in vec3 inNor;
 layout (location = 3) in ivec4 inBon;
 layout (location = 4) in vec4 inWes;

 //for animkeys
 layout (binding = 2) buffer somes {
 mat4 so[];
 } some;

 //for vertexbuf anim model
 layout (binding = 3) buffer vrtxs {
 mat4 Pos[];
 } vrtx;

 layout (binding = 0) uniform UBO 
 {
 mat4 projectionMatrix;
 mat4 viewMatrix;
 mat4 modelMatrix;
 float Cadr;
 float Bones;
 } ubo;
 // push_constant tolko vulkan fitcha !!! v opengl net
 // gl_InstanceIndex tolko vulkan fitcha !!! v opengl net
 layout (push_constant) uniform PushConsts
 {
 vec4 lightPos[5];
 } pushConsts;
 //in int gl_InstanceID;
 layout (location = 0) out vec3 outColor;
 layout (location = 1) out vec3 outNor;
 void main()
 {
 outColor = vec3(inColor,0.0) ;
 outNor = vec3(inNor) ;

 int gg = int(ubo.Cadr); 

 int Bone1 = (inBon[0]-1); 
 int Bone2 = (inBon[1]-1);
 int Bone3 = (inBon[2]-1);
 int Bone4 = (inBon[3]-1);

 int BonNum = int(ubo.Bones);

 int zi1 = int(BonNum*gg+Bone1);
 int zi2 = int(BonNum*gg+Bone2);
 int zi3 = int(BonNum*gg+Bone3);
 int zi4 = int(BonNum*gg+Bone4);
 mat4 nw1 = mat4(some.so[zi1]);
 mat4 nw2 = mat4(some.so[zi2]);
 mat4 nw3 = mat4(some.so[zi3]);
 mat4 nw4 = mat4(some.so[zi4]);

 vec4 nPos = vec4(inPos,1.0); 
 vec4 nPos2 ; 
 nPos2 = vec4(nw1 * inWes[0] * nPos);
 nPos2 += (nw2 * inWes[1] * nPos);
 nPos2 += (nw3 * inWes[2] * nPos);
 nPos2 += (nw4 * inWes[3] * nPos); 
 gl_Position = ubo.projectionMatrix * ubo.viewMatrix * vec4(nPos2.xyz + pushConsts.lightPos[3].xyz ,1.0 );
 }

I’m shocked !

I checked these models in DX 11 and work all perfect !

I try compile my shader several versions glslangValidator , but the same result.

If i not mul vertexes on bone matrix i get normal models (Naruto and Monster)

Checked on NVIDIA 720 bug same.
If vertex ok for animation monster, Naruto distorted

If vertex ok for animation Naruto, monster distorted

All animated meshes use one vertex shader.
I simple change vertex spir file to another and get different result.

I change only in vertex shader and not compile my program.
If i set position monster on xyz = 220.0,0,0 and get bug.

If i set position monster on xyz = 0,0,0 i get normal animation.

I do not use vkCmdPipelineBarrier for animation keys buffer layout (binding = 2) buffer somes { mat4 so[]; } some;