forked from eden-emu/eden
		
	spirv: Replace Constant/ConstantComposite with Const helper
This commit is contained in:
		
							parent
							
								
									2999028976
								
							
						
					
					
						commit
						5b8afed871
					
				
					 12 changed files with 100 additions and 111 deletions
				
			
		|  | @ -45,16 +45,12 @@ public: | |||
|         if (opcode != values[1]->GetOpcode() || opcode != IR::Opcode::CompositeConstructU32x4) { | ||||
|             throw LogicError("Invalid PTP arguments"); | ||||
|         } | ||||
|         auto read{[&](unsigned int a, unsigned int b) { | ||||
|             return ctx.Constant(ctx.U32[1], values[a]->Arg(b).U32()); | ||||
|         }}; | ||||
|         auto read{[&](unsigned int a, unsigned int b) { return values[a]->Arg(b).U32(); }}; | ||||
| 
 | ||||
|         const Id offsets{ | ||||
|             ctx.ConstantComposite(ctx.TypeArray(ctx.U32[2], ctx.Constant(ctx.U32[1], 4)), | ||||
|                                   ctx.ConstantComposite(ctx.U32[2], read(0, 0), read(0, 1)), | ||||
|                                   ctx.ConstantComposite(ctx.U32[2], read(0, 2), read(0, 3)), | ||||
|                                   ctx.ConstantComposite(ctx.U32[2], read(1, 0), read(1, 1)), | ||||
|                                   ctx.ConstantComposite(ctx.U32[2], read(1, 2), read(1, 3)))}; | ||||
|         const Id offsets{ctx.ConstantComposite( | ||||
|             ctx.TypeArray(ctx.U32[2], ctx.Const(4U)), ctx.Const(read(0, 0), read(0, 1)), | ||||
|             ctx.Const(read(0, 2), read(0, 3)), ctx.Const(read(1, 0), read(1, 1)), | ||||
|             ctx.Const(read(1, 2), read(1, 3)))}; | ||||
|         Add(spv::ImageOperandsMask::ConstOffsets, offsets); | ||||
|     } | ||||
| 
 | ||||
|  | @ -108,7 +104,7 @@ private: | |||
|             return; | ||||
|         } | ||||
|         if (offset.IsImmediate()) { | ||||
|             Add(spv::ImageOperandsMask::ConstOffset, ctx.Constant(ctx.U32[1], offset.U32())); | ||||
|             Add(spv::ImageOperandsMask::ConstOffset, ctx.Const(offset.U32())); | ||||
|             return; | ||||
|         } | ||||
|         IR::Inst* const inst{offset.InstRecursive()}; | ||||
|  | @ -361,9 +357,8 @@ Id EmitImageGather(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id | |||
|     const auto info{inst->Flags<IR::TextureInstInfo>()}; | ||||
|     const ImageOperands operands(ctx, offset, offset2); | ||||
|     return Emit(&EmitContext::OpImageSparseGather, &EmitContext::OpImageGather, ctx, inst, | ||||
|                 ctx.F32[4], Texture(ctx, index), coords, | ||||
|                 ctx.Constant(ctx.U32[1], info.gather_component.Value()), operands.Mask(), | ||||
|                 operands.Span()); | ||||
|                 ctx.F32[4], Texture(ctx, index), coords, ctx.Const(info.gather_component), | ||||
|                 operands.Mask(), operands.Span()); | ||||
| } | ||||
| 
 | ||||
| Id EmitImageGatherDref(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords, | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 ameerj
						ameerj