It is 8 (kernel 3x3) / 24 (kernel 5x5) additional texture reads each time we have to sample the refraction texture…
So, it depends on the number of times this sampling must occur, but it could be noticeable if you have some big areas covered with the refraction texture.
You could also try to pre-blur the different LODs of the refraction texture, but this pre-blur must occur each frame (at least each time the refraction texture is regenerated, and it is currently at each frame, even if nothing is moving), so it will also take some time, which may be bigger than doing the 8/24 additional lookups in the shader if the area covered by the refraction texture is not too big.
So, I guess you would need to make the changes and see how it goes for you. The changes would need to be made in Shaders/ShadersInclude/pbrBlockSubSurface.fx around line 267. For example, assuming the refraction is coming from a 2D texture and that the texture is 256x256, you could do (for a 3x3 blur):
float tsize = 1.0/256.0;
environmentRefraction =
sampleRefractionLod(refractionSampler, refractionCoords + vec2(0., 0.), requestedRefractionLOD) * 0.25 +
sampleRefractionLod(refractionSampler, refractionCoords + vec2(0., -tsize), requestedRefractionLOD) * 0.125 +
sampleRefractionLod(refractionSampler, refractionCoords + vec2(-tsize, 0.), requestedRefractionLOD) * 0.125 +
sampleRefractionLod(refractionSampler, refractionCoords + vec2(0., tsize), requestedRefractionLOD) * 0.125 +
sampleRefractionLod(refractionSampler, refractionCoords + vec2(tsize, 0.), requestedRefractionLOD) * 0.125 +
sampleRefractionLod(refractionSampler, refractionCoords + vec2(-tsize, -tsize), requestedRefractionLOD) * 0.0625 +
sampleRefractionLod(refractionSampler, refractionCoords + vec2(tsize, -tsize), requestedRefractionLOD) * 0.0625 +
sampleRefractionLod(refractionSampler, refractionCoords + vec2(-tsize, tsize), requestedRefractionLOD) * 0.0625 +
sampleRefractionLod(refractionSampler, refractionCoords + vec2(tsize, tsize), requestedRefractionLOD) * 0.0625;